快捷键

双线性 ¶

class torch.nn.Bilinear(in1_features, in2_features, out_features, bias=True, device=None, dtype=None)[source][source]

对传入数据进行双线性变换: y=x1TAx2+by = x_1^T A x_2 + b

参数:
  • in1_features (int) – 每个第一个输入样本的大小

  • in2_features (int) – 每个第二个输入样本的大小

  • out_features (int) – 每个输出样本的大小

  • bias (bool) – 如果设置为 False ,则层将不会学习加性偏置。默认: True

形状:
  • Input1: (,Hin1)(*, H_\text{in1}) 其中 Hin1=in1_featuresH_\text{in1}=\text{in1\_features}* 表示包括零在内的任意数量的额外维度。除了输入的最后维度之外的所有维度都应该相同。

  • 输入 2: (,Hin2)(*, H_\text{in2}) 其中 Hin2=in2_featuresH_\text{in2}=\text{in2\_features}

  • 输出: (,Hout)(*, H_\text{out}) 其中 Hout=out_featuresH_\text{out}=\text{out\_features} 以及所有维度除了最后一个都与输入形状相同。

变量:
  • weight (torch.Tensor) – 该模块的可学习权重,形状为 (out_features,in1_features,in2_features)(\text{out\_features}, \text{in1\_features}, \text{in2\_features}) 。值从 U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k}) 初始化,其中 k=1in1_featuresk = \frac{1}{\text{in1\_features}}

  • bias – 该模块的可学习偏置,形状为 (out_features)(\text{out\_features}) 。如果 biasTrue ,则值从 U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k}) 初始化,其中 k=1in1_featuresk = \frac{1}{\text{in1\_features}}

示例:

>>> m = nn.Bilinear(20, 30, 40)
>>> input1 = torch.randn(128, 20)
>>> input2 = torch.randn(128, 30)
>>> output = m(input1, input2)
>>> print(output.size())
torch.Size([128, 40])

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源