相关疑难解决方法(0)

Tensorflow在每个会话打开和关闭时泄漏1280个字节?

我打开和关闭的每个Tensorflow会话似乎从GPU内存消耗1280个字节,直到python内核终止才会释放.

要重现,请将以下python脚本保存为memory_test.py:

import tensorflow as tf
import sys
n_Iterations=int(sys.argv[1])
def open_and_close_session():
   with tf.Session() as sess:
      pass
for _ in range(n_Iterations):
   open_and_close_session()
with tf.Session() as sess:
   print("bytes used=",sess.run(tf.contrib.memory_stats.BytesInUse()))
Run Code Online (Sandbox Code Playgroud)

然后从命令行运行它,迭代次数不同:

  • python memory_test.py 0 产量 bytes used= 1280
  • python memory_test.py 1收益率bytes used= 2560.
  • python memory_test.py 10收益率bytes used= 14080.
  • python memory_test.py 100收益率bytes used= 129280.
  • python memory_test.py 1000收益率bytes used= 1281280.

数学很简单 - 每个会话打开和关闭泄漏1280个字节.我在两个不同的ubuntu 17.10工作站上使用tensorflow-gpu 1.6和1.7以及不同的NVIDIA GPU测试了这个脚本.

我是否错过了一些明确的垃圾收集,还是Tensorflow错误?

编辑:请注意,与此问题中描述的情况不同,除了tf.Session()对象本身为'count'之外,我不会在循环中向默认全局图添加任何内容.如果是这种情况,怎么能删除它们? …

python memory-leaks memory-management tensorflow

7
推荐指数
1
解决办法
503
查看次数