捷徑

Bilinear

class torch.nn.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) – 第一個輸入樣本的大小

  • in2_features (int) – 第二個輸入樣本的大小

  • out_features (int) – 每個輸出樣本的大小

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

形狀
  • Input1: (,Hin1)(*, H_{in1}) 其中 Hin1=in1_featuresH_{in1}=\text{in1\_features}* 代表任意數量的額外維度,包括沒有維度。除了最後一個維度外,輸入的其餘維度應相同。

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

  • Output: (,Hout)(*, H_{out}) 其中 Hout=out_featuresH_{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 的全面開發者文件

檢視文件

教學

取得初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並取得您的問題解答

檢視資源