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代表了从最底层的逐个数值操作。

相关推荐
Shawn_Shawn6 小时前
mcp学习笔记(一)-mcp核心概念梳理
人工智能·llm·mcp
冷雨夜中漫步8 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
33三 三like8 小时前
《基于知识图谱和智能推荐的养老志愿服务系统》开发日志
人工智能·知识图谱
芝士爱知识a8 小时前
【工具推荐】2026公考App横向评测:粉笔、华图与智蛙面试App功能对比
人工智能·软件推荐·ai教育·结构化面试·公考app·智蛙面试app·公考上岸
郝学胜-神的一滴8 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再8 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
Forrit9 小时前
ptyorch安装
pytorch
腾讯云开发者9 小时前
港科大熊辉|AI时代的职场新坐标——为什么你应该去“数据稀疏“的地方?
人工智能
工程师老罗10 小时前
YoloV1数据集格式转换,VOC XML→YOLOv1张量
xml·人工智能·yolo