1.芯片型号:J5
2.天工开物开发包OpenExplorer版本:horizon_j5_open_explorer_v1.1.62-py38_20230802
3.问题定位:模型检查
4.问题具体描述:打算把CLRNet部署在J5的板子上,训练后得到对应原模型的ONNX文件,然后使用hb_mapper
checker
对模型进行检查,在这个过程中出现了错误。
1. 模型检查
2. 报错信息
3. 错误细节
这是怎么回事,也没有算子不支持阿
1.芯片型号:J5
2.天工开物开发包OpenExplorer版本:horizon_j5_open_explorer_v1.1.62-py38_20230802
3.问题定位:模型检查
4.问题具体描述:打算把CLRNet部署在J5的板子上,训练后得到对应原模型的ONNX文件,然后使用hb_mapper
checker
对模型进行检查,在这个过程中出现了错误。
1. 模型检查
2. 报错信息
3. 错误细节
这是怎么回事,也没有算子不支持阿
您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢!-
问卷链接:地平线算法工具链使用满意度反馈
你好,由于当前工具是基于onnxruntime==1.2.0进行开发的,请先使用onnxruntime==1.2.0对模型进行推理,检查模型合法性。推理成功,再进行模型转换;如果推理失败,请先检查模型
这个就是模型检查阶段报的错,您是指直接用onnxruntime检查错误吗?
你好,请问有没有出现不支持算子的模型?我想尝试用自定义算子的方式对不支持算子进行修改来保证转化通过,但是没有找到有不支持算子的模型。请问您知道那些模型出现过在onnx转化到bin时出现了算子不支持的模型吗?麻烦分享一下
你好,对的,先使用onnxruntime==1.2.0推理模型看看
您好,我用onnx(1.14.1)和onnxruntime(1.2.0)对我的onnx文件进行了检测和推理,onnx检测没有问题,推理时报错了,但我在网上查这个好像是版本的问题,和onnx模型本身好像没有关系
你好,1.2.0版本的onnxruntime推理公版onnx报错的话,说明模型中算子的属性超出了版本支持,但由于hb_mapper工具是基于1.2.0版本的onnxruntime开发的,会存在这个约束,但是我们在后续的迭代版本中会取消这个约束。
此外,如果直接用onnxruntime推理量化过程中产出的模型是会报错的,因为公版onnxruntime无法识别HzQuantize节点,需要用hb_onnxruntime进行推理
hb_onnxruntime的使用可以参考 HB_ONNXRuntime 基础使用 (horizon.cc)
您好,我分别尝试了在onnxruntime=1.2.0和onnxruntime=1.15.1的版本上做推理,1.15.1的可以通过,没有报错,但是1.2.0 的就会报上面slice的错误。目前可以确认的是原始浮点模型是没错的,导出的onnx也没有问题,就是在推理时低版本的onnxruntime会推理不通过。这应该就是导致J5工具链做模型检测时报错的原因。对于这个问题,我应该怎么解决呢?
报错的信息确实显示的是属性问题,但是都是卷积属性问题,为什么有的卷积算子就可以通过,有的就报错
你好,目前对于这个问题,需要你根据hb_mapper check的算子报错信息去对应修改onnx文件中的算子属性,具体方式需要您自行了解:model=onnx.load(…),for node in model.graph.node: …
这个就需要去对比一下onnx可视化的模型结构图中问题卷积算子和正常卷积算子的区别,您也可以参考正常卷积算子的属性配置去对应修改问题卷积算子,例如需要增加属性的话可以用空列表,避免对模型精度产生影响
您好,我想问一下,你们自己的算子是怎么实现的?是直接用onnx定义然后注册吗?我如何才能把自定义的算子放在BPU上跑,根据硬件环境做调优。官方的那些算子有没有可以学习的资料
目前多数模型都可以转换成功的,建议遇到之后再说哈