pytorch学习之维度变化

本文介绍了PyTorch中处理张量维度变化的几种方法,包括view、unsqueeze、squeeze、expand、repeat和transpose函数的用法。通过这些函数,可以灵活地调整张量的形状,适应不同的深度学习任务需求。同时强调了在使用view等可能导致维度信息丢失的函数时,需要注意原始维度信息的保存,以便数据恢复。
摘要由CSDN通过智能技术生成

1、view函数:

a = torch.rand(4,1,28,28)
b = a.view(4,28*28)        
print(b.shape)             #result:torch.Size([4, 784])

首先产生一个维数为4*1*28*28的张量a,通过view函数对a张量进行操作,将a张量变为一个4*[28*28]的张量,改变之后的张量结果为上式,需注意,改变前后的元素个数不变,即4*1*28*28需等于4*[28*28],例如可以对1*28*28的照片进行处理,使之变为1*784的张量。(需注意,如要恢复数据,需要原始的维度信息)

2、unsqueeze函数

a = torch.rand(4,1,28,28)
print(a.unsqueeze(0).shape)   #torch.Size([1, 4, 1, 28, 28])

unsqueeze(0)表示在0元素位置之前插入一个维度,将4*1*28*28看作是4张1*28*28的照片则1*4*1*28*28可看作1组中有4张1*28*28的照片,这个操作只改变维度不改变数据

3、squeeze函数

a = torch.rand(32)
a = a.unsqueeze(1).unsqueeze(2).unsqueeze(0)    #print(a.shape)   torch.Size([1, 32, 1, 1])
print(a.squeeze().shape)                        #result:torch.Size([32])
<
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值