在开发环境中使用MindInsight离线调试器可以方便地查看Dump数据,具有图码映射、自动格式转换等功能,帮助用户进行精度调优分析。
在训练脚本中写入收集Dump数据的代码,执行训练脚本可获取Dump数据,推荐使用异步Dump。
注:一般网络的Dump数据都比较大(单卡单step能产生GB级别的数据),且保存时间长,对性能影响比较大,所以不建议在一个训练任务中收集过多step的Dump数据。
3.1 创建开发环境
在ModelArts控制台,进入“开发环境管理 > DevContainer”页面,创建开发环境实例,创建成功后,单击开发环境实例操作栏右侧的“打开 > 打开Notebook”,在线打开运行中的开发环境。
打开方式如下图所示:
3.2 上传Dump数据并启动离线调试器
在保存Dump数据时,可以直接保存到/home/ma-user/work/xxx/中,也可通过自动回传mox操作放入OBS桶中,由于Dump数据所占磁盘空间较大,故在此推荐使用OBS方式。在开发环境中启动MindInsight时,开发环境会自动挂载OBS目录读取Dump数据,比较方便。
在对话框中执行如下命令打开Mindinsight的离线调试器。
- %reload_ext mindinsight
- %mindinsight --port {PORT} --summary-base-dir {SUMMARY_BASE_DIR}
参数解释:
注:如需读取桶内数据请务必在路径前添加obs://
此处路径中的xxx填写要求为:Dump配置中的{path}路径的上一层或上两层,推荐使用上两层。当有多个dump数据包时,可以在UI界面的Summary List列表中看到多个数据列表。
eg:
dump数据包路径为summary-base-dir/summary_dir/lenet/rank_0/.dump_metadata,则对应的{path}路径为summary-base-dir/summary_dir/lenet/
运行成功后如下图所示:
在.ipynb文件框中输入命令,关闭 MindInsight。端口号应与启动MindInsight中设置一致。
!mindinsight stop --port {port}
关闭成功后如下图所示: