class Chainer::Initializers::HeNormal

Public Class Methods

new(scale: 1.0, dtype: nil) click to toggle source
Calls superclass method Chainer::Initializer::new
# File lib/chainer/initializers/normal.rb, line 16
def initialize(scale: 1.0, dtype: nil)
  @scale = scale
  super(dtype: dtype)
end

Public Instance Methods

call(array) click to toggle source
# File lib/chainer/initializers/normal.rb, line 21
def call(array)
  # TODO(sonots): pass device from outside
  device = Chainer::Device.default
  fan_in, fan_out = Chainer::Utils::Initializer.get_fans(array.shape, device: device)
  s = @scale * device.xm::NMath.sqrt(2.0 / fan_in)
  Normal.new(scale: s).(array)
end