请考虑以下包含tensorflow的代码段tf.cond().
import tensorflow as tf
import numpy as np
bb = tf.placeholder(tf.bool)
xx = tf.placeholder(tf.float32, name='xx')
yy = tf.placeholder(tf.float32, name='yy')
zz = tf.cond(bb, lambda: xx + yy, lambda: 100 + yy)
with tf.Session() as sess:
dict1 = {bb:False, yy:np.array([1., 3, 4]), xx:np.array([5., 6, 7])}
print(sess.run(zz, feed_dict=dict1)) # works fine without errors
dict2 = {bb:False, yy:np.array([1., 3, 4])}
print(sess.run(zz, feed_dict=dict2)) # get an InvalidArgumentError asking to
# provide an input for xx
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,bbis False和zz理论上的评估都没有依赖关系 …