TensorBoard 计算图的可视化实现

简介

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/.

效果截图

图3-1 logdir中的文件

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

figure 3-3 计算图的可视化

给出一些建议:

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

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

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

(0)

相关推荐

  • 解决Tensorboard可视化错误:不显示数据 No scalar data was found

    学习Tensorboard过程中,按照书本中操作,结果在浏览器中报错:No scalar data was found. 通过百度查询,自己琢磨,发现有个小问题觉得写出来供像我这样的菜鸟注意. 我的环境是:window,Anaconda2底下安装python2.7,又加装了tensorfow环境和Python3.5 1.使用Jupyter Note book写代码注意 相对路径: writer = tf.summary.FileWriter('logs/',sess.graph),注意单引号 绝

  • TensorBoard 计算图的查看方式

    Tensorflow计算图的展示: 1. 设置生成计算图,运行程序会自动生成"logs"日志文件 2. 在Terminal下输入指令 如果当前路径为程序日志路径(即"logs"所在路径),直接输入指令 tensorboard --logdir = logs 如果当前路径不是程序日志路径(即"logs"所在路径),可以 cd "日志的绝对路径"进入"logs"所在的路径,或者 直接输入指令 tensorboa

  • tensorboard 可以显示graph,却不能显示scalar的解决方式

    今天照着样例搞了下tensorboard,发现自己无法显示scalar,而graph却可以正常显示. 出现这种情况就说明,tensorfboard已经正确读取了指定目录下的数据,只是数据里没有保存有scalar数据. 这很奇怪,我反反复复检查了好多遍代码都觉得没问题. 最好查了一个下午,也搞了一个下午,终于被我发现问题所在.我把下面这代码放错位置了. summary_op=tf.summary.merge_all() 原位置如下: 我把summary_op给放再with tf.Session()

  • 使用Bazel编译TensorBoard教程

    1.TensorBoard Tensorboard是一套用于查看和理解TensorFlow运行情况的工具,有时可能现有的功能并不能满足我们当前的需求,那么则需要我们对Tensorboard进行定制化开发,定制化的第一步就是编译源码. TensorBoard已在github上开源,我们可以通过https://github.com/tensorflow/tensorboard获取到完整的代码.包括TensorBoard在内,Google的很多项目都是使用Bazel进行编译的,接下来我们进行相关环境的

  • 基于TensorBoard中graph模块图结构分析

    在上一篇文章中,我们介绍了如何使用源码对TensorBoard进行编译教程,没有定制需求的可以直接使用pip进行安装. TensorBoard中的graph是一种计算图,里面的点用于表示Tensor本身或者运算符,图中的边则代表Tensor的流动或者控制关系. 本文主要从代码的层面,分析graph的数据来源与结构. 一般来说,我们在启动TensorBoard的时候会使用--logdir参数配置文件路径(或者设置数据库位置),这些日志文件为TensorBoard提供了数据.于是我们打开一个日志文件

  • TensorFlow命名空间和TensorBoard图节点实例

    一,命名空间函数 tf.variable_scope tf.name_scope 先以下面的代码说明两者的区别 # 命名空间管理函数 ''' 说明tf.variable_scope和tf.name_scope的区别 ''' def manage_namespace(): with tf.variable_scope("foo"): # 在命名空间foo下获取变量"bar",于是得到的变量名称为"foo/bar". a = tf.get_varia

  • 对Tensorflow中tensorboard日志的生成与显示详解

    TensorBoard是TensorFlow下的一个可视化的工具,能够帮助我们在训练大规模神经网络过程中出现的复杂且不好理解的运算.TensorBoard能展示你训练过程中绘制的图像.网络结构等. 1. 构建简单的TensorBoard日志输出 import tensorflow as tf input1 = tf.constant([1.0, 2.0, 3.0], name="input1") input2 = tf.Variable(tf.random_uniform([3], n

  • 解决Tensorboard 不显示计算图graph的问题

    问 题:直接载入TensorBoard 总是提示No dashboard are active for current data set.根本不显示计算图. 原 因:文件路径问题,TensorBoard 未读取到文件数据,自然无法显示结果. 解决方法:设置文件路径. 程序运行完后在cmd 运行栏输入TensorBoard –logdir='graph文件所在的文件夹的路径'.为简化输入路径,可直接在该文件夹所在的文件夹中启动cmd. 以上这篇解决Tensorboard 不显示计算图graph的问

  • TensorBoard 计算图的可视化实现

    简介 tensorflow 配套的可视化工具, 将你的计算图画出来. 当训练一个巨大的网络的时候, 计算图既复杂又令人困惑. TensorBoard 提供了一系列的组件, 可以看到 learning rate 的变化, 看到 objective function 的变化. tfboard 读取 tf 运行时你记下的 events files, 来进行可视化. 这些 events files 包含了你记下的 summary data, 它是 protobuffer 格式, 并非文本文件. 推荐使用

  • 入门tensorflow教程之TensorBoard可视化模型训练

    TensorBoard是用于可视化图形 和其他工具以理解.调试和优化模型的界面. 它是一种为机器学习工作流提供测量和可视化的工具. 它有助于跟踪损失和准确性.模型图可视化.低维空间中的项目嵌入等指标. 下面,我们使用MNIST 数据的图像分类模型 ,将首先导入所需的库并加载数据集. 模型的建立使用最简单的顺序模型 import tensorflow as tf (X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_

  • 在Pytorch中简单使用tensorboard

    一.tensorboard的简要介绍 TensorBoard是一个独立的包(不是pytorch中的),这个包的作用就是可视化您模型中的各种参数和结果. 下面是安装: pip install tensorboard 安装 TensorBoard 后,这些实用程序使您可以将 PyTorch 模型和指标记录到目录中,以便在 TensorBoard UI 中进行可视化. PyTorch 模型和张量以及 Caffe2 网络和 Blob 均支持标量,图像,直方图,图形和嵌入可视化. SummaryWrite

  • Tensorflow的可视化工具Tensorboard的初步使用详解

    当使用Tensorflow训练大量深层的神经网络时,我们希望去跟踪神经网络的整个训练过程中的信息,比如迭代的过程中每一层参数是如何变化与分布的,比如每次循环参数更新后模型在测试集与训练集上的准确率是如何的,比如损失值的变化情况,等等.如果能在训练的过程中将一些信息加以记录并可视化得表现出来,是不是对我们探索模型有更深的帮助与理解呢? Tensorflow官方推出了可视化工具Tensorboard,可以帮助我们实现以上功能,它可以将模型训练过程中的各种数据汇总起来存在自定义的路径与日志文件中,然后

  • PyTorch 可视化工具TensorBoard和Visdom

    目录 一.TensorBoard 二.Visdom 一.TensorBoard TensorBoard 一般都是作为 TensorFlow 的可视化工具,与 TensorFlow 深度集成,它能够展现 TensorFlow 的网络计算图,绘制图像生成的定量指标图以及附加数据等. 此外,TensorBoard 也是一个独立工具,在 PyTorch 中也可使用它进行可视化. 1.安装: pip install tensorboard 2.启动: tensorboard --logdir="日志目录&

  • PyTorch 可视化工具TensorBoard和Visdom

    目录 一.TensorBoard 二.Visdom 一.TensorBoard TensorBoard 一般都是作为 TensorFlow 的可视化工具,与 TensorFlow 深度集成,它能够展现 TensorFlow 的网络计算图,绘制图像生成的定量指标图以及附加数据等. 此外,TensorBoard 也是一个独立工具,在 PyTorch 中也可使用它进行可视化. 1.安装: pip install tensorboard 2.启动: tensorboard --logdir="日志目录&

  • Tensorflow 自带可视化Tensorboard使用方法(附项目代码)

    Tensorboard: 如何更直观的观察数据在神经网络中的变化,或是已经构建的神经网络的结构.上一篇文章说到,可以使用matplotlib第三方可视化,来进行一定程度上的可视化.然而Tensorflow也自带了可视化模块Tensorboard,并且能更直观的看见整个神经网络的结构. 上面的结构图甚至可以展开,变成: 使用: 结构图: with tensorflow .name_scope(layer_name): 直接使用以上代码生成一个带可展开符号的一个域,并且支持嵌套操作: with tf

  • 使用tensorboard可视化loss和acc的实例

    1.用try...except...避免因版本不同出现导入错误问题 try: image_summary = tf.image_summary scalar_summary = tf.scalar_summary histogram_summary = tf.histogram_summary merge_summary = tf.merge_summary SummaryWriter = tf.train.SummaryWriter except: image_summary = tf.sum

随机推荐