TensorFlow 2.0 Beta is available Learn more

tf.contrib.framework.smart_case

View source on GitHub

Like tf.case, except attempts to statically evaluate predicates.

tf.contrib.framework.smart_case(
    pred_fn_pairs,
    default=None,
    exclusive=False,
    name='smart_case'
)

If any predicate in pred_fn_pairs is a bool or has a constant value, the associated callable will be called or omitted depending on its value. Otherwise this functions like tf.case.

Args:

  • pred_fn_pairs: Dict or list of pairs of a boolean scalar tensor and a callable which returns a list of tensors.
  • default: Optional callable that returns a list of tensors.
  • exclusive: True iff at most one predicate is allowed to evaluate to True.
  • name: A name for this operation (optional).

Returns:

The tensors returned by the first pair whose predicate evaluated to True, or those returned by default if none does.

Raises:

  • TypeError: If pred_fn_pairs is not a list/dictionary.
  • TypeError: If pred_fn_pairs is a list but does not contain 2-tuples.
  • TypeError: If fns[i] is not callable for any i, or default is not callable.