个性化阅读
专注于IT技术分析

TensorFlow可视化:TensorBoard的介绍和使用

本文概述

TensorFlow是一种可视化工具, 称为TensorBoard。它用于分析数据流图并用于理解机器学习模型。 TensorBoard是用于可视化图形的界面, 也是用于理解, 调试和优化模型的许多工具。

TensorBoard的重要功能是, 它包括有关垂直对齐方式中任何图形的参数和详细信息的不同类型统计信息的视图。

深度神经网络包括多达36, 000个节点。 TensorFlow帮助将这些节点高度折叠, 从而将这些节点折叠为高级块, 并突出显示相同的结构。这样可以更好地分析图形, 着重于计算图形的主要部分。

TensorFlow可视化:TensorBoard的介绍和使用

TensorBoard可视化据说是非常互动的, 用户可以在其中平移, 缩放和展开节点以显示细节。

以下是给定的图表表示, 显示了TensorBoard可视化的完整工作-

TensorFlow可视化:TensorBoard的介绍和使用

该算法将节点折叠为高级块, 并突出显示具有相同结构的特定组, 从而将高级节点分开。创建的TensorBoard很有用, 并且对于调整机器学习模型同样重要。该可视化工具是为配置日志文件设计的。

看下面的图片:

TensorFlow可视化:TensorBoard的介绍和使用

神经网络决定如何连接不同的”神经元”, 以及模型可以预测结果之前的层数。定义架构后, 我们不仅需要训练模型, 还需要度量指标以计算预测的准确性。此度量标准称为损失函数。目标是作为损失函数。

TensorBoard是可视化指标并突出显示潜在问题的好工具。神经网络可能需要数小时至数周才能找到解决方案。 TensorBoard经常更新参数。

TensorBoard位于此URL中:http:// localhost:6006

TensorBoard中DashBoard的类型

TensorFlow可视化:TensorBoard的介绍和使用

1.标量仪表板

它用于可视化时间相关的统计信息;例如, 我们可能希望查看学习率或损失函数的变化。

2.直方图

TensorBoard中的直方图仪表板显示Tensor的统计分布如何随时间变化。它通过tf.summary.histogram可视化记录的数据。

3.分发仪表板

它显示了tf.summary.histogram的一些高级用法。它显示了发行版中的一些高级启动。图表上的每条线都提示了数据分布百分比。

4.图像仪表板

这显示了通过tf.summary.image保存的png。行对应于标签, 列对应于运行。通过使用TensorBoard的图像仪表板, 我们可以嵌入自定义可视化文件。

5.音频仪表板

这是一个出色的工具, 可嵌入可播放的音频小部件, 以存储通过tf.summary.audio保存的音频。仪表板始终为每个标签嵌入最新的音频。

6.图资源管理器

它主要用于启用TensorFlow模型的检查。

7.投影仪

TensorFlow中的嵌入式投影仪用于多维数据。嵌入式投影仪从检查点文件中读取数据, 并且可能已设置了相应的数据, 例如词汇表文件。

8.文字仪表板

文本仪表板显示了通过tf.summary.text。保存的文本专家, 包括超链接, 列表和表格等功能, 均受支持。

TensorFlow可视化:TensorBoard的介绍和使用

TensorBoard的不同视图

不同的视图采用不同格式的输入, 并以不同的方式显示它们。我们可以在橙色顶部栏上更改它们。

  • 标量-可视化标量值, 例如分类精度。
  • Graph-可视化我们模型的计算图, 例如神经网络模型。
  • 分布-可视化数据随时间变化的方式, 例如神经网络的权重。
  • 直方图-分布的更高级视图, 显示了一个分布, 该分布以3维透视图显示了分布。
  • 投影仪-可用于可视化单词嵌入(即, 单词嵌入是捕获其语义关系的单词的数字表示形式)
  • 图像-图像数据可视化
  • 音频-可视化音频数据
  • 文本-​​可视化文本数据

如何使用TensorBoard?

我们将学习如何在MacOS和命令行Windows的终端上打开TensorBoard。

该代码将在以后的教程中进行解释。这里的重点是TensorBoard。

首先, 我们需要导入将在培训期间使用的库。

## Import the library
import tensorflow as tf
import numpy as np

我们创建数据。它是10000行和列的数组

X_train = (np.random.sample((10000, 5)))
y_train =  (np.random.sample((10000, 1)))
X_train.shape

下面的代码转换数据并创建模型。

请注意, 学习率等于0.1。如果我们将此速率更改为更高的值, 则该模型将找不到解决方案。这就是上图左侧发生的情况。

在下面的示例中, 我们将模型存储在工作目录中, 即我们存储笔记本或python文件的位置。在路径内, TensorFlow创建一个名为train的文件夹, 其子文件夹名为linreg。

feature_columns = [
      tf.feature_column.numeric_column('x', shape=X_train.shape[1:])]
DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns, # Indicate where to store the log file    
     model_dir='train', hidden_units=[500, 300], optimizer=tf.train.ProximalAdagradOptimizer(      
          learning_rate=0.1, l1_regularization_strength=0.001    
      )
)

输出

INFO:tensorflow:Using the default configuration.
INFO:tensorflow:Using config:{'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': 
           
            , '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}

最后一步是训练模型。在训练期间, TensorFlow将信息写入模型目录中。

# Train the estimator
train_input = tf.estimator.inputs.numpy_input_fn(    
     x={"x": X_train}, y=y_train, shuffle=False, num_epochs=None)
DNN_reg.train(train_input, steps=3000)

输出

INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow: Graph was finalized.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt.
INFO:tensorflow:loss = 40.060104, step = 1
INFO:tensorflow:global_step/sec: 197.061
INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec)
INFO:tensorflow:global_step/sec: 172.487
INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec)
INFO:tensorflow:global_step/sec: 193.295
INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec)
INFO:tensorflow:global_step/sec: 175.378
INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec)
INFO:tensorflow:global_step/sec: 209.737
INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec)
INFO:tensorflow:global_step/sec: 171.646
INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec)
INFO:tensorflow:global_step/sec: 192.269
INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec)
INFO:tensorflow:global_step/sec: 198.264
INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec)
INFO:tensorflow:global_step/sec: 226.842
INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec)
INFO:tensorflow:global_step/sec: 152.929
INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec)
INFO:tensorflow:global_step/sec: 166.745
INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec)
INFO:tensorflow:global_step/sec: 161.854
INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec)
INFO:tensorflow:global_step/sec: 179.074
INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec)
INFO:tensorflow:global_step/sec: 202.776
INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec)
INFO:tensorflow:global_step/sec: 144.161
INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec)
INFO:tensorflow:global_step/sec: 154.144
INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec)
INFO:tensorflow:global_step/sec: 151.094
INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec)
INFO:tensorflow:global_step/sec: 193.644
INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec)
INFO:tensorflow:global_step/sec: 189.707
INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec)
INFO:tensorflow:global_step/sec: 176.423
INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec)
INFO:tensorflow:global_step/sec: 213.066
INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec)
INFO:tensorflow:global_step/sec: 220.975
INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec)
INFO:tensorflow:global_step/sec: 219.289
INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec)
INFO:tensorflow:global_step/sec: 215.123
INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec)
INFO:tensorflow:global_step/sec: 175.65
INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec)
INFO:tensorflow:global_step/sec: 206.962
INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec)
INFO:tensorflow:global_step/sec: 229.627
INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec)
INFO:tensorflow:global_step/sec: 195.792
INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec)
INFO:tensorflow:global_step/sec: 176.803
INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec)
INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt.
INFO:tensorflow: Loss for the final step: 10.73032. 

<tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>

对于Windows用户

cd C:\Users\Admin\Anaconda3
activate hello-tf

要启动TensorBoard, 我们可以使用以下代码

tensorboard --logdir=.\train\linreg

赞(0) 打赏
未经允许不得转载:srcmini » TensorFlow可视化:TensorBoard的介绍和使用
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏