Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.case

Создать операцию case.

tf.compat.v2.case(
    pred_fn_pairs, default=None, exclusive=False, strict=False, name='case'
)

См. также tf.switch_case.

Параметр pred_fn_pairs — список пар размером N. Каждая пара содержит скалярный булевый тензор и вызываемый python-объект, который создаёт тензоры, которые будут возвращены, если булево выражение примет значение True. 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 True, если разрешается вычисление не более одного предиката до значения True.
strict Булево значение, которое включает/выключает «строгий» режим; см. выше.
name Имя этой операции (необязательно).
Возвращаемое значение
Тензоры, возвращённые первой парой, предикат которой принял значение True, или тензоры, возвращённые default если ни один предикат не принял значение True.
Исключения
TypeError Если pred_fn_pairs не является списком/кортежем.
TypeError Если pred_fn_pairs является списком, но не содержит 2-кортежей.
TypeError Если fns[i] не является вызываемым объектом для любого i, или default не является вызываемым объектом.

Совместимость с V2

pred_fn_pairs в версии v1 мог быть словарем. Однако, tf.Tensor и tf.Variable больше не являются хешируемыми в версии v2, поэтому не могут использоваться в качестве ключей словаря. Пожалуйста, используйте список или кортеж вместо этого.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/compat/v2/case

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API