使用 Kubeflow Tensorboards
TensorFlow 的可视化工具 TensorBoard 是一个强大的监控面板,用于可视化机器学习实验。它允许您跟踪如损失和准确率等指标,展示模型图,查看权重和偏置的直方图,以及更多功能。
Kubeflow 提供了一种原生方式,可以直接在您的 Kubernetes 集群内启动 TensorBoard 实例,并将其指向存储在 Persistent Volume Claims (PVC) 或对象存储(S3、MinIO)上的现有日志。
前提条件
在创建 TensorBoard 实例之前,请确保您的训练作业正在将日志写入集群可访问的位置。
- PVC:如果您的训练作业将日志写入 Persistent Volume,请记录 PVC 名称及其内部路径。
- 对象存储:如果您的训练作业将日志写入 S3/MinIO,请确保您拥有必要的凭据(通常通过 PodDefaults 配置)和桶的 URI(例如,
s3://my-bucket/logs/experiment-1)。
使用 PyTorch 生成日志
为了可视化训练指标,您的 PyTorch 代码必须将事件写入日志目录。SummaryWriter 类是用于记录数据以供 TensorBoard 使用的主要入口。
创建 TensorBoard 实例
-
访问 Kubeflow 监控面板:
进入 Kubeflow 中央监控面板的 TensorBoards 部分。 -
新建 TensorBoard:
点击 New TensorBoard 按钮。 -
配置实例:
- 名称:输入 TensorBoard 实例的唯一名称(例如
experiment-1-viz)。 - PVC 来源:
- 如果日志存储在 PVC 上,勾选此项。
- PVC 名称:从下拉菜单选择 PVC。
- 挂载路径:指定日志在 PVC 内的路径(例如
/logs/run1)。
- 对象存储来源:
- 如果日志存储在云存储中,勾选此项。
- 对象存储链接:填写日志目录的完整 URI(例如
s3://my-bucket/my-model/logs/)。 - 配置:如果桶需要凭据,选择相应的配置(PodDefault)。
- 名称:输入 TensorBoard 实例的唯一名称(例如
-
创建:
点击 Create。TensorBoard 实例将作为 Pod 在您的命名空间中创建。
访问监控面板
当您的 TensorBoard 实例状态变为 Running 时:
- 点击实例名称旁的 Connect。
- TensorBoard UI 将在新标签页打开。
- 您现在可以浏览训练运行生成的标量、图表、分布等可视化内容。
使用场景
可视化训练指标
使用 Scalars 标签页查看准确率、损失和学习率随时间变化的曲线,有助于诊断模型是否过拟合或学习率是否需要调整。
比较多次运行
如果您将 TensorBoard 指向包含多个运行子目录的父目录(例如 run1、run2),TensorBoard 会自动叠加这些运行的指标,方便您比较不同超参数下的性能。
调试模型架构
使用 Graphs 标签页可视化模型的计算图,确保模型按预期构建,并帮助识别结构性问题。
清理
TensorBoard 实例会消耗集群资源(CPU/内存)。分析完实验后:
- 返回 TensorBoards 列表。
- 点击实例旁的 Delete(垃圾桶图标)按钮。
- 确认删除。此操作会移除可视化服务器,但不会删除存储在 PVC 或对象存储上的训练日志或模型。