pytorch最浅显易懂的dim维度,数组维度解释,以及对应dim维度上的操作解释(不会就开侃我)

本文详细解释了在Python编程中,特别是在torch库中的dim概念,它不仅指代行或列,而是根据数组嵌套层次确定是行间操作还是行内元素操作。作者通过实例说明了不同dim值对应的不同维度处理方式。
摘要由CSDN通过智能技术生成

关于dim维度问题,比如(0,1,2,3)这是一个4维
dim=0,dim=1,dim=2,dim=3这是从最外面的括号向里面的括号一步步地抽丝剥茧进行计算
比如2维数组 [[1,2],[2,3]]  
最外面的一层括号就是dim=0维,最里面的一层就是dim=1维
比如执行torch.sum(a,dim=0,keepdim=True)操作的时候
是在在第一层括号内的所有数组进行操作,这里就是[1,2]+[2,3],结果就是[3,5]

而如果执行torch.sum(a,dim=1,keepdim=True)操作,结果就是对第二层括号中的数组进行操作
这里就是[1,2][2,3]内部执行操作,结果就是[3],[5]

所以dim是一种维度,不单指列,行。对于上面二维的例子来说,
dim=0的操作看起来就是行与行之间的操作,行与行之间对应元素进行相加。
dim=1的操作看起来就是行内部元素的操作,行内部元素相加。

而对于1维数组来说,dim=0不是代表行与行之间操作,而是行内部
比如cat操作,对1维数组进行cat拼接不会将新数组拼接到1维数组行下面,而是会拼接到该数组右侧

所以,dim不特指行,列,而是要关注数组维度的括号关系
[[[1,2],[2,3]]]  这是三维数组,
如果执行dim=0的加法操作,则返回结果应该还是[[[1,2],[2,3]]],因为去掉第一层括号后,只有一行内部元素,没有可加的
而dim=1时,则应该返回[[[3,5]]],
若是dim=2,则应返回[[[3],[5]]]

[[[[1,2],[2,3]]]] 这是4维数组
dim=0的时候,仍然只有一行元素,没有可加的,所以仍然是[[[[1,2],[2,3]]]]
dim=1的时候,去掉最外层和当前层括号,只剩下[[1,2],[2,3]],仍然只有一行,还是无法可加,所以仍然是原结果[[[[1,2],[2,3]]]]
dim=2的时候,去掉外面两层括号和当前层括号,剩下[1,2],[2,3],这时候有两行元素,所以可以执行 行与行之间相加,结果为[[[[3,5]]]]
dim=3的时候,去掉外面三层括号和当前层括号,发现进入到行元素内部,所以可以执行行元素内部操作,有结果[[[[3],[5]]]]

结果展示:
tensor([[[[1, 2],
          [2, 3]]]]) 
 tensor([[[[1, 2],
          [2, 3]]]]) 
 tensor([[[[3, 5]]]]) 
 tensor([[[[3],
          [5]]]])
          
所以综上,总结出不管dim等于几维度,他的操作只有两种,行与行之间,行内部元素之间,其余的就是确定dim维度后观察是行内部还是行与行之间就行了
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值