大白话torch squeeze和unsqueeze

squeeze

用大白话,亚索维度。若不指定要压缩的维度,则去除所有长度是1的维度。
eg:假设原来t维度是[2,1,3,4,1,3],她的意思是,第一维度的长度是2,第二维度长度是1,以此类推。不指定维度直接t.squeeze()后,t的shape就变成了[2,3,4,3]4维。

其实显然如果某个维度长度不是1,也没办法压缩呀,对吧?人家数据在摆着呢,怎么会硬生生压扁呢。
所以其实squeeze能且只能压缩长度1的维度,因为他本来就是“扁”的嘛,所以才能“去掉不看” 。

unsqueeze

大白话,添加增加维度。由于维度长度的储存在python中是列表,所以unsqueeze需要指定在哪个位置添加一维。(但实际上在数学上增加维度是不考虑维度“顺序”的。)
对于入门者,特别提醒,unsqueeze(dim=0) 的作用不是把原本形状[1,2,3]的张量变成[2,2,3],而是添加新的维度,变成[1,1,2,3]
和squeeze同理,unsqueeze添加也只能添加长度1的“扁”的维度,这样才保证原数据不被破坏。

二者作用

他们都是调整相同数据的维度用的,不改变原数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值