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(params) ⇒ 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.
62 63 64 |
# File 'lib/dnn/core/optimizers.rb', line 62 def initialize(learning_rate = 0.01, momentum: 0.9) super(learning_rate, momentum: momentum) end |
Class Method Details
.load_hash(hash) ⇒ Object
58 59 60 |
# File 'lib/dnn/core/optimizers.rb', line 58 def self.load_hash(hash) self.new(hash[:learning_rate], momentum: hash[:momentum]) end |
Instance Method Details
#update(params) ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/dnn/core/optimizers.rb', line 66 def update(params) params.select { |key, param| param.grad }.each_value do |param| @v[param] ||= 0 amount = param.grad * @learning_rate @v[param] = @v[param] * @momentum - amount param.data = (param.data + @momentum**2 * @v[param]) - (1 + @momentum) * amount end end |