【问题标题】:Wrap two tensors in pytorch to get size of new tensor as 2在 pytorch 中包装两个张量以获得新张量的大小为 2
【发布时间】:2020-08-15 06:12:22
【问题描述】:

我有两个张量 x 和 y:

x 有形状:[21314, 3, 128, 128] y 有形状:[21314]

我可以得到新的形状张量吗:[ [21314, 3, 128, 128], [21314] ],基本上形状为2

【问题讨论】:

  • 正如 A.Maman 的回答中所述,您要的不是张量。这似乎对我来说可能是XY problem。请描述您实际想要实现的目标以及您认为需要嵌套张量的原因。可能有更好的解决方案。

标签: pytorch tensor


【解决方案1】:

如果您需要将其保存为 tensor 对象,我认为这是不可能的。当然,在这种情况下,您可以使用列表或元组,但我想这不是您的意思。

首先,张量只是一个矩阵对 n 维而不是 2 维的泛化。但现在让我们将其简化为矩阵,例如 4x3。第一个维度的大小为 4,即 4 个条目。第二维度 3 意味着 4 个第一维度条目中的每一个都将恰好(并且不少于)3 个条目。也就是说,您必须在每个嵌套列表中有 3 个元素的完整列表。在这个简单的示例中,请注意您不能拥有这样的矩阵:

[[1,2,3]

 [1,2]

 [1]    ]

虽然这是一个嵌套列表,但它不是矩阵,也不是 2d 的张量。我想说的是,您要求的形状 - [ [21314, 3, 128, 128], [21314] ] - 实际上不是张量。

但是,您可以将其视为大小为 2 的张量,每个条目中都有张量的数据类型(您在提问时可能会提到)。虽然这是不可能的,因为 pytorch 中的张量只包含多种类型:float32、float64、float16、uint8、int8、int16、int32、int64、bool。

不过,在大多数情况下,您可以通过将两个张量分配给一个列表或元组来实现您所需要的。

【讨论】:

    猜你喜欢
    • 2020-08-31
    • 2020-05-22
    • 2018-11-16
    • 1970-01-01
    • 2021-05-14
    • 2021-10-11
    • 2020-08-31
    • 2021-06-27
    • 2020-08-05
    相关资源
    最近更新 更多