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字符串处理的七种技巧
Mar 31 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
python 整数越界问题详解
Jun 27 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
tensorboard显示空白的解决
Feb 15 Python
python subprocess pipe 实时输出日志的操作
Dec 05 Python
Python自动化之批量处理工作簿和工作表
Jun 03 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设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
laypage.js分页插件使用方法详解
2019/07/27 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
Python实现端口复用实例代码
2014/07/03 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python类的动态绑定实现原理
2020/03/21 Python
Python几种常见算法汇总
2020/06/02 Python
python实现简单猜单词游戏
2020/12/24 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
同学聚会欢迎辞
2014/01/14 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python