【问题标题】:Python get pytorch tensor sizePython获取pytorch张量大小
【发布时间】:2020-08-31 07:32:37
【问题描述】:

我想知道如何在 Python 中得到这个张量的形状?我试过这个:

> len(x)

但这会打印 1,为什么?我想在这里打印元组的数量是 3。使用 len(x) 只打印 1。

有什么问题?

这是张量:

 (x=array([[[[ 0.07499999,  0.        ],
         [ 0.0703125 ,  0.        ],
         [ 0.0703125 ,  0.        ],
         [ 0.09218752,  0.        ],
         [ 0.1953125 ,  0.        ],
         [ 0.05312502,  0.        ],
         [ 0.2890625 ,  0.        ],
         [ 0.015625  ,  0.        ],
         [ 0.32656252,  0.        ],
         [ 0.09218752,  0.        ],
         [ 0.23906249,  0.        ],
         [ 0.09218752,  0.        ],
         [ 0.22812498,  0.        ],
         [ 0.06406248,  0.        ],
         [ 0.19062501,  0.        ],
         [ 0.02031249,  0.        ],
         [ 0.17343748,  0.        ]],

        [[ 0.06875002,  0.        ],
         [ 0.06875002,  0.        ],
         [ 0.06875002,  0.        ],
         [ 0.09062499,  0.        ],
         [ 0.19375002,  0.        ],
         [ 0.05781251,  0.        ],
         [ 0.2921875 ,  0.        ],
         [ 0.01406252,  0.        ],
         [ 0.325     ,  0.        ],
         [ 0.08437502,  0.        ],
         [ 0.23124999,  0.        ],
         [ 0.09531248,  0.        ],
         [ 0.22031248,  0.        ],
         [ 0.06406248,  0.        ],
         [ 0.18906248,  0.        ],
         [ 0.02031249,  0.        ],
         [ 0.171875  ,  0.        ]],

        [[ 0.06718749,  0.        ],
         [ 0.06093752,  0.        ],
         [ 0.07187498,  0.        ],
         [ 0.078125  ,  0.        ],
         [ 0.18593752,  0.        ],
         [ 0.03437501,  0.        ],
         [ 0.2765625 ,  0.        ],
         [-0.00312501,  0.        ],
         [ 0.29843748,  0.        ],
         [ 0.078125  ,  0.        ],
         [ 0.21718752,  0.        ],
         [ 0.078125  ,  0.        ],
         [ 0.21249998,  0.        ],
         [ 0.07187498,  0.        ],
         [ 0.19062501,  0.        ],
         [ 0.13749999,  0.        ],
         [ 0.1796875 ,  0.        ]]]], dtype=float32), 0)

【问题讨论】:

  • 因为你的数组的形状是(1, 3, 17, 2)
  • len 和 numpy 的 .shape 是完全不同的东西。 len 用于序列的第一手长度。它不知道潜在的子序列
  • 实际上它是一个张量而不是一个数组,所以 x[0] 将打印张量的第一个形状,这里是 1。
  • 其实没有。

标签: python pytorch tensor


【解决方案1】:

看起来您的 3 个元组位于 x 的第一个(也是唯一一个)索引内。在这种情况下,len(x[0]) 产生 3

【讨论】:

  • 实际上它是一个张量而不是一个数组,所以 x[0] 将打印张量的第一个形状,这里是 1。
【解决方案2】:

正如@rdas 指出的那样:

len 用于序列的第一手长度。它不知道潜在的子序列

张量里面有 1 个list(并且这个列表有嵌套列表)。因此张量的长度为 1。

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 1970-01-01
    • 2020-12-16
    • 2020-02-28
    • 2022-10-17
    • 2020-08-15
    • 2021-06-26
    • 1970-01-01
    • 2021-02-12
    相关资源
    最近更新 更多