他的回复:
(1) 运行simplify_model.py对onnx模型进行操作时,‘onnx.onnx_cpp2py_export.checker.ValidationError: Nodes in a graph must be topologically sorted, however input 'input.1' of node:name: pfe_MatMul_0 OpType: Conv is not output of any previous nodes.’ 这个解决掉之后,还冒出来其他问题。 (2) 运行 merge_pfe_rpn_model.py时,如果不进行simplify(model),倒是也能保存成pointpillars.onnx 和 pointpillars_trt.onnx。但是转换为MDC需要的'*.om'文件时就不行了。诸如:‘ATC run failed, Please check the detail log, Try 'atc --help' for more information E11019: Op[pfe_squeeze]'s input[0] is not linked.’(3) 直接用该project提供的‘onnx_model/pointpillars.onnx’权重去转换‘atc --model pointpillars.onnx --framework 5 --output pointpillars --soc_version Ascend310’,是可行的。但是我肯定希望后续结合自己的数据集训练获取新的权重,随意去转换模型。我好奇,该project提供的‘onnx_model/pointpillars.onnx’权重是如何转换成功的。(4) 另外,部署到MDC上时,我借鉴了‘preprocess.cpp’和‘postprocess.cpp’去补全代码。为了feature去直接分配‘MAX_PILLARS*FEATURE_NUM*MAX_PIONT_IN_PILLARS’=30000*20*10大小的空间直接就崩了。如果不按这个大小去分配,那和weight的输入又相矛盾。等等,还有其他很多问题。。。考虑到这个project是不完善的,不知道你们自己有没有跑过这个代码,前面不知道还有多少问题,也不知道这个路能不能走通,而且我个人实在时间有限,不能继续踩坑了。。。(5)鉴于MDC社区内呼声这么强烈。关于深度学习的LiDAR目标检测方法,建议华子还是开放一个教学demo吧。 拜谢!!!