Segmentation fault (core dumped)(核心转载)与清理显存等问题解决

问题:

跑训练时,其他的能够准确训练,可是跑其他代码的时候就会出现core dumped,导致不能正确训练。

问题原因

core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.

一般这种问题,由如下几个原因:

堆栈溢出

内存访问越界,如由于使用错误的下标,导致数组访问越界

显存占有问题。

解决办法

我自己出现的问题是因为显存占有问题,故采取如下方式解决。

1、将训练脚本进行更改,把其中GPU内存占用比例改小点,即训练中gpu_memory_fraction这个参数。

2、或者将batchsize改小点。

3、在跑深度学习的时候,有时候可能由于关闭程序的不规范,导致显存一直被占用,故要清理显存。

查看占用显存的任务,在终端输入:

watch -n 1 nvidia-smi

出现下图。 

 Segmentation fault (core dumped)(核心转载)与清理显存等问题解决

 可以看出,PID为3848任务占用了显存。故需要清理这个显存。

输入命令,其中PID为编号数字,需要清理哪个任务,就将PID改为那个任务的数字。

sudo kill -9 PID

完结。。。。。