tf调试函数
Tensorflow之调试(Debug)及打印变量
参考资料: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()获取变量的值
一个简单的例子:
优点:简单易行
缺点:必须要在图中保持需要观察的变量,必须要进行一次完整的运行
比如我们要获取各个层的输出,会变得很繁琐:
可以通过词典或者新建一个类来改善这一情况:
词典:
类:
2.利用Tensorboard查看一些可视化统计
Tensoboard简单使用方法:http://www.cnblogs.com/huangshiyu13/p/7562990.html
3.使用tf.Print()和tf.Assert()打印变量
一个简单例子:
在前7次迭代中,它会输出预测的label,如下图所示:
缺点:函数过于简单,没法在满足一定条件下进行输出,或者隔多少次迭代才进行一次输出.
这个函数在condition等于False的时候进行输出data的值,并且抛出异常,summarize决定输出多少变量值
使用方法:
或者可以:
或者把所有的Assert操作加入collection:
官方也提供了一些assert相关的函数: https://www.tensorflow.org/versions/r0.12/api_docs/python/check_ops.html#asserts-and-boolean-checks
4.使用Python的debug工具: ipdb, pudb
5.利用tf.py_func()向图中插入自定义的打印代码
简单例子:
另一个例子:
一个第三方debug工具: https://github.com/ericjang/tdb
6.使用官方debug工具: tfdbg
tf调试函数的更多相关文章
- tensorflow 笔记14:tf.expand_dims和tf.squeeze函数
tf.expand_dims和tf.squeeze函数 一.tf.expand_dims() Function tf.expand_dims(input, axis=None, name=None, ...
- TensorFlow随机值:tf.random_normal函数
tf.random_normal 函数 random_normal( shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=No ...
- tf.transpose函数的用法讲解
tf.transpose函数中文意思是转置,对于低维度的转置问题,很简单,不想讨论,直接转置就好(大家看下面文档,一看就懂). tf.transpose(a, perm=None, name='tra ...
- tensorflow中 tf.reduce_mean函数
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值. reduce_mean(input_ ...
- tf.transpose函数解析
tf.transpose函数解析 觉得有用的话,欢迎一起讨论相互学习~Follow Me tf.transpose(a, perm = None, name = 'transpose') 解释 将a进 ...
- tf.slice函数解析
tf.slice函数解析 觉得有用的话,欢迎一起讨论相互学习~Follow Me tf.slice(input_, begin, size, name = None) 解释 : 这个函数的作用是从输入 ...
- dump调试函数
//dump调试函数if (!function_exists('dump')) { /* * dump调试函数 */ function dump($var) { $traces = debug_bac ...
- tf.random_normal()函数
tf.random_normal()函数用于从服从指定正太分布的数值中取出指定个数的值. tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf. ...
- Spark远程调试函数
Spark远程调试函数 1.sendInfo 该函数用于分布式程序的调试,非常方便,在spark的rdd操作中嵌入sendInfo,启动nc服务器后,可以收集到所有需要的运行时信息,该函数可以捕获ho ...
随机推荐
- Card Stacking 队列模拟
题目链接:https://ac.nowcoder.com/acm/contest/993/ABessie is playing a card game with her N-1 (2 <= N ...
- <深入理解redis>读书笔记
chapter2 键管理与数据结构 对大多数redis解决方案而言,键的命名设计至关重要.对于管理来说,内存消耗和redis性能都与数据结构设计相关.所以对开发者而言,最好有数据结构的命名文档规范. ...
- Day 27:Xpath技术
xPath技术 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! xPath作用 主要是用于快速获取所需的节点对象. 在dom4j中如何使用xPath技术 1.导入 ...
- 小程序之scroll-view用法 - 水平滚动
<scroll-view class="box" scroll-x="true" > <view class="box-item&q ...
- IOCTL_DISK_GET_DRIVE_GEOMETRY
IOCTL_DISK_GET_DRIVE_GEOMETRY: 获取磁盘参数 c++实现: #include <Windows.h> #include <winioctl.h> ...
- 指令——history
作用:查看历史命令 一般用于查看已经输入执行过的命令,也可以作为自己练习时的指标衡量,因为在历史命令里有行号显示.
- Power BI 安装注册教程
把下载好的MSI包PBIDesktop_x64.msi 双击安装 点击下一步 选择文件路径 点击安装 点击完成 初始化中 安装完成界面 账号注册 https://powerbi.microsoft.c ...
- Python 比较 相等性 真值
1 == 操作符测试 值 的相等性: is 测试对象的一致性.注意短字符串的is相等性测试,PVM会缓存短字符串,s1 is s2 将返回true. 2 false:"", [], ...
- 16 协程和www
1.一个应用程序一般对应一个进程,一个进程一般有一个主线程,还有若干个辅助线程,线程之间是平行运行的,在线程里面可以开启协程,让程序在特定的时间内运行.2协程和线程的区别是:协程避免了无意义的调度,由 ...
- c++程序—switch分支
#include<iostream> using namespace std; #include<string> int main() { //多元分支 cout <&l ...