执行脚本

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

这篇教程为您提供了config的通用执行范式以及tools核心功能和对外接口的介绍。

config的执行范式

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

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

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

tools工具的功能及参数介绍

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

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

参数描述
--stage {float, calibration, qat}不同的训练和预测阶段。
--config CONFIG, -c CONFIGconfig文件路径。
--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 CONFIGconfig文件路径。
--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 CONFIGconfig文件路径。

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

参数描述
--config CONFIG, -c CONFIGconfig文件路径。
--stage {align_bpu}不同验证阶段。

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

参数描述
--config CONFIG, -c CONFIGconfig文件路径。
--input-shape输入shape。
--method使用计算的方式。

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

注意

如果要将参考算法包提供的模型部署在nash-p ,nash-b或nash-h上面,需要传入对应的march参数。

参数描述
--config CONFIG, -c CONFIGconfig文件目录。
--opt {0,1,2}编译时的优化选项。
--jobs JOBS编译时的线程数。
--model_path MODEL_PATHqat hbir 模型路径。
--march ${MARCH}可选参数,bpu march。

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

参数描述
--config CONFIG, -c CONFIGconfig文件路径。
--model-inputs可选参数,表示输入数据的保存路径,如果不传这个参数,则会去config文件中寻找input_path
--save-path可视化结果的保存路径。
--use-dataset可选参数,如果没有传入--model-inputs参数,并且config文件中不存在input_path,或者input_path路径下找不到数据,那么该参数需要指定为True,表示从config文件的dataset中加载数据。

create_data.py: 用来预处理Kitti3D雷达数据集。常用的参数列表为:

参数描述
--dataset数据集名称。
--root-dir数据集所在根目录。

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

参数描述
--config CONFIG, -c CONFIGconfig文件路径。

export_hbir.py 用来将模型导出为hbir。常用的参数列表为:

注意

如果要将参考算法包提供的模型部署在nash-p ,nash-b或nash-h上面,需要传入对应的march参数。

参数描述
--config CONFIG, -c CONFIGconfig文件路径。
--save-pathhbir保存的路径。
--march ${MARCH}可选参数,bpu march。

gen_camera_param_nusc.py: 从nuscenes中获取相机内外参的脚本。常用的参数列表为:

参数描述
--data-path数据集所在根目录。
--save-path保存的路径。
--save-by-city是否根据城市保存。
--version数据集版本。

gen_reference_points_nusc.py: 从nuscenes中获取模型输入参考点的脚本。常用的参数列表为:

参数描述
--data-path数据集所在根目录。
--save-path保存的路径。
--save-by-city是否根据城市保存。
--version数据集版本。
--config CONFIG, -c CONFIGconfig文件路径。

homography_generator.py: 计算ego到图像的转换矩阵的脚本。常用的参数列表为:

参数描述
--sensor2ego-translation传感器到ego坐标系的平移矩阵。
--sensor2ego-rotation传感器到ego坐标系的旋转矩阵。
--camera-intrinsic相机内外参矩阵。
--save-path保存的路径。

reference_points_generator.py: 从单应性矩阵计算模型输入参考点的脚本。常用的参数列表为:

参数描述
--config CONFIG, -c CONFIGconfig文件路径。
--homography转换矩阵路径。
--save-path保存的路径。

quant_analysis.py: 量化训练分析工具。常用的参数列表为:

参数描述
--config CONFIG, -c CONFIGconfig文件路径。

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