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 21 Python
pytorch permute维度转换方法
Dec 14 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
python实现词法分析器
Jan 31 Python
python多进程并行代码实例
Sep 30 Python
Pandas 缺失数据处理的实现
Nov 04 Python
python中自带的三个装饰器的实现
Nov 08 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
python在不同条件下的输入与输出
Feb 13 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
Python实现拼音转换
Jun 07 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获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
帝国cms目录结构分享
2015/07/06 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
Python字符串逐字符或逐词反转方法
2015/05/21 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
Python 串口读写的实现方法
2019/06/12 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
导盲犬小Q观后感
2015/06/11 职场文书
美容院员工规章制度
2015/08/05 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
Python序列化模块JSON与Pickle
2022/06/05 Python