正如问题所述,在pytorch的view
中,-1
是什么意思?
>>> a = torch.arange(1, 17)
>>> a
tensor([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16.])
>>> a.view(1,-1)
tensor([[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16.]])
>>> a.view(-1,1)
tensor([[ 1.],
[ 2.],
[ 3.],
[ 4.],
[ 5.],
[ 6.],
[ 7.],
[ 8.],
[ 9.],
[ 10.],
[ 11.],
[ 12.],
[ 13.],
[ 14.],
[ 15.],
[ 16.]])
它 (-1
) 会生成额外的维度吗?
它的行为是否与numpy的reshape
-1
相同?
a.view(-1,1)
将生成一个具有维数17x1
的向量,因为有17个值 - 所以v.view(1,-1)
将生成一个1x17
的向量...。 - benex.view(-1)
是什么意思,它会将向量展平。为什么?因为它必须构建一个只有1个维度并推断维度的新视图--所以它将其展平。此外,似乎这个操作避免了.resize()
带来的非常恶心的错误,因为元素的顺序似乎得到了尊重。顺便说一下,pytorch现在有这个用于展平的操作:https://pytorch.org/docs/stable/generated/torch.flatten.html 或者查看我的答案 https://dev59.com/9FUL5IYBdhLWcg3wI1Ep#66500823 - Charlie Parker