tf中 tensorboard 工具通过读取在网络训练过程中保存到本地的日志文件实现数据可视化,日志数据保存主要用到 tf.summary 中的方法。

tf.summary中summary是tf中的一个py文件,位置在 '/tensorflow/python/summary/' 文件夹下,提供了像tf.summary.scalartf.summary.histogram 等方法,用来把graph图中的相关信息,如结构图、学习率、准确率、Loss等数据转换成 protocol buffer 数据格式,然后再调用 tf.summary.FileWriter 方法把这些数据写入到本地硬盘,之后就可以借用 tensorboard 工具可视化这些数据。

标量数据汇总和记录

标量,单个数值保存用 tf.summary.scalar,一般用来保存loss,accuary,学习率等数据,比较常用。

tf.summary.scalar(name, tensor, collections=None, family=None)
  • name:  给保存的数据的命名;
  • tensor: 要保存的tensor,在scalar函数中应该是一个标量,如当前的学习率、Loss等;
  • collections: 定义保存的数据归于哪个集合,默认的集合是 '[GraphKeys.SUMMARIES]';
  • family:可选参数,如果定义,在Tensorboard显示的时候,将作为前缀加在变量名前;

变量var的直方图汇总和记录


tf.summary.histogram 输出带直方图的汇总的protobuf 数据。

tf.summary.histogram(tag, values, collections=None, name=None)  

变量var的图像汇总和记录

tf.summary.image(name, tensor, max_outputs=3, collections=None, family=None)

合并汇总

使用 tf.summary.merge(inputs, collections=None, name=None) 对指定的汇总进行合并。
使用 tf.summaries.merge_all(key=_ops.GraphKeys.SUMMARIES) 对所有的汇总进行合并。

启动所有的汇总操作


merged = tf.summaries.merge_all(key=_ops.GraphKeys.SUMMARIES)
summary, acc = sess.run([merged, accuracy], feed_dict=feed_dict(False))

数据写入本地磁盘

数据写入本地使用 tf.summary.FileWriter 类中的方法。

summary_writer = tf.summary.FileWriter(args.log_dir, sess.graph)

构造函数:

__init__(self,
logdir,
graph=None,
max_queue=10,
flush_secs=120,
graph_def=None,
filename_suffix=None)
  • logdir:事件文件保存目录
  • graph: graph(图)对象,例如 sess.graph
  • max_queue: 队列中事件和概要的最大数量,默认为10;
  • flush_secs: 事件和概要保存到本地磁盘的间隔,默认120S;
  • graph_def: 旧版本的graph,已弃用;
  • filename_suffix: 可选参数,事件文件的后缀。

事件和汇总加入summary_writer

summary_writer.add_run_metadata(run_metadata, 'step%03d'% i)
summary_writer.add_summary(summary, i)

tensorflow中summary操作的更多相关文章

  1. 记录:TensorFlow 中的 padding 方式

    TensorFlow 中卷积操作和池化操作中都有一个参数 padding,其可选值有 ['VALID', 'SAME']. 在 TensorFlow 文档中只是给出了输出张量的维度计算方式,但是并没有 ...

  2. Tensorflow中的padding操作

    转载请注明出处:http://www.cnblogs.com/willnote/p/6746668.html 图示说明 用一个3x3的网格在一个28x28的图像上做切片并移动 移动到边缘上的时候,如果 ...

  3. 第十四节,TensorFlow中的反卷积,反池化操作以及gradients的使用

    反卷积是指,通过测量输出和已知输入重构未知输入的过程.在神经网络中,反卷积过程并不具备学习的能力,仅仅是用于可视化一个已经训练好的卷积神经网络,没有学习训练的过程.反卷积有着许多特别的应用,一般可以用 ...

  4. python/numpy/tensorflow中,对矩阵行列操作,下标是怎么回事儿?

    Python中的list/tuple,numpy中的ndarrray与tensorflow中的tensor. 用python中list/tuple理解,仅仅是从内存角度理解一个序列数据,而非数学中标量 ...

  5. [翻译] Tensorflow中name scope和variable scope的区别是什么

    翻译自:https://stackoverflow.com/questions/35919020/whats-the-difference-of-name-scope-and-a-variable-s ...

  6. tensorflow中slim模块api介绍

    tensorflow中slim模块api介绍 翻译 2017年08月29日 20:13:35   http://blog.csdn.net/guvcolie/article/details/77686 ...

  7. C# winform编程中多线程操作控件方法

    private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...

  8. 小技巧:SystemTray中进行操作提示

    SystemTray中进行操作提示在wp中应用比较广泛,截图如下. 实现方法也十分简单 1.xaml代码中写入: shell:SystemTray.IsVisible="True" ...

  9. [开发技巧]·TensorFlow中numpy与tensor数据相互转化

    [开发技巧]·TensorFlow中numpy与tensor数据相互转化 个人主页–> https://xiaosongshine.github.io/ - 问题描述 在我们使用TensorFl ...

随机推荐

  1. 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest Solution

    A. Rikka with Minimum Spanning Trees 题意: 给出一个图,求最小生成树的个数和权值 思路: 因为数据随机,只有一个MST #include <bits/std ...

  2. PostgreSQL 9.3:在windows(包括win7)下的安装与正确配置

    首先,以下是常用命令: ③ initdb 初始化 数据库. ④ pg_ctl start 启动数据库 ⑤ pg_ctl stop 停止数据库 ⑥ post_svc -install 建立windows ...

  3. 20145106 《Java程序设计》第5周学习总结

    教材学习内容总结 个人认为本周的学习在很大程度上是作为之前学习内容的补充.之前编译的程序相信所有人都会失败过,error算是我程序的老主顾了. 第八章名为"异常处理".本章中,我们 ...

  4. linux及安全《Linux内核设计与实现》第二章——20135227黄晓妍

    第二章:从内核出发 2.1获取源代码 2.1.1使用git Git:内核开发者们用来管理Linux内核源代码的控制系统. 我们使用git来下载和管理Linux源代码. 2.1.2安装内核源代码(如果使 ...

  5. zabbix负载均衡群集高可用架构

    由于服务器资源限制,将MySQL服务放在zabbix服务器上,生产环境应尽量分开

  6. 为pyhon安装opencv扩展包出现distributed 1.21.8 requires msgpack, which is not installed.【转】

    本文转载自:https://blog.csdn.net/weixin_39513374/article/details/81051466 pip install msgpack-python pip ...

  7. gradle Debug的使用

    gradle 与maven 不同,运行完run debug后还需要再进行几部配置: 打开Run-DebugConfigurations-如图新建一个remote java application 然后 ...

  8. java方法和本地方法

    java中的方法有两种,java方法和本地方法. java方法:是由java语言编写,编译成字节码,存储在class文件中的.java方法是与平台无关的. 本地方法:本地方法是由其他语言(如C.C++ ...

  9. BZOJ 1042: [HAOI2008]硬币购物(容斥原理)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1042 题意: 思路: 如果不考虑硬币个数的话,这就是一道完全背包的题目. 直接求的话行不通,于是这里 ...

  10. 解决QML Window 增加radius效果

    做开发时,突然遇到 一个需要模态展示的对话框,做出来后,发现还要radius属性,增加时发现,Window控件不支持这个属性.如果是以前,原本就打算放弃了,但想一下,这种应该是支持的,既然接口上没有, ...