x = torch.randn([1, 3, 4, 4])
Out:tensor([[[[-0.2728, -0.3203, -0.3554,  0.1830],
          [ 0.3597, -0.9062,  0.0591,  0.9316],
          [-2.3520, -0.9139,  0.2391, -1.1957],
          [ 1.0322, -1.5285, -0.9383, -0.7238]],

         [[ 0.0137,  1.7573, -0.6571, -0.5122],
          [-1.6151, -0.1229, -0.9881, -1.0641],
          [ 0.9613,  0.1050,  0.6589, -0.4001],
          [-1.9979, -1.5711,  1.6254, -0.0650]],

         [[ 0.3516,  1.0320, -0.5738,  1.6175],
          [-0.2852,  0.4617,  0.3210,  1.8032],
          [-2.0817, -0.6127, -1.6781, -0.1271],
          [ 0.3136, -0.2997, -0.6848, -0.7631]]]])

首先从中括号数可以看出来此为一个四维张量。然后我们再来从位置明确pytorch中的张量。

  1. 首先一个中括号包括四个单元格,这四个单元格组成一个向量。此为第一个维度索引
  2. 而后第二个中括号包含四个向量,这四个向量组成第二个维度索引
  3. 而第二个维度索引有三个,表明这个维度是三个单元格,这三个单元格组成第三个维度索引
  4. 最后第三个维度索引只有一个单元格,因此这一个单元格组成第四个维度索引

最后我们来验证一下,我们想取-0.2728这个单元格数据,因此代码应该为

x[0,0,0,0]
Out: tensor(-0.2728)
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐