[转载]PyTorch上的contiguous
[转载]PyTorch上的contiguous 来源: https://zhuanlan.zhihu.com/p/64551412 这篇文章写的非常好,我这里就不复制粘贴了,有兴趣的同学可以去看原文,我这里只摘录一些结论过来以便查询: PyTorch 提供了 is_contiguous 、 contiguous (形容词动用)两个方法 ,分别用于判定Tensor是否是 contiguous 的,以及保证Tensor是 contiguous 的。 is_contiguous 直观的解释是 Tensor底层一维数组元素的存储顺序与Tensor按行优先一维展开的元素顺序是否一致 。 为什么需要 contiguous ? torch.view 等方法操作需要连续的Tensor。 transpose、permute 操作虽然没有修改底层一维数组,但是新建了一份Tensor元信息,并在新的元信息中的 重新指定 stride。 torch.view 方法约定了不修改数组本身,只是使用新的形状查看数据。如果我们在 transpose、permute 操作后执行 view,Pytorch 会抛出错误. 原文中举了一个例子来说明:transpose、permute不修改底层数组,而view是直接访问底层数组的,所以在执行transpose、permute之后如果直接调用view