我会通过使用PyTorch的汰换版本不会改变课程torch.int64,以torch.LongTensor根据需要。抛出错误的当前代码部分是:
loss = loss_fn(Ypred, Ytrain_) # calc loss on the prediction
我相信 dtype 应该在本节中更改:
Ytrain_ = torch.from_numpy(y_train.values).view(1, -1)[0].
使用Ytrain_.dtype它测试数据类型时,返回torch.int64. 我试图通过应用long()函数来转换它:Ytrain_ = Ytrain_.long()无济于事。
我也试过在文档中寻找它,但它似乎说torch.int64ORtorch.long我认为这意味着torch.int64应该工作。
RuntimeError Traceback (most recent call last)
----> 9 loss = loss_fn(Ypred, Ytrain_) # calc loss on the prediction
RuntimeError: Expected object of scalar type Long but got scalar type Int for argument #2 'target'
Run Code Online (Sandbox Code Playgroud)
如user8426627您所说,您要更改张量类型,而不是数据类型。因此,解决方案是添加.type(torch.LongTensor)以将其转换为LongTensor.
最终代码:
Ytrain_ = torch.from_numpy(Y_train.values).view(1, -1)[0].type(torch.LongTensor)
测试张量类型:
Ytrain_.type()
'torch.LongTensor'