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单链表的简单实现方法
Sep 23 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
python实现维吉尼亚加密法
Mar 20 Python
如何利用python给图片添加半透明水印
Sep 06 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
Python数据可视化图实现过程详解
Jun 12 Python
Python 解析简单的XML数据
Jul 24 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
php微信公众号开发模式详解
2016/11/28 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
$("").click与onclick的区别示例介绍
2014/09/25 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
浅谈Redux中间件的实践
2018/07/27 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
在Python中使用成员运算符的示例
2015/05/13 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python使用folium库绘制地图点击框
2018/09/21 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
Python的互斥锁与信号量详解
2019/09/12 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Python基于execjs运行js过程解析
2020/11/27 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
博士研究生自我鉴定范文
2013/12/04 职场文书
英语老师推荐信
2014/02/26 职场文书
销售主管竞聘书
2014/03/31 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
入队仪式主持词
2015/07/04 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript