关于pytorch中的dim的理解

今天碰到一个代码看起来很简单,但是细究原理又感觉好像不太通不太对劲,就是多维tensor数据的操作,比如:y.sum(dim=2),乍一看很简单数据相加操作,但是仔细一想,这里在第3维度的数据到底是横向相加还是纵向相加,带着疑问实验几次就明白了。

首先给个完整的例子:

python 复制代码
import  torch

y = torch.tensor([
     [
       [1, 2, 3],
       [4, 5, 6]
     ],
     [
       [1, 2, 3],
       [4, 5, 6]
     ],
     [
       [1, 2, 3],
       [4, 5, 6]
     ]
   ])

print(y.sum(dim=2))

这里的y.shape = (3, 2, 3),三个维度的数据,所以dim可以是0~2也可以是-1~-3。我们每个维度都进行操作一遍就清楚了。

  • 当dim=0时,相当于有3个二维的向量进行相加,结果还是一个二维向量(对应位置相加):

    y.shape = (3, 2, 3) ---> y.shape = (2, 3)
  • 当dim=1时,相当于有2个一维的向量进行相加×3,结果是1个一维向量×3则还是一个二维向量:

    y.shape = (3, 2, 3) ---> y.shape = (3, 3)
  • 当dim=2时,相当于有3个数值进行相加×2×3,结果两个值组成一维向量,三个一维向量组成二维向量:

    y.shape = (3, 2, 3) ---> y.shape = (3, 2)

其他的数据操作也是这样类似的思想。

总结:从中可以看出只要对一个n维度的数据的其中一维进行操作的话,得到的结果会是n-1维的向量,shape则是去掉那一维的个数。

相关推荐
weixin_307779139 分钟前
从“人操作仪器”到“Agent 自主发现”:OPL 金属材料自驱动实验室 MVP 技术论述
开发语言·人工智能·算法·架构
xx_xxxxx_19 分钟前
论文阅读-PASLE
人工智能·深度学习·机器学习
释厄62319 分钟前
01AB 基本元理——任何智能体的三元法理·0=1→0≠1法理跃迁为天理
人工智能·windows·算法·microsoft·机器学习
szxinmai主板定制专家20 分钟前
工业视觉新思路:FPGA图像预处理+RK NPU推理,实现高速缺陷检测
人工智能·嵌入式硬件·fpga开发·rk3576+codesys
梦想画家21 分钟前
SQLMesh Python 模型入门(二):依赖管理、引擎实战与内存优化
数据库·python·sqlmesh
能源革命22 分钟前
AI 日报 · 2026-10-02
人工智能
枯木◊靠推文躺平版27 分钟前
2026 企业 AI 办公工具选型指南:如何匹配团队业务场景
人工智能
Web3&Basketball28 分钟前
LlamaIndex+BGE 重排:RAG 从噪声到可信
人工智能·大模型·rag
MiYi1240629 分钟前
Vlog人像美颜工具怎么选
大数据·人工智能
Omics Pro31 分钟前
经典多组学整合算法→商用云平台
数据库·人工智能·算法·机器学习·自然语言处理