几种常用方法:
1.通过Session.run()获取变量的值
2.利用Tensorboard查看一些可视化统计
3.使用tf.Print()和tf.Assert()打印变量
4.使用Python的debug工具: ipdb, pudb
5.利用tf.py_func()向图中插入自定义的打印代码, tdb
6.使用官方debug工具: tfdbg : https://tensorflow.google.cn/programmers_guide/debugger
- 注意:TensorFlow 调试程序使用基于 curses 的文本界面。在 Mac OS X 上,
ncurses
库是必需的,而且可以使用brew install homebrew/dupes/ncurses
进行安装。在 Windows 上,curses 并没有得到同样的支持,因此基于 readline 的界面可以与 tfdbg 配合使用(具体方法是使用 pip 安装pyreadline
)。如果您使用的是 Anaconda3,则可以使用"C:\Program Files\Anaconda3\Scripts\pip.exe" install pyreadline
等命令进行安装。您可以在此处下载非官方 Windows curses 软件包,然后使用pip install <your_version>.whl
进行安装;不过,Windows 上的 curses 可能无法像 Linux 或 Mac 上的 curses 一样稳定地运行。
它的具体功能描述是包装一个普通的 Python 函数,这个函数接受 numpy 的数组作为输入和输出,让这个函数可以作为 TensorFlow 计算图上的计算节点 OP 来使用。 py_func(
func,
inp,
Tout,
stateful=True,
name=None
) 参数: func: 一个 Python 函数, 它接受 NumPy 数组作为输入和输出,并且数组的类型和大小必须和输入和输出用来衔接的 Tensor 大小和数据类型相匹配.
inp: 输入的 Tensor 列表.
Tout: 输出 Tensor 数据类型的列表或元祖.
stateful: 状态,布尔值.
name: 节点 OP 的名称.