更新时间:2024-04-30 GMT+08:00

TensorBoard可视化作业

ModelArts支持在开发环境中开启TensorBoard可视化工具。TensorBoard是TensorFlow的可视化工具包,提供机器学习实验所需的可视化功能和工具。

TensorBoard能够有效地展示TensorFlow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。

前提条件

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

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

注意事项

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

Step1 创建开发环境并在线打开

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

TensorBoard可视化训练作业,当前仅支持基于TensorFlow2.1、Pytorch1.4/1.8以上版本镜像,CPU/GPU规格的资源类型。请根据实际局点支持的镜像和资源规格选择使用。

Step2 上传Summary数据

在开发环境中使用TensorBoard可视化功能,需要用到Summary数据。

Summary数据可以直接传到开发环境的这个路径下/home/ma-user/work/,也可以放到OBS并行文件系统中。

  • Summary数据上传到Notebook路径/home/ma-user/work/下的方式,请参见上传数据至Notebook
  • Summary数据如果是通过OBS并行文件系统挂载到Notebook中,请将模型训练时产生的Summary文件先上传到OBS并行文件系统,并确保OBS并行文件系统与ModelArts在同一区域。在Notebook中启动TensorBoard时,Notebook会自动从挂载的OBS并行文件系统目录中读取Summary数据。

Step3 启动TensorBoard

在开发环境的JupyterLab中打开TensorBoard有多种方法。可根据使用习惯选择。

图1 JupyterLab中打开TensorBoard的方法

方式1(推荐):

  1. 在JupyterLab左侧导航创建名为“summary”的文件夹,将数据上传到“/home/ma-user/work/summary”路径。注:文件夹命名只能为summary否则无法使用。
  2. 进入“summary”文件夹,单击方式1,直接进入TensorBoard可视化界面。如图2所示。
    图2 TensorBoard界面(1)

方式2:

用户可以自行升级除2.4.0之外的TensorBoard,但需注意升级后只有方式2使用新的TensorBoard,其余方式保持TensorBoard2.1.1不变。

  1. 单击方式2进入JupyterLab开发环境中,并自动创建“.ipynb”文件。
  2. 在对话框中输入TensorBoard相应命令,即可展示界面。
    %reload_ext ma_tensorboard
    %ma_tensorboard  --port {PORT} --logdir {BASE_DIR}

    参数解释:

    • --port {PORT}:指定Web可视化服务端口。可以不设置,默认使用8080端口。如果8080端口被占用了,需要在1~65535任意指定一个端口。
    • --logdir {BASE_DIR}:表示数据在开发环境中的存储路径
      • 开发环境本地路径:“./work/xxx”(相对路径)或/home/ma-user/work/xxx(绝对路径)
      • OBS并行文件系统的路径:obs://xxx/
    例如:
    #Summary数据如果是在开发环境的这个路径下/home/ma-user/work/,执行下面这条命令。
    %ma_tensorboard  --port {PORT} --logdir /home/ma-user/work/xxx 
    或者
    #Summary数据如果是存在OBS并行文件系统中,执行下面这条命令,开发环境会自动挂载该OBS并行文件系统路径并读取数据。
    %ma_tensorboard  --port {PORT} --logdir obs://xxx/
    图3 TensorBoard界面(2)

方式3:

  1. 单击方式3 View -> Activate Command Palette,在搜索框中输入“TensorBoard”,再单击“Create a new TensorBoard”
    图4 Create a new TensorBoard
  2. 填写需要查看的Summary数据路径,或者OBS并行文件系统桶的路径。
    • 开发环境本地路径:./summary(相对路径)或/home/ma-user/work/summary(绝对路径)
    • OBS并行文件系统桶的路径:obs://xxx/
    图5 输入Summary数据路径
    图6 TensorBoard界面(3)

方式4:

单击方式4 ,输入命令执行,但启动后不能显示UI界面。

tensorboard --logdir ./log 
图7 Terminal方式打开TensorBoard

Step4 查看训练看板中的可视化数据

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

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

相关操作

关闭TensorBoard方式如下:

  • 方式1:单击下图所示的,进入TensorBoard实例管理界面,该界面记录了所有启动的TensorBoard实例,单击对应实例后面的SHUT DOWN即可停止该实例。
    图8 单击SHUT DOWN停该实例
  • 方式2:在开发环境JupyterLab中的“.ipynb”文件窗口中输入命令,关闭TensorBoard。PID在启动界面有提示或者通过ps -ef | grep tensorboard查看。
    !kill PID
  • 方式3:单击下方红框中的按钮可以关闭所有启动的TensorBoard实例。
    图9 关闭所有启动的TensorBoard实例
  • 方式4(不推荐):直接在JupyterLab中上关闭TensorBoard窗口,此方式仅关闭可视化窗口,并未关闭后台。