理解PyTorch的contiguous()

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  [简书](http://www.jianshu.com/users/7731e83f3a4e/latest_articles

1. PyTorch中的Tensor操作

在PyTorch中,有一些对Tensor的操作不会真正改变Tensor的内容,改变的仅仅是Tensor中字节位置的索引。这些操作有:

1
narrow(), view(), expand(), transpose()

例如执行view操作之后,不会开辟新的内存空间来存放处理之后的数据,实际上新数据与原始数据共享同一块内存。

而在调用contiguous()之后,PyTorch会开辟一块新的内存空间存放变换之后的数据,并会真正改变Tensor的内容,按照变换之后的顺序存放数据。

参考资料

  1. https://stackoverflow.com/questions/48915810/pytorch-contiguous
  2. https://www.zhihu.com/question/60321866
如果有收获,可以请我喝杯咖啡!