本人也是pytorch新手一枚,如有错误,欢迎及时指正 1 张量的概念和定义 0 维张量 是 标量 (单纯的数字) 1维张量 是 向量 2 维张量 是数组 3维张量 可以看成多个形状相同数组 同理,我们可以推导更高维度的张量
张量的形状 创建两个张量,形状均为[2,3,6],也就是有2个3*6的数组。 也可以使用x.size(index)来取出某个维度上的大小。在这里我们可以将张量的形状看成是列表[2,3,6],这样在使用x.size(index)取维度的大小时,就可以应用列表的规则。如上图所示对张量维度的理解 依然使用上面 x 的例子,x有三个维度 0 ,1 ,2 。 x[0]取出的是第一个维度上的第一个元素 也可以使用这种方法,取出任意维度上的任意起始位置的元素。对于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 > 从小粒度到大粒度
|