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 self,cls,decorator的理解
Jul 13 Python
Python中pygame安装方法图文详解
Nov 11 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
python RabbitMQ 使用详细介绍(小结)
Nov 08 Python
12个步骤教你理解Python装饰器
Jul 01 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
pandas实现将日期转换成timestamp
Dec 07 Python
python处理RSTP视频流过程解析
Jan 11 Python
python3爬取torrent种子链接实例
Jan 16 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
浅谈Python中的字符串
Jun 10 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
javascript 写类方式之六
2009/07/05 Javascript
ext 代码生成器
2009/08/07 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
js实现中文实时时钟
2020/01/15 Javascript
js中复选框的取值及赋值示例详解
2020/10/18 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
python实现简单成绩录入系统
2019/09/19 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
python 写一个文件分发小程序
2020/12/05 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
汽车专业毕业生推荐信
2013/11/12 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
文化产业实施方案
2014/06/07 职场文书
低碳环保口号
2014/06/12 职场文书
科技节口号
2014/06/19 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
事业单位个人总结
2015/02/12 职场文书
英语辞职信怎么写
2015/02/28 职场文书
党支部评议意见
2015/06/02 职场文书