class Chainer::Parameter
Attributes
grad_initializer[RW]
initializer[RW]
update_rule[RW]
Public Class Methods
new(initializer: nil, shape: nil, name: nil)
click to toggle source
Calls superclass method
# File lib/chainer/parameter.rb, line 5 def initialize(initializer: nil, shape: nil, name: nil) if initializer.nil? initializer = Chainer::Initializers.nan() elsif initializer.kind_of?(Numeric) initializer = Initializers::Constant.new(initializer) end if shape.nil? if Chainer.array?(initializer) super(initializer, name: name) else super(name: name) @initializer = initializer dtype = initializer.respond_to?(:dtype) ? initializer.dtype : 'SFloat' @grad_initializer = Chainer::Initializers.nan(dtype: dtype) end else if Chainer.array?(initializer) initializer = Initializers::Constant.new(initializer) end data = Chainer::Initializers.generate_array(initializer, shape) xm = Chainer.get_array_module(data) grad = xm::NArray[*[1, 2]].new_fill(-922337203) super(data, name: name, grad: grad) end @update_rule = nil end
Public Instance Methods
cleargrad()
click to toggle source
Calls superclass method
# File lib/chainer/parameter.rb, line 34 def cleargrad super @grad_initializer = nil if self.data.nil? end
init(shape)
click to toggle source
# File lib/chainer/parameter.rb, line 39 def init(shape) data = Chainer::Initializers.generate_array(@initializer, shape) ginit = @grad_initializer grad = ginit.nil? ? nil : Chainer::Initializers.generate_array(ginit, shape) self.data = data self.grad = grad end
update()
click to toggle source
# File lib/chainer/parameter.rb, line 48 def update if @update_rule @update_rule.update(self) end end