Powiedzmy mam następujący kod:Jak dodać, jeśli warunek na wykresie 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)
Czy praca if
oświadczenie w obliczeniach (nie sądzę tak)? Jeśli nie, jak dodać instrukcję if
do wykresu obliczeniowego TensorFlow?
Dziękuję bardzo za wyjaśnienie w szczegółach! –
@mrry Czy obie gałęzie są domyślnie wykonywane? Mam tf.cond (c, lambda x: train_op1, lambda x: train_op2) i oba train_ops są wykonywane przy każdym wykonaniu warunku niezależnie od wartości c. czy robię coś źle? –
@PiotrDabkowski To jest czasami zaskakujące zachowanie 'tf.cond()', które jest dotykane [w dokumentach] (https://www.tensorflow.org/api_docs/python/tf/cond). W skrócie, musisz utworzyć operacje, które chcesz uruchomić warunkowo * wewnątrz * odpowiednich lambd. Wszystko, co tworzysz poza lambdami, ale odsyłasz do którejkolwiek gałęzi, zostanie wykonane w obu przypadkach. – mrry