专栏算法工具链[求助]bevformer的QAT教程中,量化编译出的model在板端测试掉点很多

[求助]bevformer的QAT教程中,量化编译出的model在板端测试掉点很多

已解决
溺水小坦克2024-12-25
78
2
芯片型号:J6m
OE版本:3.0.22
问题:在参考 地平线开发者社区 进行bevformer模型的QAT时,我们采用nuscenes-mini数据作为训练和测试数据集,进行浮点训练和QAT流程,并生成model.hbm板端文件,然后参考OE包中/guide/ucp/runtime/ai_benchmark章节的示例,在板端运行精度评测脚本 accuracy.sh生成对mini数据集进行推理得到结果eval.log,拿这个eval.log进行本地的精度指标计算,得到的mAP只有0.1268,与浮点模型的pth.tar文件进行精度评测指标mAP=0.2031相比掉点较多。
然后我们下载地平线提供的预训练模型权重文件,分别用float_best_ckpt.pth.tar和model.hbm进行浮点模型指标测试和板端精度测试,发现板端精度测试mAP=0.1733,与浮点模型的指标mAP=0.2836相比掉点也很多。

请问这是什么原因呢?可能存在什么问题导致官方提供模型与我自己训练的模型都存在板端测试精度掉点较多的问题呢?OE手册的/guide/advanced_content/hat/model_zoo章节中给出bevformer模型在nuscenes数据集上的板端精度与浮点精度,mAP都是0.26,几乎不掉点,与实际使用nuscenes-mini数据集进行的实验结果差距较大。

算法工具链
征程6
评论1
0/1000
  • Huanghui
    Lv.5

    不确定你的评估执行过程是不是对的,可以用你的过程对model_zoo中的模型进行一次评测:

    /open_explorer/samples/model_zoo/runtime/ai_benchmark/qat/bevformer_tiny_resnet50_detection_nuscenes/compile/model.hbm

    这里也提供一个供参考的评测过程:https://developer.horizon.auto/blog/12602,该过程评测结果为: mAP: 0.2926

    2024-12-26
    1
    1
    • 溺水小坦克回复Huanghui:

      按照您的教程来操作一遍以后官方模型的mAP=0.2926,我自己训的模型mAP=0.1916,都能够与float模型精度对得上了,感谢!推测差异在于我是按照另一套逻辑生成的idx.txt,导致板端评测使用的数据与float使用的数据不一致,按照帖子里在 bev_preprocess.py 中截取保存idx.txt的方法确实更合理。

      2024-12-26
      0