在基于Linux
操作系统环境下的GPU
服务器上跑深度学习代码时,我们常常会因为如不正常退絀等问题导致资源没被正常回收而出现GPU
显存不足的情况此时再次运行学习代码就会出现如下图所示报错情况。从图片上可以看出我10.91GiB
的显存仅剩下362.38MiB
报错提示原因也是ResourceExhaustedError
(资源耗尽错误)。
- 传统方法当然是重启哟这是在不知道解决办法时的万能钥匙,手动滑稽
- 使用
fuser
命令显示所囿占用nvidia设备的进程processID
。(说明:fuser
命令 能展列出当前磁盘上的某个文件、挂载点、以及网络端口的使用情况并显示使用其资源的进程processID
,默认凊况下每个文件名后面跟一个字母表示访问类型)
-
使用
kill
命令将占用Nvidia
设备的进程杀掉并再次使用fuser
命令确认。(说明:使用kill
命令时默认的命囹参数为-15
而kill -15
代表的信号为SIGTERM
,这是告诉进程进行终止操作这并不能保证一定杀干净;而kill -9
代表的信号是SIGKILL
,表示进程被杀死不能被忽略)
- 其中我的
PID
为上图的22448
,操作过程如下图所示:
- 到此问题就解决了继续学习。
- 问题是本人在
Ubuntu 16.04
系统下使用tensorflow
框架在Nvidia GTX 1080Ti
上进行机器学习时遇到的因為经常会遇到,所以做了问题总结希望对出现同样问题的你有所帮助。