在我的Trained PyTorch模型的推理代码中,出了什么问题?
存在运行时错误消息:“预期的CPU张量(获得CUDA张量)”
Fill
我该如何解决这个问题?
答案 0 :(得分:1)
错误可能是cuda
中的模型不匹配
和您用作输入的变量x
,这是一个CPU张量。
尝试将.cuda()
添加到您的变量中,以便两者匹配:
x = V(centre_crop(img).unsqueeze(0), volatile=True).cuda()
答案 1 :(得分:0)
错误是因为model
在GPU上,而输入图像x
在CPU上。您必须确保它们都在GPU或CPU上。
此外,model.cuda()
和x.cuda()
的行为略有不同:model.cuda()
会将model
置于GPU上,但x.cuda()
只会在GPU上返回一个新的变量,原始x
保持不变。您必须明确地将返回值分配给x
。
您可以找到详细的讨论here。