为了更方便的理解、调试和优化TF程序,我们可以使用TensorBoard(可视化工具)。可以使用TensorBoard查看graph,绘制图表执行过程中的定量指标。TensorBoard是完全可配置的。

1 序列化数据(Serializing the data)到磁盘

TensorBoard通过读取TF事件文件进行操作,该文件包含了在TF运行过程中产生的摘要数据(summary data)

首先创建从中要收集摘要数据的TF图,并决定图中的哪些点(nodes)需要summary operations。比如需要记录随时间进行,学习率的变化和目标函数的改变。我们可以分别将学习率输出节点和损失输出节点加上tf.summary.scalar操作。并给每个scalar_summary一个有含义的标记,如‘learning rate’和‘loss function’。

或者想看看特定层的激活函数的分布,或梯度和权重的分布。通过将tf.summary.histogram分别附加到梯度输出和权重的变量,来收集数据。

所有的summary operations:

  • tf.summary.tensor_summary
  • tf.summary.scalar
  • tf.summary.histogram
  • tf.summary.audio
  • tf.summary.image
  • tf.summary.merge
  • tf.summary.merge_all

Class for writing Summaries

  • tf.summary.FileWriter
  • tf.summary.FileWriterCache

为了产生这些摘要数据,我们需要运行这些summary nodes。单独管理这些节点比较麻烦,因此使用tf.summary.merge_all将它们合并为一个单独的操作,来产生所有的摘要数据。最后通过tf.summary.FileWriter将摘要数据写到磁盘。

手写字体识别例子的源代码:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py

其中程序的最后一段:

parser.add_argument('--data_dir', type=str, default='/tmp/tensorflow/mnist/input_data',
help='Directory for storing input data')
parser.add_argument('--log_dir', type=str, default='/tmp/tensorflow/mnist/logs/mnist_with_summaries',
help='Summaries log directory')

注:上面代码中路径的写法,绝对路径为该python文件所在的磁盘根路径+default指定的路径。比如该python在C:\XXX\XXX,则default='C:/tmp/tensorflow/mnist/logs/mnist_with_summaries'

可以在程序中根据需要改为自定义的路径如:

default='C:\\TMP\\TF\\MNIST_data'

(或者default='C:/TMP/TF/MNIST_data')

default='C:\\TMP\\TF\\logs\\mnist_with_summaries'

(或者default='C:/TMP/TF/logs/mnist_with_summaries')

  

或者在命令行运行程序时,指定自定义路径如:

python xx.py --data_dir=C:\\TMP\\TF\\MNIST_data --log_dir=C:\\TMP\\TF\\logs\\mnist_with_summaries

(或者python xx.py --data_dir=C:/TMP/TF/MNIST_data --log_dir=C:/TMP/TF/logs/mnist_with_summaries)

  

2  启动TensorBoard

在命令行运行如下命令:tensorboard --logdir=path/to/log-directory

在本例中:

tensorboard --logdir=C:/TMP/TF/logs/mnist_with_summaries --debug

(或者tensorboard --logdir=/TMP/TF/logs/mnist_with_summaries --debug)

  

注意:tensorborad的启动命令的根目录需要和日志的根目录保持一致。

在浏览器中输入地址localhost:6006

可以看到有7大模块:

  • SCALARS
  • IMAGES
  • AUDIO
  • GRAPHS
  • DISTRIBUTIONS
  • HISTOGRAMS
  • EMBEDDINGS

TensorBoard:Visualizing Learning 学习笔记的更多相关文章

  1. [Machine Learning]学习笔记-Logistic Regression

    [Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为" ...

  2. Machine Learning 学习笔记

    点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...

  3. 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h

    DA就是“Denoising Autoencoders”的缩写.继续给yusugomori做注释,边注释边学习.看了一些DA的材料,基本上都在前面“转载”了.学习中间总有个疑问:DA和RBM到底啥区别 ...

  4. [置顶] Deep Learning 学习笔记

    一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不 ...

  5. Deep Learning 学习笔记(8):自编码器( Autoencoders )

    之前的笔记,算不上是 Deep Learning, 只是为理解Deep Learning 而需要学习的基础知识, 从下面开始,我会把我学习UFDL的笔记写出来 #主要是给自己用的,所以其他人不一定看得 ...

  6. [Python & Machine Learning] 学习笔记之scikit-learn机器学习库

    1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...

  7. 【deep learning学习笔记】Recommending music on Spotify with deep learning

    主要内容: Spotify是个类似酷我音乐的音乐站点.做个性化音乐推荐和音乐消费.作者利用deep learning结合协同过滤来做音乐推荐. 详细内容: 1. 协同过滤 基本原理:某两个用户听的歌曲 ...

  8. 【deep learning学习笔记】注释yusugomori的RBM代码 --- 头文件

    百度了半天yusugomori,也不知道他是谁.不过这位老兄写了deep learning的代码,包括RBM.逻辑回归.DBN.autoencoder等,实现语言包括c.c++.java.python ...

  9. [Machine Learning]学习笔记-线性回归

    模型 假定有i组输入输出数据.输入变量可以用\(x^i\)表示,输出变量可以用\(y^i\)表示,一对\(\{x^i,y^i\}\)名为训练样本(training example),它们的集合则名为训 ...

随机推荐

  1. CCNA网络工程师学习进程(9)GNS3的安装与配置

        本节将简单介绍一下网络设备模拟软件GNS3的配置和使用方法.     (1)GNS3概述: GNS3是一款具有图形化界面可以运行在多平台(包括Windows, Linux, and MacOS ...

  2. VisualGDB Makefiles

    以下内容是VisualGDB官网对VisualGDB编译时获取相关编译信息的说明: When you create a new project using VisualGDB, it will gen ...

  3. 选择法排序 vb.net

    Imports System.ThreadingModule Module1    Sub Main()        'test code        'Dim a, b As Integer   ...

  4. Crystal框架配置参数加载机制详解?

    前言 定义 配置参数定义的形式 配置参数文件定义在哪里? 配置参数加载的优先级 如何使用配置参数? 最佳实践 Jar项目中如何定义配置参数? War项目中如何定义或重载Jar包中的配置参数? 开发人员 ...

  5. RxJava2出现:Unable to create call adapter for io.reactivex.Flowable

    前面一直使用的是Rxjava 1.x 版本,最近 Rxjava 2.x 版本发布了,并且支持了背压,便换成了 Rxjava 2.x 版本.更换之后出现了下面的错误. Caused by: java.l ...

  6. Hadoop权威指南:数据完整性

    Hadoop权威指南:数据完整性 [TOC] 常用的错误检测码是CRC-32(循环冗余校验) HDFS的数据完整性 HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和 datanode负责 ...

  7. js精要之继承

    // 继承object.prototype的方法 // hasOwnProperty() //检查是否存在一个给定名字的自有属性 // propertyIsEnumerable() // 检查一个自有 ...

  8. 使用PMD进行代码审查

    很久没写博客了,自从上次写的设计模式的博客被不知名的鹳狸猿下架了一次之后兴趣大减,那时候就没什么兴致写博客了,但是这段时间还没有停下来,最近也在研究一些其他的东西,目前有点想做点东西的打算,但好像也没 ...

  9. java_流

    转自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有 ...

  10. JAVA中的char类型

    1.JAVA中,char占2字节,16位.可在存放汉字 2.char赋值 char a='a';  //任意单个字符,加单引号. char a='中';//任意单个中文字,加单引号. char a=1 ...