常见的数据扩展方式unsqueeze与expand的用法与区别

本文详细介绍了PyTorch中unsqueeze和expand两个数据扩展操作的使用方法及区别。unsqueeze可以在指定维度上增加一个大小为1的新维度,而expand则能将数据在指定维度上复制,形成新的尺寸。通过示例展示了这两个函数如何改变张量的形状,帮助理解其功能和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的数据扩展方式unsqueeze与expand的用法与区别

unsqueeze以及expand的区别

  • unsqueeze可以增加一个维度,但是维度的siz只是1而已;
  • 然而,expand却可以将数据进行复制,将增加的数据维度变为n。
# 获得一开始的初始化数值:tensor([[a1,a2,a3]])
nn1=torch.rand(1,3)
print(nn1)
print("nn1.shape",nn1.shape)
# unsqueeze是解压的意思,在第i个维度上进行扩展,将其扩展为tensor([[[a1,a2,a3]]])
nn2=nn1.unsqueeze(0)
print("*"*100)
print(nn2)
print("nn2.shape",nn2.shape)
nn3=nn1.unsqueeze(2)
print('='*100)
print(nn3)
print("nn3.shape",nn3.shape)
#利用expand对数据进行扩展
nn4=nn1.expand(1,3,3)
print("*"*100)
print(nn4)
print("nn4.shape",nn4.shape)
tensor([[0.8664, 0.8674, 0.7234]])
nn1.shape torch.Size([1, 3])
>>>
输出结果如下:
****************************************************************************************************
tensor([[[0.8664, 0.8674, 0.7234]]])
nn2.shape torch.Size([1, 1, 3])
====================================================================================================
tensor([[[0.8664],
         [0.8674],
         [0.7234]]])
nn3.shape torch.Size([1, 3, 1])
****************************************************************************************************
tensor([[[0.8664, 0.8674, 0.7234],
         [0.8664, 0.8674, 0.7234],
         [0.8664, 0.8674, 0.7234]]])
nn4.shape torch.Size([1, 3, 3])

相反地,squeeze()函数用于减小维度,它只能减少size=1的维度;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yale曼陀罗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值