由于官网和其他教程里面都是以Linux为平台演示tensorboard使用的,而在Windows上与Linux上会有一些差别,因此我将学习的过程记录下来与大家分享(基于tensorflow1.2.1版本)。

最简单的tensorboard应用

tensorboard是为了将复杂的计算图可视化的工具,使用tensorboard包括两个步骤,

  1. 在python程序中将想要可视化的结果,包括中间结果,例如准确率变化等,以及计算图模型使用tf.Summary.FileWriter()写入到文件系统。
  2. 运行tensorboard –path-to-log命令读取之前输出的log,并显示在web服务器上,这时可通过浏览器访问。、

示例:

第一步:输出日志文件

  1. import tensorflow as tf
  2.  
  3. in1 = tf.constant([1., 2.], name='in1')
  4. in2 = tf.Variable(tf.random_normal([2]), name='in2')
  5. out = tf.add(in1, in2, name='add')
  6.  
  7. #注意Windows环境下的的路径为了方便可以使用r'',或把\都替换成/或\\
  8. writer = tf.summary.FileWriter(r'E:\tf', tf.get_default_graph())
  9. writer.close()

这样就把上面的out=in1+in2的计算图输出到了E:\tf文件夹下了

第二步:打开tensorboard

  1. tensorboard --logdir=E:\tf

打开浏览器访问localhost:6006(端口可以使用port参数修改)即可看到刚才输出的计算图

其中,in1为constant,in2为Variable(通过random_normal初始化),然后add的输入为in1和in2。

这是一个简单的应用,更复杂主要在于输出的log不同。

更全面的计算图可视化

命名空间

在有些时候计算图中有一些节点,例如常量变量的初始化操作使我们不太关心的,因此我们需要使用tensorflow中的命名空间来整理需要可视化的节点。 
在tensorboard的默认视图中同一命名空间的所有节点会缩略成一个节点,只有顶层命名空间中的节点才会显示出来。关于命名空间可参考这里 
因此,我们只需要在上面的代码中引入两个命名空间即可。

  1. import tensorflow as tf
  2. #命名空间in1
  3. with tf.name_scope('in1'):
  4. in1 = tf.constant([1., 2.], name='in1')
  5. #命名空间in2
  6. with tf.name_scope('in2'):
  7. in2 = tf.Variable(tf.random_normal([2]), name='in2')
  8. out = tf.add_n([in1, in2], name='add')
  9.  
  10. writer = tf.summary.FileWriter(r'E:\tf', tf.get_default_graph())
  11. writer.close()

节点信息

在上面的例子中我们只能知道节点的一些基本信息,而在实际的应用中我们可能会想要知道某些运算(节点)消耗的时间和空间,因此在本节介绍如何通过tensorboard展示这些信息,这里只需要写入相应的信息即可。

  1. # 配置运行时需要记录的信息。
  2. run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
  3. # 运行时记录运行信息的proto。
  4. run_metadata = tf.RunMetadata()
  5. _, loss_value, step = sess.run(
  6. [train_op, loss, global_step], feed_dict={x: xs, y_: ys},
  7. options=run_options, run_metadata=run_metadata)
  8. #将运行时的信息写入文件
  9. train_writer=tf.summary.FileWriter(r"E:\tf")
  10. train_writer.add_run_metadata(run_metadata, 'step%03d'%i)

这样,再打开tensorboard就可以在node信息里面看到时间和空间消耗了。

监控指标可视化

在机器学习过程中监控训练集和验证集上的准确率变化对于整个模型很有帮助,本节将会介绍如何把这些数据可视化。

直方图(histogram)

tf.summary.histogram()会记录tensor中元素的取值分布,返回值为Summary protocol buffer,将这个Summary写入log之后,可以在tensorboard中的HISTOGRAM栏中看到结果。 
注意:tf.summary.histogram()不会立即执行,而是会在sess.run之后才会真正执行。但是有时会有太多的数据生成语句,tensorflow提供了tf.summary.merge_all()用来将所有的summary()函数执行一次。

图像

tf.summary.image()

windows平台tensorboard的配置及使用的更多相关文章

  1. 如何在Windows平台下安装配置Memcached

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...

  2. Django 1.6在Windows平台下的配置

    Django 1.6 在Windows平台下的配置 前言 最近两天研究了下Django1.6在Windows平台中的配置安装,服务器采用Apache.期间遇到过许多新手所遇到的各种问题,也算是一种宝贵 ...

  3. puppet(一种Linux、Unix、windows平台的集中配置管理系统)

    puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资 ...

  4. windows平台mongoDB安装配置

    一.首先安装mongodb 1.官网下载mongoDB:http://www.mongodb.org/downloads,选择windows平台.安装时,一路next就可以了.我安装在了F:\mong ...

  5. Windows平台安装及配置Hadoop(不借助cygwin)

    由于项目需要,我在VMware上装了几个虚拟机Windows server 2012 R2,并要搭建Hadoop集群.刚刚入门hadoop,一头雾水,然后开始搜各种教程,首先是选用cygwin进行安装 ...

  6. Windows平台 python环境配置

    下载python:https://www.python.org/downloads/windows/,一般就下载 executable installer,x86 表示是 32 位机子的,x86-64 ...

  7. OpenCV CMake VSCode Windows 平台下运行配置及其解决方案

    前言 最近在搞 计算机图形学相关的东西,有个 demo 用到了 opencv,找了 google 一圈,发现国内都没有比较好的配置和解决的办法,要不就是几年前的教程,最近正好踩坑完,其中经历了自己编译 ...

  8. 《高级软件测试》Windows平台Jira的配置

    昨天完成了Jira的下载,很开心地去睡觉等明天天亮秒配环境愉快进行使用,撰写文档,开始徜徉于软件管理测试实践,早日走向代码巅峰. 我们把安装和配置的过程来走一遍. 安装完成汤姆猫长这样子: 安装Jir ...

  9. laravel + php cgi + nginx在windows平台下的配置

    1.d:\xampp\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\xampp\php\php.ini 2.nginx conf配置如下: #user nobody; ...

随机推荐

  1. Hive三种不同的数据导出的方式

    转自:http://blog.chinaunix.net/uid-27177626-id-4653808.html Hive三种不同的数据导出的方式,根据导出的地方不一样,将这些方法分为三类:(1)导 ...

  2. TF Boys (TensorFlow Boys ) 养成记(三): TensorFlow 变量共享

    上次说到了 TensorFlow 从文件读取数据,这次我们来谈一谈变量共享的问题. 为什么要共享变量?我举个简单的例子:例如,当我们研究生成对抗网络GAN的时候,判别器的任务是,如果接收到的是生成器生 ...

  3. php -- 设计模式 之 单例模式

    实现单例的条件:三私一公 三私:私有化构造方法:不让外部创建对象 私有化克隆方法:不让外部克隆对象 私有静态属性:保存已经产生的对象 一公:公共静态方法:在类内部创建对象 实例: <?php / ...

  4. HttpServletRequest和HttpServletResponse简介

    http://blog.csdn.net/tong_xinglong/article/details/12972819

  5. Angular 组件与模板 - 属性指令

    指令概览 在 Angular 中有三种类型的指令: 组件 — 拥有模板的指令 结构型指令 — 通过添加和移除 DOM 元素改变 DOM 布局的指令 属性型指令 — 改变元素.组件或其它指令的外观和行为 ...

  6. Sql创建约束

    add constraint pk_studentno primary key(StudentNo) //主键 add constraint fk_student_grade_gradeid fore ...

  7. 使用 composer 下载更新卸载类库

    前言:要下载什么包,可以去 https://packagist.org/ 找一下包名及其版本信息 1)配置composer.json文件,并使用composer install 命令下载类包,下面以下 ...

  8. 【黑金原创教程】【Modelsim】【第五章】仿真就是人生

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  9. 【BZOJ1009】[HNOI2008]GT考试 next数组+矩阵乘法

    [BZOJ1009][HNOI2008]GT考试 Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的 ...

  10. mysql用sql创建表完整实例

    create table user_login_latest( id int(11) unsigned NOT NULL AUTO_INCREMENT, user_id int(11) not nul ...