Class: DNN::Optimizers::Nesterov
- Defined in:
- lib/dnn/core/optimizers.rb
Instance Attribute Summary
Attributes inherited from SGD
Attributes inherited from Optimizer
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(learning_rate = 0.01, momentum: 0.9) ⇒ Nesterov
constructor
A new instance of Nesterov.
- #update(layer) ⇒ Object
Methods inherited from SGD
Methods inherited from Optimizer
Constructor Details
#initialize(learning_rate = 0.01, momentum: 0.9) ⇒ Nesterov
Returns a new instance of Nesterov.
60 61 62 |
# File 'lib/dnn/core/optimizers.rb', line 60 def initialize(learning_rate = 0.01, momentum: 0.9) super(learning_rate, momentum: momentum) end |
Class Method Details
.load_hash(hash) ⇒ Object
56 57 58 |
# File 'lib/dnn/core/optimizers.rb', line 56 def self.load_hash(hash) self.new(hash[:learning_rate], momentum: hash[:momentum]) end |
Instance Method Details
#update(layer) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/dnn/core/optimizers.rb', line 64 def update(layer) @v[layer] ||= {} layer.params.each_key do |key| @v[layer][key] ||= 0 amount = layer.grads[key] * @learning_rate @v[layer][key] = @v[layer][key] * @momentum - amount layer.params[key] = (layer.params[key] + @momentum**2 * @v[layer][key]) - (1 + @momentum) * amount end end |