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快速排序代码实例
Nov 21 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python的Django框架中的表单处理示例
Jul 17 Python
Python脚本实现虾米网签到功能
Apr 12 Python
利用Python如何生成随机密码
Apr 20 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
pip命令无法使用的解决方法
Jun 12 Python
详解python Todo清单实战
Nov 01 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
Python类继承和多态原理解析
Feb 05 Python
python绘制雷达图实例讲解
Jan 03 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 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 数组入门教程小结
2009/05/20 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
js和as的稳定传值问题解决
2013/07/14 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
vue.js的安装方法
2017/05/12 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
python使用opencv进行人脸识别
2017/04/07 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
详解Python字典的操作
2019/03/04 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
英文版销售经理个人求职信
2013/11/20 职场文书
个人借款担保书
2014/04/02 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
董存瑞观后感
2015/06/11 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书