tf.executing_eagerly

TensorFlow 1 version View source on GitHub

Checks whether the current thread has eager execution enabled.

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.

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

True if the current thread has eager execution enabled.