lib/dnn/core/optimizers.rb in ruby-dnn-0.9.0 vs lib/dnn/core/optimizers.rb in ruby-dnn-0.9.1
- old
+ new
@@ -86,11 +86,11 @@
def update(params)
params.select { |key, param| param.grad }.each_value do |param|
@g[param] ||= 0
@g[param] += param.grad**2
- param.data -= (@learning_rate / Xumo::NMath.sqrt(@g[param] + 1e-7)) * param.grad
+ param.data -= (@learning_rate / NMath.sqrt(@g[param] + 1e-7)) * param.grad
end
end
end
@@ -109,11 +109,11 @@
def update(params)
params.select { |key, param| param.grad }.each_value do |param|
@g[param] ||= 0
@g[param] = @alpha * @g[param] + (1 - @alpha) * param.grad**2
- param.data -= (@learning_rate / Xumo::NMath.sqrt(@g[param] + 1e-7)) * param.grad
+ param.data -= (@learning_rate / NMath.sqrt(@g[param] + 1e-7)) * param.grad
end
end
def to_hash
super({alpha: @alpha})
@@ -138,11 +138,11 @@
def update(params)
params.select { |key, param| param.grad }.each_value do |param|
@h[param] ||= Xumo::SFloat.zeros(*param.data.shape)
@s[param] ||= Xumo::SFloat.zeros(*param.data.shape)
@h[param] = @rho * @h[param] + (1 - @rho) * param.grad**2
- v = (Xumo::NMath.sqrt(@s[param] + 1e-6) / Xumo::NMath.sqrt(@h[param] + 1e-6)) * param.grad
+ v = (NMath.sqrt(@s[param] + 1e-6) / NMath.sqrt(@h[param] + 1e-6)) * param.grad
@s[param] = @rho * @s[param] + (1 - @rho) * v**2
param.data -= v
end
end
@@ -175,10 +175,10 @@
params.select { |key, param| param.grad }.each_value do |param|
@m[param] ||= 0
@v[param] ||= 0
@m[param] += (1 - @beta1) * (param.grad - @m[param])
@v[param] += (1 - @beta2) * (param.grad**2 - @v[param])
- param.data -= lr * @m[param] / Xumo::NMath.sqrt(@v[param] + 1e-7)
+ param.data -= lr * @m[param] / NMath.sqrt(@v[param] + 1e-7)
end
end
def to_hash
super({beta1: @beta1, beta2: @beta2})