class DNN::Layers::Connection

It is a superclass of all connection layers.

Attributes

bias[R]
bias_initializer[R]
bias_regularizer[R]
weight[R]
weight_initializer[R]
weight_regularizer[R]

Public Class Methods

new(weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, weight_regularizer: nil, bias_regularizer: nil, use_bias: true) click to toggle source

@param [DNN::Initializers::Initializer] weight_initializer Weight initializer. @param [DNN::Initializers::Initializer] bias_initializer Bias initializer. @param [DNN::Regularizers::Regularizer | NilClass] weight_regularizer Weight regularizer. @param [DNN::Regularizers::Regularizer | NilClass] bias_regularizer Bias regularizer. @param [Boolean] use_bias Whether to use bias.

Calls superclass method DNN::Layers::TrainableLayer::new
# File lib/dnn/core/layers/basic_layers.rb, line 186
def initialize(weight_initializer: Initializers::RandomNormal.new,
               bias_initializer: Initializers::Zeros.new,
               weight_regularizer: nil,
               bias_regularizer: nil,
               use_bias: true)
  super()
  @weight_initializer = weight_initializer
  @bias_initializer = bias_initializer
  @weight_regularizer = weight_regularizer
  @bias_regularizer = bias_regularizer
  @weight = Param.new(nil, Xumo::SFloat[0])
  @bias = use_bias ? Param.new(nil, Xumo::SFloat[0]) : nil
end

Public Instance Methods

get_params() click to toggle source
# File lib/dnn/core/layers/basic_layers.rb, line 220
def get_params
  { weight: @weight, bias: @bias }
end
regularizers() click to toggle source
# File lib/dnn/core/layers/basic_layers.rb, line 200
def regularizers
  regularizers = []
  regularizers << @weight_regularizer if @weight_regularizer
  regularizers << @bias_regularizer if @bias_regularizer
  regularizers
end
to_hash(merge_hash) click to toggle source
Calls superclass method DNN::Layers::Layer#to_hash
# File lib/dnn/core/layers/basic_layers.rb, line 212
def to_hash(merge_hash)
  super({ weight_initializer: @weight_initializer.to_hash,
          bias_initializer: @bias_initializer.to_hash,
          weight_regularizer: @weight_regularizer&.to_hash,
          bias_regularizer: @bias_regularizer&.to_hash,
          use_bias: use_bias }.merge(merge_hash))
end
use_bias() click to toggle source

@return [Boolean] Return whether to use bias.

# File lib/dnn/core/layers/basic_layers.rb, line 208
def use_bias
  @bias ? true : false
end

Private Instance Methods

init_weight_and_bias() click to toggle source
# File lib/dnn/core/layers/basic_layers.rb, line 224
        def init_weight_and_bias
  @weight_initializer.init_param(self, @weight)
  @weight_regularizer.param = @weight if @weight_regularizer
  if @bias
    @bias_initializer.init_param(self, @bias)
    @bias_regularizer.param = @bias if @bias_regularizer
  end
end