class Chainer::Optimizer
Attributes
target[RW]
Public Instance Methods
_call_hook(hook)
click to toggle source
# File lib/chainer/optimizer.rb, line 32 def _call_hook(hook) if hook.methods.include?(:call_for_each_param) @target.params do |param| hook.(param.update_rule, param) end else hook.(self) end end
add_hook(hook, name: nil)
click to toggle source
# File lib/chainer/optimizer.rb, line 13 def add_hook(hook, name: nil) if !hook.class.method_defined?(:call) raise TypeError, 'hook function is not callable' end name = hook.name if name.nil? if @hooks[name] raise TypeError, "hook #{name} already exists" end @hooks[name] = hook end
call_hooks()
click to toggle source
# File lib/chainer/optimizer.rb, line 25 def call_hooks @hooks.values.each do |hook| _call_hook(hook) reallocate_cleared_grads end end
serialize(serializer)
click to toggle source
# File lib/chainer/optimizer.rb, line 42 def serialize(serializer) @t = serializer.('t', @t) @epoch = serializer.('epoch', @epoch) @target.namedparams() do |(name, param)| if param.respond_to?(:update_rule) param.update_rule.serialize(serializer[name.to_s]) end end end
setup(link)
click to toggle source
# File lib/chainer/optimizer.rb, line 5 def setup(link) @target = link @t = 0 @epoch = 0 @hooks = {} end