pytorch结构函数tensor.view()和terson.reshape(),以及contiguous()为何存在
view()是内存共享的,reshape()不是共享的,可以理解为reshape获取的是tensor克隆真实副本,而view()只是改变了tensor的观察视角而已,然而实际上并不会这样使用它,因为reshape通常获取不到原数据的拷贝(因为会改变data的内存地址),所以一般用clone()克隆tensor后再view,确保对象和数据两个内存地址都被完整复制走。
本文探讨了PyTorch中tensor.view()和tensor.reshape()函数的内存共享特性,强调view()仅改变观察视角,reshape可能不共享数据导致内存地址变更。通常推荐先用clone()复制tensor再进行view操作以确保数据完整复制。同时解释了contiguous()的作用,即确保连续内存布局。
3779

被折叠的 条评论
为什么被折叠?



