在TensorFlow 2中,@tf.function
装饰器允许Python函数成为TensorFlow图(或多或少),并可以带来一些性能改进。但是,以这种方式装饰时,Python no longer traces the functions each time they run。这使得使用Python调试器调试功能更加困难。是否可以暂时禁用所有@tf.function
装饰器以方便调试?
答案 0 :(得分:2)
您可以使用tf.config.experimental_run_functions_eagerly(True)
。
请参见此处:https://www.tensorflow.org/beta/guide/autograph#debugging。
答案 1 :(得分:1)
您可以使用全局布尔变量DEBUG
并将其应用于autograph
中的@tf.function
参数,如下所示:
import tensorflow as tf
DEBUG = False
@tf.function(autograph=not DEBUG)
def foo(x):
return x + 1
否则,由于默认情况下为autograph=True
,因此不确定是否可以在不修改源代码的情况下实现。