PyTorch使用cpu调用gpu训练的模型
2019-05-23 12:24
2116 查看
最近遇到一个问题,发下gpu训练的模型在cpu下不能跑,很难受。
结果发现原来是自己使用了DataParallel的问题,我保存的是整个模型。
model=DataParalle(model)
torch.save(‘xx.pkl’,model)
然后把模型copy到自己电脑上用cpu跑
model=torch.load(‘xx.pkl’)
#此处报错了。。。。
原因是cpu环境不能直接导入gpu训练的DataParallel模型
所以换个策略,现在gpu把模型转化掉
model = DataParallel(model)
…
real_model = model.module#这个才是你实际的模型,如果直接报错model的话,其实是保存了DataParallel(model)这个,这样会导致cpu环境下加载出错
torch.save(real_model,‘xxx.pkl’) #这样才是正确的保存模型方式,这样在cpu环境的模型才不会出错
其实还有一种方案,下面这种
model = torch.load(‘xxx.pkl’, map_location=lambda storage, loc: storage)
model = model.module#才是你的模型
#上面那种貌似已经过时了,0.4.0的新方式
model = torch.load(‘xxx.pkl’, map_location=‘cpu’)
model = model.module#才是你的模型
相关文章推荐
- tensorflow-gpu 和cpu使用训练ssd模型感想(显卡内存不足解决办法)
- PyTorch中使用预训练的模型初始化网络的一部分参数
- 浅谈将Pytorch模型从CPU转换成GPU
- Torch load model from gpu to cpu, so can convert to pytorch
- PyTorch使用并行GPU处理数据
- PyTorch(7)——模型的训练和测试、保存和加载
- pytorch 多GPU训练
- Attention is all you need pytorch实现 源码解析02 - 模型的训练(1)- 模型的训练代码
- (原)ubuntu16在torch中使用caffe训练好的模型
- tensorflow 在cpu的环境中无法导入gpu训练好的模型(Make sure the device specification refers to a valid device.)
- pytorch 分布式训练GPU模型转CPU
- PyTorch Hub发布!一行代码调用最潮模型,图灵奖得主强推
- tensorflow 使用多块GPU同时训练多个模型
- caffe学习(六):使用python调用训练好的模型来分类(Ubuntu)
- pytorch 加载预训练模型
- Anaconda下使用opencv调用openpose以训练好的模型
- Pytorch 加载训练好的模型 遇到的error
- (原)PyTorch中使用指定的GPU
- PyTorch使用指定的GPU