这个:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
for data in dataloader:
inputs, labels = data
outputs = model(inputs)
给出错误:
RuntimeError:输入类型(torch.FloatTensor)和权重类型(torch.cuda.FloatTensor)应该相同
原文由 Guillermina 发布,翻译遵循 CC BY-SA 4.0 许可协议
你得到这个错误是因为你的模型在 GPU 上,但你的数据在 CPU 上。因此,您需要将输入张量发送到 GPU。
或者像这样,与您的其余代码保持一致:
如果您的输入张量在 GPU 上但您的模型权重不在,则会引发 相同的错误。在这种情况下,您需要将模型权重发送到 GPU。
请参阅
cuda()
及其相反的文档cpu()
。