Replies: 1 comment
-
要实现识别模型的“量化+蒸馏”训练,建议采用正确的配置文件和匹配的预训练模型,并按照以下步骤操作。下面是详细流程及建议配置: 一、量化蒸馏的完整流程
确保使用与PaddleOCR兼容的版本,例如2.3.2: pip install paddleslim==2.3.2
你需要使用识别模型的“蒸馏训练”模型(即teacher-student结构)。 例如,对于PP-OCRv3模型:
对于PP-OCRv4模型:
量化训练推荐使用PaddleOCR中提供的 quant.py 脚本,其路径为 deploy/slim/quantization/quant.py。 参考命令如下(以PP-OCRv3为例): python deploy/slim/quantization/quant.py 其中需注意:
使用 export_model.py 将量化训练的模型导出成 inference_model: python deploy/slim/quantization/export_model.py 此时模型 parameters 是 FP32,但数值已被量化处理。
导出的模型仍为伪量化(含Q/DQ算子),要获得真正的 int8 推理加速,需要使用:
避免常见问题说明:
总结推荐: 优先使用以下配置+模型组合进行量化蒸馏:
如果使用PP-OCRv4,请确保distillation配置文件与量化框架兼容,配置文件中需包含量化和蒸馏两个模块定义,某些v4配置可能暂未合并完整结构,可参考v3的结构进行手动调整。 Response generated by 🤖 feifei-bot | chatgpt-4o-latest |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
如果想得到量化蒸馏后的识别模型,应该使用那个配置文件和预训练模型?
目前尝试过rec的ch_PP-OCRv3_rec_distillation.yml和v4版本的ch_PP-OCRv4_rec_distill.yml,并使用对应预训练模型en_PP-OCRv3_rec_slim_train.tar或ch_PP-OCRv4_rec_train.tar。但最终结果并不理想:
1、对于v4版本,训练过程直接因为ratio异常日志而终止;
2、对于v3版本,不改变backbone,能正常训练但acc跑了400个epoch仍为0;
3、要不就是能正常训练拿到推理模型,但大小为9-10m左右,并未蒸馏量化;
Beta Was this translation helpful? Give feedback.
All reactions