From 19916f4328e4795281c736d73d01d6f201442426 Mon Sep 17 00:00:00 2001 From: Ken Franko Date: Thu, 17 Dec 2020 17:48:40 -0800 Subject: [PATCH] Add guidance to documentation on when to use a callable for record_if. PiperOrigin-RevId: 348125528 Change-Id: I8716c0181341b571ec13ddf01bc9977952f1d8ed --- tensorflow/python/ops/summary_ops_v2.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tensorflow/python/ops/summary_ops_v2.py b/tensorflow/python/ops/summary_ops_v2.py index 8ba2edb5938..ba323cbd6db 100644 --- a/tensorflow/python/ops/summary_ops_v2.py +++ b/tensorflow/python/ops/summary_ops_v2.py @@ -126,7 +126,13 @@ def record_if(condition): The provided value can be a python boolean, a scalar boolean Tensor, or or a callable providing such a value; if a callable is passed it will be - invoked on-demand to determine whether summary writing will occur. + invoked on-demand to determine whether summary writing will occur. Note that + when calling record_if() in an eager mode context, if you intend to provide a + varying condition like `step % 100 == 0`, you must wrap this in a + callable to avoid immediate eager evaluation of the condition. In particular, + using a callable is the only way to have your condition evaluated as part of + the traced body of an @tf.function that is invoked from within the + `record_if()` context. Args: condition: can be True, False, a bool Tensor, or a callable providing such.