【发布时间】:2019-04-11 15:34:12
【问题描述】:
我对使用 * 和 matmul 的两个张量之间的乘法感到困惑。 下面是我的代码
import torch
torch.manual_seed(7)
features = torch.randn((2, 5))
weights = torch.randn_like(features)
在这里,我想将权重和特征相乘。所以,一种方法如下
print(torch.sum(features * weights))
输出:
tensor(-2.6123)
另一种方法是使用 matmul
print(torch.mm(features,weights.view((5,2))))
但是,这里的输出是
tensor([[ 2.8089, 4.6439],
[-2.3988, -1.9238]])
我在这里不明白的是,为什么matmul 和通常的乘法在两者相同时会给出不同的输出。我在这里做错了吗?
编辑:当我使用形状 (1,5) 的特征时,* 和 matmul 输出是相同的。
但是,形状为(2,5)时就不一样了。
【问题讨论】:
标签: python numpy pytorch tensor