Class: RubyZero::NN::Layers::MultiLayerPerceptron
- Inherits:
-
ModelStack
- Object
- Model
- Layer
- ModelList
- ModelStack
- RubyZero::NN::Layers::MultiLayerPerceptron
- Defined in:
- lib/rubyzero/nn/layers/multi_layer_perceptron.rb
Instance Method Summary collapse
-
#initialize(*dims, activation: RubyZero::NN::Layers::ReLU) ⇒ MultiLayerPerceptron
constructor
A new instance of MultiLayerPerceptron.
Methods inherited from ModelStack
Methods inherited from ModelList
#+, #<<, #__get_str__, #each, #elements, #parameters
Methods inherited from Model
#__get_str__, #call, #eval, #forward, #inspect, load, #parameters, #save, #train
Constructor Details
#initialize(*dims, activation: RubyZero::NN::Layers::ReLU) ⇒ MultiLayerPerceptron
Note:
- 5, 3
-
-> 5 inputs, 3 outputs
- 5, 3, 2
-
-> 5 inputs, 3 hidden, 2 outputs
Returns a new instance of MultiLayerPerceptron.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/rubyzero/nn/layers/multi_layer_perceptron.rb', line 8 def initialize(*dims, activation: RubyZero::NN::Layers::ReLU) super() if dims.length < 2 raise ArgumentError, "Layer must have at least 2 dimensions" end @dims = dims @activation_function = activation (@dims.size-1).times do |i| dim_i = @dims[i] dim_o = @dims[i+1] @models << RubyZero::NN::Layers::Affine.new(dim_i, dim_o) if i != @dims.size-2 @models << activation.new end end end |