Tensorflow GPU训练模型时假卡死

笔者在进行Tensorflow训练ssd网络进行目标检测训练时,发现会假卡死。故记录下,供大家参考。

系统:
硬件 i5-8500 ddr4 2666 8G内存 gtx1070(8G显存)。
软件 win10 64bit CUDA 10.0(不要用10.1) cudnn 7.x Tensorflow 1.15.0
不卖馆子,内存是关键
当然,在这种多架构需要一起搭配运行的系统。确实还可能存在其他不确定因素,笔者只是总结自己的经验,大家少走弯路。
Tensorflow GPU训练模型时假卡死
上图就是笔者用上述软件版本跑的结果,有标出一次step大约0.3秒。还有一次卡住用了110秒。但是这种卡死会随着系统负载缓解后,继续恢复。
Tensorflow GPU训练模型时假卡死
一般情况,都是CPU负载一般,GPU计算负载一般(估计任务还不够重),但是GPU显存几乎占满。
因为当时开着Pycharm干活,出现了内存满,提示关闭Pycharm。
笔者估计需要用系统内存来坐交换,这时就会卡住。(任务管理器里看不出来)

建议内存至少16G起配。若只有8G,可以换下
CUDA 9 cudnn 7.x Tensorflow <1.13.0(笔者用着1.11.0的版本试过可行。过高版本会报调用CUDA10.0的库,找不到。)
这种搭配,CPU占用比较高,GPU占用一般,显存负载也是满。(任务管理器里看)
测试同样的训练任务。一次step用时大约1.2秒。

为了能提高效率,现在就用CUDA10.0 Tensorflow1.15.0 升级内存到16G
还是会出现假死,但是会明显缓解。
Ubuntu上没试过,如果大家有经验,欢迎留言。