使用 Kubeflow Tensorboards
TensorFlow 的可视化工具 TensorBoard 是一个强大的监控面板,用于可视化机器学习实验。它允许你跟踪 loss 和 accuracy 等指标,查看 model graph,查看 weights 和 biases 的直方图,以及更多内容。
Kubeflow 提供了一种原生方式,可以直接在你的 Kubernetes 集群内创建 TensorBoard 实例,并将其指向存储在 Persistent Volume Claims (PVCs) 或 Object Storage 中的现有日志。
前提条件
在创建 TensorBoard 实例之前,请确保你的 training 作业正在将日志写入集群可访问的位置。
- PVC:如果你的 training 作业将日志写入 Persistent Volume,请记录 PVC 名称以及其中的路径。
- Object Storage:如果你的 training 作业将日志写入 Object Storage,请确保你已具备必要的凭据(通常通过 PodDefaults 配置)以及 bucket URI(例如,
s3://my-bucket/logs/experiment-1)。
使用 PyTorch 生成日志
要可视化你的 training 指标,PyTorch 代码必须将事件写入日志目录。SummaryWriter 类是将数据记录下来供 TensorBoard 使用的主要入口点。
创建 TensorBoard 实例
-
访问 Kubeflow 监控面板: 导航到 Kubeflow 中央监控面板中的 TensorBoards 部分。
-
新建 TensorBoard: 单击 New TensorBoard 按钮。
-
配置实例:
- Name:为你的 TensorBoard 实例输入一个唯一名称,例如
experiment-1-viz。 - PVC Source:
- 如果你的日志位于 PVC 上,请勾选此框。
- PVC Name:从下拉列表中选择 PVC。
- Mount Path:指定 PVC 内存储日志的路径,例如
/logs/run1。
- Object Storage Source:
- 如果你的日志位于云存储中,请勾选此框。
- Object Store Link:提供日志目录的完整 URI,例如
s3://my-bucket/my-model/logs/。 - Configuration:如果你的 bucket 需要凭据,请选择一个配置(PodDefault)。
- Name:为你的 TensorBoard 实例输入一个唯一名称,例如
-
创建: 单击 Create。TensorBoard 实例将作为你命名空间中的一个 Pod 进行部署。
访问监控面板
一旦你的 TensorBoard 实例状态变为 Running:
- 单击实例名称旁边的 Connect。
- TensorBoard UI 将在新选项卡中打开。
- 现在你可以浏览 training 运行生成的 scalars、graphs、distributions 和其他可视化内容。
使用场景
可视化 Training 指标
使用 Scalars 选项卡查看 accuracy、loss 和 learning rate 随时间变化的图表。这有助于诊断你的 model 是否发生过拟合,或者 learning rate 是否需要调整。
比较运行
如果你将 TensorBoard 指向一个包含多个运行子目录的父目录(例如 run1、run2),TensorBoard 会自动叠加这些运行的指标,从而让你比较不同 hyperparameters 下的性能。
调试 Model Architecture
使用 Graphs 选项卡可视化 model 的计算图。这可确保 model 按预期构建,并有助于识别结构性问题。
清理
TensorBoard 实例会消耗集群资源(CPU/Memory)。当你完成对实验的分析后:
- 返回 TensorBoards 列表。
- 单击实例旁边的 Delete(垃圾桶图标)按钮。
- 确认删除。此操作会移除可视化服务器,但不会删除存储在 PVC 或 Object Storage 中的 training 日志或 model。