【PyTorch】改变张量(Tensor)形状操作

PyTorch深度学习总结

第二章 PyTorch中改变张量(Tensor)形状操作



一、前言

上文讲解了张量生成信息获取的知识,本文将针对张量的操作进行详细讲解。


二、改变张量形状

1、改变张量形状的函数总结:

函数描述
A.reshape(3, 4)改变张量A形状为3*4
A.resize_(3, 4)改变张量A形状为3*4
A.resize_as_(B)改变张量A形状与张量B相同
torch.unsqueeze(A, dim=0)在A的0维度添加尺寸为1的新张量
torch.unsqueeze(A, dim=0)移除A的维度为1的维度
torch.unsqueeze(A)移除A中所有维度为1的维度
A.expand(3, -1)将张量A扩充为3行
A.expand_as(C )将张量A根据C的大小形状进行扩充
A.repeat(1, 2, 2)对张量A的对应维度进行扩充

2、部分函数细节讲解

针对unsqueeze的讲解:

# 引入库
import torch

# 生成张量A
A = torch.arange(start=0, end=2, step=1) 

# 使用torch.unsqueeze函数添加维度
B = torch.unsqueeze(A, dim=0)
print(A, B)
print(A.shape, B.shape)

输出结果为:
tensor([0, 1]) , tensor([[0, 1]])
torch.Size([2]), torch.Size([1, 2])

针对squeeze的讲解:

# 生成多维度的张量C
C = torch.unsqueeze(B, dim=0)

# 对维度为1的维度进行裁剪
D = torch.squeeze(C, dim=0)
E = torch.squeeze(C)

# 输出结果
print(C, D, E)
print(C.shape, D.shape, E.shape)

输出结果:
tensor([[[0, 1]]]) , tensor([[0, 1]]), tensor([0, 1])
torch.Size([1, 1, 2]), torch.Size([1, 2]) , torch.Size([2])


  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值