Pytorch 尝试火炬堆叠张量列表时出错
我试图让cuda工作,但我需要将我的训练输入转换为张量。当我尝试这样做时,当我尝试将张量列表堆叠成一个张量时,我得到了一个错误 代码 x的形状:张量列表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
[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
属性检查它们的形状,并采取相应的行动。
可能是因为您在使用火车装载机时已经有了成批的数据。请参阅:了解更多信息,并检查您是否正在使用