Tensorflow训练模型渐渐变慢,以致迭代一段时间卡死的原因

1、问题原因

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

2、解决方法

更改代码,如下所示:

tf.reset_default_graph()  # 重置默认图
graph = tf.Graph()        # 新建空白图
with graph.as_default() as g:   # 将新建的图作为默认图
    with tf.Session(graph=g):   # Session  在新建的图中运行
        # 需要运行的代码放这里,每次运行都会使用新的图

不断刷新graph,避免内存泄露。

 

参考:

1、https://blog.csdn.net/yinxingtianxia/article/details/78211701

2、https://www.zhihu.com/question/58577743/answer/220425785

你可能感兴趣的:(tensorflow)