我忘了关闭一个 tf.InteractiveSession,我该如何杀死任何剩余的进程?
I forgot to close a tf.InteractiveSession, how do I kill any left over processes?
我正在使用新的 Google Colaboratory,并且在我意识到 tf.InteractiveSession.close()
从未被调用之前,我重复使用了 tf.InteractiveSession
的一段代码。我修改了代码并添加了一个sess.close()
。现在每当我 运行 相同的代码块时,我都会收到以下警告:
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py:1645: UserWarning: An interactive session is already active. This can cause out-of-memory errors in some cases. You must explicitly call InteractiveSession.close()
to release resources held by the other session(s).
warnings.warn('An interactive session is already active. This can '
哎呀。我怎样才能释放之前生成的会话所占用的资源?即使在添加 sess.close()
命令后,此警告仍然存在。我假设此时我只是关闭活动会话。我尝试刷新页面,但没有运气。
- 是的,以防你看不出来我对 Jupyter notebooks 的内部工作原理(包括内存管理和状态持久化)不是很熟悉。
这个问题非常类似于: 但我需要知道如何真正关闭僵尸进程,这在这个答案中没有涉及。
如前所述here,您可以使用
import gc; gc.collect()
.
此外,您始终可以通过
获取活动会话数
tf.InteractiveSession._active_session_count
我正在使用新的 Google Colaboratory,并且在我意识到 tf.InteractiveSession.close()
从未被调用之前,我重复使用了 tf.InteractiveSession
的一段代码。我修改了代码并添加了一个sess.close()
。现在每当我 运行 相同的代码块时,我都会收到以下警告:
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py:1645: UserWarning: An interactive session is already active. This can cause out-of-memory errors in some cases. You must explicitly call
InteractiveSession.close()
to release resources held by the other session(s). warnings.warn('An interactive session is already active. This can '
哎呀。我怎样才能释放之前生成的会话所占用的资源?即使在添加 sess.close()
命令后,此警告仍然存在。我假设此时我只是关闭活动会话。我尝试刷新页面,但没有运气。
- 是的,以防你看不出来我对 Jupyter notebooks 的内部工作原理(包括内存管理和状态持久化)不是很熟悉。
这个问题非常类似于:
如前所述here,您可以使用
import gc; gc.collect()
.
此外,您始终可以通过
获取活动会话数tf.InteractiveSession._active_session_count