更新时间:2025-08-07 GMT+08:00

在JupyterLab中使用TensorBoard可视化作业

ModelArts支持在开发环境中开启TensorBoard可视化工具。TensorBoard是TensorFlow的可视化工具包,提供机器学习实验所需的可视化功能和工具。TensorBoard能够有效地展示训练过程中的计算图、各种指标随时间的变化趋势以及训练中使用到的数据信息,相关概念请参考TensorBoard官网

TensorBoard可视化工具当前仅支持在PyTorch和TensorFlow引擎中使用,不支持在MindSpore引擎或其他AI引擎中使用。

前提条件

为了保证训练结果中输出Summary文件,在编写训练脚本时,您需要在脚本中添加收集Summary相关代码。

TensorFlow引擎的训练脚本中添加Summary代码,具体方式请参见TensorFlow官方网站

PyTorch引擎的训练脚本中添加Summary代码,具体方式请参见PyTorch官方网站

注意事项

  • 运行中的可视化作业不单独计费,当停止Notebook实例时,计费停止。
  • Summary文件数据如果存放在OBS中,由OBS单独收费。任务完成后请及时停止Notebook实例,清理OBS数据,避免产生不必要的费用。

步骤一:创建开发环境并在线打开

在ModelArts控制台,进入开发空间 > Notebook页面,创建TensorFlow或者PyTorch镜像的开发环境实例。创建成功后,单击开发环境实例“操作”栏的打开,在线打开运行中的开发环境。

如果待可视化数据目录下内容较多(例如总量为百M级别)时,2U8G的CPU规格实例可能会出现CPU或Memory不足的情况,导致Notebook实例卡顿无法正常工作,此时建议使用更大规格(例如4U16G)的实例进行可视化操作。具体规格以实际局点支持的资源规格为准。

步骤二:生成Summary数据

在开发环境中使用TensorBoard可视化功能,需要生成Summary数据。以下是一个简单的线性回归训练示例,展示如何生成和记录Summary数据。如果需要了解如何生成Summary数据,请参考PyTorch官方文档

import torch
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()

x = torch.arange(-5, 5, 0.1).view(-1, 1)
y = -5 * x + 0.1 * torch.randn(x.size())
model = torch.nn.Linear(1, 1)
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr = 0.1)
def train_model(iter):
    for epoch in range(iter):
        y1 = model(x)
        loss = criterion(y1, y)
        writer.add_scalar("Loss/train", loss, epoch)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
train_model(10)
writer.flush()

步骤三:上传Summary数据

您可以通过如下方式将本地Summary数据上传到Notebook中:

在Notebook左侧文件导航栏下新建目录,并通过拖拽等方式将本地数据上传到Notebook该新建目录中,具体请参见上传本地文件至JupyterLab

图1 Notebook中的待可视化的数据

建议将需要可视化的数据上传到单独目录下,如果使用OBS挂载功能,建议只挂载可视化数据所在层级的OBS路径到Notebook,而不是将整个桶都挂载上来进行可视化,避免混杂其他数据导致TensorBoard加载变慢,甚至无法正常可视化。

步骤四:启动TensorBoard

  1. 在开发环境的JupyterLab中打开Launcher页面,然后单击TensorBoard图标。
    图2 打开Launcher界面
    图3 在Launcher中打开TensorBoard
  2. 首次单击TensorBoard会进入到一个默认的初始化面板,可以从该面板创建TensorBoard实例。

    在Log Dir中填写可视化数据所在的目录,该路径为/home/ma-user/work下的相对路径,填写好后单击右侧“Create TensorBoard”按钮,如图2 打开Launcher界面所示。非首次进入则会直接进入到第一个活跃的TensorBoard实例。

    图4 TensorBoard插件界面

    参数介绍如下:

    • Log Dir:默认是单击TensorBoard时当前侧边栏的目录,也可以手动填写对应目录,这里建议目录尽可能细化,目录内容比较少的话会提高初始化速度。
    • Multi LogDir:支持输入多个目录参数,用逗号分隔,对应原生TensorBoard的--logdir_spec参数。TensorBoard官方对该功能支持不完善,不推荐使用。
    • Reload Interval:TensorBoard多久对相应目录进行一次重新扫描,这个选项是默认是关闭的,日常使用选择手动Reload即可(设置Reload Interval之后,TensorBoard后端持续扫描目录会对JupyterLab的稳定性和文件系统都产生一定的影响)。

    关于该插件的更多功能介绍请参考jupyterlab_tensorboard_pro官网

  3. 创建好后的Tensorboard可视化展示面板如图5所示。
    • 单击图5中数字1所示按钮,可以在单独的浏览器页签展示可视化面板。
    • 图5数字2中提供了实例管理相关功能,包括重启Tensorboard实例(Reload),关闭Tensorboard实例(Destory),复制一个前端可视化面板(Duplicated),创建一个新的Tensorboard实例(New)。
    • 图5数字3处,可以使用JupyterLab的Kernel管理面板管理实例,提供跳转至对应实例和删除等功能。
    图5 创建后的可视化界面

    不建议打开Reload Interval,避免后台频繁刷新导致Notebook实例产生卡顿甚至无法正常使用,需要查看新数据时单击右上角刷新按钮即可。

    不建议使用New按钮创建多个TensorBoard实例,该操作可能会导致CPU/Memory占用过大,导致Notebook实例卡顿甚至无法正常使用等问题。当需要可视化新的目录时,可以先将当前TensorBoard实例关闭,再指定新目录创建一个新的TensorBoard实例。

步骤五:查看看板中的可视化数据

可视化看板是TensorBoard的可视化组件的重要组成部分,看板标签包含:标量可视化、图像可视化和计算图可视化等。

更多功能介绍和用法请参见TensorBoard官网资料

  1. 由于Chrome等浏览器的安全限制导致无法从iframe下载数据,当前不支持可视化数据的Download data按钮。

  2. 如果可视化面板一直未展示数据,请检查可视化数据目录是否选择正确以及目录下的数据是否完整(请勿随意手工调整或删除部分训练打点产生的summary数据,否则可能无法正常可视化)。
  3. 如果数据正确但一直未成功展示数据(右上角刷新按钮一直在转圈),请打开一个terminal窗口,使用top命令查看CPU占用率等信息,可能是由于数据量过大导致CPU/Memory超负荷,建议减少数据量或者更换更大的Notebook实例规格。
  4. 如果偶尔显示数据未成功加载,可稍等片刻后单击右上角的刷新按钮,通常情况下可再次正常显示相关数据。