训练前配置检查
根据本手册的样例,需要将工具接口添加到训练脚本中进行配置检查。
- MindSpore训练场景:当前是以MindSpore不同版本在同一环境下进行精度比对的场景为例,因此两个场景检查出的结果只会有版本号的不同,所以可跳过此步骤。
- PyTorch训练场景:需要在GPU和昇腾NPU环境上分别执行检查。
前提条件
完成模型开发&迁移,确保在所有示例的环境可正常完成训练任务。
环境准备
在昇腾NPU环境下安装msprobe工具,执行如下命令:
pip install mindstudio-probe
执行检查
操作步骤如下:
- 获取两个环境的zip包。
- MindSpore训练场景分别以MindSpore 2.6.0和MindSpore 2.7.0执行以下操作。
- PyTorch训练场景分别在GPU和昇腾NPU环境下执行以下操作。
需要注意给两个zip包不同的命名。
- 在训练流程执行到的第一个Python脚本开始处插入如下代码。
1 2
from msprobe.core.config_check import ConfigChecker ConfigChecker.apply_patches(fmk)
fmk:训练框架,string类型,可选"pytorch"和"mindspore",默认为"pytorch"。
- 在模型初始化好之后插入如下代码。
1 2
from msprobe.core.config_check import ConfigChecker ConfigChecker(model, output_zip_path, fmk)
- model:初始化好的模型,默认不会采集权重和数据集。
- output_zip_path:输出zip包的路径,string类型,需要指定zip包的名称,默认为"./config_check_pack.zip"。
- fmk:训练框架。可选"pytorch"和"mindspore",默认为"pytorch"。
- 执行训练脚本命令。
- MindSpore训练场景:
python mindspore_main.py
- PyTorch训练场景:
python pytorch_main.py -a resnet50 -b 32 --gpu 1 --dummy
采集完成后会得到一个zip包,里面包括各项影响精度的配置。分rank和step存储,其中step为micro_step。
- MindSpore训练场景:
- 将两个zip包传到同一个环境下,使用如下命令进行比对。
- MindSpore训练场景:
msprobe -f mindspore config_check -c bench_zip_path cmp_zip_path -o output_path
其中bench_zip_path为标杆侧采集到的zip包名称,cmp_zip_path为待对比侧采集到的zip包名称。
output_path默认为"./config_check_result"。
执行以上命令后,在output_path里会生成如下数据:
- bench:bench_zip_path里打包的数据。
- cmp:cmp_zip_path里打包的数据。
- result.xlsx:比对结果。会有多个sheet页,其中summary总览通过情况,其余页是具体检查项的详情,其中step为micro_step。
- PyTorch训练场景:
msprobe -f pytorch config_check -c bench_zip_path cmp_zip_path -o output_path
其中bench_zip_path为标杆侧采集到的zip包名称,cmp_zip_path为待对比侧采集到的zip包名称。
output_path默认为"./config_check_result"。
执行以上命令后,在output_path里会生成如下数据:
- bench:bench_zip_path里打包的数据。
- cmp:cmp_zip_path里打包的数据。
- result.xlsx:比对结果。会有多个sheet页,其中summary总览通过情况,其余页是具体检查项的详情,其中step为micro_step。
- MindSpore训练场景:
- 检查通过情况。
如下所示:
1 2 3 4 5 6
filename ass_check env TRUE pip TRUE dataset TRUE weights TRUE random TRUE
父主题: 模型精度调试