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

相关推荐
吴佳浩13 分钟前
Python入门指南-AI模型相似性检测方法:技术原理与实现
人工智能·python·llm
叶 落22 分钟前
计算阶梯电费
python·python 基础·python 入门
kebijuelun31 分钟前
百度文心 4.5 大模型详解:ERNIE 4.5 Technical Report
人工智能·深度学习·百度·语言模型·自然语言处理·aigc
算家计算38 分钟前
ComfyUI-v0.3.43本地部署教程:新增 Omnigen 2 支持,复杂图像任务一步到位!
人工智能·开源
新智元43 分钟前
毕业 7 年,身价破亿!清北 AI 天团血洗硅谷,奥特曼被逼分天价股份
人工智能·openai
新智元1 小时前
刚刚,苹果大模型团队负责人叛逃 Meta!华人 AI 巨星 + 1,年薪飙至 9 位数
人工智能·openai
Python大数据分析@1 小时前
Origin、MATLAB、Python 用于科研作图,哪个最好?
开发语言·python·matlab
Cyltcc1 小时前
如何安装和使用 Claude Code 教程 - Windows 用户篇
人工智能·claude·visual studio code
编程零零七2 小时前
Python巩固训练——第一天练习题
开发语言·python·python基础·python学习·python练习题
吹风看太阳2 小时前
机器学习16-总体架构
人工智能·机器学习