TensorBoard 计算图的可视化实现


Posted in Python onFebruary 15, 2020

简介

tensorflow 配套的可视化工具, 将你的计算图画出来.

当训练一个巨大的网络的时候, 计算图既复杂又令人困惑. TensorBoard 提供了一系列的组件, 可以看到 learning rate 的变化, 看到 objective function 的变化.

tfboard 读取 tf 运行时你记下的 events files, 来进行可视化. 这些 events files 包含了你记下的 summary data, 它是 protobuffer 格式, 并非文本文件.

推荐使用 Estimator 风格.

类与方法

在 tf.estimator 框架下, 可以直接用 tf.summary.scalar() 这样的方法, 不必显式地创建writer并调用writer.add_summary()

tensorflow.python.summary.writer.writer.FileWriter(SummaryToEventTransformer)

类.

__init__(self, logdir, graph=None,...)

构造函数, Creates a FileWriter and an event file.

tensorflow.python.summary.summary

模块.

scalar(name, tensor, ..) Outputs a Summary protocol buffer containing a single scalar value.

histogram(name, values, collections=None, family=None) Adding a histogram summary makes it possible to visualize your data's distribution in TensorBoard.

image

作图, 对于grap-scale 图来讲, 0表示全黑, 255表示全白.

api, image(name, tensor, max_outputs=3, collections=None, family=None) Outputs a Summary protocol buffer with images. images are built from tensor which must be 4-D with shape [batch_size, height, width, channels] and where channels can be:

1.1-tensor is interpreted as Grayscale.

2.3-tensor is interpreted as RGB.

3.4-tensor is interpreted as RGBA.

tensor为float: 此时, tf会内部作正规化处理, 转换到[0,255](解析 tf_events 即可验证), float通常对应于 softm 之后的概率, 值域为[0,1].

tensor为uint8, 保持不变, tf 不作任何内部转换.

attention 可视化, attention 的权重会作 soft-max 处理, 通常img显示的效果是, 一行看下来有深有浅, 颜色越白weight越大. 但有时后tf内部正规化不符合预期, 出现一行全白的情况, 稳妥起见自己转unit类型.

打开web页面

在命令行中 敲tensorboard --logdir=D:\tf_models\iris, 根据提示打开URL即可.

比如我的为http://yichu-amd:6006/.

效果截图

TensorBoard 计算图的可视化实现

图3-1 logdir中的文件

TensorBoard 计算图的可视化实现

图3-2 炫酷的可视化效果

TensorBoard 计算图的可视化实现

figure 3-3 计算图的可视化

给出一些建议:

网络也是分模块,有结构的, 合理使用 scope 可以让计算图清晰优雅.

有些tensor来自dataset, 有些来自api中op操作的输出, 本身没有明确的名字, 此时用x=tf.identity(x,'name') 给tensor起名字, 便于计算图中定位. 图3-3 中的 memory 就是 encoder 的输出的tensor.

以上这篇TensorBoard 计算图的可视化实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解在Python程序中使用Cookie的教程
Apr 30 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
Python+Django搭建自己的blog网站
Mar 13 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 Python
TensorBoard 计算图的查看方式
Feb 15 #Python
pycharm 更改创建文件默认路径的操作
Feb 15 #Python
PyCharm刷新项目(文件)目录的实现
Feb 14 #Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 #Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 #Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 #Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 #Python
You might like
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
2013/06/24 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php正则修正符用法实例详解
2016/12/29 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
详解Js中的模块化是如何实现的
2017/10/18 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2016新年慰问信范文
2015/03/25 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python