我在尝试弄明白为什么 tf.get_default_session()
总是返回 None
类型:
import tensorflow as tftf.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
,因为我以为它应该返回之前的会话。谁能找出我的代码有什么问题?
回答:
仅仅创建一个 tf.Session()
并不会使其成为默认会话。这基本上是 tf.Session
和 tf.InteractiveSession
之间的区别:
sess = tf.InteractiveSession()print(tf.get_default_session()) # 这不是 None!
与 tf.InteractiveSession
不同的是,tf.Session
只有在 with
块内(它是一个上下文管理器)才会成为默认会话:
sess = tf.Session()with sess: print(tf.get_default_session()) # 这不是 None!