6.1.4.2. 执行脚本

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

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

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

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

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

6.1.4.2.1. tools

目前常用的tools一共有7个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 {mpi}: 多机运行的启动方式,目前只支持mpi

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

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

—val-only: 只运行validation的流程

–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 {mpi}: 多机运行的启动方式,目前只支持mpi

—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: 指定精度验证运行的卡数

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

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

—input-shape: 输入shape

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

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

—out-dir OUT_DIR: 输出目录

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

—jobs JOBS: 编译时的线程数

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

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

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

–dataset: 验证的数据集类型

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

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

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

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

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