PyTorch 维度变换-Tensor基本操作

以如下 tensor a 为例,展示常用的维度变换操作

python3 复制代码
>>> a = torch.rand(4,3,28,28)
>>> a.shape
torch.Size([4, 3, 28, 28])
  • view / reshape 两者功能完全相同: a.view(shape)

    python3 复制代码
    >>> a.view(4,3,28*28)  		## a.view(4,3,28,28) 可恢复
  • squeeze / unsqueeze: a.unsqueeze(dim), a.squeeze(dim) 只能挤压 1 维度

    python3 复制代码
    >>> a.unsqueeze(0).shape	## a.squeeze(0) 可恢复
    torch.Size([1, 4, 3, 28, 28])
  • transpose / permute:.t() 只能用于二维矩阵

    python3 复制代码
    >>> a.transpose(0,1).shape    ## 两两交换:交换 0 1 维度
    torch.Size([3, 4, 28, 28])
    >>> a.permute(0,1,2,3).shape  ## 新置维度,非两两交换,更方便 
    torch.Size([4, 3, 28, 28])
  • expand / repeat 两者效果完全相同 expand 高效更推荐

    python3 复制代码
    >>> a.unsqueeze(0).expand(2,4,3,28,28).shape  # 只能拓展 1 维度的
    torch.Size([2, 4, 3, 28, 28])
    >>> a.unsqueeze(0).repeat(2,1,1,1,1).shape    # 不是填目标维度,而是填每个维度的重复次数   
    torch.Size([2, 4, 3, 28, 28])
  • broadcasting 自动扩张:基于已有的小维度的值 自动 进行广播拓展

    python3 复制代码
    >>> b = a+torch.tensor(1) 
    >>> b.shape
    torch.Size([4, 3, 28, 28])

相关推荐
AEIC学术交流中心12 分钟前
【快速EI检索 | IEEE出版】2026年人工智能、智能系统与信息安全国际学术会议(AISIS 2026)
人工智能
火山引擎开发者社区38 分钟前
李诞、何同学、小Lin说同台直播,解锁养虾新玩法!
人工智能
剑穗挂着新流苏3121 小时前
117_PyTorch 实战:利用训练好的模型进行单张图片验证
人工智能·python·深度学习
程序员cxuan1 小时前
人麻了,谁把我 ssh 干没了
人工智能·后端·程序员
数据皮皮侠1 小时前
中国城市间地理距离矩阵(2024)
大数据·数据库·人工智能·算法·制造
枫叶林FYL1 小时前
【乳腺癌早期筛查(钼靶X光图像AI识别)】第一章:钼靶AI核心算法架构演进——从2D全视野到3D断层合成与视觉Transformer
人工智能·深度学习
Lethehong2 小时前
Python Selenium全栈指南:从自动化入门到企业级实战
python·selenium·测试工具·自动化
TK云大师-KK2 小时前
TikTok自动化直播遇到内容重复问题?这套技术方案了解一下
大数据·运维·人工智能·矩阵·自动化·新媒体运营·流量运营
姚青&2 小时前
大语言模型与私有部署
人工智能·语言模型·chatgpt