tf.compat.v1.executing_eagerly

View source on GitHub

Checks whether the current thread has eager execution enabled.

tf.compat.v1.executing_eagerly()

Eager execution is typically enabled via tf.compat.v1.enable_eager_execution, but may also be enabled within the context of a Python function via tf.contrib.eager.py_func.

When eager execution is enabled, returns True in most cases. However, this API might return False in the following use cases.

>>> tf.compat.v1.enable_eager_execution()

General case:

>>> print(tf.executing_eagerly())
True

Inside tf.function:

>>> @tf.function
... def fn():
...   with tf.init_scope():
...     print(tf.executing_eagerly())
...   print(tf.executing_eagerly())
>>> fn()
True
False

Inside tf.function after tf.config.experimental_run_functions_eagerly(True) is called:

>>> tf.config.experimental_run_functions_eagerly(True)
>>> @tf.function
... def fn():
...   with tf.init_scope():
...     print(tf.executing_eagerly())
...   print(tf.executing_eagerly())
>>> fn()
True
True
>>> tf.config.experimental_run_functions_eagerly(False)

Inside a transformation function for tf.dataset:

>>> def data_fn(x):
...   print(tf.executing_eagerly())
...   return x
>>> dataset = tf.data.Dataset.range(100)
>>> dataset = dataset.map(data_fn)
False

Returns:

True if the current thread has eager execution enabled.