Pytorch Error:RuntimeError:CUDA error: out of memory [in torch.load]

Error:

当加载模型时:

model.load_state_dict(torch.load('xxx.pth'))
Error:RuntimeError:CUDA error: out of memory

解决方法

原因1-CUDA显存不足

解决办法:换成显存更大的显卡

原因2-显卡被占用

当存在多个显卡时,pytorch默认使用0号显卡,当0号显卡被占用时,即使1号显卡空闲仍然会报错
解决办法:让其他显卡不可见,此时0号显卡为空余的1号显卡

import os
os.environ['CUDA_VISIBLE_DEVICE']='1'

原因3-模型保存GPU不同(系统默认map到0卡)

使用cuda:0训练保存的模型,如果直接使用cuda:1去load,也会报错
解决办法:model.load_state_dict(torch.load(‘trained.pth’, map_location={‘cuda:0’: ‘cuda:1’}))
或者
用同一块显卡去Load

除此之外,test时加上:

with torch.no_grad():
  # test process

原因3的根本问题应该在于torch.load,不应该是保存的GPU不同所带来的,十分感谢评论区的指点,链接里面有比较详细的介绍,可以参考

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值