class Chainer::Links::Connection::Linear
Attributes
b[R]
w[R]
Public Class Methods
new(in_size, out_size: nil, nobias: false, initial_w: nil, initial_bias: nil)
click to toggle source
Calls superclass method
Chainer::Link::new
# File lib/chainer/links/connection/linear.rb, line 7 def initialize(in_size, out_size: nil, nobias: false, initial_w: nil, initial_bias: nil) super() in_size, out_size = nil, in_size if out_size.nil? @out_size = out_size init_scope do w_initializer = Chainer::Initializers.get_initializer(initial_w) @w = Chainer::Parameter.new(initializer: w_initializer) initialize_params(in_size) unless in_size.nil? if nobias @b = nil else initial_bias = 0 if initial_bias.nil? bias_initializer = Chainer::Initializers.get_initializer(initial_bias) @b = Chainer::Parameter.new(initializer: bias_initializer, shape: out_size) end end end
Public Instance Methods
call(x)
click to toggle source
# File lib/chainer/links/connection/linear.rb, line 28 def call(x) if @w.data.nil? initialize_params(x.size.div(x.shape[0])) end Chainer::Functions::Connection::LinearFunction.linear(x, @w, @b) end
Private Instance Methods
initialize_params(in_size)
click to toggle source
# File lib/chainer/links/connection/linear.rb, line 37 def initialize_params(in_size) @w.init([@out_size, in_size]) end