Logo
Section 1 / 6

配置 TensorBoard

学习如何在 JAX 和 Flax 中使用 TensorBoard 来训练模型。

导入

配置 TensorBoard

学习如何在 JAX 和 Flax 中使用 TensorBoard 来训练模型。

跟踪机器学习实验有助于轻松理解并可视化模型的性能,同时也能帮助发现网络中的潜在问题。例如,通过观察训练和验证曲线,我们可以快速识别过拟合现象。这些图表可以使用我们熟悉的绘图工具包(如 Matplotlib)绘制,但也可以采用更先进的工具,比如 TensorBoard。

...
...

TensorBoard 是一个开源库,提供用于机器学习实验跟踪的一系列工具。我们可以使用 TensorBoard 实现以下功能:

  • 跟踪和可视化模型评估指标,例如准确率。
  • 记录图像数据。
  • 可视化超参数调优过程。
  • 投影嵌入向量,例如自然语言处理中的词嵌入(word embedding)。
  • 可视化模型权重和偏置项的直方图。
  • 绘制模型结构图。
  • 分析网络性能。

TensorBoard 支持多种主流机器学习库,包括 XGBoost、JAX、Flax 和 PyTorch。

本节课将重点介绍如何在使用 JAX 和 Flax 构建神经网络时集成 TensorBoard。

在 Jupyter Notebook 和 Google Colaboratory 中使用 TensorBoard

首先,在运行环境中加载 TensorBoard 扩展,通常是在 Google Colaboratory 或本地 Jupyter Notebook 中执行:

1%load_ext tensorboard

接着,指定用于存储日志信息的目录:

1log_folder = "runs"

启动 TensorBoard

在 Notebook 环境中,可通过 tensorboard 魔法命令启动 TensorBoard,并指定日志目录 logdir:

1%tensorboard --logdir={log_folder}

TensorBoard 仪表板

TensorBoard 提供多个仪表板,用于展示不同类型的信息:

  • Scalars 仪表板:用于跟踪数值型指标,例如每个训练周期的损失和准确率。也可用来监控其他标量值,如训练速度或学习率的变化。
...
TensorBoard 的 Scalars 仪表板
  • Graphs 仪表板:用于展示模型的可视化结构。例如,可用于检查网络的整体架构。
...
TensorBoard 的 Graphs 仪表板
  • Distributions(分布)和 Histograms(直方图)仪表板:显示张量随时间变化的分布情况,常用于监控网络中权重和偏置项的分布状态。
...
TensorBoard 的 Distributions 仪表板
...
TensorBoard 的 Histograms 仪表板
  • Images 仪表板:展示已记录到 TensorBoard 中的图像数据。
...
TensorBoard 的 Images 仪表板
  • HParams 仪表板:用于可视化超参数优化过程,帮助识别最优的网络参数组合。
...
TensorBoard 的 HParams 仪表板
  • Embedding Projector(嵌入投影器):用于可视化低维空间中的嵌入表示,例如文本嵌入。
...
TensorBoard 的 Embedding Projector
  • What-If Tool 仪表板:帮助分析模型性能,支持对不同数据子集进行公平性评估。
...
TensorBoard 的 What-If Tool 仪表板
  • TensorFlow Profiler:监控模型训练过程,展示 CPU 和 GPU 上的运行事件,并基于采集的数据提供性能优化建议。此外,还可用于调试输入流水线中的性能瓶颈。
...
TensorBoard 的 Profile 仪表板

图像分类与分布式训练

如何在 Flax 中使用 TensorBoard