ValueError:使用张量列表中的torch.Tensor时,只能将一个元素张量转换为Python标量

ValueError:使用张量列表中的torch.Tensor时,只能将一个元素张量转换为Python标量,python,pytorch,Python,Pytorch,我有一个张量列表: object_ids = [tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.])] 从直觉上看,我似乎应该能够从中创建一个新的张量: torch.as_tensor(obje

我有一个张量列表:

object_ids = [tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.])]
从直觉上看,我似乎应该能够从中创建一个新的张量:

torch.as_tensor(object_ids, dtype=torch.float32)
但这是行不通的。显然,torch.as_张量和torch.tensor只能将标量列表变成新的张量。它无法将d维张量列表转换为d+1维张量。

您可以使用

在您的示例中:

>>> object_ids = [tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.]), tensor([2., 3.])]
>>> torch.stack(object_ids)
tensor([[2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.],
        [2., 3.]])

这回答了你的问题吗?