Spec-Zone.ru › PyTorch 2

Билинейное

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

Применяет билинейное преобразование к входным данным: y=x1TAx2+by = x_1^T A x_2 + b

Параметры
  • in1_features (int) – размер каждого первого входного образца
  • in2_features (int) – размер каждого второго входного образца
  • out_features (int) – размер каждого выходного образца
  • bias (bool) – Если установлено в False, слой не будет учиться добавочной смещение. По умолчанию: True
Форма:
  • Вход 1: (∗,Hin1)(*, H_{in1}) где Hin1=in1_featuresH_{in1}=\text{in1\_features} и ∗* означает любое количество дополнительных измерений, включая отсутствие. Все, кроме последнего измерения входных данных, должны быть одинаковыми.
  • Вход 2: (∗,Hin2)(*, H_{in2}) где Hin2=in2_featuresH_{in2}=\text{in2\_features}.
  • Выход: (∗,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}). Если bias равно True, значения инициализируются из 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])

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.Bilinear.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API