Tensorflow:eval与run的不同

刚开始接触Tensorflow,好多东西不会。慢慢总结备忘。

学习自带的mnist示例,对于evla()与run()的区别不是很理解,网上搜了一下,记录下来。

train_accuracy = accuracy.eval(feed_dict = {x:batch[0],y_:batch[1],keep_prob :1.0})
    print("step %d,trianing accuracy %g"%(i,train_accuracy))
sess.run([train],feed_dict = {x:batch[0],y_:batch[1],keep_prob:0.5})
原文链接:

https://stackoverflow.com/questions/38987466/eval-and-run-in-tensorflow

答案1

If you have only one default session, they are basically the same.

From https://www.tensorflow.org/versions/r0.10/api_docs/python/framework.html#Operation:

op.run() is a shortcut for calling tf.get_default_session().run(op)

From https://www.tensorflow.org/versions/r0.10/api_docs/python/framework.html#Tensor:

t.eval() is a shortcut for calling tf.get_default_session().run(t)

Why these differences between Tensor and Operation? From https://www.tensorflow.org/versions/r0.10/api_docs/python/framework.html#Tensor:

Note: the Tensor class will be replaced by Output in the future. Currently these two are aliases for each other.

答案2

The difference is in Operations vs. Tensors. Operations use run() and Tensors use eval().

There seems to be a reference to this question in TensorFlow FAQ: https://www.tensorflow.org/programmers_guide/faq#running_a_tensorflow_computation

The section addresses the following question: What is the difference between Session.run() and Tensor.eval()?


你可能感兴趣的:(深度学习)