首页 文章

TensorFlow图节点的评估顺序

提问于
浏览
1

如果TensorFlow图的节点A,B和C依赖于节点D,则 sess.run([A,B,C,D]) ,仅评估D一次并使用它来计算A,B和C?

1 回答

  • 1

    对,就是这样 . 请注意,否则操作顺序未指定,因此将首先计算D,但如果A,B和C不相互依赖,则其计算顺序未确定 .

    但是单独 sess.run() 调用 will 重新计算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 具有相同的小数,但两行不同 .

相关问题