在Pytorch中切片会给出错误的答案

时间:2019-12-02 07:10:53

标签: python pytorch

当我运行以下行时,我看到以下结果,我无法解释。我期望看到[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])

1 个答案:

答案 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]到形状,这可能是或可能不是期望的。