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

tf.switch_case

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

スイッチ/ケース動作を作成する、すなわち整数インデックス付き条件。

参照してくださいtf.case

このオペアンプは、より実質的により効率的にすることができtf.case正確に一つの枝が選択されるとき。 tf.switch_case以上のC ++スイッチ/ case文のようなものですtf.case以上のif / elifの/のelif /他のチェーンのようなものです。

branch_fnsから辞書のいずれかであるパラメータint呼び出し可能に、または(のリストint 、呼び出し可能)ペア、または単に(インデックスが暗黙の鍵である場合)呼び出し可能オブジェクトのリスト。 branch_index Tensorの要素を選択するために使用されるbranch_fns一致するとintに戻って立ち下がり、キーをdefaultなし一致する場合、またはmax(keys)ない場合default提供されません。キーからの連続セットを形成しなければならない0ためにlen(branch_fns) - 1

tf.switch_caseサポートに実装され、ネストされた構造tf.nest 。すべての呼び出し可能オブジェクトは、リスト、タプル、および/または名前のタプルの同じ(おそらくネストした)値の構造を返す必要があります。

例:

擬似コード:

 switch (branch_index) {  // c-style switch
  case 0: return 17;
  case 1: return 31;
  default: return -1;
}
 

若しくは

 branches = {0: lambda: 17, 1: lambda: 31}
branches.get(branch_index, lambda: -1)()
 

式:

 def f1(): return tf.constant(17)
def f2(): return tf.constant(31)
def f3(): return tf.constant(-1)
r = tf.switch_case(branch_index, branch_fns={0: f1, 1: f2}, default=f3)
# Equivalent: tf.switch_case(branch_index, branch_fns={0: f1, 1: f2, 2: f3})
 

branch_index int型テンソル指定branch_fns実行する必要があります。
branch_fns dictマッピングint呼び出し可能、または秒list (のint単に、呼び出し可能)ペア、または呼び出し可能オブジェクトのリスト(この場合には、インデックスキーとして機能します)。各呼び出し可能ではテンソルのマッチング構造を返す必要があります。
default テンソルの構造体を返すオプションの呼び出し可能。
name この操作の名前(オプション)。

テンソルはで識別される呼び出し可能で返さbranch_index 、またはから返されたdefaultどのキーが一致している場合default設けられていない、またはそれらは、MAX-キー付きで返されたbranch_fn何の場合はdefault提供されていません。

TypeError 場合branch_fnsリスト/辞書ではありません。
TypeError 場合branch_fnsリストであるが、2タプルまたは呼び出し可能オブジェクトが含まれていません。
TypeError 場合fns[i]すべての私のために呼び出すことはできません、またはdefault呼び出すことはできません。