第16章 TensorFlow Debugger[1]
TensorFlow Debugger(tfdbg)是TensorFlow的专用调试器。它使用断点和计算机图形化来展现实时数据流,提供了运行TensorFlow图形的内部结构和状态的可视化。这种可视化非常有助于在训练和推理期间调试各种类型的模型错误。
本章会通过讲解如何调试TensorFlow模型开发中一种常见的错误类型——非数字(nan)和无限值(inf)导致的训练失败,来展示tfdbg命令行界面(command line interface,CLI)的功能。而这对一般调试器(如C++的gdb或者Python的pdb)来说,是很难调试的。
此外,TensorFlow这种使用符号式编程的语言本身就以难调试而闻名,没有经验的开发者常常很难直观地感受数据流图在做什么,因此,出现了问题就难以定位,更谈不上说高级的优化任务。
16.1 Debugger的使用示例
本节我们以一个错误运行的MNIST训练为例,看看如何通过TensorFlow Debugger来找到出错的地方,并改正。源代码位于tensorflow-1.1.0/tensorflow/python/debug/examples/debug_mnist.py。我们先不加调试器,直接执行,如下:
python -m tensorflow.python.debug.examples.debug_mnist
也可以进入tensorflow-1.1.0/tensorflow/python/debug/examples执行