Session.run() & Tensor.eval()
Posted Qniguoym
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Session.run() & Tensor.eval()相关的知识,希望对你有一定的参考价值。
如果有一个Tensor t,在使用t.eval()时,等价于:
tf.get_defaut_session().run(t)
t = tf.constant(42.0) sess = tf.Session() with sess.as_default(): # or `with sess:` to close on exit assert sess is tf.get_default_session() assert t.eval() == sess.run(t)
这其中最主要的区别是你可以使用sess.run()在同一步获取多个tensor中的值,
例如:
t = tf.constant(42.0) u = tf.constant(37.0) tu = tf.mul(t, u) ut = tf.mul(u, t) with sess.as_default(): tu.eval() # runs one step ut.eval() # runs one step sess.run([tu, ut]) # evaluates both tensors in a single step
注意到:每次使用 eval
和 run
时,都会执行整个计算图,为了获取计算的结果,将它分配给tf.Variable,然后获取。
以上是关于Session.run() & Tensor.eval()的主要内容,如果未能解决你的问题,请参考以下文章
第一次 tf.session.run() 的执行与后来的运行截然不同。为啥?
TensorFlow 学习—— tf Graph tf Session 与 tf Session run
Difference Between Session.run and Tensor.eval