26
比方說,我有以下代碼:如何在TensorFlow圖中添加條件?
x = tf.placeholder("float32", shape=[None, ins_size**2*3], name = "x_input")
condition = tf.placeholder("int32", shape=[1, 1], name = "condition")
W = tf.Variable(tf.zeros([ins_size**2*3,label_option]), name = "weights")
b = tf.Variable(tf.zeros([label_option]), name = "bias")
if condition > 0:
y = tf.nn.softmax(tf.matmul(x, W) + b)
else:
y = tf.nn.softmax(tf.matmul(x, W) - b)
將在計算if
聲明的工作(我不這麼認爲)?如果不是,我怎樣才能將一個if
語句添加到TensorFlow計算圖中?
謝謝你這麼多的解釋,詳細! –
@mrry兩個分支默認都執行了嗎?我有tf.cond(c,lambda x:train_op1,lambda x:train_op2),並且每次執行cond時都會執行兩次train_ops,而與c的值無關。難道我做錯了什麼? –
@PiotrDabkowski這是'tf.cond()'有時令人驚訝的行爲,在[文檔](https://www.tensorflow.org/api_docs/python/tf/cond)中被觸及。簡而言之,您需要創建您想要在各自的lambda表達式中有條件運行的操作。您在lambdas之外創建但在兩個分支中引用的所有內容都將在兩種情況下執行。 – mrry