Class: DNN::Layers::Connection

Inherits:
HasParamLayer show all
Defined in:
lib/dnn/core/layers.rb

Overview

It is a superclass of all connection layers.

Direct Known Subclasses

Conv2D, Conv2D_Transpose, Dense, RNN

Instance Attribute Summary collapse

Attributes inherited from HasParamLayer

#params, #trainable

Attributes inherited from Layer

#input_shape, #learning_phase

Instance Method Summary collapse

Methods inherited from Layer

#backward, #build, #built?, #forward, #output_shape

Constructor Details

#initialize(weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, weight_regularizer: nil, bias_regularizer: nil, use_bias: true) ⇒ Connection

Returns a new instance of Connection.

Parameters:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/dnn/core/layers.rb', line 115

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
  @params[:weight] = @weight = Param.new(nil, 0)
  if use_bias
    @params[:bias] = @bias = Param.new(nil, 0)
  else
    @bias = nil
  end
end

Instance Attribute Details

#bias_initializer ⇒ DNN::Initializers::Initializer (readonly)

Returns Bias initializer.

Returns:



104
105
106
# File 'lib/dnn/core/layers.rb', line 104

def bias_initializer
  @bias_initializer
end

#bias_regularizer ⇒ DNN::Regularizers::Regularizer (readonly)

Returns Bias regularization.

Returns:



108
109
110
# File 'lib/dnn/core/layers.rb', line 108

def bias_regularizer
  @bias_regularizer
end

#weight_initializer ⇒ DNN::Initializers::Initializer (readonly)

Returns Weight initializer.

Returns:



102
103
104
# File 'lib/dnn/core/layers.rb', line 102

def weight_initializer
  @weight_initializer
end

#weight_regularizer ⇒ DNN::Regularizers::Regularizer (readonly)

Returns Weight regularization.

Returns:



106
107
108
# File 'lib/dnn/core/layers.rb', line 106

def weight_regularizer
  @weight_regularizer
end

Instance Method Details

#regularizers ⇒ Object



133
134
135
136
137
138
# File 'lib/dnn/core/layers.rb', line 133

def regularizers
  regularizers = []
  regularizers << @weight_regularizer if @weight_regularizer
  regularizers << @bias_regularizer if @bias_regularizer
  regularizers
end

#to_hash(merge_hash) ⇒ Object



145
146
147
148
149
150
151
# File 'lib/dnn/core/layers.rb', line 145

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 ⇒ Bool

Return whether to use bias.

Returns:

  • (Bool) —

    Return whether to use bias.



141
142
143
# File 'lib/dnn/core/layers.rb', line 141

def use_bias
  @bias ? true : false
end