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

ytu*_*tow 8 python machine-learning deep-learning tensorflow

我试图弄清楚为什么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
Run Code Online (Sandbox Code Playgroud)

我不知道为什么default = tf.get_default_session(),None因为我认为它应该返回上一个会话.任何人都可以弄清楚我的代码有什么问题吗?

Max*_*xim 13

只是创建一个tf.Session()不会使它成为默认值.这基本上是tf.Session和之间的区别tf.InteractiveSession:

sess = tf.InteractiveSession()
print(tf.get_default_session())    # this is not None!
Run Code Online (Sandbox Code Playgroud)

与之不同的是tf.InteractiveSession,a tf.Session仅在内部with块中成为默认值(它是上下文管理器):

sess = tf.Session()
with sess:
  print(tf.get_default_session())  # this is not None!
Run Code Online (Sandbox Code Playgroud)