PaddleOCR 自训练模型导出为推理模型时的文件格式变化解析

【免费下载链接】PaddleOCR 飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) 【免费下载链接】PaddleOCR 项目地址: https://gitcode.com/paddlepaddle/PaddleOCR

在使用 PaddleOCR 进行自定义模型训练后,将训练好的模型导出为推理模型是部署前的关键步骤。近期有用户反馈,在导出过程中发现生成的文件与预期不同,特别是没有生成预期的 .pdmodel 文件,而是出现了 .json.pdiparams.yml 等文件。这一现象并非错误,而是 PaddlePaddle 框架升级后引入的新 IR(Intermediate Representation)格式。

新 IR 格式的背景

PaddlePaddle 框架为了提升模型部署的效率和兼容性,在较新版本中引入了新的中间表示(IR)格式。这种格式旨在优化模型的存储结构、提高加载速度,并更好地支持多种硬件平台和推理引擎。因此,当用户使用最新版本的 PaddleOCR(如 2.9.0)进行模型导出时,默认会生成新格式的推理模型文件。

新旧格式对比

传统格式

  • 检测模型:通常生成 model.pdmodelmodel.pdiparams 两个文件。
  • 识别模型:同样生成 model.pdmodelmodel.pdiparams 两个文件。

新 IR 格式

  • 检测模型:生成 model.jsonmodel.pdiparamsmodel.yml 等文件。
    • model.json:描述了模型的计算图结构。
    • model.pdiparams:存储模型的权重参数。
    • model.yml:包含模型的配置信息,如输入输出张量的描述、预处理步骤等。
  • 识别模型:生成类似的文件,但具体内容会根据模型结构有所差异。

为什么会出现这种变化?

这一变化主要是为了支持 PaddlePaddle 的静态图优化和动态图转静态图(@to_static)的特性。新 IR 格式能够更精细地描述模型结构,便于后续的图优化、量化、剪枝等操作,同时提升了模型在不同部署环境中的适应性。

如何应对这一变化?

1. 确认 PaddlePaddle 版本

首先,请确保你使用的 PaddlePaddle 和 PaddleOCR 版本是兼容的。新格式通常出现在 PaddlePaddle 2.4 及以上版本中。

2. 调整部署代码

如果你使用的是旧版的推理代码,可能需要调整以适配新格式。新格式的模型加载方式可能与旧版不同,建议参考 PaddleOCR 官方文档中关于模型部署的最新说明。

3. 理解文件用途

  • model.json:替代了原来的 .pdmodel 文件,用 JSON 格式描述模型结构。
  • model.pdiparams:与旧版相同,存储模型参数。
  • model.yml:提供了模型的元数据,如输入输出的名称、形状、数据类型等,这对于自动化部署非常有用。

4. 导出时指定格式(可选)

如果你希望继续使用旧格式,可以尝试在导出命令中添加相关参数(如果支持)。但请注意,旧格式可能在未来版本中被弃用,因此建议逐步迁移到新格式。

总结

PaddleOCR 自训练模型导出时生成新格式的文件是框架升级的正常现象,并非错误。这一变化旨在提升模型的部署效率和跨平台兼容性。作为开发者,理解新格式的文件结构及其用途,有助于更好地进行模型部署和优化。如果你在迁移过程中遇到问题,建议查阅 PaddleOCR 的最新文档或社区讨论,以获取更多技术支持。

【免费下载链接】PaddleOCR 飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) 【免费下载链接】PaddleOCR 项目地址: https://gitcode.com/paddlepaddle/PaddleOCR

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐