pytorch出现CUDA error:out of memory错误

问题描述

模型训练过程中报错,提示CUDA error:out of memory。

解决方案

  1. 判断模型是否规模太大或者batchsize太大,可以优化模型或者减小batchsize;
    比如:
    pytorch出现CUDA error:out of memory错误_第1张图片
    已分配的显存接近主GPU的总量,且仍需要分配的显存大于缓存(306M>148.3M)。

  2. cached(缓存)过高的情况下,在报错的代码块之前先添加torch.cuda.empty_cache()释放缓存;
    比如:
    pytorch出现CUDA error:out of memory错误_第2张图片
    cached过高,远大于仍需要分配的显存(1.37G>>204M),可以通过在代码中相应位置添加torch.cuda.empty_cache()解决。

  3. 高版本pytorch可能在处理显存占用时有更多的优化,可以升级为更高版本的pytorch。特别是在相同型号GPU的情况下,可以考虑Python包版本的问题,通过“pip list”或者“conda list”可以参考版本信息。(待斟酌)

    #	安装pytorch1.4(当前最新版):
    conda deactivate	#(退出现有环境)
    conda activate python367	#(进入Python367或者自行指定的环境)
    conda install pytorch torchvision cudatoolkit=10.1	#(安装最新稳定版pytorch)
    #或者
    conda install pytorch=1.4 torchvision cudatoolkit=10.1	#(安装指定版本1.4)
    
    

你可能感兴趣的:(pytorch,pytorch)