Paddle2ONNX icon indicating copy to clipboard operation
Paddle2ONNX copied to clipboard

表格识别模型 paddle inference 和 onnx 模型效果差异较大

Open mingo-doer opened this issue 2 years ago • 3 comments

Please fill in the information below so that we can solve the problem quickly, Thanks !

Describe the bug A clear and concise description of what the bug is. 表格识别模型 paddle inference 和 onnx 模型效果差异较大。

Informations (please complete the following information):

  • Inference engine for deployment:
  • Why convert to onnx: 需要在X86系统上应用paddleocr的模型
  • Paddle2ONNX Version: 0.9.8
  • Email/Wechat/Phone: 18267162573

Screenshots 278acbb837859b50bfeadf928619e62

12589fcb02a3854772e32243861185f

Additional context

mingo-doer avatar Sep 15 '22 07:09 mingo-doer

https://github.com/PaddlePaddle/PaddleOCR/pull/7485 inference 用的 是这个模型

mingo-doer avatar Sep 15 '22 09:09 mingo-doer

你可以先用随机数据验证一下,在相同输入的时候,paddle和ort的结果是否接近,如果结果接近的话(误差小于1e-5),证明转换正确,那么再排查一下前后处理是否对齐。

yeliang2258 avatar Sep 16 '22 02:09 yeliang2258

你可以先用随机数据验证一下,在相同输入的时候,paddle和ort的结果是否接近,如果结果接近的话(误差小于1e-5),证明转换正确,那么再排查一下前后处理是否对齐。

是的是的!是我前处理漏了一步

mingo-doer avatar Sep 16 '22 06:09 mingo-doer

您好,能不能帮忙看下,我在转中文表格识别模型ch_ppstructure_mobile_v2.0_SLANet_infer到onnx时,会出现如下情况: (paddle_env) H:\PaddleOcr\ppocrv3_mnn\PaddleDemo\x64\Release\models>paddle2onnx --model_dir ./ch_ppstructure_mobile_v2.0_SLANet_infer --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ch_ppstructure_m obile_v2.0_SLANet_infer.onnx --enable_dev_version True --opset_version 13 --enable_onnx_checker True --input_shape_dict="{'image':[-1, 3, -1, -1]}" ?[1;31;40m2023-03-08 09:45:31 [WARNING] [Deprecated] The flag --input_shape_dict is deprecated, if you need to modify the input shape of PaddlePaddle model, please refer to this tool https://github.com/jiangjiajun/PaddleUtils/tree/ma in/paddle ?[0m [Paddle2ONNX] Start to parse PaddlePaddle model... [Paddle2ONNX] Model file path: ./ch_ppstructure_mobile_v2.0_SLANet_infer\inference.pdmodel [Paddle2ONNX] Paramters file path: ./ch_ppstructure_mobile_v2.0_SLANet_infer\inference.pdiparams [Paddle2ONNX] Start to parsing Paddle model... [Paddle2ONNX] Detected there's control flow 'while' op in your model, this requires the minimal opset version of 13. [Paddle2ONNX] Use opset_version = 13 for ONNX export. [Paddle2ONNX] Find dumplicate output name 'fill_constant_9.tmp_0', it will rename to 'p2o.fill_constant_9.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_15.tmp_0', it will rename to 'p2o.fill_constant_15.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_21.tmp_0', it will rename to 'p2o.fill_constant_21.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'p2o.fill_constant_15.tmp_0.0', it will rename to 'p2o.p2o.fill_constant_15.tmp_0.0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_5.tmp_0', it will rename to 'p2o.fill_constant_5.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_23.tmp_0', it will rename to 'p2o.fill_constant_23.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'p2o.fill_constant_9.tmp_0.0', it will rename to 'p2o.p2o.fill_constant_9.tmp_0.0.0'. [Paddle2ONNX] Find dumplicate output name 'assign_0.tmp_0', it will rename to 'p2o.assign_0.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'transpose_0.tmp_0', it will rename to 'p2o.transpose_0.tmp_0.0'. [Paddle2ONNX] Find dumplicate output name 'tmp_4', it will rename to 'p2o.tmp_4.0'. [Paddle2ONNX] Find dumplicate output name 'linear_1.b_0', it will rename to 'p2o.linear_1.b_0.0'. [Paddle2ONNX] Find dumplicate output name 'gru_cell_0.w_1', it will rename to 'p2o.gru_cell_0.w_1.0'. [Paddle2ONNX] Find dumplicate output name 'linear_3.b_0', it will rename to 'p2o.linear_3.b_0.0'. [Paddle2ONNX] Find dumplicate output name 'linear_1.w_0', it will rename to 'p2o.linear_1.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'linear_0.w_0', it will rename to 'p2o.linear_0.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'linear_5.b_0', it will rename to 'p2o.linear_5.b_0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_9.tmp_0', it will rename to 'p2o.fill_constant_9.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_23.tmp_0', it will rename to 'p2o.fill_constant_23.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'assign_0.tmp_0', it will rename to 'p2o.assign_0.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'linear_5.w_0', it will rename to 'p2o.linear_5.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_15.tmp_0', it will rename to 'p2o.fill_constant_15.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'gru_cell_0.b_0', it will rename to 'p2o.gru_cell_0.b_0.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_5.tmp_0', it will rename to 'p2o.fill_constant_5.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'linear_2.w_0', it will rename to 'p2o.linear_2.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'linear_4.w_0', it will rename to 'p2o.linear_4.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'linear_6.w_0', it will rename to 'p2o.linear_6.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'gru_cell_0.w_0', it will rename to 'p2o.gru_cell_0.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'gru_cell_0.b_1', it will rename to 'p2o.gru_cell_0.b_1.0'. [Paddle2ONNX] Find dumplicate output name 'fill_constant_21.tmp_0', it will rename to 'p2o.fill_constant_21.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'linear_3.w_0', it will rename to 'p2o.linear_3.w_0.0'. [Paddle2ONNX] Find dumplicate output name 'transpose_0.tmp_0', it will rename to 'p2o.transpose_0.tmp_0.1'. [Paddle2ONNX] Find dumplicate output name 'linear_6.b_0', it will rename to 'p2o.linear_6.b_0.0'. [Paddle2ONNX] Find dumplicate output name 'linear_4.b_0', it will rename to 'p2o.linear_4.b_0.0'. [Paddle2ONNX] PaddlePaddle model is exported as ONNX format now. 2023-03-08 09:45:32 [INFO] ===============Make PaddlePaddle Better!================ 2023-03-08 09:45:32 [INFO] A little survey: https://iwenjuan.baidu.com/?code=r8hu2s

会出现很多算子rename的情况

cdycdycdy avatar Mar 08 '23 01:03 cdycdycdy