不同点:

view()方法只能改变连续的(contiguous)张量,否则需要先调用.contiguous()方法;而.reshape()方法不受此限制;如果对 tensor 调用过 transposepermute等操作的话会使该 tensor 在内存中变得不再连续。

其中可使用is_contiguous()来判断是否是连续的张量,is_contiguous直观的解释: Tensor底层一维数组元素的存储顺序与Tensor按行优先一维展开的元素顺序是否一致。如果我们在 transpose、permute 操作后执行 view,Pytorch 会抛出错误

posted on 2021-09-15 09:34  BKSW  阅读(480)  评论(0编辑  收藏  举报