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中条件判断语句的简单使用方法
Aug 21 Python
python实现将内容分行输出
Nov 05 Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 Python
python如何重载模块实例解析
Jan 25 Python
详解Python中的四种队列
May 21 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
python中eval与int的区别浅析
Aug 11 Python
Python3 使用pillow库生成随机验证码
Aug 26 Python
Django获取应用下的所有models的例子
Aug 30 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 Python
Python字典的基础操作
Nov 01 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
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
Jquery 表格合并的问题分享
2011/09/17 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
详细介绍Python函数中的默认参数
2015/03/30 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python正则捕获操作示例
2017/08/19 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
flask框架视图函数用法示例
2018/07/19 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python如何转换字符串大小写
2020/06/04 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
会计与审计专业自荐信范文
2014/03/15 职场文书
食品工程专业求职信
2014/06/15 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL