【问题标题】:Tensorflow: 'tf.get_default_session()` after sess=tf.Session() is NoneTensorflow:sess = tf.Session()之后的'tf.get_default_session()'是None
【发布时间】:2017-12-08 20:36:22
【问题描述】:

我试图弄清楚为什么 tf.get_default_session() 总是返回 None 类型:

import tensorflow as tf

tf.reset_default_graph()
init=tf.global_variables_initializer()

sess = tf.Session()
sess.run(init)

default = tf.get_default_session()
default == None # True

我不知道为什么default = tf.get_default_session()None,因为我认为它应该返回上一个会话。 谁能弄清楚我的代码有什么问题?

【问题讨论】:

标签: python machine-learning tensorflow deep-learning


【解决方案1】:

仅创建 tf.Session() 并不会使其成为默认值。这基本上就是tf.Sessiontf.InteractiveSession的区别:

sess = tf.InteractiveSession()
print(tf.get_default_session())    # this is not None!

tf.InteractiveSession 不同,tf.Session 仅在 with 块内成为默认值(它是一个上下文管理器):

sess = tf.Session()
with sess:
  print(tf.get_default_session())  # this is not None!

【讨论】:

  • 感谢您的信息。当with(貌似用__enter__)的时候,Tenserflow是怎么带上Default Session的呢?该工具再次构建 TF Graph 还是从某个内存位置获取它?
猜你喜欢
  • 2018-09-02
  • 1970-01-01
  • 2019-05-21
  • 2019-06-06
  • 2018-01-06
  • 2020-11-19
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多