6.1.6.1. 执行脚本

在HAT中,用户可以直接使用和修改的功能主要包含tools和configs两部分的内容。其中tools主要是核心的功能模块,包含训练验证可视化等。而configs主要是包含功能模块执行过程中可以配置的选项和参数。

这篇教程告诉大家tools主要包含哪些核心功能,以及config的开发规范和使用流程。

大部分情况下tools工具的执行模式都是需要输入一个config,除了部分与数据集或者单张图可视化相关的工具。因此通用的执行范式可以总结成这样:

python3 tools/${TOOLS} --config configs/${CONFIGS}

这里主要介绍一下tools的核心功能和对外接口。

6.1.6.1.1. tools

目前常用的tools有多个python脚本,每个脚本具有不同的功能。

train.py 是训练工具,常用的参数为:

--stage {float, calibration, qat, int_infer} :不同的训练和预测阶段。

--config CONFIG, -c CONFIG :config文件路径。

--device-ids DEVICE_IDS, -ids DEVICE_IDS :运行的GPU列表。

--dist-url DIST_URL :多机运行指定的server地址,默认是auto。

--launcher {torch} :多机运行的启动方式。

--pipeline-test :是否运行pipeline测试。

--opts :通过命令行修改config参数。

--opts-overwrite :是否可以覆盖config参数。

--level: 除了rank0之外的logging level。

predict.py 是预测工具,常用的参数为:

--stage {float, calibration, qat, int_infer} :不同的训练和预测阶段。

--config CONFIG, -c CONFIG :config文件路径。

--device-ids DEVICE_IDS, -ids DEVICE_IDS :运行的GPU列表。

--dist-url DIST_URL :多机运行指定的server地址,默认是auto。

--backend :多机或者多卡通信使用的backend。

--ckpt :预测使用的checkpoint文件。

--launcher {torch} :多机运行的启动方式。

--pipeline-test :是否运行pipeline测试。

model_checker.py 是检查模型是否能够正常在BPU运行的工具,常用参数有:

--config CONFIG, -c CONFIG :config文件路径。

align_bpu_validation.py 是精度验证工具,提供和上板完全对齐的结果。常用参数列表为:

--config CONFIG, -c CONFIG :config文件路径。

--dataset :数据集验证的类型。

--pretrained-ckpt :预训练的模型地址。

--device-id :指定精度验证运行的卡数。

--num-workers :读取数据的进程数。

--use-testmodel :是否使用 test_model

calops.py 是网络计算量统计工具,常用参数列别为:

--config CONFIG, -c CONFIG :config文件路径。

--input-shape :输入shape。

--method :使用计算的方式。

compile_perf.py 是编译和perf工具,常用参数列表分别为:

--config CONFIG, -c CONFIG :config文件目录。

--out-dir OUT_DIR :输出目录。

--opt {0,1,2,3} :编译时的优化选项。

--jobs JOBS :编译时的线程数。

--ckpt :模型的路径。

infer.py 是用来做单图预测的工具。常用的参数列表为:

--config CONFIG, -c CONFIG :config文件路径。

--input-images IMG :用来做infer的图片。

--dataset :验证的数据集类型。

--pretrained-ckpt :预训练的模型地址。

--input-size :模型的输入大小,建议使用config中的shape。

--input-format :模型输入的图片格式。

--use-eager :是否使用eager进行量化。

--is-plot :是否把可视化结果显示出来,需要依赖可视化环境。

export_onnx.py: 用来将模型导出为ONNX(只用于可视化,不支持推理)。常用的参数列表为:

--config CONFIG, -c CONFIG :config文件路径。

datasets 目录是数据集相关的打包和可视化工具。