如何利用在GPU上训练的模型在CPU上测试

问题背景

我用OpenNMT 在服务器上训练了一个模型,保存的模型会被部署在另外一个没有GPU的机子上。问题来了,在GPU上训练的模型在CPU下是不能跑的。

解决办法

定义CPU计算

device = torch.device('cpu')

我的代码本来报错的地方是OpenNMT 下的 model_builder.py里面的261行处:

model.to(device)

这会把内容传到了GPU中,而机子又没有GPU,所以就报错了。
我就在这个代码之间,加了定义CPU的代码,改变device,让内容传到CPU中。
在这里插入图片描述
最后运行成功!

这篇文章在定义了CPU后还有其他的操作,但是我也没有用上,大家有需要自行尝试。

参考文献:
如何利用GPU训练模型并在CPU使用已经训练好的模型(PyTorch)
pytorch】gpu训练的模型无法在cpu下使用问题解决
pytorch在gpu训练加载模型,训练与测试在不同机器上遇到的问题总结

你可能感兴趣的:(深度学习,pytorch,python)