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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Windows系统下安装Python的SSH模块教程
Feb 05 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
python 实现简单的计算器(gui界面)
Nov 11 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
浅析Django接口版本控制
Jun 26 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
javascript中select下拉框的用法总结
2016/01/07 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python贪心算法实例小结
2018/04/22 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
应届毕业生应聘自荐信
2013/12/07 职场文书
怎样填写就业意向
2014/04/02 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
高温慰问简报
2015/07/21 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL