如果TensorFlow图的节点A,B和C依赖于节点D,则 sess.run([A,B,C,D]) ,仅评估D一次并使用它来计算A,B和C?
sess.run([A,B,C,D])
对,就是这样 . 请注意,否则操作顺序未指定,因此将首先计算D,但如果A,B和C不相互依赖,则其计算顺序未确定 .
但是单独 sess.run() 调用 will 重新计算d . 考虑以下代码:
sess.run()
import tensorflow as tf d = tf.random_uniform( shape = () ) a = d + 10.0 b = d + 20.0 c = d + 30.0 with tf.Session() as sess: print( sess.run( [ a, b, c, d ] ) ) print( sess.run( [ a, b, c, d ] ) )
输出:
[10.559408,20.559408,30.559408,0.55940783] [10.313643,20.313644,30.313644,0.3136438]
如您所见,每行与随机生成器 d 具有相同的小数,但两行不同 .
1 回答
对,就是这样 . 请注意,否则操作顺序未指定,因此将首先计算D,但如果A,B和C不相互依赖,则其计算顺序未确定 .
但是单独
sess.run()
调用 will 重新计算d . 考虑以下代码:输出:
如您所见,每行与随机生成器 d 具有相同的小数,但两行不同 .