浮点转换工具链使用
模型准备与转换
下面以OE包中的-
ddk/samples/ai_toolchain/horizon_model_convert_sample/03_classification/05_efficientnet_lite0_onnx/-
为例进行浮点转换工具链测试。
最新的OE包为了减少大小,并没有包含原始模型,而是放在服务器上并提供-
快捷的sh命令方便使用时下载,因此我们先执行00_init.sh下载模型。
进入ddk/samples/ai_toolchain/model_zoo/mapper/classification,-
可以看到出现了我们刚下载好的模型。-
使用hb_mapper checker工具检查,直接运行01_check.sh即可。
可以看出,模型结点只有最后的softmax和reshape output使用CPU,其余结点均可以使用地平线的BPU运算单元,总体计算速度是较快的。
接下来准备校准数据并进行模型转换,直接运行02_preprocess.sh和03_build.sh即可。-
性能评估
将模型文件通过MobaXterm的ssh session直接传入开发板。
执行 hrt_model_exec perf --model_file efficientnet_lite0_224x224_nv12.bin --core_id 1 --thread_num 1 --frame_count 1000-
#评测latency:单核单线程跑1000帧看平均latency
执行 hrt_model_exec perf --model_file efficientnet_lite0_224x224_nv12.bin --core_id 0 --thread_num 8 --frame_count 1000-
#评测FPS:双核多线程跑1000帧看平均FPS
执行以下命令进行精度检测:-
sh 04_inference.sh origin # 推理原始浮点模型-
sh 04_inference.sh quanti # 推理定点模型-
sh 05_evaluate.sh origin test # 推理原始浮点模型-
sh 05_evaluate.sh quanti test # 推理定点模型
采用地平线提供的一个示例数据集,包含20张图片。-

-
可以看出两个模型精度是几乎相同的。
在板端下载nv12.bin推理数据,在板端进行精度验证。







