云优采集接口(网络训练性能未达预期时的性能分析及精度分析方法)
优采云 发布时间: 2021-09-13 05:01云优采集接口(网络训练性能未达预期时的性能分析及精度分析方法)
概述
当网络训练性能不符合预期时,可以分析Profiling数据,准确定位系统的软硬件性能瓶颈,提高性能分析效率,通过有针对性的性能,以最低的成本和成本实现业务优化方法 场景的极致性能,目前支持采集的性能数据主要包括:
大致流程为:ModelArts训练时将采集Profiling数据传输到OBS桶,然后将Profiling数据上传到CANN Toolkit软件包的安装环境进行性能分析。
修改训练脚本启用Profiling data采集
训练过程默认不是采集Profiling 性能数据。您需要修改训练脚本如下:
调用os的mkdir接口创建profiling工作目录,用于在ModelArts后台临时存放profiling数据:
import os
profiling_dir = "/cache/profiling"
os.makedirs(profiling_dir)
启用分析数据采集。
如果是手动迁移脚本,请参考Profiling data采集修改训练脚本。
如果是工具迁移脚本,请参考Profiling data采集修改训练脚本。
需要注意的是,以上参考章节是裸机场景中的修改示例。在ModelArts场景中,需要指定output为ModelArts后端目录:
custom_op.parameter_map["profiling_options"].s = tf.compat.as_bytes('{"output":profiling_dir,"task_trace":"on","training_trace":"on","fp_point":"resnet_model/conv2d/Conv2Dresnet_model/batch_normalization/FusedBatchNormV3_Reduce","bp_point":"gradients/AddN_70"}')
调用 moxing 的 copy_parallel 接口将生成的 profiling 数据传输到 OBS。
import moxing as mox
mox.file.copy_parallel(profiling_dir, config.train_url)
其中config.train_url为训练时指定的模型在OBS上的输出路径。
从 OBS 下载分析数据
完成上述训练脚本的修改后,在ModelArts上开始训练任务。训练结束后可以在FLAGS.train_url指向的OBS路径上查看Profiling文件夹。
通过Profiling工具进行准确度分析
您可以将OBS上的profiling数据下载到安装CANN Toolkit软件包的环境中,通过命令行进行性能分析。详情请参考《Profiling Tool 用户指南》。