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编码总结(编码类型、格式、转码)
Jul 01 Python
Python利用IPython提高开发效率
Aug 10 Python
在windows下Python打印彩色字体的方法
May 15 Python
Python错误处理操作示例
Jul 18 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python 实现try重新执行
Dec 21 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
python 等差数列末项计算方式
May 03 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
Python 虚拟环境工作原理解析
Dec 24 Python
pycharm代码删除恢复的方法
Jun 26 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
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
php取出数组单个值的方法
2018/03/12 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
简单实现python画圆功能
2018/01/25 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
上市公司董事长岗位职责
2015/04/16 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
python单向链表实例详解
2022/05/25 Python