【问题标题】:I forgot to close a tf.InteractiveSession, how do I kill any left over processes?我忘记关闭 tf.InteractiveSession,如何杀死任何剩余的进程?
【发布时间】:2018-08-24 03:27:46
【问题描述】:

我正在使用新的Google Colaboratory,并且在我意识到从未调用过tf.InteractiveSession.close() 之前,我反复运行了一段使用tf.InteractiveSession 的代码块。我修改了代码并添加了sess.close()。现在,每当我运行相同的代码块时,都会收到以下警告:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py:1645:用户警告:交互式会话已经处于活动状态。在某些情况下,这可能会导致内存不足错误。您必须显式调用InteractiveSession.close() 以释放其他会话持有的资源。 warnings.warn('一个交互式会话已经处于活动状态。这可以'

哎呀。如何释放由我生成的先前会话持有的资源?即使添加了sess.close() 命令,此警告仍然存在。我假设我此时仅关闭活动会话。我尝试刷新页面,但没有运气。

  • 是的,如果您看不出我对 Jupyter 笔记本的内部工作原理(包括内存管理和状态持久性)不太熟悉。

此问题与:Is it necessary to close session after tensorflow InteractiveSession()? 非常相似,但我需要知道如何实际关闭僵尸进程,此答案未涵盖。

【问题讨论】:

    标签: python tensorflow jupyter-notebook google-colaboratory


    【解决方案1】:

    here所说,可以使用

    import gc; gc.collect().

    您还可以随时获取活动会话的数量

    tf.InteractiveSession._active_session_count

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 2015-01-20
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 2013-05-03
      • 1970-01-01
      相关资源
      最近更新 更多