W3cubDocs

/TensorFlow 2.3

tf.config.experimental_run_functions_eagerly

View source on GitHub

Enables / disables eager execution of tf.functions. (deprecated)

Calling tf.config.experimental_run_functions_eagerly(True) will make all invocations of tf.function run eagerly instead of running as a traced graph function.

This can be useful for debugging or profiling. For example, let's say you implemented a simple iterative sqrt function, and you want to collect the intermediate values and plot the convergence. Appending the values to a list in @tf.function normally wouldn't work since it will just record the Tensors being traced, not the values. Instead, you can do the following.

ys = []

@tf.function
def sqrt(x):
  y = x / 2
  d = y
  for _ in range(10):
    d /= 2
    if y * y < x:
      y += d
    else:
      y -= d
    ys.append(y.numpy())
  return y

tf.config.experimental_run_functions_eagerly(True)
sqrt(tf.constant(2.))
<tf.Tensor: shape=(), dtype=float32, numpy=1.4150391>
ys
[1.5, 1.25, 1.375, 1.4375, 1.40625, 1.421875, 1.4140625, 1.4179688, 1.4160156,
1.4150391]
tf.config.experimental_run_functions_eagerly(False)

Calling tf.config.experimental_run_functions_eagerly(False) will undo this behavior.

Note: This flag has no effect on functions passed into tf.data transformations as arguments. tf.data functions are never executed eagerly and are always executed as a compiled Tensorflow Graph.
Args
run_eagerly Boolean. Whether to run functions eagerly.

© 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.3/api_docs/python/tf/config/experimental_run_functions_eagerly