5 #include "../layer/layer.h"
17 std::vector<Layer> _layers;
18 std::vector<std::vector<Variable>>
20 std::vector<Variable> _parameters;
28 MLP(
size_t n_in, std::vector<size_t> n_outs) : _n_in(n_in), _n_outs(n_outs)
30 _layers.reserve(n_outs.size());
31 _results.resize(n_outs.size());
33 size_t num_parameters = 0;
34 for (
size_t n_out : n_outs)
36 num_parameters += n_out * (n_prev + 1);
38 _parameters.reserve(num_parameters);
40 for (
size_t i = 0; i < n_outs.size(); i++)
42 _layers.emplace_back(n_prev, n_outs[i],
"tanh");
44 for (
size_t j = 0; j < _layers[i].parameters().size(); j++)
46 _parameters.push_back(_layers[i].
parameters()[j]);
55 const std::vector<Layer> &
layers()
const
64 const std::vector<std::vector<Variable>> &
results()
const
92 std::vector<Variable> &
forward(
const std::vector<double> &inputs);
const std::vector< std::vector< Variable > > & results() const
Definition: mlp.h:64
std::vector< Variable > & mutable_parameters()
Definition: mlp.h:82
std::vector< Variable > & forward(const std::vector< double > &inputs)
Definition: mlp.cc:4
const std::vector< Layer > & layers() const
Definition: mlp.h:55
const std::vector< Variable > & parameters() const
Definition: mlp.h:73
MLP(size_t n_in, std::vector< size_t > n_outs)
Definition: mlp.h:28