pytorch .contiguous().view()

contiguous:view只能用在contiguous的variable上。

如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。

有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式。

在torch里面,view函数相当于numpy的reshape

x.view(-1, 4)

这里-1表示一个不确定的数,就是你如果不确定你想要reshape成几行,但是你很肯定要reshape成4列,那不确定的地方就可以写成-1

例如一个长度的16向量x,

x.view(-1, 4)等价于x.view(4, 4)
x.view(-1, 2)等价于x.view(8,2)


版权声明:本文为qq_35608277原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。