Enables / disables eager execution of tf.function
s.
tf.config.run_functions_eagerly( run_eagerly )
Calling tf.config.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.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.run_functions_eagerly(False)
Calling tf.config.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/run_functions_eagerly