首页 > 解决方案 > 在 pytorch 中包装两个张量以获得新张量的大小为 2

问题描述

我有两个张量说 x 和 y:

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

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

标签: pytorchtensor

解决方案


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

首先,张量只是对 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。

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


推荐阅读