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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
Python实现的简单排列组合算法示例
Jul 04 Python
详解Python3 基本数据类型
Apr 19 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
python 搜索大文件的实例代码
Jul 08 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
python 调试冷知识(小结)
Nov 11 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 Python
浅谈Python numpy创建空数组的问题
May 25 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文件操作实现代码分享
2011/09/01 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
canvas知识总结
2017/01/25 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python如何获取文件指定行的内容
2020/05/27 Python
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
建筑设计专业求职自我评价
2014/03/02 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
初婚未育证明样本
2015/06/18 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript