TensorBoard可视化作业
ModelArts支持在开发环境中开启TensorBoard可视化工具。TensorBoard是TensorFlow的可视化工具包,提供机器学习实验所需的可视化功能和工具。
TensorBoard能够有效地展示TensorFlow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。
前提条件
为了保证训练结果中输出Summary文件,在编写训练脚本时,您需要在脚本中添加收集Summary相关代码。
TensorFlow引擎的训练脚本中添加Summary代码,具体方式请参见TensorFlow官方网站。
注意事项
- 运行中的可视化作业不单独计费,当停止Notebook实例时,计费停止。
- Summary文件数据如果存放在OBS中,由OBS单独收费。任务完成后请及时停止Notebook实例,清理OBS数据,避免产生不必要的费用。
在开发环境中创建TensorBoard可视化作业流程
Step1 创建开发环境并在线打开
在ModelArts控制台,进入
页面,创建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有多种方法。可根据使用习惯选择。
![点击放大](https://support.huaweicloud.com/intl/zh-cn/devtool-modelarts/figure/zh-cn_image_0000001985336684.png)
方式1(推荐):
- 在JupyterLab左侧导航创建名为“summary”的文件夹,将数据上传到“/home/ma-user/work/summary”路径。注:文件夹命名只能为summary否则无法使用。
- 进入“summary”文件夹,单击方式1
,直接进入TensorBoard可视化界面。如图2所示。
方式2:
![](https://support.huaweicloud.com/intl/zh-cn/devtool-modelarts/public_sys-resources/notice_3.0-zh-cn.png)
用户可以自行升级除2.4.0之外的TensorBoard,但需注意升级后只有方式2使用新的TensorBoard,其余方式保持TensorBoard2.1.1不变。
- 单击方式2
,进入JupyterLab开发环境中,并自动创建“.ipynb”文件。
- 在对话框中输入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:
- 单击方式3 “View > Activate Command Palette”,在搜索框中输入“TensorBoard”,再单击“Create a new TensorBoard”。
图4 Create a new TensorBoard
- 填写需要查看的Summary数据路径,或者OBS并行文件系统桶的路径。
- 开发环境本地路径:./summary(相对路径)或/home/ma-user/work/summary(绝对路径)
- OBS并行文件系统桶的路径:obs://xxx/
图5 输入Summary数据路径图6 TensorBoard界面(3)
方式4:
单击方式4 ,输入命令执行,但启动后不能显示UI界面。
tensorboard --logdir ./log
![点击放大](https://support.huaweicloud.com/intl/zh-cn/devtool-modelarts/figure/zh-cn_image_0000001985336688.png)
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窗口,此方式仅关闭可视化窗口,并未关闭后台。