gpt4 book ai didi

python - tf.reset_default_graph 内存泄漏

转载 作者:行者123 更新时间:2023-12-01 09:31:24 26 4
gpt4 key购买 nike

我正在尝试在 TensorFlow 中进行一些自动超参数优化的实验,因此我的程序的主循环需要重复创建一个图、运行它、销毁它以释放内存以供下一次迭代。为此,我有:

tf.reset_default_graph()
sess = tf.InteractiveSession()

这似乎在所有方面都有效,除了一种:每次循环时,程序都会泄漏数百兆字节的内存。我没有分配任何其他类型的复杂数据结构,这些数据结构可能会成为内存泄漏的候选者,因此我可能错误地使用了 tf.reset_default_graph

我做错了什么?

节目地址为https://github.com/russellw/tf-examples/blob/master/sko_lstm.py

最佳答案

替换tf.InteractiveSession()with tf.Session():陈述。前者设计为在控制台中使用,因此它会启动,使其成为默认值,并且不会释放资源,除非您调用 sess.close()手动(这很容易忘记,最重要的是你应该考虑异常(exception))。结果,您的代码最终会产生大量并行 session ,每个 session 都持有其资源。 tf.reset_default_graph() session 处于事件状态时不会释放这些资源。

with语句确保上下文管理器将调用 __exit__并且 session 将关闭。

关于python - tf.reset_default_graph 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49942110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com