对pytorch中张量的形状和维度的理解

本人也是pytorch新手一枚,如有错误,欢迎及时指正
1 张量的概念和定义
此图摘自pytorch官方教程书
0 维张量 是 标量 (单纯的数字)
1维张量 是 向量
2 维张量 是数组
3维张量 可以看成多个形状相同数组
同理,我们可以推导更高维度的张量

  1. 张量的形状
    创建两个张量,形状均为[2,3,6],也就是有2个3*6的数组。
    在这里插入图片描述
    可以输入x.shape 获取张量的形状
    在这里插入图片描述
    也可以使用x.size(index)来取出某个维度上的大小。在这里我们可以将张量的形状看成是列表[2,3,6],这样在使用x.size(index)取维度的大小时,就可以应用列表的规则。如上图所示
  2. 对张量维度的理解
    依然使用上面 x 的例子,x有三个维度 0 ,1 ,2 。
    在这里插入图片描述
    x[0]取出的是第一个维度上的第一个元素

    在这里插入图片描述
    也可以使用这种方法,取出任意维度上的任意起始位置的元素。
  3. 对于torch.cat()函数维度的理解
    对于上例中的 x 来说,维度有 0,1,2
    在这里插入图片描述
    在0维上进行拼接,相当于是在叠罗汉,一层一层累加,不过这些罗汉的形状要相同,即第1维和第2维的大小要相同。
    拼接后的形状是436
    在这里插入图片描述
    在1 维上进行拼接,按纵向进行拼接,可以看成有两个形状相同方阵的罗汉,一个方阵的罗汉需要站到另一个方阵的后面去。其他两维的大小要相同。
    在这里插入图片描述
    在2 维上进行拼接,按横向拼接,可以看成本来有两排罗汉,现在要合并成一排,其他两个维度的大小要相同。

张量的形状可以看成列表,同理张量的维度也可以看成列表。
对于上例中的 x 来说,维度有 0,1,2,将其看成列表[0,1,2]
在dim = -1 上拼接就相当于在 dim = 2 上进行拼接
0 1 2 > 从大粒度到小粒度
-1 -2 -3 > 从小粒度到大粒度

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值