4用于cifar10的卷积神经网络-4.7TensorFlow的汇总类Summary和FileWriter用法
来源:互联网 发布:剑三捏脸数据妖孽成男 编辑:程序博客网 时间:2024/06/06 05:28
Summary类:负责汇总数据并写入事件文件
TensorBoard前台呈现的数据时tensorflow程序执行过程中,将一些summary类型的数据写入到日志目录的event文件中。下图标识了数据写入过程。
使用TensorBoard展示数据,需要在执行TensorFlow计算图的过程中,将各种类型的数据汇总并记录到日志文件中。然后使用TensorBoard读取这些日志文件,解析数据并生产数据可视化的web页面,让我们可以在浏览器中观察各种汇总数据。
summary_op包括了summary.scalar 、summary.histogram、summary.image等操作,这些操作输出的是各种summary protobuf,最后通过summary.writer写入到event文件中。
TensorFlow API中包含系列生产summary数据的API接口,这些函数将汇总信息存放在protobuf中,以字符串形式表达。
Summary类的汇总操作合并方法
将上面几种类型的汇总再进行一次合并,具体合并哪些由inputs指定,格式如下:
tf.summary.merge(inputs, collections=None, name=None)
合并默认图形中的所有汇总:
merged_summaries=tf.summary.merge_all(key='summaries')
牢记:merged_summaries是一个节点,必须先传入session.run()运行才能获得真正的汇总!
summary.FileWriter:将汇总结果写入事件(event file)
class FileWriter(SummaryToEventTransformer): """Writes `Summary` protocol buffers to event files. The `FileWriter` class provides a mechanism to create an event file in a given directory and add summaries and events to it. The class updates the file contents asynchronously. This allows a training program to call methods to add data to the file directly from the training loop, without slowing down training. """ """ 把 `Summary` protocol buffers 写入到event files。 这个`FileWriter`类提供了一个机制,能够在指定的目录下面创建event文件,然后将缓存中的summaries写入到event文件中去。 该类可以异步的更新(updates asynchronously)events文件的内容。 这个异步机制能够让程序在训练循环过程中调用add方法直接往文件中添加数据而不用阻塞循环训练过程导致训练速度减慢。 """
注意:
add_summary仅仅是向FileWriter对象的缓存中存放event data。而向disk上写数据是由FileWrite对象控制的。
tf.summary.FileWriter.__init__(self, logdir, graph=None, max_queue=10, flush_secs=120, graph_def=None): Creates a `FileWriter` and an event file. Args: logdir: A string. Directory where event file will be written. graph: A `Graph` object, such as `sess.graph`. max_queue: Integer. Size of the queue for pending events and summaries. flush_secs: Number. How often, in seconds, to flush the pending events and summaries to disk. graph_def: DEPRECATED: Use the `graph` argument instead. #max_queue:在向disk写数据之前,最大能够缓存event的个数 #flush_secs:每多少秒向disk中写数据,并清空对象缓存
使用的时候需要注意的地方:
1、 如果使用filewriter.add_summary(summary, global_step)时没有传global_step参数,会使scarlar_summary变成一条直线。
2、只要是在计算图上的Summary op,都会被merge_all捕捉到,不需要考虑变量生存空间问题!
3、如果执行一次,disk上没有保存Summary数据的话,可以尝试下filewriter.flush()
name_scope:让生成的汇总有层次性
典型的TensorFlow可以有数以千计的节点,如此多而难以一下全部看到,甚至无法使用标准图表工具来展示。为了简单起见,我们为变量名划定范围,并且可视化把该信息用于在图表中的节点上定义一个层级。默认情况下,只有顶层节点会显示。
name_scope还可以用于数据的汇总,让TensorBoard中的汇总数据也更有层次。
如果想要生成的summary有层次的话,记得在summary外面加一个name_scope
with tf.name_scope('summary_gradients'): tf.summary.histogram("name",gradients)
这样,tensorboard在显示的时候,就会有一个summary_gradients目录
- 4用于cifar10的卷积神经网络-4.7TensorFlow的汇总类Summary和FileWriter用法
- 4用于cifar10的卷积神经网络-4.19tanh和softsign激活函数的输出汇总分析
- 4用于cifar10的卷积神经网络-4.1用于cifar10的卷积神经网络结构设计
- 4用于cifar10的卷积神经网络-4.8/4.9为cifar10卷积网络添加汇总操作上/下
- 4用于cifar10的卷积神经网络-4.20relu, relu6和softplus激活函数的输出汇总分析
- 4用于cifar10的卷积神经网络-4.11优化器GradientDescenOptimizer的汇总结果分析
- 4用于cifar10的卷积神经网络-4.12优化器MomentumOptimizer的汇总结果分析
- 4用于cifar10的卷积神经网络-4.13优化器FtrlOptimizer的汇总结果分析
- 4用于cifar10的卷积神经网络-4.14优化器AdagradOptimizer的汇总结果分析
- 4用于cifar10的卷积神经网络-4.15优化器RMSProbOptimizer的汇总结果分析
- 4用于cifar10的卷积神经网络-4.16优化器AdamOptimizer的汇总结果分析
- 4用于cifar10的卷积神经网络-4.18sigmoid激活函数的输出汇总分析
- 4用于cifar10的卷积神经网络-4.21elu激活函数的输出汇总分析
- 4用于cifar10的卷积神经网络-4.6设计模型训练和评估的会话流程
- 4用于cifar10的卷积神经网络-4.4/4.5cifar10数据集读取和数据增强扩充(上/下)
- 4用于cifar10的卷积神经网络-4.24Tensorflow中LRN层的工作原理以及添加方法
- 4用于cifar10的卷积神经网络-4.25/4.26Tensorflow中的四种学习率衰减方法(上/下)
- 4用于cifar10的卷积神经网络-4.2/4.3cifar10卷积神经网络的计算图设计(上下)
- JS生成16位UUID
- 计算机视觉简介:历史、现状和发展趋势
- LS1012ARDB
- 简单的移动端页面
- 商品库存管理
- 4用于cifar10的卷积神经网络-4.7TensorFlow的汇总类Summary和FileWriter用法
- 基于Qt的SocketIO客户端实现 【二】向服务器发送请求
- 关于 int main(int argc,char*arg[])与 int main(int argc,char**argv)的理解
- 前端插件
- springcloud(三):服务提供与调用
- 【第1118期】2018校招面试经验分享
- 主题模型TopicModel:隐含狄利克雷分布LDA
- springMVC入门--7.异常处理机制
- banner无限轮播