Tensorflow Summary用法学习笔记


Posted in Python onJanuary 10, 2020

最近在研究tensorflow自带的例程speech_command,顺便学习tensorflow的一些基本用法。

其中tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。

而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在tensorboard显示。

tf.summary有诸多函数:

1、tf.summary.scalar

用来显示标量信息,其格式为:

tf.summary.scalar(tags, values, collections=None, name=None)

例如:tf.summary.scalar('mean', mean)

一般在画loss,accuary时会用到这个函数。

2、tf.summary.histogram

用来显示直方图信息,其格式为:

tf.summary.histogram(tags, values, collections=None, name=None)

例如: tf.summary.histogram('histogram', var)
一般用来显示训练过程中变量的分布情况

3、tf.summary.distribution
分布图,一般用于显示weights分布

4、tf.summary.text
可以将文本类型的数据转换为tensor写入summary中:

例如:

text = """/a/b/c\\_d/f\\_g\\_h\\_2017"""
summary_op0 = tf.summary.text('text', tf.convert_to_tensor(text))

5、tf.summary.image

输出带图像的probuf,汇总数据的图像的的形式如下: ' tag /image/0', ' tag /image/1'...,如:input/image/0等。

格式:tf.summary.image(tag, tensor, max_images=3, collections=None, name=Non

6、tf.summary.audio

展示训练过程中记录的音频

7、tf.summary.merge_all

merge_all 可以将所有summary全部保存到磁盘,以便tensorboard显示。如果没有特殊要求,一般用这一句就可一显示训练时的各种信息了。

格式:tf.summaries.merge_all(key='summaries')

8、tf.summary.FileWriter

指定一个文件用来保存图。

格式:tf.summary.FileWritter(path,sess.graph)

可以调用其add_summary()方法将训练过程数据保存在filewriter指定的文件中

Tensorflow Summary 用法示例:

tf.summary.scalar('accuracy',acc)          #生成准确率标量图 
merge_summary = tf.summary.merge_all() 
train_writer = tf.summary.FileWriter(dir,sess.graph)#定义一个写入summary的目标文件,dir为写入文件地址 
......(交叉熵、优化器等定义) 
for step in xrange(training_step):         #训练循环 
  train_summary = sess.run(merge_summary,feed_dict = {...})#调用sess.run运行图,生成一步的训练过程数据 
  train_writer.add_summary(train_summary,step)#调用train_writer的add_summary方法将训练过程以及训练步数保存

此时开启tensorborad:

tensorboard --logdir=/summary_dir

便能看见accuracy曲线了。

另外,如果我不想保存所有定义的summary信息,也可以用tf.summary.merge方法有选择性地保存信息:

9、tf.summary.merge

格式:tf.summary.merge(inputs, collections=None, name=None)

一般选择要保存的信息还需要用到tf.get_collection()函数

示例:

tf.summary.scalar('accuracy',acc)          #生成准确率标量图 
merge_summary = tf.summary.merge([tf.get_collection(tf.GraphKeys.SUMMARIES,'accuracy'),...(其他要显示的信息)]) 
train_writer = tf.summary.FileWriter(dir,sess.graph)#定义一个写入summary的目标文件,dir为写入文件地址 
......(交叉熵、优化器等定义) 
for step in xrange(training_step):         #训练循环 
  train_summary = sess.run(merge_summary,feed_dict = {...})#调用sess.run运行图,生成一步的训练过程数据 
  train_writer.add_summary(train_summary,step)#调用train_writer的add_summary方法将训练过程以及训练步数保存

使用tf.get_collection函数筛选图中summary信息中的accuracy信息,这里的

tf.GraphKeys.SUMMARIES  是summary在collection中的标志。

当然,也可以直接:

acc_summary = tf.summary.scalar('accuracy',acc)          #生成准确率标量图 
merge_summary = tf.summary.merge([acc_summary ,...(其他要显示的信息)]) #这里的[]不可省

如果要在tensorboard中画多个数据图,需定义多个tf.summary.FileWriter并重复上述过程。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python实现扫描端口示例
Mar 29 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
总结python中pass的作用
Feb 27 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 #Python
python numpy数组复制使用实例解析
Jan 10 #Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 #Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 #Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 #Python
python ubplot使用方法解析
Jan 10 #Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 #Python
You might like
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
php事件驱动化设计详解
2016/11/10 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
初识Javascript小结
2015/07/16 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
python微信好友数据分析详解
2018/11/19 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
信息工程学院毕业生推荐信
2013/11/05 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
2014自主招生自荐信策略
2014/01/27 职场文书
村干部任职承诺书
2015/01/21 职场文书
工作自我评价范文
2015/03/05 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书