在哪些情况下应该考虑tf.Session()
和tf.InteractiveSession()
考虑用于什么目的?
当我尝试使用前者时,某些功能(例如.eval()
)不起作用,当我改为后者时,它起作用了.
主要取自官方文件:
与常规会话的唯一区别是InteractiveSession将自身安装为构造时的默认会话.方法Tensor.eval()和Operation.run()将使用该会话来运行ops.
这允许使用交互式上下文,如shell,因为它避免了必须传递显式Session对象来运行op:
sess = tf.InteractiveSession() a = tf.constant(5.0) b = tf.constant(6.0) c = a * b # We can just use 'c.eval()' without passing 'sess' print(c.eval()) sess.close()
也可以说,它InteractiveSession
支持较少的输入,因为允许运行变量而无需经常引用会话对象.
Session
和之间的唯一区别InteractiveSession
是,它InteractiveSession
使自己成为默认会话,以便您可以调用run()
或eval()
不显式调用会话.
如果您在python shell或Jupyter笔记本中试验TF,这可能会有所帮助,因为它避免了必须传递显式Session对象来运行操作.