nn_bilinear function

Bilinear module

Bilinear module

Applies a bilinear transformation to the incoming data y=x1TAx2+by = x_1^T A x_2 + b

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 FALSE, the layer will not learn an additive bias. Default: TRUE

Shape

  • Input1: (N,,Hin1)(N, *, H_{in1}) Hin1=\mboxin1_featuresH_{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,,Hin2)(N, *, H_{in2}) where Hin2=\mboxin2_featuresH_{in2}=\mbox{in2\_features}.

  • Output: (N,,Hout)(N, *, H_{out}) where Hout=\mboxout_featuresH_{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 (\mboxout_features,\mboxin1_features,\mboxin2_features)(\mbox{out\_features}, \mbox{in1\_features}, \mbox{in2\_features}). The values are initialized from U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k}), where k=1\mboxin1_featuresk = \frac{1}{\mbox{in1\_features}}
  • bias: the learnable bias of the module of shape (\mboxout_features)(\mbox{out\_features}). If bias is TRUE, the values are initialized from U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k}), where k=1\mboxin1_featuresk = \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()) }
  • Maintainer: Daniel Falbel
  • License: MIT + file LICENSE
  • Last published: 2024-05-21