专栏算法工具链yolov8模型推理结果出现nan

yolov8模型推理结果出现nan

已解决
driverli2024-04-29
294
18

1. 芯片型号:J3

2. 算法工具链版本:horizon_xj3_open_explorer_v1.16.2c

3. 问题定位:板端部署

4. 问题具体描述:

此处我只为了获取yolov8模型的输出结果(以1*20*20*4的输出为例,得到的结果出现nan,可见附件。)

但是我拿yolov5转换出来的模型也能拿到正确的结果

且用python推理量化后的quantized_model.onnx模型也能拿到正确的输出

这种问题该如何排查呢


附件:
算法工具链
征程3
+1
评论10
0/1000
  • driverli
    Lv.1

    问题已解决,感谢您的支持

    2024-05-08
    0
    0
  • GOYUWJW
    Lv.1
    您这边模型相关文件能提供一下吗?您使用python推理的quantized_model.onnx 是yolov5还是yolov8呢?
    2024-04-29
    0
    0
  • driverli
    Lv.1

    模型文件见附件2。(其中参数已被我随机初始化)。出现nan的是用c++代码推理的,用此代码推理yolov5模型能拿到正确的结果。python推理的是yolov8的模型,也能拿到正确结果

    2024-04-29
    0
    0
  • driverli
    Lv.1

    按照链接将工具安装到板端后,打印如下

    您那边的the model builder version 版本更高,是不是您那边使用的x3工具链转的模型导致版本不一致呀?

    如果方便的话看是否能用j3开发板推理yolov8模型呢

    2024-05-07
    0
    0
  • GOYUWJW
    Lv.1

    这边在模型转换时,将配置文件config.yaml中的 remove_node_type: "Quantize;Dequantize"改成remove_node_type: "Quantize"

    反量化节点的融合实现

    推理结果是一致的

    2024-05-07
    0
    0
  • GOYUWJW
    Lv.1

    这边使用j5和x3的板子,使用您提供的init_random.onnx转为的bin,github工程中best.onnx转为的bin,以及github工程中原始的bin在板端部署使用c++的程序推理,都没有遇到nan的问题;

    您这边是否有尝试使用best.onnx在本地使用build.sh转换后的bin到板端使用?

    这边建议您使用最新的OE包,并且将J3镜像升级为最新

    2024-05-06
    0
    0
  • driverli
    Lv.1

    好的,麻烦您了~

    还有个问题想请教一下,把模型放在docker中的x86环境下推理和放在板端推理结果应该是一样的吧?
    2024-05-07
    0
    0
  • GOYUWJW
    Lv.1

    这边x3用的OE包是2.6.2版本

    2.1.7及以后版本由于gcc版本的问题,不支持j3

    这边j3的OE包是1.15.2,板端打印如下;您的系统镜像是1.16.2c的工具链刷进去的吗?您这边能提供执行hrt_model_exec这个命令的完整日志吗?


    2024-05-06
    0
    0
  • GOYUWJW
    Lv.1
    j3的1.16.2c工具链对应的镜像相关日志内容如下:
    2024-05-06
    0
    0
  • driverli
    Lv.1
    我在板端执行hrt_model_exec,显示找不到对应的命令

    而且很奇怪的是我推理yolov5的模型可以正常得到数据,推理yolov8的就不行。

    看能否用j3的板子推理yolov8模型看看是否会出现nan的问题嘛?

    2024-05-06
    0
    0