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. As the code now runs line-by-line,
you can add arbitrary print messages or pdb breakpoints to monitor the
inputs/outputs of each Tensorflow operation. However, you should avoid using
this for actual production because it significantly slows down execution.
def my_func(a): print(f'a: {a}') return a + aa_fn = tf.function(my_func)
# A side effect the first time the function is traced# In tracing time, `a` is printed with shape and dtype onlya_fn(tf.constant(1))a: Tensor("a:0", shape=(), dtype=int32)<tf.Tensor: shape=(), dtype=int32, numpy=2>
# `print` is a python side effect, it won't execute as the traced function# is calleda_fn(tf.constant(2))<tf.Tensor: shape=(), dtype=int32, numpy=4>
# Now, switch to eager runningtf.config.run_functions_eagerly(True)# The code now runs eagerly and the actual value of `a` is printeda_fn(tf.constant(2))a: 2<tf.Tensor: shape=(), dtype=int32, numpy=4>
# Turn this back offtf.config.run_functions_eagerly(False)
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-04-26 UTC."],[],[]]