tf.executing_eagerly

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.run_functions_eagerly(True) is called:

tf.config.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.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.

© 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/r2.4/api_docs/python/tf/executing_eagerly