
# 精度调试：TensorBoard可视化
TensorBoard是TensorFlow的可视化工具包，提供机器学习实验所需的可视化功能和工具。TensorBoard能够有效地展示训练过程中的计算图、各种指标随时间的变化趋势以及训练中使用到的数据信息，帮助用户快速识别训练精度问题。
[在JupyterLab中使用TensorBoard可视化作业](https://support.huaweicloud.com/devtool-modelarts/develop-modelarts-0069.html)页面介绍了如何在云上ModelArts开发环境中创建和使用Tensorboard实例。本页面介绍针对昇腾场景的TensorBoard插件工具，可以将msprobe dump的精度数据进行解析，还原模型图结构，实现模型各个层级的精度数据比对，方便用户理解模型结构、分析精度问题以及快速识别精度不符合预期的API。
#### 步骤一：模型结构数据采集
使用msprobe工具采集训练精度数据。具体操作，请参见[msprobe数据dump指导](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_25193.html)。
- 需要选择"level"为"L0"（module信息）或者"mix"（module信息+API信息），才能采集到模型结构数据，即采集结果件construct.json内容不为空。
- 采集完后的数据格式如下，其中construct.json为模型结构文件。
  图1采集完的格式示例   
  ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002257860813.png "点击放大") 
 
 #### 步骤二：生成图结构文件
采集完成后，需要生成模型图结构文件。
- 如果只dump了一份NPU上的精度数据，可以执行单图构建命令，生成的图包含模型结构、精度数据、堆栈信息。
- 如果同时dump了NPU和GPU上的精度数据，可以执行双图构建命令，生成的图包含模型结构、结构差异、精度数据和精度比对指标、精度是否疑似有问题等信息。
1. 执行以下命令，创建配置文件。
   ```
   vim compare.json
   ```
   
2. 输入以下内容。如果是单图只需配置npu_path，如果是双图则需要增加配置bench_path。
   ```
   {
   "npu_path": "./dump_path/step50/rank0/",
   "bench_path": "./dump_path_gpu/step50/rank0/",
   "is_print_compare_log": true
   }
   ```
   
3. 保存文件后，执行以下命令生成图文件。
   ```
   msprobe -f pytorch graph -i ./compare.json -o ./output
   ```
   生成的图结构文件后缀为.vis，示例如下：
   图2生成图结构文件示例   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002257820681.png "点击放大") 
 
#### 步骤三：使用TensorBoard可视化展示
参照[在JupyterLab中使用TensorBoard可视化作业](https://support.huaweicloud.com/devtool-modelarts/develop-modelarts-0069.html)创建Tensorboard环境。在[步骤二：上传Summary数据](https://support.huaweicloud.com/devtool-modelarts/develop-modelarts-0069.html#section4)时，将[上一步]生成的.vis模型结构文件上传到环境中。
1. 上传好文件后，配置文件所在路径到Log Dir，单击"Create Tensorboard"创建Tensorboard实例。
   图3创建Tensorboard实例   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002222821182.png "点击放大") 
2. TensorBoard实例启动后，为了便于全屏显示相关信息，获得更好的展示效果，建议单击下图的全屏展示按钮，在浏览器新页签打开全屏窗口展示。
   图4全屏展示   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002222981030.png "点击放大") 
3. 模型结构图展示在"GRAPH_ASCEND"页签下。双击具体的模型名称（例如下图的"DefaultModel"），可以展开模型的图结构，查看详情。
   图5展开模型的图结构   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002222981022.png "点击放大")
   图中会根据精度误差的大小给节点标识不同的颜色，红色节点通常标明疑似有非预期误差。您可以双击节点名称，在下方列表会列举出精度详细对比数据，包括目标节点数据和标杆节点数据，查看详细数据做进一步人工判断。
   图6查看详细对比数据   
   ![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000002222821190.png "点击放大") 
关于该插件的更多使用介绍，请参见[昇腾指导文档](https://gitee.com/ascend/mstt/blob/master/debug/accuracy_tools/msprobe/docs/21.visualization_PyTorch.md#52-查看图)。
