tf.debugger调试实例

使用tf的debugger调试十分简单,总分为以下几个流程:#

1. import tensorflow的调试模块

fromf  tensorflow.python import debug as tfdbg

2. 用调试模块的会话对象包装原有的Session对象:

withw  tf.Session(config=config) as sess:
sess = tfdbg.LocalCLIDebugWrapperSession(sess)

3. 加入异常值对应的过滤器(可以自定义过滤器)

sess.add_tensor_filter("has_inf_or_nan", tfdbg.has_nan_or_inf)

4. 运行代码,并在带过滤器的情况下运行

r -f has_inf_or_nan

5. 跟踪异常值产生的节点,并找到异常值来源在源码中的位置(这个较灵活,有些可能需要回溯几个节点,有些直接可查)

nin  -t Discrim/add_2

6. 退出debugger

nin  -t Discrim/add_2

如何在实例中调用tfdbg(以mnist为例):

1. 其他地方都不需要改动,只需要使用调试模块来包装sess对象:

2. 添加需要用到的异常值所对应的过滤器

3. 然后在命令行中输入以下代码:

4. 等待片刻即可进入tensorflow的debugger模式:

5. 输入命令run即可得到所有变量

tf.debugger调试实例_第1张图片

6. 输入命令run -f has_inf_or_nan即可得到所有值为inf或nan的变量

7. 输出命令 例如:pt conv2d_1/random_uniform/shape:0 即可得到conv2d_1/random_uniform/shape:0的值


tfdbg CLI常用命令:

tf.debugger调试实例_第2张图片

详情请见:http://cwiki.apachecn.org/pages/viewpage.action?pageId=10029501

你可能感兴趣的:(tf.debugger调试实例)