当Pythorch中有一个双线性层时,我不知道如何计算。在
下面是一个小例子,我试图弄清楚它是如何工作的:
输入:
import torch.nn as nn
B = nn.Bilinear(2, 2, 1)
print(B.weight)
输出:
^{pr2}$我要通过一个零向量和一个向量。在
输入:
print(B(torch.ones(2), torch.zeros(2)))
print(B(torch.zeros(2), torch.ones(2)))
输出:
tensor([0.2175], grad_fn=<ThAddBackward>)
tensor([0.2175], grad_fn=<ThAddBackward>)
我试着用各种方法把重量加起来,但结果不一样。在
提前谢谢!在
nn.Bilinear
完成的操作是B(x1, x2) = x1*A*x2 + b
(c.f.doc),其中:A
存储在nn.Bilinear.weight
b
存储在nn.Bilinear.bias
如果你考虑到(可选)偏差,你应该得到预期的结果。在
相关问题 更多 >
编程相关推荐