我有一个关于Tensorflow中InteractiveSession
的问题
我知道tf.InteractiveSession()
只是方便的语法
sugar用于保持默认会话打开,其基本工作原理如下:
with tf.Session() as sess:
# Do something
然而,我在网上看到了一些例子,它们在使用InteractiveSession
之后没有在代码末尾调用close()
。
问题:
一。如果不关闭会话之类的会话泄漏,是否会导致任何问题?
2。如果我们不关闭GC,它如何为交互会话工作?
Tags:
是的,
tf.InteractiveSession
只是保持默认会话打开的方便语法糖。会话实现有a comment
快速测试
给予
这会在未关闭会话时引发会话泄漏。
注意,即使在关闭会话时,TensorFlow中当前也存在一个错误,该错误在每个会话中保留1280字节请参见Tensorflow leaks 1280 bytes with each session opened and closed?。(现在已修复)。此外,试图启动GC的^{} 中有一些逻辑。
有趣的是,我从来没有看到过警告
好像是implemented。它猜测交互会话唯一存在的理由是它在Jupyter notebook文件或非活动shell中与
.eval()
结合使用。但我建议不要使用eval(参见Official ZeroOut gradient example error: AttributeError: 'list' object has no attribute 'eval')我对此并不感到惊讶。猜猜在一些malloc之后没有
free
或delete
的代码片段有多少。祝福操作系统释放内存。相关问题 更多 >
编程相关推荐