这里以torch.Tensor下的reshape,view,resize_来举例
reshape和view之间的区别
相同点:都是可以改变tensor的形状
不同点:
-
.view()方法只能改变连续的(contiguous)张量,否则需要先调用.contiguous()方法;而.reshape()方法不受此限制;如果对 tensor 调用过transpose,permute等操作的话会使该 tensor 在内存中变得不再连续。 -
.view()方法返回的张量与原张量共享基础数据(存储器,注意不是共享内存地址);.reshape()方法返回的可能是原张量的copy,也可能不是,这个我们不知道。
下面举个例子说明一下第一个不同点:
import torch
x = torch.randn
