Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.switch_case

TensorFlow 1 wersja Zobacz źródło na GitHub

Tworzenie switch / case operacji, co oznacza warunkowego całkowitej indeksowane.

Zobacz także tf.case .

Ten op może być znacznie bardziej wydajne niż tf.case kiedy zostanie wybrany dokładnie jeden oddział. tf.switch_case jest bardziej jak C ++ / przełącznika instrukcji case niż tf.case , który jest bardziej jak if / elif / elif / innego łańcucha.

branch_fns parametr jest albo DICT z int do callables lub lista ( int , płatnych na żądanie) parami, lub po prostu lista callables (w tym przypadku indeks jest domyślnie klawisz). branch_index Tensor jest używany, aby wybrać element branch_fns z pasującymi int key, sięgnięcie do default , jeśli żaden mecz, lub max(keys) , jeśli nie default jest świadczona. Przyciski mogą tworzyć ciągłą zestawu od 0 do len(branch_fns) - 1 .

tf.switch_case obsługuje zagnieżdżone struktury wprowadzone w tf.nest . Wszystkie callables musi zwrócić taką samą (ewentualnie zagnieżdżone) strukturę wartości z listy, krotki, i / lub nazwie krotki.

Przykład:

Pseudo kod:

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

lub

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

wyrażenia:

 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 Tensor określające, które z branch_fns powinny być wykonywane.
branch_fns dict mapowania int s do callables, lub list z ( int , płatnych na żądanie) pary, lub po prostu listę callables (w tym przypadku służy jako wskaźnik klucza). Każdy musi zwrócić wpłacone strukturę pasujących tensorów.
default Opcjonalnie wymagalne, która zwraca strukturę tensorów.
name Nazwa tej operacji (opcjonalnie).

W tensory zwracane przez wywoływalnym zidentyfikowane przez branch_index lub zwracanych przez default jeśli nie najważniejsze mecze i default zostały dostarczone, lub tych, zwrócony przez Max-wpust branch_fn jeśli nie default jest świadczona.

TypeError Jeśli branch_fns nie jest lista / słownik.
TypeError Jeśli branch_fns jest lista, ale nie zawiera 2-krotki lub callables.
TypeError Jeśli fns[i] nie jest wymagalne dla każdego i, lub default nie jest wymagalne.