評價此頁

Bilinear#

class torch.nn.modules.linear.Bilinear(in1_features, in2_features, out_features, bias=True, device=None, dtype=None)[原始碼]#

應用雙線性變換到輸入資料:y=x1TAx2+by = x_1^T A x_2 + b.

引數
  • in1_features (int) – 每個第一個輸入樣本的大小,必須大於 0

  • in2_features (int) – 每個第二個輸入樣本的大小,必須大於 0

  • out_features (int) – 每個輸出樣本的大小,必須大於 0

  • bias (bool) – 如果設定為 False,則該層將不學習加性偏置。預設值:True

形狀
  • 輸入1:(,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])
extra_repr()[原始碼]#

返回模組的額外表示。

返回型別

str

forward(input1, input2)[原始碼]#

執行前向傳播。

返回型別

張量

reset_parameters()[原始碼]#

根據 __init__ 中使用的初始化重置引數。