TensorBoard

17 Mar 2025 | 6 分钟阅读

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

TensorBoard 的重要特征是,它包括对参数和任何图表的细节进行垂直对齐的各种统计数据的视图。

深度神经网络包含多达 36,000 个节点。 TensorFlow 帮助将这些节点折叠成高级块并突出显示相同的结构。这允许更好地分析图表,重点关注计算图的主要部分。

TensorBoard

据说 TensorBoard 可视化非常具有交互性,用户可以平移、缩放和展开节点以显示详细信息。

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

TensorBoard

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

请看下图

TensorBoard

神经网络决定如何连接不同的“神经元”以及在模型预测结果之前有多少层。一旦我们定义了架构,我们不仅需要训练模型,还需要指标来计算预测的准确性。该指标被称为损失函数。 目标是作为损失函数。

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

TensorBoard 位于此 URL:https://:6006

TensorBoard 中的仪表盘类型

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 保存的文本专家,包括超链接、列表和表格等功能,都受到支持。

TensorBoard

TensorBoard 的不同视图

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

  • 标量- 可视化标量值,例如分类准确率。
  • 图表- 可视化我们模型的计算图,例如神经网络模型。
  • 分布- 可视化数据随时间的变化,例如神经网络的权重。
  • 直方图- 一个更高级的分布视图,显示了 3 维视角的分布。
  • 投影仪- 它可以用来可视化词嵌入(也就是说,词嵌入是捕捉词的语义关系的词的数值表示)
  • 图像- 可视化图像数据
  • 音频- 可视化音频数据
  • 文本- 可视化文本数据

如何使用 TensorBoard?

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

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

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

我们创建数据。它是一个包含 10000 行和列的数组。

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

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

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

输出

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 将信息写入模型目录中。

输出

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 用户

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