Tensorflow:在sess = tf.Session()之后'tf.get_default_session()`是无

时间:2017-12-08 20:36:23

标签: python machine-learning tensorflow deep-learning

我试图找出为什么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,因为我认为它应该返回上一个会话。 任何人都可以弄清楚我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:8)

仅创建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!