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通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
python实现批量监控网站
Sep 09 Python
Python 中 list 的各项操作技巧
Apr 13 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
opencv与numpy的图像基本操作
Mar 08 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 Python
python绘制BA无标度网络示例代码
Nov 21 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
js实现炫酷光感效果
2020/09/05 Javascript
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
Python-split()函数实例用法讲解
2020/12/18 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
会计主管岗位职责
2014/01/03 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
学校门卫岗位职责
2014/03/16 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP