コードを見てみましょう。私たちが知っているようにtf.Printでtf.condを使う方法を理解するには?
import tensorflow as tf
x = tf.constant(1.0)
y = tf.constant(2.0)
z = tf.constant(3.0)
def f1():
return tf.Print(x, [x])
def f2():
return tf.Print(z, [z])
op = tf.cond(x>y, f1, f2)
with tf.Session() as sess:
sess.run(op)
私は非常に困惑してる、tf.Printの出力は3.0
で、tf.Print(Z、[Z])が出力されます値z
の場合はz
と評価されますが、私は評価していないと思います。z
もう一つの問題は、それがグラフ化するtf.Print
を追加しない方法、たとえば、私はそれがそうでなければtf.Print
が実行されることはありません、tf.Print
のリターンでいくつかのテンソルを関連付ける必要があると考え、グラフ化するノードを追加しない方法についてtf.cond
、です。
私はとても困惑しています。
'tf.Print' OPのテンソル出力は、入力だと等しいです:あなたが書くことによって、任意の混乱を避けることができるようにはtensorflow 1.4以来、
tf.cond
は、キー・ワード引数true_fn
とfalse_fn
を受け入れます。したがって、 'tf.Print(x、[y1、y2、...])'は 'x'と評価されますが、' [y1、y2、...] 'の値を出力するという副作用があります。それはあなたの質問に答えるのですか? – myrtlecat