Pytorch中view, transpose, permute等方法的区别
关于张量的Flatten、Reshape和Squeeze的解释
transpose 只能交换两个维度,参数是(dim1,dim2)。与原数组共内存空间 (np.transpose(dims)接受的参数是维度列表)
permute 也是交换维度,参数是维度列表(dim1,dim2,dim3,…)。不与元素组公用内存空间
view:
reshape(self,dim):变形
unsequeeze(self,dim):解压缩 增加一个长度为1的维数。
sequeeze(self):压缩数组,去掉维度为1的维度
flatten(self):将数据处理为一维向量
transpose和permute操作后,数组是不连续的
a1 = a.permute((2,1,0))
a2= a.transpose(0,2)
print(a1==a2)
print(a1.is_contiguous())
print(a2.is_contiguous())

不连续的数组,不能使用view().推荐使用reshape()
a1_view = a1.view(2,-1)## 会报错,数组不连续
print(a1_view)

将不连续数组变成连续数组,用contiguous()方法
a1_conti = a1.contiguous()
a1_view = a1_conti.view(2,12)
创建数组的方式,第一种生成的是浮点型的,后面的是整型

本文详细介绍了PyTorch中张量的操作方法,包括view、transpose、permute等的区别及应用场景。解释了Flatten、Reshape和Squeeze的功能,并讨论了如何处理不连续数组的问题。
1296

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



