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

时间:2020-03-25 10:10:28

标签: pytorch tensor

我正在尝试使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),但还是没用。

1 个答案:

答案 0 :(得分:1)

输出中的第一个张量为浮点型,其值用于输入网络,第二个张量类似于标签(类型为selectAllow: function(selectInfo) { var ms = moment().startOf("month"); return ms.isSameOrBefore(selectInfo.start); } )。

此外,第一个是long,而第二个和第三个元素是tensor(分别带有vectors6元素)。

您不能堆叠9的不同形状,因此无论类型如何都无法使用。

通过

打开tensors的包装
x

要删除matrix, vector1, vector2 = x 警告,请通过

typevector1投射到vector2
float

通过vector1 = vector1.float() 属性检查其形状并采取相应措施。 也许您在使用.shape时已经有一批数据。有关更多信息,请参见:DataLoader documentation,并检查您是否正在使用一个。

相关问题