permute、transpose、view、reshape、unsequeeze与flatten

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

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 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值