TensorBoard 是一个用于深度学习训练过程的可视化工具,相当于给训练装上了"监控屏幕"。它能把训练过程中的损失、准确率、权重分布、模型结构、图像等数据自动转化为网页上的动态图表,方便实时监控和调试。
一、核心原理
- 写日志 :训练时通过
SummaryWriter将监控数据写入事件文件(.tfevents)。 - 看图表:启动本地网页服务,读取日志文件并渲染成交互式界面,支持实时刷新。
二、基本操作
-
创建写入器 :
pythonfrom torch.utils.tensorboard import SummaryWriter writer = SummaryWriter("runs/experiment") -
记录标量 (损失、准确率等):
pythonwriter.add_scalar("Train/Loss", loss, global_step) -
记录模型结构 :
pythonwriter.add_graph(model, sample_input) -
记录图像 (输入图、错误样本等):
pythonwriter.add_image("images", img_grid) -
记录直方图 (权重/梯度分布):
pythonwriter.add_histogram("weights/layer1", param, global_step) -
启动可视化 :
bashtensorboard --logdir=runs # 浏览器访问 http://localhost:6006
三、实战要点(CIFAR‑10 MLP & CNN)
- 在训练循环中,每个 batch 记录 batch 级损失和准确率,每个 epoch 记录 epoch 级指标。
- 每 200 个 batch 可选记录一次权重/梯度直方图,监控梯度消失/爆炸。
- 测试阶段收集错误预测样本,用
add_image可视化。 - 配合学习率调度器,记录学习率变化曲线。
- 自动管理日志目录(添加版本后缀),方便多次实验对比。
四、使用建议
- TensorBoard 的代码是固定的"八股文",理解它能记录什么数据、如何解读图表即可。
- 可以借助 AI 生成重复的监控代码,只需手动写好
SummaryWriter和关键指标名称。 - 利用 SCALARS(曲线)、IMAGES(样本)、GRAPHS(模型结构)、HISTOGRAMS(分布)四大面板,快速诊断模型训练问题。