尝试火炬堆叠张量列表时出错
Getting error when trying to torch stack a list of tensors
我正在尝试让 cuda 工作,但我需要将训练输入更改为张量。当我尝试这样做时,当我试图将一张张量列表堆叠成一个张量时出现错误。
代码
for epoch in:
alst = []
for x, y in loader:
x = torch.stack(x)
#x = torch.Tensor(x)
#x = torch.stack(x).to(device,dtype=float)
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)
但还是不行。
输出中的第一个张量是浮点类型,其值用于输入网络,第二个看起来像标签(long
类型)。
此外,第一个是 tensor
,而第二个和第三个元素是 vectors
(分别具有 6
和 9
个元素)。
您不能堆叠 tensors
个不同的形状,因此无论类型如何,这都不起作用。
通过
解压你的x
matrix, vector1, vector2 = x
要删除 type
警告,请通过
将 vector1
和 vector2
转换为 float
vector1 = vector1.float()
通过 .shape
属性检查它们的形状并采取相应的行动。
虽然您在使用 train_loader
时可能已经有了批量数据。请参阅:DataLoader documentation 了解更多信息并检查您是否正在使用一个。
我正在尝试让 cuda 工作,但我需要将训练输入更改为张量。当我尝试这样做时,当我试图将一张张量列表堆叠成一个张量时出现错误。
代码
for epoch in:
alst = []
for x, y in loader:
x = torch.stack(x)
#x = torch.Tensor(x)
#x = torch.stack(x).to(device,dtype=float)
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)
但还是不行。
输出中的第一个张量是浮点类型,其值用于输入网络,第二个看起来像标签(long
类型)。
此外,第一个是 tensor
,而第二个和第三个元素是 vectors
(分别具有 6
和 9
个元素)。
您不能堆叠 tensors
个不同的形状,因此无论类型如何,这都不起作用。
通过
解压你的x
matrix, vector1, vector2 = x
要删除 type
警告,请通过
vector1
和 vector2
转换为 float
vector1 = vector1.float()
通过 .shape
属性检查它们的形状并采取相应的行动。
虽然您在使用 train_loader
时可能已经有了批量数据。请参阅:DataLoader documentation 了解更多信息并检查您是否正在使用一个。