在使用tensorflow时,需要在不同的函数中,调用同一个session,所以需要session在第一次使用后保持开启。
在网上搜索到的教程中,一般是说:调用tf.Session.close方法,或使用session作为上下文管理器,都可以关闭session。所以我理解的意思是,如果用方法1打开session,那么session就不会自动关闭。但事实并不是这样的,即使使用方法1,session使用结束后,同样会自动关闭。
# 方法1: Using the `close()` method.
sess = tf.Session()
sess.run(...)
sess.close()
# 方法2:Using the context manager.
with tf.Session() as sess:
sess.run(...)
要想session不自动关闭,在其他函数中再次使用,那么就要使用方法3来打开一个session。
# 方法3 sess.as_default()
sess = tf.Session()
with sess.as_default():
assert tf.get_default_session() is sess
print(c.eval())