欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pytorch .contiguous().view()

程序员文章站 2022-06-13 15:19:46
...

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)