本文讲解一下tensorFlow中InteractiveSession与Session的区别。
普通的session(使用tf.Session()创建的session)的用法一般是这样的:
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
with tf.Session():
print(c.eval())
这里使用with
语句创建session,1)可以将session自动设置为默认session,即with
块里面的run
和eval
方法默认在此session下执行,2)不需要手动调用sess.close()
来关闭session。
但是,在交互式环境(如IPython)中,使用with
语句不方便。而如果不使用with
的话,则要使用sess.run
,或者给eval
方法指定session
参数:
sess = tf.Session()
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
# 1:
print(c.eval(session=sess))
# 2:
print(sess.run(c))
sess.close()
总之不是很方便。
InteractiveSession,顾名思义,就是为交互式环境而设计的。它的用法一般是这样的:
sess = tf.InteractiveSession()
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
print(c.eval())
sess.close()
是不是方便了很多?它将session设置为了默认session。
要注意,这里session用完了要手动调用close
关闭。