nn_bilinear {torch} | R Documentation |
Bilinear module
Description
Applies a bilinear transformation to the incoming data
y = x_1^T A x_2 + b
Usage
nn_bilinear(in1_features, in2_features, out_features, bias = TRUE)
Arguments
in1_features |
size of each first input sample |
in2_features |
size of each second input sample |
out_features |
size of each output sample |
bias |
If set to |
Shape
Input1:
(N, *, H_{in1})
H_{in1}=\mbox{in1\_features}
and*
means any number of additional dimensions. All but the last dimension of the inputs should be the same.Input2:
(N, *, H_{in2})
whereH_{in2}=\mbox{in2\_features}
.Output:
(N, *, H_{out})
whereH_{out}=\mbox{out\_features}
and all but the last dimension are the same shape as the input.
Attributes
weight: the learnable weights of the module of shape
(\mbox{out\_features}, \mbox{in1\_features}, \mbox{in2\_features})
. The values are initialized from\mathcal{U}(-\sqrt{k}, \sqrt{k})
, wherek = \frac{1}{\mbox{in1\_features}}
bias: the learnable bias of the module of shape
(\mbox{out\_features})
. Ifbias
isTRUE
, the values are initialized from\mathcal{U}(-\sqrt{k}, \sqrt{k})
, wherek = \frac{1}{\mbox{in1\_features}}
Examples
if (torch_is_installed()) {
m <- nn_bilinear(20, 30, 50)
input1 <- torch_randn(128, 20)
input2 <- torch_randn(128, 30)
output <- m(input1, input2)
print(output$size())
}