Missed TensorFlow Dev Summit? Check out the video playlist. Watch recordings

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.