概述
本文参考链接地址:
1.https://blog.csdn.net/bc521bc/article/details/85623515
2.https://www.ptorch.com/news/74.html
刚开始用python 小小小菜鸟一枚,啥也不会,在GitHub上下载了代码,运行后错误百出,陷入了深深的绝望之中。无奈只好一点点的差,一点点的改。
这篇文章简单记一下:如何将用GPU训练好的网络模型用到CPU中
源代码如下:
feature_encoder.load_state_dict(torch.load(str("./models/miniimagenet_feature_encoder_" + str(CLASS_NUM) +"way_" + str(SAMPLE_NUM_PER_CLASS) +"shot.pkl")))
在没有GPU的电脑上运行,报错如下:
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location='cpu' to map your storages to the CPU.
我做的更改如下:
feature_encoder.load_state_dict(torch.load(str("./models/miniimagenet_feature_encoder_" + str(CLASS_NUM) +"way_" + str(SAMPLE_NUM_PER_CLASS) +"shot.pkl"),map_location=lambda storage, loc: storage))
改完后,目前还没发现其他错误。
主要是因为我也还没有运行到最后,我还得一点点再看看,希望我改对了[捂脸笑]
最后,记录下cpu和GPU间相互转换的方法:
gpu→ cpu
torch.load('parameters.pth', map_location=lambda storage, loc: storage)
cpu—>gpu 1
torch.load('parameters.pth', map_location=lambda storage, loc: storage.cuda(1))
gpu1—>gpu0
torch.load('parameters.pth', map_location={'cuda:1':'cuda:0'})
最后,同类之间,也就是cpu—>cpu或者gpu—>gpu:
checkpoint = torch.load(‘parameters.pth’)
不对的地方,还请各位大神多多指教哦!!!
最后
以上就是大胆泥猴桃为你收集整理的pytorch如何将用GPU训练好的网络模型用到CPU中的全部内容,希望文章能够帮你解决pytorch如何将用GPU训练好的网络模型用到CPU中所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复