Class: RubyZero::NN::Optimizers::Momentum

Inherits:
Optimizer
  • Object
show all
Defined in:
lib/rubyzero/nn/optimizers/momentum.rb

Instance Method Summary collapse

Methods inherited from Optimizer

#zero_grad

Constructor Details

#initialize(parameters, lr: 0.001, alpha: 0.9) ⇒ Momentum

Returns a new instance of Momentum.



3
4
5
6
7
8
# File 'lib/rubyzero/nn/optimizers/momentum.rb', line 3

def initialize(parameters, lr: 0.001, alpha: 0.9)
    @lr = lr
    @parameters = parameters
    @alpha = alpha
    @velocities = []
end

Instance Method Details

#updateObject Also known as: step



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/rubyzero/nn/optimizers/momentum.rb', line 9

def update()
    @parameters.each_with_index do |tensor, index|
        if @velocities[index].nil?
            @velocities[index] = 0
        else
            vel = @velocities[index] * @alpha
            uparam = tensor.grad.data + vel
            tensor.data -= uparam * @lr
        end
    end
end