テンソルフローでtf.while_loopを終了するために複数の条件を定義することは可能ですか?例えば、2つの特定の値を達成する2つのテンソル値に依存する。例えば。 i==2
およびj==3
?tf.while_loopで複数の条件を定義することは可能ですか
また、本文にいくつかのコードブロックを含めることはできますか?ドキュメントのすべての例では、本体は値またはタプルを返す単一のステートメントに似ているようです。私はいくつかの "逐次"のステートメントを本文に実行したいと思います。
テンソルフローでtf.while_loopを終了するために複数の条件を定義することは可能ですか?例えば、2つの特定の値を達成する2つのテンソル値に依存する。例えば。 i==2
およびj==3
?tf.while_loopで複数の条件を定義することは可能ですか
また、本文にいくつかのコードブロックを含めることはできますか?ドキュメントのすべての例では、本体は値またはタプルを返す単一のステートメントに似ているようです。私はいくつかの "逐次"のステートメントを本文に実行したいと思います。
tf.while_loop
はブールテンソルを返さなければならない汎用コール可能(def
で定義されたPython関数)またはlambdaを受け入れます。
あなたは、それゆえ、tf.logical_and
、tf.logical_or
、などのlogical operatorsを使用した状態の本体内のチェーン複数の条件...
body
は、このようにあなたがラムダに制限されていない一般のpython呼び出し可能であることができます単一のステートメント機能が含まれます。そのような
何かが完全に許容可能であるとうまく機能:詳細な説明のための
import tensorflow as tf
import numpy as np
def body(x):
a = tf.random_uniform(shape=[2, 2], dtype=tf.int32, maxval=100)
b = tf.constant(np.array([[1, 2], [3, 4]]), dtype=tf.int32)
c = a + b
return tf.nn.relu(x + c)
def condition(x):
x = tf.Print(x, [x])
return tf.logical_or(tf.less(tf.reduce_sum(x), 1000), tf.equal(x[0, 0], 15))
x = tf.Variable(tf.constant(0, shape=[2, 2]))
result = tf.while_loop(condition, body, [x])
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(result))
感謝 –