Class: DNN::Layers::Dense
Instance Attribute Summary collapse
Attributes inherited from Connection
#bias_initializer, #l1_lambda, #l2_lambda, #weight_initializer
#params, #trainable
Attributes inherited from Layer
#input_shape
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Connection
#d_lasso, #d_ridge, #lasso, #ridge
#build, #update
Methods inherited from Layer
#build, #built?
Constructor Details
#initialize(num_nodes, weight_initializer: Initializers::RandomNormal.new, bias_initializer: Initializers::Zeros.new, l1_lambda: 0, l2_lambda: 0) ⇒ Dense
Returns a new instance of Dense.
185
186
187
188
189
190
191
192
193
|
# File 'lib/dnn/core/layers.rb', line 185
def initialize(num_nodes,
weight_initializer: Initializers::RandomNormal.new,
bias_initializer: Initializers::Zeros.new,
l1_lambda: 0,
l2_lambda: 0)
super(weight_initializer: weight_initializer, bias_initializer: bias_initializer,
l1_lambda: l1_lambda, l2_lambda: l2_lambda)
@num_nodes = num_nodes
end
|
Instance Attribute Details
#num_nodes ⇒ Object
Returns the value of attribute num_nodes.
175
176
177
|
# File 'lib/dnn/core/layers.rb', line 175
def num_nodes
@num_nodes
end
|
Class Method Details
.load_hash(hash) ⇒ Object
177
178
179
180
181
182
183
|
# File 'lib/dnn/core/layers.rb', line 177
def self.load_hash(hash)
self.new(hash[:num_nodes],
weight_initializer: Utils.load_hash(hash[:weight_initializer]),
bias_initializer: Utils.load_hash(hash[:bias_initializer]),
l1_lambda: hash[:l1_lambda],
l2_lambda: hash[:l2_lambda])
end
|
Instance Method Details
#backward(dout) ⇒ Object
200
201
202
203
204
|
# File 'lib/dnn/core/layers.rb', line 200
def backward(dout)
@weight.grad = @x.transpose.dot(dout)
@bias.grad = dout.sum(0)
dout.dot(@weight.data.transpose)
end
|
#forward(x) ⇒ Object
195
196
197
198
|
# File 'lib/dnn/core/layers.rb', line 195
def forward(x)
@x = x
@x.dot(@weight.data) + @bias.data
end
|
#output_shape ⇒ Object
206
207
208
|
# File 'lib/dnn/core/layers.rb', line 206
def output_shape
[@num_nodes]
end
|
#to_hash ⇒ Object
210
211
212
|
# File 'lib/dnn/core/layers.rb', line 210
def to_hash
super({num_nodes: @num_nodes})
end
|