TensorFlow学习5:TensorBoard可视化

环境:win10;tensorboard1.7.0

TensorBoard打开步骤

1.首先创建一个简单的网络:

import tensorflow as tf
import numpy as np

# 创建一个神经网络层
def add_layer(input, in_size, out_size, activation_function = None):
    """
    :param input:
        神经网络层的输入
    :param in_zize:
        输入数据的大小
    :param out_size:
        输出数据的大小
    :param activation_function:
        神经网络**函数,默认没有
    """
    with tf.name_scope('layer'):
        with tf.name_scope('weights'):
            # 定义神经网络的初始化权重
            Weights = tf.Variable(tf.random_normal([in_size, out_size]))
        with tf.name_scope('biases'):
            # 定义神经网络的偏置
            biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
        with tf.name_scope('W_mul_x_plus_b'):
            # 计算w*x+b
            W_mul_x_plus_b = tf.matmul(input, Weights) + biases
        # 根据是否有**函数进行处理
        if activation_function is None:
            output = W_mul_x_plus_b
        else:
            output = activation_function(W_mul_x_plus_b)

        return output

# 创建一个具有输入层、隐藏层、输出层的三层神经网络,神经元个数分别为1,10,1
# 创建只有一个特征的输入数据,数据数目为300,输入层
x_data = np.linspace(-1, 1, 300)[:, np.newaxis]
# 创建数据中的噪声
noise = np.random.normal(0, 0.05, x_data.shape)
# 创建输入数据对应的输出
y_data = np.square(x_data) + 1 + noise

with tf.name_scope('input'):
    # 定义输入数据,None是样本数目,表示多少输入数据都行,1是输入数据的特征数目
    xs = tf.placeholder(tf.float32, [None, 1], name = 'x_input')
    # 定义输出数据,与xs同理
    ys = tf.placeholder(tf.float32, [None, 1], name = 'y_input')

# 定义一个隐藏层
hidden_layer = add_layer(xs, 1, 10, activation_function = tf.nn.relu)
# 定义输出层
prediction = add_layer(hidden_layer, 10, 1, activation_function = None)

# 求解神经网络参数

# 定义损失函数
with tf.name_scope('loss'):
    loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices = [1]))
# 定义训练过程
with tf.name_scope('train'):
    train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
# 变量初始化
init = tf.global_variables_initializer()
# 定义Session
sess = tf.Session()
# 将网络结构图写到文件中
writer = tf.summary.FileWriter('logs/', sess.graph)
# 执行初始化工作
sess.run(init)

2.找到你写入log文件的地址



3.打开终端键入:tensorboard --logdir=C:\Users\zhx93\Documents\py\logs

后面为log文件的地址

你将得到:



4.将上面给出的地址在浏览器中打开即可



TensorBoard的使用

TensorBoard是TensorFlow自带的可视化结构管理和调试优化网络的工具。在我们学习深度学习网络框架时,我们需要更直观的看到各层网络结构和参数,也可以更好的进行调试优化网络。TensorBoard可以实现网络结构的显示,也可以进行显示训练及测试过程中各层参数的变化情况。

我们先看下TensorBoard的大致界面。


我们可以看到顶部有几个功能分类:SCALARS、IMAGES、AUDIO、GRAPHS等。

1.SCALARS是训练参数统计显示,可以看到整个训练过程中,各个参数的变换情况。

官方英文翻译:

TensorBoard的标量仪表板可视化随时间变化的标量统计; 例如,您可能需要跟踪模型的损失或学习率。 如关键概念所述,您可以比较多个运行,数据按标签组织。 折线图具有以下交互作用:

  • 点击每个图表左下角的小蓝色图标将展开图表
  • 在图表上拖动矩形区域将放大
  • 双击图表将缩小
  • 鼠标在图表上会产生十字准线,数据值记录在左侧的运行选择器中。

此外,您可以通过在仪表板左上角的框中编写正则表达式来创建新的文件夹来组织标签。



2. IMAGES输入和输出标签。

官方翻译:

图像仪表板可以显示通过tf.image_summary保存的png。 设置仪表板,使每行对应一个不同的标签,每列对应一个运行。 由于图像显示板支持任意的png,您可以使用它将自定义可视化(例如,matplotlib散点图)嵌入到TensorBoard中。 此仪表板总是显示每个标签的最新图像。

3. AUDIO官方英文翻译:

音频仪表板可以嵌入通过tf.audio_summary保存的音频的可播放音频小部件。 设置仪表板,使每行对应一个不同的标签,每列对应一个运行。 此仪表板将为每个标签嵌入最新的音频。

4. GRAPH是网络结构显示。

官方英文翻译:

图形浏览器可以显示TensorBoard图形,从而可以检查TensorFlow模型。 为了最好地利用图形可视化程序,您应该使用名称范围来对图形中的op进行分层分组,否则图形可能难以破译。 有关更多信息,包括示例,请参阅图形可视化程序教程。

5. HISTOGRAM是训练过程参数分布情况显示。

官方英文翻译:

直方图仪表板用于可视化Tensor的统计分布随时间变化。它可视化通过tf.histogram_summary记录的数据。现在,它的名字有点不正确,因为它不显示直方图;相反,它显示了一些关于分配的高级统计数据。图表上的每一行表示数据分布中的百分位数:例如,底线显示了最小值随时间变化的方式,中间的行显示了中位数的变化。从上到下,行具有以下含义:[最大,93%,84%,69%,50%,31%,16%,7%,最低]。
这些百分位数也可以视为正态分布的标准偏差边界:[最大值,μ+1.5σ,μ+σ,μ+0.5σ,μ,μ-0.5σ,μ-σ,μ-1.5σ,最小值]使得从内到外读取的着色区域分别具有宽度[σ,2σ,3σ]。
这种直方图可视化有点奇怪,不能有意义地表示多模态分布。我们正在研究一个真正的直方图替换。

参考:https://github.com/tensorflow/tensorflow/tree/r0.9/tensorflow/tensorboard

https://blog.csdn.net/jay100500/article/details/73006672


版权声明:本文为Softdiamonds原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Softdiamonds/article/details/80378563

智能推荐

TensorFlow学习笔记(8) Tensorboard可视化

文章目录 Tensorboard简介 TensorFlow计算图可视化 命名空间与Tensorboard图上节点 节点信息 监控指标可视化 Tensorboard简介 Tensorboard是Tensorflow的可视化工具,通过tf程序输出的日志文件来可视化程序的运行状态。下面的代码完成了Tensorboard日志输出的功能。 然后在命令行中输入tensorboard --logdir tens...

TensorFlow学习笔记——利用tensorboard进行可视化

0 导读 作为研究狗,学界普遍认为pytorch会比tensorflow代码简介,其实这些都只不过是工具罢了,好好啃通核心思想,应该大同小异。回到tensorboard,验证一个算法的效果好坏以及优化的潜能,其中一个常见的方法是,我们必须得关注loss的收敛情况,当面对大量的loss、acc时,单纯的文本数字并不能直观决策出模型的优劣。因此,我们非常有必要对loss、acc等参数绘图。然而,Ten...

TensorFlow2.0学习笔记---tensorboard可视化

1.实时查看参数变化情况 1.1 首先在pacharm程序文件夹里创建一个空文件夹用来存放tensorboard的记录文件,并在代码中实例化一个记录器: 注意此段代码要放在训练过程之前,括号中的引号内要放记录文件的全地址,地址前面加r 1.2 接下来,当需要记录训练过程中的参数时,通过 with 语句指定希望使用的记录器,并对需要记录的参数(一般是 scalar)运行 tf.summar...

Tensorflow学习笔记7-可视化tensorboard

可视化tensorboard 效果 搭建图纸 最终的路径 打开图纸 完整代码 效果 学会用 Tensorflow 自带的 tensorboard 去可视化我们所建造出来的神经网络是一个很好的学习理解方式. 用最直观的流程图告诉你你的神经网络是长怎样,有助于你发现编程中间的问题和疑问. 效果 这次我们会介绍如何可视化神经网络。因为很多时候我们都是做好了一个神经网络,但是没有一个图像可以展示给大家看。...

用TensorBoard可视化TensorFlow图形

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 1. 介绍 在 TensorBoard 中不会自动显示关于其执行的计算图和各种模型指标。如果我们想在 TensorBoard 中显示相关的计算图和各种指标,那么我们需要向原来代码中添加一些额外的函数代码,然后 TensorBoard 会将于计算图相关的事件写入到特定文件夹中。然后我们在终端中,用命令指向...

猜你喜欢

[TensorFlow笔记] TensorBoard可视化

多元线性回归(数据是经典的Boston房价预测): 使用TensorFlow的常规步骤:准备数据 -> 构建计算图 -> 喂入数据 -> 得到结果 可视化计算图 只需增加一行代码: 再次运行代码,就会在D:\TB_DIR目录下看到一个以events.out.tfevents.*开头的文件。 然后在命令行下cd到D:\TB_DIR目录,输入: 然后在Chrome浏览器打开地址htt...

Tensorflow可视化功能--tensorboard

初步实现 tensorflow自带有非常强大的可视化功能tensorboard 运行程序生成事件文件 命令行运行 如果/Users/lawa/PycharmProjects/tens/tmp/summary里有多个事件文件,默认选择最新的一个 界面展示(不同的版本可能布局不一样) SCALARS:展示训练过程中的准确率、损失值、权重/偏置的变化情况,一般是单个数值 IMAGES:展示训练过程中及记...

Tensorflow2——tensorboard可视化

下面通过手写数字数据集来介绍如何使用tensorboard可视化 可以两种方法,一种是再notebook里,还有一种是网页打开。 jupyter notebook 调试 利用 这个logs指的是保存的文件夹的路径 或者是用网页版打开 定位到logs文件夹 输入命令:tensorboard --logdir logs 复制这个网址在浏览器打开...

Tensorflow基础:TensorBoard可视化

为了更好的管理、调试和优化神经网络的训练过程,Tensorflow提供了一个可视化工具TensorBoard。TensorBoard可以有效地展示Tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的图像等信息。 TensorBoard简介 TensorBoard是Tensorflow的可视化工具,它可以通过Tensorflow程序运行过程中输出的日志文件可视化Te...

冒泡排序,及改进方式,性能优化400%>>>附图解加源码

首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...