使用 TensorFlow 调试器(tfdbg)进行调试

TensorFlow 调试器(tfdbg)与其他常用调试器(如pdbgdb)的工作方式相同。要使用调试器,该过程通常如下:

  1. 在代码中的断点处设置要中断的位置并检查变量
  2. 在调试模式下运行代码
  3. 当代码在断点处中断时,检查它然后继续下一步

一些调试器还允许您在代码执行时以交互方式观察变量,而不仅仅是在断点处:

  1. 为了使用tfdbg,首先导入所需的模块并将会话包装在调试器包装器中:
from tensorflow.python import debug as tfd

with tfd.LocalCLIDebugWrapperSession(tf.Session()) as tfs:
  1. 接下来,将过滤器附加到会话对象。附加过滤器与在其他调试器中设置断点相同。例如,以下代码附加tfdbg.has_inf_or_nan过滤器,如果任何中间张量具有naninf值,则会中断:
tfs.add_tensor_filter('has_inf_or_nan_filter', tfd.has_inf_or_nan)
  1. 现在,当代码执行tfs.run()时,调试器将在控制台中启动调试器接口,您可以在其中运行各种调试器命令来监视张量值。
  2. 我们提供了在ch-18_mnist_tfdbg.py 文件中试用tfdbg的代码。当我们用python3执行代码文件时,我们看到tfdbg控制台:< / li >
python3 ch-18_mnist_tfdbg.py

  1. tfdbg&gt; 提示符下输入命令run -f has_inf_or_nan 。代码在第一个周期后中断,因为我们使用np.inf值填充数据:

  1. 现在您可以使用tfdbg控制台或可点击界面来检查各种张量的值。例如,我们查看其中一个梯度的值:

您可以在以下链接中找到有关使用tfdbg控制台和检查变量的更多信息:

https://www.tensorflow.org/programmers_guide/debugger.

results matching ""

    No results matching ""