Diciamo che sono seguente codice:Come aggiungere se la condizione in un grafico 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)
Sarebbe il lavoro if
dichiarazione nel calcolo (io non la penso così)? In caso contrario, come è possibile aggiungere un'istruzione if
nel grafico di calcolo TensorFlow?
Grazie mille per la spiegazione in dettaglio! –
@mrry Entrambi i rami sono eseguiti di default? Ho tf.cond (c, lambda x: train_op1, lambda x: train_op2) ed entrambi train_ops sono eseguiti ad ogni esecuzione di cond indipendentemente dal valore di c. Sto facendo qualcosa di sbagliato? –
@PiotrDabkowski Questo è un comportamento a volte sorprendente di 'tf.cond()', che viene toccato [nei documenti] (https://www.tensorflow.org/api_docs/python/tf/cond). In breve, è necessario creare gli ops che si desidera eseguire condizionatamente * all'interno * dei rispettivi lambda. Tutto ciò che crei al di fuori dei lambda, ma si riferisce a entrambi i rami, verrà eseguito in entrambi i casi. – mrry