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

Tensorflow之调试(Debug) && tf.py_func()

TensorFlow placeholder

论文学习:Deep residual learning for image recognition