PyTorch:view() 与 reshape() 区别详解
这篇博客写的非常好,非常详细。
但是自己有一些地方也没有特别明白。现在总结下来,就是虽然reshape
的功能更强大,但是它返回的结果可能是浅拷贝,也可能是深拷贝,所以代码看起来就不清晰了。而在深度学习编程中,我们想重塑tensor
的形状,肯定是想浅拷贝的,所以此时使用view就显式的指定是浅拷贝。
另外如何判断view
的张量是否满足内存连续的条件?其实感觉就是从后面的维度往前面的维度看,看数据在内存中是否是连续索引的,比如上面的博客中举的转置的例子,转置之后肯定还是同一块内存,但是从后面的维度往前面的维度看,内存索引的顺序就不是连续的了。