このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.case

TensorFlow 1つのバージョン GitHubの上のソースを表示

ケースの操作を作成します。

参照してくださいtf.switch_case

pred_fn_pairsパラメータは、サイズNのペアのリストで、各ペアはブーリアンスカラーテンソルとTrueにブール評価された場合に返されるテンソルを作成するPython呼び出し可能が含まれています。 defaultテンソルのリストを生成する呼び出し可能です。すべてで呼び出し可能pred_fn_pairsだけでなく、 default (提供された場合)テンソルの同じ数と型を返す必要があります。

場合はexclusive==True 、すべての述語が評価され、例外はに述語評価さの複数の場合にスローされるTrue 。場合はexclusive==False 、実行がTrueに評価され、対応する機能によって生成されたテンソルがすぐに返される最初の述語で停止します。述語のどれもがTrueに評価されていない場合は、この操作は、によって生成されたテンソルを返すdefault

tf.caseサポートに実装され、ネストされた構造tf.contrib.framework.nest 。呼び出し可能オブジェクトのすべてがリスト、タプル、および/または名前のタプルの同じ(おそらくネストした)値の構造を返す必要があります。シングルトンリストやタプルは、この唯一の例外を形成する:呼び出し可能で返されたとき、彼らは、単一の値に暗黙的にアンパックされます。この動作は、渡すことで無効になっているstrict=True

例1:

擬似コード:

 if (x < y) return 17;
else return 23;
 

式:

 f1 = lambda: tf.constant(17)
f2 = lambda: tf.constant(23)
r = tf.case([(tf.less(x, y), f1)], default=f2)
 

例2:

擬似コード:

 if (x < y && x > z) raise OpError("Only one predicate may evaluate to True");
if (x < y) return 17;
else if (x > z) return 23;
else return -1;
 

式:

 def f1(): return tf.constant(17)
def f2(): return tf.constant(23)
def f3(): return tf.constant(-1)
r = tf.case([(tf.less(x, y), f1), (tf.greater(x, z), f2)],
         default=f3, exclusive=True)
 

pred_fn_pairs ブーリアンスカラーテンソルとテンソルのリストを返す呼び出し可能のペアのリスト。
default テンソルのリストを返すオプションの呼び出し可能。
exclusive 多くても1つの述語の真のIFFはに評価するために許可されているTrue
strict 許可/禁止「厳密」モードをブーリアン。上記を参照。
name この操作の名前(オプション)。

テンソルは、その述語Trueに評価され、またはから返された最初のペアで返されるdefault何もしません場合。

TypeError 場合pred_fn_pairsリスト/タプルではありません。
TypeError 場合pred_fn_pairsリストであるが、2つの要素が含まれていません。
TypeError 場合fns[i]すべての私のために呼び出すことはできません、またはdefault呼び出すことはできません。

V2の互換性

pred_fn_pairs V1で辞書である可能性があります。しかし、tf.Tensorとtf.Variable V2でもはやハッシュ可能ではないので、辞書のキーとして使用することはできません。代わりに、リストやタプルを使用してください。