专栏算法工具链运行onnx失败,包含horizon:GridSample算子

运行onnx失败,包含horizon:GridSample算子

已解决
皮卡丘2024-08-01
191
7

1. 芯片型号:J6M

2. 天工开物开发包 OpenExplorer 版本:horizon_j6_open_explorer_v3.0.17-py310_20240705.tar.gz

3. 问题定位:onnx推理

4. 问题具体描述:我尝试推理qat中提供的示例bevformer导出的onnx模型,遇到问题:horizon:GridSample算子未注册。请问包括horizon:GridSample等算子,被实现在那个so文件,应该如何加载
算法工具链
技术深度解析征程6
评论2
0/1000
  • momo(社区版)
    Lv.4

    请问是使用地平线提供的onnx推理接口嘛

    2024-08-01
    0
    5
    • momo(社区版)回复momo(社区版):

      以及请问你是使用tool/export_onnx.py脚本导出的onnx嘛


      2024-08-01
      0
    • momo(社区版)回复momo(社区版):

      我这边使用地平线的推理接口可以正常推理从参考算法中导出的bevformer的浮点模型,推理代码如下

      import numpy as np

      # 加载地平线依赖库

      from horizon_tc_ui.hb_runtime import HBRuntime
      data =np.random.randn(6, 3, 480, 800).astype(np.float32)
      data1 =np.random.randn(1, 2500, 256).astype(np.float32)
      data2 =np.random.randn(6, 1, 2500, 4, 2).astype(np.float32)
      data3 =np.random.randn(1, 50, 50, 2).astype(np.float32)

      # 加载模型文件,根据实际模型进行设置

      # ONNX模型

      sess = HBRuntime("float.onnx")

      # HBIR模型

      # sess = HBRuntime("model.bc")

      # 获取输入&输出节点名称

      input_names = sess.input_names
      print(input_names)
      output_names = sess.output_names

      # 准备输入数据,根据实际输入类型和layout进行准备,配置格式要求为字典形式,输入名称和输入数据组成键值对

      # 如模型仅有一个输入

      input_feed = {input_names[0]: data,input_names[1]:data1, input_names[2]: data2 , input_names[3]: data3}

      # 如模型有多个输入

      # 进行模型推理,推理的返回值是一个list,依次与output_names指定名称一一对应

      output = sess.run(output_names, input_feed)
      print(output)
      2024-08-01
      0
    • 皮卡丘回复momo(社区版):

      感谢。并不是使用地平线的接口推理的,我会参考你的代码修改下。

      2024-08-01
      0
    • momo(社区版)回复momo(社区版):

      导出浮点onnx需要对config文件中的onnx_cfg做以下修改:

      2024-08-01
      0
    • 皮卡丘回复momo(社区版):

      修改后已经可以推理,和bc模型推理结果基本一致

      2024-08-01
      1
  • Pipeline
    Lv.2

    请提供一下错误的log,方便分析

    2024-08-01
    0
    0