SuperAPI AI 工具集

mlops-tensorboard

数据与分析

查看项目

更新于 11-04 01:42

技能介绍

用途

TensorBoard 是 Google 的机器学习可视化工具包。当需要可视化训练指标(如损失和准确率随时间的变化)、用直方图和分布调试模型、对比多次实验、可视化模型计算图与架构、将嵌入投影到低维空间(t-SNE、PCA)、跟踪超参数实验、进行性能分析定位瓶颈,或在训练过程中可视化图像和文本时,可以使用本技能。

主要能力

  • 可视化训练指标(损失、准确率等标量)
  • 用直方图和分布调试模型
  • 对比多次实验运行
  • 可视化模型计算图与架构
  • 嵌入投影(t-SNE、PCA、UMAP)
  • 跟踪超参数实验
  • 性能分析与瓶颈定位
  • 训练过程中可视化图像和文本
  • 记录 PR 曲线

安装

# 安装 TensorBoard
pip install tensorboard

# PyTorch 集成
pip install torch torchvision tensorboard

# TensorFlow 集成(已包含 TensorBoard)
pip install tensorflow

# 启动 TensorBoard
tensorboard --logdir=runs
# 访问 http://localhost:6006

使用方式

快速上手(PyTorch)

from torch.utils.tensorboard import SummaryWriter

# 创建 writer
writer = SummaryWriter('runs/experiment_1')

# 训练循环
for epoch in range(10):
    train_loss = train_epoch()
    val_acc = validate()

    # 记录指标
    writer.add_scalar('Loss/train', train_loss, epoch)
    writer.add_scalar('Accuracy/val', val_acc, epoch)

# 关闭 writer
writer.close()

# 启动:tensorboard --logdir=runs

快速上手(TensorFlow/Keras)

import tensorflow as tf

# 创建回调
tensorboard_callback = tf.keras.callbacks.TensorBoard(
    log_dir='logs/fit',
    histogram_freq=1
)

# 训练模型
model.fit(
    x_train, y_train,
    epochs=10,
    validation_data=(x_val, y_val),
    callbacks=[tensorboard_callback]
)

# 启动:tensorboard --logdir=logs

核心概念

SummaryWriter(PyTorch):可指定默认目录(runs/CURRENT_DATETIME)、自定义目录或注释;通过 add_scalar 记录数据,使用 flush 和 close 收尾。

记录标量:PyTorch 使用 writer.add_scalar 记录损失、准确率、学习率等;TensorFlow 使用 tf.summary.scalar 配合 create_file_writer。

记录多个标量:PyTorch 使用 writer.add_scalars 将相关指标分组(如 Loss 下的 train/validation/test)。

记录图像:PyTorch 使用 writer.add_image,可配合 torchvision.utils.make_grid 生成网格;TensorFlow 使用 tf.summary.image。

记录直方图:PyTorch 遍历 model.named_parameters() 用 writer.add_histogram 跟踪权重、梯度和激活;TensorFlow 使用 tf.summary.histogram。

记录模型图:PyTorch 使用 writer.add_graph(model, dummy_input);TensorFlow/Keras 通过回调的 write_graph=True 自动完成。

高级功能

嵌入投影器(Embedding Projector):用 writer.add_embedding 记录嵌入、元数据和标签图像,在 TensorBoard 的 Projector 标签页中选择 PCA、t-SNE 或 UMAP 进行可视化、搜索、过滤和探索聚类。

超参数调优:用 writer.add_hparams 记录超参数与最终指标,在 HParams 标签页中对比。

文本记录:用 writer.add_text 记录预测结果、配置或 Markdown 表格。

PR 曲线:用 writer.add_pr_curve 为每个类别记录精确率-召回率曲线。

集成示例

技能中提供了完整的 PyTorch 训练循环示例(含模型图记录、批次与轮次指标、学习率、直方图、样本图像)和 TensorFlow/Keras 训练示例(含 histogram_freq、write_graph、write_images、update_freq、profile_batch、embeddings_freq 等回调参数)。

对比实验

用不同配置运行多次实验并写入不同 logdir,然后统一启动 tensorboard --logdir=runs,所有运行会出现在同一仪表板中,可开关运行、用正则过滤运行名、叠加图表对比指标。也可用层级目录组织实验(如 runs/baseline/run_1)。

最佳实践

  1. 使用描述性运行名称(如包含模型、学习率、批次大小和时间戳)
  2. 分组相关指标(如 Loss/train、Loss/val)
  3. 定期记录但不过于频繁(轮次指标始终记录,批次指标偶尔记录)
  4. 完成后关闭 writer(可用上下文管理器)
  5. 为训练和验证使用单独的 writer

性能分析

TensorFlow Profiler:在 Keras 回调中设置 profile_batch,在 TensorBoard 的 Profile 标签页查看 GPU 利用率、内核统计、内存使用和瓶颈。

PyTorch Profiler:使用 torch.profiler.profile 配合 tensorboard_trace_handler,在 Profile 标签页查看。

适用场景

  • 深度学习模型训练过程中的指标监控与调试
  • 多组超参数或多次实验的对比分析
  • 模型架构与计算图检查
  • 高维嵌入的可视化探索
  • 训练性能瓶颈定位

限制

资料未提供关于收费、价格、平台支持范围、具体性能效果或使用限制的明确说明,相关内容暂未提供。