使用开发机运行 TensorBoard 服务
本指南介绍如何在开发机内启动 TensorBoard 服务,用于查看开发机本地训练日志或共享存储上的任务历史日志。
阅读本文后,您将能够:
- 在开发机内安装并启动 TensorBoard 服务
- 查看开发机本地训练产生的日志
- 查看「任务」在共享高性能存储上产生的历史日志
- 使用
--reload_multifile参数处理多事件文件场景
概述
开发机中的 TensorBoard 支持两种典型使用场景:
| 场景 | 日志来源 | 典型用途 |
|---|---|---|
| 查看本地日志 | 开发机内训练产生的日志 | 交互式开发调试、实时监控 |
| 查看任务历史日志 | 共享存储上的任务日志 | 任务结束后查看、对比多个实验 |
基本流程:
- 安装 TensorBoard:确保开发机环境中有 TensorBoard
- 确定日志路径:本地路径或共享存储路径
- 启动服务:使用合适的参数运行
tensorboard命令 - 访问看板:通过平台控制台跳转或 SSH 端口转发
前提条件
在开始之前,请确保满足以下条件:
- 开发机处于运行中状态
- 开发机环境中已安装 TensorBoard(平台预置镜像通常已包含)
- 日志文件已存在于可访问的路径
安装 TensorBoard
如果镜像中未包含 TensorBoard,请手动安装:
pip install tensorboardTensorBoard 启动参数
--host 参数
重要
必须使用 --host 0.0.0.0 绑定到所有网络接口,否则平台无法转发服务。
--logdir 参数
--logdir 参数决定了 TensorBoard 扫描哪些目录来发现实验数据(runs):
| 传入路径 | 扫描行为 | 适用场景 |
|---|---|---|
父目录(如 /mnt/shared/runs/) | 递归扫描所有子目录,发现全部 runs | 对比多个实验 |
| 具体 run 目录 | 只加载该目录的数据 | 查看单个实验 |
--reload_multifile 参数
长时间运行的训练任务会产生多个事件文件(events.out.tfevents.*)。默认情况下,TensorBoard 只读取每个 run 目录中最新的事件文件。
| 参数设置 | 行为 | 适用场景 |
|---|---|---|
| 不设置(默认) | 仅读取最新事件文件 | 短期实验、单文件日志 |
--reload_multifile=true | 读取目录下所有事件文件 | 长时间训练、任务历史日志 |
提示
查看「任务」产生的历史日志时,强烈建议启用 --reload_multifile=true,否则可能只能看到部分训练数据。
--port 参数
警告
平台仅转发 6006 端口。TensorBoard 默认运行在 6006 端口,如使用 --port 指定其他端口,开发机详情页的 TensorBoard 按钮将失效。如需使用其他端口,请通过 SSH 端口转发访问。
场景一 查看开发机本地日志
在开发机内进行交互式训练时,可以实时查看训练进度。
在训练脚本中配置日志目录:
pythonfrom torch.utils.tensorboard import SummaryWriter # 指定日志目录 writer = SummaryWriter("./runs/experiment_1") # 训练循环中记录指标 for epoch in range(epochs): # ... 训练代码 ... writer.add_scalar('Loss/train', loss, epoch) writer.close()启动 TensorBoard:
shell# 查看 ./runs 下的所有实验 tensorboard --host 0.0.0.0 --logdir ./runs在开发机详情页点击 TensorBoard 按钮访问看板。
场景二 查看任务历史日志
平台「任务」功能内置的 TensorBoard 服务会在任务结束后停止。如果任务的日志保存在共享高性能存储上,您可以在开发机中启动 TensorBoard 查看这些历史日志。
注意
此场景要求开发机和任务挂载了同一个共享高性能存储。如需了解如何挂载共享存储,请参阅创建开发机的流程文档。
确认任务的日志路径(可在任务详情页的「日志存储路径」查看)。
确保开发机已挂载相同的共享存储。
启动 TensorBoard(推荐启用
--reload_multifile)。shelltensorboard --host 0.0.0.0 \ --logdir /mnt/shared/runs \ --reload_multifile=true在开发机详情页点击 TensorBoard 按钮访问看板。
提示
在「任务」处于运行中状态时,平台自动启动 TensorBoard 服务并提供可视化看板,无需使用开发机查看 TensorBoard 日志。详见启用任务功能内置的 TensorBoard 服务。
访问 TensorBoard
从平台控制台访问
在开发机运行中,进入详情页,找到 TensorBoard,点击跳转即可访问。

从本地设备访问
TensorBoard 是用户在开发机内自行运行的服务,平台会转发 6006 端口供控制台访问。如需从本地设备直接访问,可使用 SSH 端口转发:
后台运行 TensorBoard
在开发机中,建议使用 tmux 或 nohup 在后台运行 TensorBoard,避免关闭终端后服务停止:
# 使用 nohup 后台运行
nohup tensorboard --host 0.0.0.0 --logdir /mnt/shared/runs --reload_multifile=true > /dev/null 2>&1 &
# 或使用 tmux(推荐)
tmux new -s tensorboard
tensorboard --host 0.0.0.0 --logdir /mnt/shared/runs --reload_multifile=true
# 按 Ctrl+B, D 分离会话常见问题
无法打开 TensorBoard 看板
诊断步骤:
检查开发机状态:确认开发机处于「运行中」状态
检查 TensorBoard 进程:在开发机终端运行:
shellps aux | grep tensorboard如果没有输出,说明 TensorBoard 未启动。
检查 host 绑定:确认启动命令包含
--host 0.0.0.0检查端口号:确认 TensorBoard 运行在默认端口 6006
TensorBoard 只显示一个 run
原因:日志直接写入了父目录,而不是子目录。TensorBoard 将每个包含事件文件的目录识别为一个 run。
解决方案:为每个实验创建独立的子目录:
# 错误:直接写入父目录
writer = SummaryWriter("/mnt/shared/runs")
# 正确:写入子目录
writer = SummaryWriter("/mnt/shared/runs/exp1")可以使用 WandB 等其他工具吗?
平台暂未深度集成 WandB 等实验追踪工具。您可以自行安装和使用 SwanLab/WandB 等工具。