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进度条脚本
Dec 18 Python
python和opencv实现抠图
Jul 18 Python
python直接获取API传递回来的参数方法
Dec 17 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
Python中Numpy ndarray的使用详解
May 24 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
基于Python解密仿射密码
Oct 21 Python
浅谈Python类中的self到底是干啥的
Nov 11 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
django实现日志按日期分割
May 21 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Python Django搭建文件下载服务器的实现
May 10 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
angular多语言配置详解
2019/05/16 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
原生js实现购物车功能
2020/09/23 Javascript
Python实现合并字典的方法
2015/07/07 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
pandas数据处理之绘图的实现
2020/06/15 Python
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
行政文员岗位职责
2013/11/08 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
置业顾问岗位职责
2014/03/02 职场文书
医院保洁服务方案
2014/06/11 职场文书
2015年司机工作总结
2015/04/23 职场文书
PL350与SW11的比较
2021/04/22 无线电