在 pytorch 中包裹两个张量以获得新张量的大小为 2
Wrap two tensors in pytorch to get size of new tensor as 2
我有两个张量 x 和 y:
x 具有形状:[21314, 3, 128, 128]
y 的形状:[21314]
我能得到新的形状张量吗:[ [21314, 3, 128, 128], [21314] ]
,基本上形状 2
我认为这是不可能的,如果您需要将其保存为 tensor 对象。当然,您可以在这种情况下使用列表或元组,但我想那不是您的意思。
首先,张量只是 n 维而非二维矩阵的推广。但是现在让我们将其简化为一个矩阵,例如 4x3。第一个维度的大小为 4,即 4 个条目。第二个维度为 3 意味着第一个维度的 4 个条目中的每一个都将恰好(且不少于)3 个条目。也就是说,每个嵌套列表中必须包含 3 个元素的完整列表。在这个简单的例子中,请注意你不能有这样的矩阵:
[[1,2,3]
[1,2]
[1] ]
虽然这是一个嵌套列表,但它不是矩阵,也不是二维张量。我想说的是,您要求的形状 - [ [21314, 3, 128, 128], [21314] ] - 实际上不是张量。
但是,您可以将其视为大小为 2 的张量,每个条目中的数据类型为张量(您在提问时可能会提到的内容)。尽管这是不可能的,因为 pytorch 中的张量仅包含以下类型的数字:float32、float64、float16、uint8、int8、int16、int32、int64、bool。
尽管如此,在大多数情况下,您可以通过将两个张量分配给一个列表或元组来实现您的需要。
我有两个张量 x 和 y:
x 具有形状:[21314, 3, 128, 128]
y 的形状:[21314]
我能得到新的形状张量吗:[ [21314, 3, 128, 128], [21314] ]
,基本上形状 2
我认为这是不可能的,如果您需要将其保存为 tensor 对象。当然,您可以在这种情况下使用列表或元组,但我想那不是您的意思。
首先,张量只是 n 维而非二维矩阵的推广。但是现在让我们将其简化为一个矩阵,例如 4x3。第一个维度的大小为 4,即 4 个条目。第二个维度为 3 意味着第一个维度的 4 个条目中的每一个都将恰好(且不少于)3 个条目。也就是说,每个嵌套列表中必须包含 3 个元素的完整列表。在这个简单的例子中,请注意你不能有这样的矩阵:
[[1,2,3]
[1,2]
[1] ]
虽然这是一个嵌套列表,但它不是矩阵,也不是二维张量。我想说的是,您要求的形状 - [ [21314, 3, 128, 128], [21314] ] - 实际上不是张量。
但是,您可以将其视为大小为 2 的张量,每个条目中的数据类型为张量(您在提问时可能会提到的内容)。尽管这是不可能的,因为 pytorch 中的张量仅包含以下类型的数字:float32、float64、float16、uint8、int8、int16、int32、int64、bool。
尽管如此,在大多数情况下,您可以通过将两个张量分配给一个列表或元组来实现您的需要。