Pytorch中,dim形象化的确切意义是什么?

在Pytorch中涉及张量的操作都会涉及"dim"的设置,虽然也理解个大差不差,但是偶尔还是有点犯迷糊,究其原因还是没有形象化的理解。

首先,张量的维度排序是有固定顺序的,0,1,2,......,是遵循一个从外到内的索引顺序;张量本身的维度越高,往内延伸的维度数越高。

"dim define what operation elements is"------这是我自己的形象化理解。

看一组代码:

python 复制代码
>>> ones = torch.ones(3,4)
>>> ones
tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])
>>> zeros = torch.zeros(3,4)
>>> zeros
tensor([[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]])
>>> ra = torch.arange(12).view(3,4)
>>> ra
tensor([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])

>>> torch.stack((ra,zeros),dim=0)
tensor([[[ 0.,  1.,  2.,  3.],
         [ 4.,  5.,  6.,  7.],
         [ 8.,  9., 10., 11.]],

        [[ 0.,  0.,  0.,  0.],
         [ 0.,  0.,  0.,  0.],
         [ 0.,  0.,  0.,  0.]]])
>>> torch.stack((ones,zeros),dim=0)
tensor([[[1., 1., 1., 1.],
         [1., 1., 1., 1.],
         [1., 1., 1., 1.]],

        [[0., 0., 0., 0.],
         [0., 0., 0., 0.],
         [0., 0., 0., 0.]]])
>>> torch.stack((ones,zeros),dim=-1)
tensor([[[1., 0.],
         [1., 0.],
         [1., 0.],
         [1., 0.]],

        [[1., 0.],
         [1., 0.],
         [1., 0.],
         [1., 0.]],

        [[1., 0.],
         [1., 0.],
         [1., 0.],
         [1., 0.]]])
>>> torch.stack((ra,zeros),dim=-1)
tensor([[[ 0.,  0.],
         [ 1.,  0.],
         [ 2.,  0.],
         [ 3.,  0.]],

        [[ 4.,  0.],
         [ 5.,  0.],
         [ 6.,  0.],
         [ 7.,  0.]],

        [[ 8.,  0.],
         [ 9.,  0.],
         [10.,  0.],
         [11.,  0.]]])
>>> torch.stack((ra,zeros),dim=1)
tensor([[[ 0.,  1.,  2.,  3.],
         [ 0.,  0.,  0.,  0.]],

        [[ 4.,  5.,  6.,  7.],
         [ 0.,  0.,  0.,  0.]],

        [[ 8.,  9., 10., 11.],
         [ 0.,  0.,  0.,  0.]]])
>>> print("dim define what operation elements is")
dim define what operation elements is
>>> 
>>> 

看完代码你应该会比较形象化的理解最后一句话:dim其实定义了参与操作的元素是什么样的。对于一个batch的数据来说,dim=0上定义的是一个个样本,dim=1定义了第二个维度即每个样本的特征维度,......, dim=-1代表了从最底层的逐个数值操作。

相关推荐
码农很忙2 分钟前
解锁数据库迁移新姿势:让AI真正“可用、可信、可落地”
大数据·人工智能
人工智能培训7 分钟前
10分钟了解向量数据库(1)
人工智能·深度学习·算法·机器学习·大模型·智能体搭建
多米Domi01122 分钟前
0x3f 第21天 三更java进阶1-35 hot100普通数组
java·python·算法·leetcode·动态规划
北数云31 分钟前
北数云v4.6.4 版本上线及域名切换通知
人工智能·开源·gpu算力·模型
不吃香菜的鱼33 分钟前
PyTorch-CUDA-v2.9镜像自动混合精度训练配置指南
pytorch·cuda·自动混合精度
新职语34 分钟前
打造个人AI实验室:低成本使用PyTorch-CUDA-v2.8云实例
pytorch·cuda·云实例
小程故事多_8035 分钟前
从零吃透PyTorch,最易懂的入门全指南
人工智能·pytorch·python
AI科技星36 分钟前
统一场论中电场的几何起源:基于立体角变化率的第一性原理推导与验证
服务器·人工智能·线性代数·算法·矩阵·生活
大叔and小萝莉37 分钟前
PyTorch-v2.8新特性解析:性能提升背后的秘密
pytorch· torch.compile· 性能优化
晓晓不觉早38 分钟前
2026 AI 垂直领域展望:从通用到专精,场景深耕成破局关键
人工智能