关于Tensorflow 训练时,每个batch越来越慢

问题所在:

在运行时的session里定义了tf的op导致的,这样每一次迭代都会在graph里增加新的节点,导致memory leak,程序越来越慢,最后强行退出。至于在运行时程序有没有增加节点,可以在session里定义graph.finalize()锁定graph,如果跑的时候报错就证明程序在动态添加节点导致的越来越慢。

解决问题:

1、不要再session中定义新op,全部都放到graph中

2、new一个新的graph,在新graph中操作op,例如

关于Tensorflow 训练时,每个batch越来越慢_第1张图片


3、多次创建图,在GPU环境下,会输出大量类似这种日志

34 2017-09-22 10:09:00.573307: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K40c, pci bus id: 0000:04:00.0)

解决方法:在代码开头加上   os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'   ,3表示只输出error信息

你可能感兴趣的:(关于Tensorflow 训练时,每个batch越来越慢)