TensorBoard 是 Google 的机器学习可视化工具包,用于观察和分析模型训练过程。
用途
在以下场景使用 TensorBoard:
- 可视化随时间变化的训练指标,如 loss 和 accuracy
- 用直方图和分布调试模型
- 在多次运行之间对比实验
- 可视化模型计算图与架构
- 将嵌入投影到更低维度(t-SNE、PCA)
- 追踪超参数实验
- 剖析性能并定位瓶颈
- 在训练过程中可视化图像和文本
主要能力
- 标量记录:记录单个指标或分组记录多个相关指标(如 train/validation/test)
- 图像记录:记录单张图像或以网格形式记录多张图像
- 直方图:追踪权重分布与梯度、激活值分布
- 模型计算图:可视化模型结构
- 嵌入投影器(Embedding Projector):在 2D/3D 中可视化高维数据,支持 PCA、t-SNE、UMAP
- 超参数调优:记录并对比不同超参数组合的实验结果
- 文本记录:记录预测文本、配置信息、Markdown 表格
- PR 曲线:分类任务的精确率-召回率曲线
- 性能剖析:TensorFlow Profiler 与 PyTorch Profiler
安装与启动
安装 TensorBoard:
pip install tensorboard
PyTorch 集成:
pip install torch torchvision tensorboard
TensorFlow 集成(TensorBoard 已包含):
pip install tensorflow
启动:
tensorboard --logdir=runs
默认访问地址 http://localhost:6006
使用方式
PyTorch 通过 torch.utils.tensorboard 的 SummaryWriter 记录数据,例如:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('runs/experiment_1')
writer.add_scalar('Loss/train', train_loss, epoch)
writer.close()
TensorFlow/Keras 通过 tf.keras.callbacks.TensorBoard 回调记录数据:
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=runs 一并查看;也可通过目录层级组织实验。
适用场景
- 深度学习训练过程的监控与调试
- 多组超参数实验的对比
- 模型结构与嵌入的可视化分析
- 训练性能剖析
限制
除资料中给出的安装、记录、对比与剖析用法外,关于平台支持范围、具体版本兼容要求、收费与价格、共享托管服务的细节等,资料未提供。资料提及 TensorBoard.dev 用于公开分享实验(https://tensorboard.dev),但未说明其当前可用性、限制或费用,暂未提供。