如果TensorFlow图的节点A,B和C依赖于节点D,那么将sess.run([A,B,C,D])
,仅评估D一次并用它来计算A,B和C?
答案 0 :(得分:1)
是的,确切地说。请注意,否则操作顺序未指定,因此将首先计算D,但如果A,B和C不相互依赖,则其计算顺序未确定。
但是单独的sess.run()
电话 将 重新计算d。请考虑以下代码:
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 具有相同的小数,但两行不同。