Skip to content

Toward Devkit Consistency#8360

Merged
jerrywgz merged 8 commits intoPaddlePaddle:developfrom
Bobholamovic:paddlex
Jun 25, 2023
Merged

Toward Devkit Consistency#8360
jerrywgz merged 8 commits intoPaddlePaddle:developfrom
Bobholamovic:paddlex

Conversation

@Bobholamovic
Copy link
Copy Markdown
Member

@Bobholamovic Bobholamovic commented Jun 13, 2023

目标

修改代码以提升PaddleCV套件一致性,同时适配X项目。修改后,套件应满足如下一致性要求:

  1. 将训练过程中最优(一般是验证集上精度最高)的模型权重存储在输出目录的best_model子目录中,文件命名为model.pdparams。与之相配套的优化器参数(如果存储的话)文件命名为model.pdopt,也存储在该目录中。
  2. 支持将训练、验证过程中VisualDL产生的.log格式日志文件保存在输出目录中(无嵌套子目录)。
  3. 套件根目录存在requirements.txt文件,指定使用套件基础功能需要的依赖。在套件根目录可通过pip install .pip install -e .方式(至少其中一种)安装套件核心库。
  4. 对于模型导出功能,默认支持或通过命令行选项/配置文件等手段支持导出为FD格式。『FD格式』的导出结果通常包含如下文件:
  • inference.pdiparams:保存权重参数。
  • inference.pdiparams.info:保存与参数有关的额外信息。
  • inference.pdmodel:保存模型结构描述信息。
  • (可选)inference.yml:预处理配置文件。

代码变动

  1. 【一致性提升】【不兼容升级】使训练时检查点存储位置满足一致性要求1。
  2. 【一致性提升】tools/export_model.py支持--for_fd命令行选项,以控制是否将模型导出为FD格式。
  3. 【一致性提升】deploy/python/infer.pydeploy/python/keypoint_infer.py支持--use_fd_format命令行选项,能够接受并处理FD格式的导出模型。
  4. 【功能增强】修改configs/slim/quant/mask_rcnn_r50_fpn_1x_qat.ymlconfigs/slim/quant/yolov3_darknet_qat.yml,以使这两个模型在量化训练时使用合适的batch size。

遗留问题

  1. 对于代码变动1,尚未更新相关文档。若此PR合入,可能需要套件同学进行更新。
  2. 由于代码变动1为不兼容升级,若此PR合入,套件RD和QA同学可能需要更新测试脚本
  3. 为减小不兼容升级带来的影响,本次改动未完全移除PaddleDetection原有的对最优模型的存储逻辑。因此,输出目录中将存在model.pdparams的两份拷贝。后续需考虑继续优化,使最优模型只保留一份。
  4. 目前best_model目录中尚未存储model.pdopt,尽管后者是可存储的。不过目前的实现也未违背一致性要求1。后续可考虑追加存储优化器参数。

@paddle-bot
Copy link
Copy Markdown

paddle-bot bot commented Jun 13, 2023

Thanks for your contribution!

Copy link
Copy Markdown
Collaborator

@jerrywgz jerrywgz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jerrywgz jerrywgz merged commit bd77dc7 into PaddlePaddle:develop Jun 25, 2023
@Bobholamovic Bobholamovic deleted the paddlex branch June 25, 2023 07:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants