模型检查core dumped

1.芯片型号:J5

2.天工开物开发包OpenExplorer版本:J5_OE_1.1.57

3.问题定位:模型转换

4.问题具体描述:StreamPETR模型在进行第一步模型检查时出现core dumped,无法定位问题原因。onnx模型文件:链接: https://pan.baidu.com/s/1pgD_i8j_erbViQeJyytAfA 提取码: mj6p

@usssss,你好,请问可以分享下stream petr导出onnx部分的代码和过程吗?

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

您好,您先参考文章 HB_ONNXRuntime 基础使用 (horizon.cc) 尝试使用HB_ONNXRuntime进行ONNX模型推理,如果推理不成功,建议您重新检查下模型;如果能够正常推理,还麻烦您一并提供下校准数据和checker报错日志

终端打印信息

日志指checker生成的.log文件

这边看到有两个输入维度为空,请先检查模型,然后尝试使用HB_ONNXRuntime进行ONNX模型推理,看能否正常推理

您好,我换了最新的1.1.60的docker,并且把那两个维度为空的输入去掉了,打印的信息除了input还是和上面一样的,在同一个位置core dumped。我用官方ONNXRuntime可以正常推理,HB_ONNXRuntime由于本地gpu环境配置有点问题,docker内无法使用gpu,还在排查问题。请问可以帮忙定位一下core dumped原因吗?新模型链接: 百度网盘-链接不存在 提取码: qjua 。 谢谢

您好,已经在分析中了,您这边可以尝试用cpu docker跑一下,可以只跑单份数据,旨在看能否跑通

您好,您的模型在onnxruntime==1.2.0下推理报错,分析是模型合法性的问题

好的,谢谢。我们上次也用onnxruntime==1.2.0推理测试了,确实有报错。我们在onnxruntime==1.8.0上可以正常推理,不过精度相比转换前的pth模型变差很多。在检查我们模型所含算子与算子支持列表比对后发现有四个不支持的算子类型IsInf, IsNaN, Mod,Xor。另外还有一个NoneZero算子在算子支持列中不存在,我们在试着把这些不支持的算子替换掉。还想请教一个问题:算子支持列表中 “CPU计算※” 这种带星号的 暂时未集成的CPU算子,是未来地平线会逐步集成的吗?或者是需要我们自己去开发CPU算子,开发过程中地平线可以提供一些支持。

另外还想了解一下,地平线推荐我们做算子开发吗?因为我看自定义算子是运行在CPU上的,效率可能比较低。推荐的流程是不是先尝试将算子转换为BPU支持的,失败的话尝试转换为CPU支持的算子,还不行的话再去开发自定义算子。

嗯嗯,您的理解没有问题。现阶段推荐将算子尽可能替换成BPU支持的算子或者是”CPU计算“的算子。对于”CPU计算※“的算子或者其他地平线暂不支持的算子,您可以提供一份列表给我们。因为社区的优先级要略低,如果算子需求特别强烈或者项目时间紧迫,建议您直接走项目提需求

补充一下,目前地平线工具链模型转换使用的onnxruntime版本是1.2.0,需要保证在这个版本下模型是合法的,后续我们升级onnxruntime版本后就没有这个限制了