class Chainer::Chain

Public Class Methods

new() click to toggle source
Calls superclass method Chainer::Link::new
# File lib/chainer/link.rb, line 107
def initialize
  super
  @children = []
end

Public Instance Methods

del_attr(name) click to toggle source
Calls superclass method Chainer::Link#del_attr
# File lib/chainer/link.rb, line 123
def del_attr(name)
  @children.delete(name)
  super
end
namedparams(include_uninit: true) { |param| ... } click to toggle source
Calls superclass method Chainer::Link#namedparams
# File lib/chainer/link.rb, line 140
def namedparams(include_uninit: true)
  super(include_uninit: include_uninit) do |param|
    yield param
  end

  @children.each do |name|
    prefix = "/#{name}"
    self.instance_variable_get(name).namedparams(include_uninit: include_uninit) do |(path, param)|
      yield [prefix + path, param]
    end
  end
end
params(include_uninit: true) { |param| ... } click to toggle source
Calls superclass method Chainer::Link#params
# File lib/chainer/link.rb, line 128
def params(include_uninit: true)
  super(include_uninit: include_uninit) do |param|
    yield param
  end

  @children.each do |name|
    self.instance_variable_get(name).params(include_uninit: include_uninit) do |param|
      yield param
    end
  end
end
serialize(serializer) click to toggle source
Calls superclass method Chainer::Link#serialize
# File lib/chainer/link.rb, line 166
def serialize(serializer)
  super(serializer)
  d = self.instance_variables.each_with_object({}) { |sym, h| h[sym] = self.instance_variable_get(sym) }
  @children.each do |name|
    d[name].serialize(serializer[name.to_s])
  end
end
set_attr(name, value) click to toggle source
Calls superclass method Chainer::Link#set_attr
# File lib/chainer/link.rb, line 112
def set_attr(name, value)
  if within_init_scope && value.kind_of?(Chainer::Link)
    if self.respond_to?(name)
      raise TypeError, "cannot register a new link #{name}: attribute exists"
    end
    value.name = name
    @children << name
  end
  super
end