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 pickle 和 shelve模块的用法
Sep 16 Python
Python读写Redis数据库操作示例
Mar 18 Python
分享一个简单的python读写文件脚本
Nov 25 Python
Python实现二维数组输出为图片
Apr 03 Python
python使用Flask操作mysql实现登录功能
May 14 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Pytorch之view及view_as使用详解
Dec 31 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
Anaconda详细安装步骤图文教程
Nov 12 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 Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
php session的应用详细介绍
2017/03/22 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
Python线程的两种编程方式
2015/04/14 Python
Python正则捕获操作示例
2017/08/19 Python
深入理解Python中的*重复运算符
2017/10/28 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python imread、newaxis用法详解
2019/11/04 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
化学教学随笔感言
2014/02/19 职场文书
小学生家长寄语
2014/04/02 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
实习协议书
2015/01/27 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
MySQL基础(二)
2021/04/05 MySQL
Python制作表白爱心合集
2022/01/22 Python
SQL SERVER存储过程用法详解
2022/02/24 SQL Server