Class: DNN::Layers::Dense
Instance Attribute Summary collapse
Attributes inherited from Connection
#l1_lambda, #l2_lambda
#params, #trainable
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Connection
#dlasso, #dridge, #lasso, #ridge
#build, #update
Methods inherited from Layer
#build, #built?, #prev_layer
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.
183
184
185
186
187
188
189
190
191
|
# File 'lib/dnn/core/layers.rb', line 183
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.
173
174
175
|
# File 'lib/dnn/core/layers.rb', line 173
def num_nodes
@num_nodes
end
|
Class Method Details
.load_hash(hash) ⇒ Object
175
176
177
178
179
180
181
|
# File 'lib/dnn/core/layers.rb', line 175
def self.load_hash(hash)
self.new(hash[:num_nodes],
weight_initializer: Util.load_hash(hash[:weight_initializer]),
bias_initializer: Util.load_hash(hash[:bias_initializer]),
l1_lambda: hash[:l1_lambda],
l2_lambda: hash[:l2_lambda])
end
|
Instance Method Details
#backward(dout) ⇒ Object
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/dnn/core/layers.rb', line 198
def backward(dout)
@weight.grad = @x.transpose.dot(dout)
if @l1_lambda > 0
@weight.grad += dlasso
elsif @l2_lambda > 0
@weight.grad += dridge
end
@bias.grad = dout.sum(0)
dout.dot(@weight.data.transpose)
end
|
#forward(x) ⇒ Object
193
194
195
196
|
# File 'lib/dnn/core/layers.rb', line 193
def forward(x)
@x = x
@x.dot(@weight.data) + @bias.data
end
|
#shape ⇒ Object
209
210
211
|
# File 'lib/dnn/core/layers.rb', line 209
def shape
[@num_nodes]
end
|
#to_hash ⇒ Object
213
214
215
|
# File 'lib/dnn/core/layers.rb', line 213
def to_hash
super({num_nodes: @num_nodes})
end
|