Pytorch 尝试火炬堆叠张量列表时出错

Pytorch 尝试火炬堆叠张量列表时出错,pytorch,tensor,Pytorch,Tensor,我试图让cuda工作,但我需要将我的训练输入转换为张量。当我尝试这样做时,当我尝试将张量列表堆叠成一个张量时,我得到了一个错误 代码 x的形状:张量列表 [tensor([[[0.325], [ 0.1257], [ 0.1149], ..., [-1.572], [-1.265], [-3.574]], ]), tensor([1,2,3,4,5]), tensor(6,5,4,3,2])] 我犯了一个错误 22

我试图让cuda工作,但我需要将我的训练输入转换为张量。当我尝试这样做时,当我尝试将张量列表堆叠成一个张量时,我得到了一个错误

代码

x的形状:张量列表

[tensor([[[0.325],
     [ 0.1257],
     [ 0.1149],
     ...,
     [-1.572],
     [-1.265],
     [-3.574]],
]), tensor([1,2,3,4,5]), tensor(6,5,4,3,2])]
我犯了一个错误

     22             alst = []
     23             for x, y in loader:
---> 24                 x_list = torch.stack(x)
     25 #                 x = torch.Tensor(x)
     26 #                 x = torch.stack(x).to(device,dtype=float)

RuntimeError: Expected object of scalar type Float but got scalar type Long for sequence element 1 in sequence argument at position #1 'tensors'

不知道我做错了什么。我也尝试了
x=torch.stack(x).to(device,dtype=float)
,但仍然不起作用

输出中的第一个张量是float类型,带有用于输入网络的值,第二个看起来像标签(类型为
long

此外,第一个元素是
张量
,而第二个和第三个元素是
向量
(分别具有
6
9
元素)

不能堆叠不同形状的
张量
,因此无论类型如何,这都不起作用

通过打开
x

matrix, vector1, vector2 = x
vector1 = vector1.float()
要删除
类型
警告,请通过将
vector1
vector2
转换为
float

matrix, vector1, vector2 = x
vector1 = vector1.float()
通过
.shape
属性检查它们的形状,并采取相应的行动。 可能是因为您在使用
火车装载机时已经有了成批的数据。请参阅:了解更多信息,并检查您是否正在使用