PaddleOCRv4检测模型的训练模型和推理模型结果不一致 #16380
Unanswered
GrayChan813
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
背景是我用私有的数据集训练了一个文本检测的模型,训练config用的ch_PP-OCRv4_det_teacher.yml。
训练完成之后,我使用如下命令进行了训练模型到推理模型的转换:
python3 tools/export_model.py
-c ./output/ch_PP-OCRv4_det_teacher/config.yml
-o
Global.pretrained_model="./output/ch_PP-OCRv4_det_teacher/best_accuracy.pdparams"
Global.save_inference_dir="./output/ch_PP-OCRv4_det_teacher/2_train_to_infer"
然后又使用了如下命令进行了推理模型到onnx模型的转换:
paddle2onnx
--model_dir ./output/ch_PP-OCRv4_det_teacher/2_train_to_infer
--model_filename inference.pdmodel
--params_filename inference.pdiparams
--save_file ./output/ch_PP-OCRv4_det_teacher/3_onnx_model/model.onnx
--opset_version 11
--input_shape_dict="{'x':[-1,3,-1,-1]}"
--enable_onnx_checker True
现在我遇到的问题是,在输入是一致的前提下(我对齐了每个模型的预处理操作,并且将每个模型的输入都存成了.npy文件进行了对比,保证了数组里面所有元素都是一样的),训练模型、推理模型、onnx模型经过网络之后输出的概率图是不一样的。推理模型与onnx模型的差异还能接受,分割图像素的概率基本都是百分位的差异,但是训练模型和推理模型的差异能到十分位,有一些像素点在训练模型里面会预测成前景,但是在推理模型里会预测成背景,这个结果不一致的问题就比较严重了。
更头疼的是,我用同样的代码,在另外一台服务器B上面又做了一次训练模型到推理模型的转换,得到分割图像素概率与之前服务器A上转换出来的推理模型也有十分位上面的差异。我想过会有paddle版本带来的差异,但是我想应该不至于吧,一个是paddlepaddle-gpu 2.5.1.post102,一个是paddlepaddle-gpu 2.6.1.post120。
有大佬能帮忙解答一下这个问题吗,这个问题困扰我很久了🙏🙏🙏
Beta Was this translation helpful? Give feedback.
All reactions