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 相关文章推荐
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
python:socket传输大文件示例
Jan 18 Python
python实现dijkstra最短路由算法
Jan 17 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
python GUI模拟实现计算器
Jun 22 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
如何利用python 读取配置文件
Jan 06 Python
详解Python requests模块
Jun 21 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
查看大图功能代码jquery版
2013/11/05 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
如何基于python操作excel并获取内容
2019/12/24 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
个人授权委托书范文
2014/09/21 职场文书
教师批评与自我批评
2014/10/15 职场文书
员工升职自荐信
2015/03/27 职场文书
培训班通知
2015/04/25 职场文书
首都博物馆观后感
2015/06/05 职场文书
会议简报格式范文
2015/07/20 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB