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

相关推荐
sduwcgg3 分钟前
kaggle配置
人工智能·python·机器学习
DolphinScheduler社区5 分钟前
白鲸开源与亚马逊云科技携手推动AI-Ready数据架构创新
人工智能·科技·开源·aws·白鲸开源·whalestudio
__lost25 分钟前
Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰
python·opencv·计算机视觉
海绵波波10730 分钟前
玉米产量遥感估产系统的开发实践(持续迭代与更新)
python·flask
欣然~33 分钟前
借助 OpenCV 和 PyTorch 库,利用卷积神经网络提取图像边缘特征
人工智能·计算机视觉
谦行43 分钟前
工欲善其事,必先利其器—— PyTorch 深度学习基础操作
pytorch·深度学习·ai编程
逢生博客1 小时前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
堕落似梦1 小时前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
白熊1881 小时前
【计算机视觉】CV实战项目 - 基于YOLOv5的人脸检测与关键点定位系统深度解析
人工智能·yolo·计算机视觉
nenchoumi31191 小时前
VLA 论文精读(十六)FP3: A 3D Foundation Policy for Robotic Manipulation
论文阅读·人工智能·笔记·学习·vln