Paddle2ONNX
Paddle2ONNX copied to clipboard
表格识别模型 paddle inference 和 onnx 模型效果差异较大
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
Additional context
https://github.com/PaddlePaddle/PaddleOCR/pull/7485 inference 用的 是这个模型
你可以先用随机数据验证一下,在相同输入的时候,paddle和ort的结果是否接近,如果结果接近的话(误差小于1e-5),证明转换正确,那么再排查一下前后处理是否对齐。
你可以先用随机数据验证一下,在相同输入的时候,paddle和ort的结果是否接近,如果结果接近的话(误差小于1e-5),证明转换正确,那么再排查一下前后处理是否对齐。
是的是的!是我前处理漏了一步
您好,能不能帮忙看下,我在转中文表格识别模型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的情况