keras 训练模型提示“CUDA_ERROR_OUT_OF_MEMORY”

一般在使用shh连接服务器的时候,用GPU训练模型,由于操作习惯问题。终直接在终端用ctrl+z终止训练,此时GPU资源可能未立即释放,
下次继续使用时有可能会报例如CUDA_ERROR_OUT_OF_MEMORY这种错误,就是提示显存不够。这时候需要人工来杀死占用GPU显存的进程。

这几天碰巧加载有一个较大的模型时,提示显存不足,特此解决:

这里就需要通过fuser 找到nivdia对应的程序进程,然后杀掉(fuser 显示使用指定文件或者文件系统的进程的PID。)。
第一步安装如下软件:

  1. 在centos系统下,输入以下指令安装

     yum install psmisc
    
  2. 然后,查看占用GPU资源的进程及ID

    fuser -v /dev/nvidia*
    
  3. 找到仍然在占用GPU的进程PID

     kill -9 pid  # 表示强迫进程立即停止
     kill pid # 也可以终止进程
    
  4. 大功告成。

其实也有可能是你需要花钱买一个更棒的显存,或者批量训练

你可能感兴趣的:(TensorFlow,AI)