专栏算法工具链PaddleDet-Picodet模型转换及部署异常

PaddleDet-Picodet模型转换及部署异常

lanzhou20122023-09-21
19
10

用户您好,请详细描述您所遇到的问题,这会帮助我们快速定位问题~

1.芯片型号:X3派
2.天工开物开发包OpenExplorer版本hrt_model_exec -v : 1.18.2
3.问题定位

1. 执行 04_inference.sh origin 结果正常,执行 04_inference.sh quanti结果异常,输出为None. 详情如下:

2. 使用bin文件模型进行推理,报错如下:

4.问题具体描述

执行03_build.sh模型转换脚本,origin模型推理正常,quanti量化模型掉点严重hb_mapper_makertbin.log日志详情可见附件,但不清楚哪里出现问题,改如何解决?

附:

算法工具链
评论3
0/1000
  • 颜值即正义
    Lv.2

    你好,关于X86端inference脚本报错问题,需要您根据log日志排查是否是后处理脚本的问题,也有可能是无检测目标产生的corner case;

    关于板端hrt_model_exec推理报错,这个是由于多段BPU计算图导致的DNN推理库报错,我们这边在分析修复,您这边可以在yaml文件中配置校准参数组run_on_cpu: 'p2o.MatMul.2_gemm; p2o.MatMul.0_gemm; p2o.MatMul.4_gemm; p2o.MatMul.6_gemm'去除报错的BPU子图解决

    2023-09-21
    0
    7
    • lanzhou2012回复颜值即正义:

      相同的脚本,唯一的变量就是加载的模型不同(origin 和 quanti), 量化模型检测结果为空,如此严重的掉点现象,应该是不正常的。

      2023-09-21
      0
    • 颜值即正义回复lanzhou2012:

      不排除,截图看不出来原因,具体的报错原因要看log文件的Traceback了

      2023-09-21
      0
    • lanzhou2012回复颜值即正义:

      我看了hb_mapper_makertbin.log文件,确有两处[ONNXRuntimeError],更详细的日志文件已添加到附件中。因这两处错误导致量化模型严重掉点?那该要如何解决呢?

      2023-09-22
      0
    • 颜值即正义回复lanzhou2012:

      你好,根据quanti模型的inference.log中的报错:

      File "/media/bitcq/DataSet/Racobit/code/horizon_ai/horizon_model_convert_paddle/04_detection/11_pp_picodet/mapper/postprocess.py", line 166, in draw_bboxs

      for i, bbox in enumerate(bboxes):

      TypeError: 'NULLType' object is not iterable

      可以确定是因为模型量化精度掉点导致没有检测到目标,首先建议您针对这个特殊情况优化一下后处理代码。其次上面截图中的两处ONNXRuntimeError不影响模型的量化精度,可以忽略,建议您根据社区文章 PTQ精度Debug工具 (horizon.cc) 和用户手册 4.1.2.11. 精度debug工具 — Horizon Open Explorer 进行量化精度调优,让量化敏感节点运行在CPU上(yaml文件中配置run_on_cpu)
      2023-09-22
      0
    • lanzhou2012回复颜值即正义:
      run_on_cpu: 'p2o.MatMul.2_gemm; p2o.MatMul.0_gemm; p2o.MatMul.4_gemm; p2o.MatMul.6_gemm'。
      请问这些p2o.MatMul.2_gemm名称,是通过什么方式查看的?那如果我修改了网络结构, 是不是BPU子图的名称(p2o.MatMul.2_gemm)也可能会发生变化?
      2023-09-22
      0
    • 颜值即正义回复lanzhou2012:

      你好,对bin模型使用命令行工具hb_perf xxx.bin,在生成的hb_perf_result目录下会生成二进制模型的结构图,如下

      根本问题是红框部分最高维度6400大于编译器对于BPU计算图的最大输入维度限制4096,需要将6400在维度上拆分开

      2023-09-25
      0
    • 颜值即正义回复lanzhou2012:
      修改了网络结构,子图内对应的算子也会发生变化,转换产出物的html文件中包含了对应BPU计算图内的算子情况,从而获取算子名称,hb_perf的具体使用详见 4.1.2.3. hb_perf 工具 — Horizon Open Explorer
      2023-09-25
      0
  • lanzhou2012
    Lv.1

    PaddleDet--ppyoloe_plus模型无上述问题,可顺利完成模型转换及部署,所以很疑惑问题是出在什么地方?

    2023-09-21
    0
    0
  • 颜值即正义
    Lv.2
    您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢!
    问卷链接:地平线算法工具链使用满意度反馈
    2023-09-21
    0
    0