为了更方便的理解、调试和优化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. PHP + Memcache 实现Session共享

    一.安装Memcache和PHP扩展 Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd ...

  2. Spring MVC URL的映射问题 ;Spring MVC 跳转与iframe包含地址问题

    /login/login.html 进行form提交,登录之后的页面位于/main/frame.jsp; 这样的controller中的地址需要映射成/main/login.do,然后在control ...

  3. iOS 多线程NSThread理解与场景示例

    NSThread是相对GCD和NSOperationQuene而言,比较轻量级的一种多线程处理方式. 但同时,它的弊端就是需要自己管理线程的生命周期,以及线程同步:而另外两种不需要自己管理. 常见方法 ...

  4. 使SSH不用输入密码

    1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运 ...

  5. [html] 学习笔记-Canvas图形绘制处理

    使用Canvas API 可以将一个图形重叠绘制在另外一个图形上,也可以给图形添加阴影效果. 1.Canvas 图形组合 通过 globalCompositeOperation = 属性 来指定重叠效 ...

  6. css3 3d 与案例分析

    作者:魔洁 聊到3d那我们就先聊聊空间维度,首先一维,比如一条线就是一个一维空间,连点成线在这个空间里这些点只能前进后退,二维空间就是一个平面,这时点不仅可以前进后退还可以左右移动,3维空间也可以说是 ...

  7. iterator的实现原理

    1.iterator遍历linkedlist集合 Iterator li = list.iterator(); while(li.hasNext()){ System.out.println(li.n ...

  8. 解决maven 下载 hadoop-client 客户端 报错的问题

    第一.pom.xml配置: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId> ...

  9. webpack1.x 升级到 webpack2.x 英文文档翻译

    近日项目要升级到webpack2.2,原来使用的webpack版本是1.12,在升级项目的同时,翻译一下官方的升级文档,去掉了一些不常用的配置 resolve.root, resolve.fallba ...

  10. <context:component-scan>详解

    默认情况下,<context:component-scan>查找使用构造型(stereotype)注解所标注的类,如@Component(组件),@Service(服务),@Control ...