10.4.2. 执行脚本¶
在HAT中,用户可以直接使用和修改的功能主要包含tools和configs两部分的内容。其中tools主要是核心的功能模块,包含训练验证可视化等。而configs主要是包含功能模块执行过程中可以配置的选项和参数。
这篇教程告诉大家tools主要包含哪些核心功能,以及config的开发规范和使用流程。
大部分情况下tools工具的执行模式都是需要输入一个config,除了部分与数据集或者单张图可视化相关的工具。因此通用的执行范式可以总结成这样:
python3 tools/${TOOLS} --config configs/${CONFIGS}
这里主要介绍一下tools的核心功能和对外接口。
10.4.2.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文件路径。
--pretrained-ckpt
:预训练的模型地址。
--device-id
:指定精度验证运行的卡数。
--num-workers
:读取数据的进程数。
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文件路径。
--device-id
:指定精度验证运行的卡数。
--pretrained-ckpt
:预训练的模型地址。
--model-inputs
:指定的模型输入。
--save-path
:可视化结果的保存路径。
create_data.py: 用来预处理Kitti3D雷达数据集。常用的参数列表为:
--dataset
:数据集名称。
--root-dir
:数据集所在根目录。
export_onnx.py: 用来将模型导出为ONNX(只用于可视化,不支持推理)。常用的参数列表为:
--config CONFIG, -c CONFIG
:config文件路径。
datasets 目录是数据集相关的打包和可视化工具。