Module: DNN::Layers::MergeLayerNode
- Included in:
- MergeLayer, DNN::Losses::Hinge, DNN::Losses::HuberLoss, DNN::Losses::MeanAbsoluteError, DNN::Losses::MeanSquaredError, DNN::Losses::SigmoidCrossEntropy, DNN::Losses::SoftmaxCrossEntropy
- Defined in:
- lib/dnn/core/layers/merge_layers.rb
Instance Method Summary collapse
- #backward(dy) ⇒ Object
- #backward_node(dy) ⇒ Object
- #forward(input_tensor1, input_tensor2) ⇒ Object
- #forward_node(x1, x2) ⇒ Object
Instance Method Details
#backward(dy) ⇒ Object
15 16 17 |
# File 'lib/dnn/core/layers/merge_layers.rb', line 15 def backward(dy) backward_node(dy) end |
#backward_node(dy) ⇒ Object
23 24 25 |
# File 'lib/dnn/core/layers/merge_layers.rb', line 23 def backward_node(dy) raise NotImplementedError, "Class '#{self.class.name}' has implement method 'backward_node'" end |
#forward(input_tensor1, input_tensor2) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/dnn/core/layers/merge_layers.rb', line 5 def forward(input_tensor1, input_tensor2) x1 = input_tensor1.data x2 = input_tensor2.data prev_link1 = (input_tensor1.is_a?(Tensor) ? input_tensor1.link : input_tensor1) prev_link2 = (input_tensor2.is_a?(Tensor) ? input_tensor2.link : input_tensor2) y = forward_node(x1, x2) link = TwoInputLink.new(prev_link1, prev_link2, self) Tensor.new(y, link) end |
#forward_node(x1, x2) ⇒ Object
19 20 21 |
# File 'lib/dnn/core/layers/merge_layers.rb', line 19 def forward_node(x1, x2) raise NotImplementedError, "Class '#{self.class.name}' has implement method 'forward_node'" end |