Paddle2ONNX icon indicating copy to clipboard operation
Paddle2ONNX copied to clipboard

paddle detection导出的RCNN模型转ONNX报错

Open panp4n opened this issue 1 year ago • 9 comments

请将下面信息填写完整,便于我们快速解决问题,谢谢!

问题描述 python:3.8 paddle版本:2.2.2 paddle detection版本:2.5 paddle2onnx:1.0.1

paddle detection导出的RCNN模型转ONNX报错,FasterRCNN和MaskRCNN,均使用 export_onnx=True 字段,使用opset_version 16 导入inference 模型命令 python tools\export_model.py -c configs/mask_rcnn/mask_rcnn_r101_vd_fpn_1x_coco.yml -o output/mask_rcnn_r101_vd_fpn_1x_coco/model_final.pdiparams export_onnx=True 使用官方文档中的预训练模型导出也是同样的问题。

报错内容:缺少算子 Oops, there are some operators not supported yet, including distribute_fpn_proposals,generate_proposals_v2,

更多信息 :

  • 用于部署的推理引擎:openvino
  • 为什么需要转换为ONNX格式:转IR格式
  • Paddle2ONNX版本:1.0.1
  • 你的联系方式(Email/Wechat/Phone):[email protected]

报错截图 2022-10-12 164438

其他信息

panp4n avatar Oct 12 '22 08:10 panp4n

您好,导出的时候设置:--enable_dev_version False

yeliang2258 avatar Oct 12 '22 12:10 yeliang2258

问题同上,错误信息也同上!模型导出时也使用了export_onnx=True。 然后按[yeliang2258的方法,提示为:

paddle2onnx.command.program2onnxwill be deprecated in the future version, the recommended usage is paddle2onnx.export

意思是旧版本的方法被弃用了,建议用新的方法,然后错误提示是:

ModuleNotFoundError: No module named 'onnx'

注:要转换的也是mask-rcnn模型。 是否paddle2onnx目前还无法真正支持到mask-rcnn?

seejah avatar Oct 06 '23 13:10 seejah

@seejah 我这导出成功了,看你的报错应该是依赖库问题。用的下面的指令: paddle2onnx --model_dir \output_inference\mask_rcnn_r50_fpn_2x_coco --model_filename model.pdmodel --params_filename model.pdiparams --opset_version 16 --save_file output_inference\mask_rcnn_r50_fpn_2x_coco\maskrcnn.onnx --enable_dev_version False

其中paddle2onnx版本为1.0.6,onnx1.7——1.14

panp4n avatar Oct 07 '23 00:10 panp4n

@seejah 我这导出成功了,看你的报错应该是依赖库问题。用的下面的指令: paddle2onnx --model_dir \output_inference\mask_rcnn_r50_fpn_2x_coco --model_filename model.pdmodel --params_filename model.pdiparams --opset_version 16 --save_file output_inference\mask_rcnn_r50_fpn_2x_coco\maskrcnn.onnx --enable_dev_version False

其中paddle2onnx版本为1.0.6,onnx1.7——1.14

我的指令与您一模一样,后来发现是onnx版本问题,降低到1.7后,之前的错误提示的确没有了,但又提示numpy没有object属性,于是继续降级numpy到1.20,又提示缺少six模块,于是install six,再次运行,这次竟然No module named 'paddle',哈哈 好像越来越糟糕。

seejah avatar Oct 07 '23 04:10 seejah

@panp4n 一通版本调整后,目前出现的错误信息又是这样了:

AttributeError: module 'paddle.fluid.layers' has no attribute 'multiclass_nms'

转个onnx如此之难,哈哈

seejah avatar Oct 07 '23 09:10 seejah

@seejah 我当时也是这样,各种库的依赖库冲突。我现在用的paddlepaddle-gpu 2.4.2. paddle2onnx 1.0.6, numpy 1.23.5。onnx让paddle2onnx自动装就行。

panp4n avatar Oct 07 '23 09:10 panp4n

@seejah 在导出模型时候添加export_onnx=True 参数,会自动替换掉multiclass_nms,因为onnx不支持这个op。

panp4n avatar Oct 07 '23 09:10 panp4n

@panp4n 谢谢耐心回复,导出模型时已经export_onnx=True了。 最后找到的原因竟然是: paddle2.5以后弃用了paddle.fluid下的所有API !所以最后还是版本问题,我又将paddle降到2.4,显示一波弃用警告信息后,onnx终于转换成功了,这就试一试是否能用!

seejah avatar Oct 07 '23 10:10 seejah

@seejah 在导出模型时候添加export_onnx=True 参数,会自动替换掉multiclass_nms,因为onnx不支持这个op。

您好,我想问下导出成onnx后为什么按照官方给的推理示例执行成功后 我这边没有出现掩膜的点 只有矩形框

wxf764571829 avatar Feb 01 '24 10:02 wxf764571829