当我运行以下行时,我看到以下结果,我无法解释。我期望看到[1.,2.]作为a * x [:,0]的答案,确实,如果我在numpy中做同样的事情,我会得到这个答案,但我不知道为什么pytorch给我一个不同的答案答案:
>>> x = torch.tensor([[1,0],[1,1]])
>>> a = torch.tensor([1.,2.])
>>> a*x
tensor([[1., 0.], [1., 2.]])
>>> a*x[:,0]
tensor([1., nan])
答案 0 :(得分:0)
确认@ blue-phoenox:在1.1和1.2中试用了您的示例。您将收到以下错误:
RuntimeError: expected backend CPU and dtype Float but got backend CPU and dtype Long
另外,在切成一维张量时要小心,因为您会从形状[2, 2]
到[2]
而不是[1, 2]
到形状,这可能是或可能不是期望的。