如何利用在GPU上训练的模型在CPU上测试
我用OpenNMT 在服务器上训练了一个模型,保存的模型会被部署在另外一个没有GPU的机子上。问题来了,在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训练加载模型,训练与测试在不同机器上遇到的问题总结
更多推荐
所有评论(0)