View source on GitHub |
Checks whether the current thread has eager execution enabled.
tf.executing_eagerly()
Eager execution is enabled by default and this API returns True
in most of cases. However, this API might return False
in the following use
cases.
tf.function
, unless under tf.init_scope
or
tf.config.experimental_run_functions_eagerly(True)
is previously called.tf.dataset
.tf.compat.v1.disable_eager_execution()
is called.>>> 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
True
if the current thread has eager execution enabled.