简单地使用sub.eval()
而不是sess.run(eval)
这样的内容似乎更方便,那么始终使用InteractiveSession()
会更方便吗?如果我们一直使用InteractiveSession()
,是否有任何权衡?
到目前为止唯一的缺点是'我看到的是我不能使用类似的东西:
with tf.InteractiveSession() as sess:
result = product.eval() #Where product is a simple matmul
print result
sess.close()
相反,我只是立即定义sess = tf.InteractiveSession
。
答案 0 :(得分:1)
根据其实现,InteractiveSession
将自己设置为默认会话,随后的eval()
调用可以使用此会话。在使用InteractiveSession
的几乎所有情况下,您都应该可以使用Session
。
一个小区别是您不需要在InteractiveSession
块中使用with
:
sess = tf.InteractiveSession()
# do your work
sess.close()
所以不要忘记在完成工作后关闭会话。
以下是session.run()
和eval()
之间的比较:In TensorFlow, what is the difference between Session.run() and Tensor.eval()?