Tensorflow之调试(Debug)及打印变量

 

参考资料:https://wookayin.github.io/tensorflow-talk-debugging

几种常用方法:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.通过Session.run()获取变量的值

2.利用Tensorboard查看一些可视化统计

3.使用tf.Print()和tf.Assert()打印变量

4.使用Python的debug工具: ipdb, pudb

5.利用tf.py_func()向图中插入自定义的打印代码, tdb

6.使用官方debug工具: tfdbg

 

复习:

tensorflow是通过先建图再运行的方式进行运行,这就使得我们写在图建立过程中的输出语句在图运行的时候并不能得到执行,从而使得调试困难. 我们想在运行过程中,对训练的一些变量进行追踪和打印,对一些错误进行输出分析,下面介绍几种在tensorflow中进行debug的方法.

 

详细介绍:

1.通过Session.run()获取变量的值

一个简单的例子:

 tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第1张

优点:简单易行

缺点:必须要在图中保持需要观察的变量,必须要进行一次完整的运行

比如我们要获取各个层的输出,会变得很繁琐:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第2张

可以通过词典或者新建一个类来改善这一情况:

词典:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第3张

类:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第4张

 

2.利用Tensorboard查看一些可视化统计

Tensoboard简单使用方法:http://www.cnblogs.com/huangshiyu13/p/7562990.html

 

3.使用tf.Print()和tf.Assert()打印变量

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第5张

 

一个简单例子:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第6张

在前7次迭代中,它会输出预测的label,如下图所示:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第7张

缺点:函数过于简单,没法在满足一定条件下进行输出,或者隔多少次迭代才进行一次输出.

 

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第8张

这个函数在condition等于False的时候进行输出data的值,并且抛出异常,summarize决定输出多少变量值

使用方法:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第9张

或者可以:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第10张

或者把所有的Assert操作加入collection:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第11张

 官方也提供了一些assert相关的函数: https://www.tensorflow.org/versions/r0.12/api_docs/python/check_ops.html#asserts-and-boolean-checks

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第12张

 

4.使用Python的debug工具: ipdb, pudb

 

5.利用tf.py_func()向图中插入自定义的打印代码

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第13张

简单例子:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第14张

另一个例子:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第15张

一个第三方debug工具: https://github.com/ericjang/tdb

 tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第16张

 

6.使用官方debug工具: tfdbg

 

黄世宇/Albert's Personal Page: http://huangshiyu.me/,

参考资料:https://wookayin.github.io/tensorflow-talk-debugging

几种常用方法:

1.通过Session.run()获取变量的值

2.利用Tensorboard查看一些可视化统计

3.使用tf.Print()和tf.Assert()打印变量

4.使用Python的debug工具: ipdb, pudb

5.利用tf.py_func()向图中插入自定义的打印代码, tdb

6.使用官方debug工具: tfdbg

 

复习:

tensorflow是通过先建图再运行的方式进行运行,这就使得我们写在图建立过程中的输出语句在图运行的时候并不能得到执行,从而使得调试困难. 我们想在运行过程中,对训练的一些变量进行追踪和打印,对一些错误进行输出分析,下面介绍几种在tensorflow中进行debug的方法.

 

详细介绍:

1.通过Session.run()获取变量的值

一个简单的例子:

 tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第17张

优点:简单易行

缺点:必须要在图中保持需要观察的变量,必须要进行一次完整的运行

比如我们要获取各个层的输出,会变得很繁琐:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第18张

可以通过词典或者新建一个类来改善这一情况:

词典:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第19张

类:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第20张

 

2.利用Tensorboard查看一些可视化统计

Tensoboard简单使用方法:http://www.cnblogs.com/huangshiyu13/p/7562990.html

 

3.使用tf.Print()和tf.Assert()打印变量

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第21张

 

一个简单例子:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第22张

在前7次迭代中,它会输出预测的label,如下图所示:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第23张

缺点:函数过于简单,没法在满足一定条件下进行输出,或者隔多少次迭代才进行一次输出.

 

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第24张

这个函数在condition等于False的时候进行输出data的值,并且抛出异常,summarize决定输出多少变量值

使用方法:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第25张

或者可以:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第26张

或者把所有的Assert操作加入collection:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第27张

 官方也提供了一些assert相关的函数: https://www.tensorflow.org/versions/r0.12/api_docs/python/check_ops.html#asserts-and-boolean-checks

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第28张

 

4.使用Python的debug工具: ipdb, pudb

 

5.利用tf.py_func()向图中插入自定义的打印代码

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第29张

简单例子:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第30张

另一个例子:

tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第31张

一个第三方debug工具: https://github.com/ericjang/tdb

 tf调试函数,Tensorflow之调试(Debug)及打印变量 随笔 第32张

 

6.使用官方debug工具: tfdbg

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄