# Linux GPU/CPU 基础训练推理开发文档 # 目录 - [1. 简介](#1) - [2. 模型复现流程与规范](#2) - [2.1 复现流程](#2.1) - [2.2 核验点](#2.2) - [3. 模型推理开发规范](#3) - [3.1 开发流程](#3.1) - [3.2 核验点](#3.2) - [4. 基础训练推理测试开发规范](#4) - [4.1 开发流程](#4.1) - [4.2 核验点](#4.2) ## 1. 简介 该系列文档主要介绍飞桨模型基于 Linux GPU/CPU 基础训练推理开发过程,主要包含三个步骤。 - 步骤一:参考 [《模型复现指南》](../../lwfx/ArticleReproduction_CV.md),完成模型的训练与基于训练引擎的预测程序开发。 - 步骤二:参考[《Linux GPU/CPU 模型推理开发文档》](./infer_python.md),在基于训练引擎预测的基础上,完成基于Paddle Inference的推理程序开发。 - 步骤三:参考[《Linux GPU/CPU 基础训练推理测试开发文档》](./test_train_infer_python.md),完成Linux GPU/CPU 训练、推理测试功能开发。 ## 2. 模型复现流程与规范 ### 2.1 复现流程 如果您对于模型复现过程已经非常熟悉,在复现过程中可以按照自己的复现方法进行复现。但是需要注意训练日志与文档内容符合规范。可以参考`2.2章节`。 如果您在模型复现方面经验较少,或者复现过程中遇到问题,希望快速排查问题,强烈建议您按照模型复现指南进行操作。以CV任务为例,复现指南将模型复现分为13个步骤,如下所示。
更多内容请参考:[模型复现指南](../../lwfx/ArticleReproduction_CV.md)。 ### 2.2 核验点 在模型复现过程中,至少需要产出下面的内容。 #### 2.2.1 代码与精度 **【参考】** * [模型复现指南](../../lwfx/ArticleReproduction_CV.md)中第`3`章节。 **【要求】** * 模型结构、数据预处理/后处理、优化器、预训练模型与参考代码保持一致。 * 代码中包含训练(`train.py`)、评估(`eval.py`)、预测(`predict.py`)的脚本,分别作为模型`训练`、`评估`、`预测`的入口。 #### 2.2.2 小数据集 **【参考】** * [模型复现指南](../../lwfx/ArticleReproduction_CV.md)中`3.2`章节。 **【要求】** repo中包含`lite_data`小数据集压缩包,解压之后可以获取`lite_data`小数据集文件夹。该数据集可以便于快速验证训练过程的能否跑通,其中包含的数据也可以用于验证推理部署过程。 #### 2.2.3 训练日志 **【参考】** [模型复现指南](../../lwfx/ArticleReproduction_CV.md)中`3.12`章节。 **【要求】** * 日志文件中,每个迭代过程的输出信息至少包含`loss`, `avg_reader_cost`, `avg_batch_cost`, `avg_ips`关键字段。含义如下所示。 * `loss`: 过去若干个iter的loss值 * `avg_reader_cost`: 过去若干个iter的平均reader耗时 (单位: sec) * `avg_batch_cost`: 过去若干个iter的平均训练耗时 (单位: sec) * `avg_ips`: 过段若干个iter个训练速度(单位: images/sec) * 如果训练过程中包含模型评估过程,则日志文件中也需要包含`模型评估`结果指标。 #### 2.2.4 基于训练引擎的预测程序 **【参考】** * [模型复现指南](../../lwfx/ArticleReproduction_CV.md)中`3.13`章节。 **【要求】** 提供基于训练引擎的预测脚本与命令,文档需要提供示例图片,并根据示例图片,可视化出使用提供的预测命令运行得到的结果。 #### 2.2.5 文档 **【参考】** * [repo模板首页文档](../../../community/repo_template/README.md),如果论文还没有完成推理部署部分,可以先不添加模板文档中的`第5章`内容。 **【要求】** * 按照参考`repo模板首页文档`的内容,添加对应的信息。 ## 3. 模型推理开发规范 ### 3.1 开发流程 基于Paddle Inference的预测过程分为下面9个步骤。
更多的介绍可以参考:[模型推理开发规范](./infer_python.md)。 ### 3.2 核验点 #### 3.2.1 代码与预测结果 * 项目中需要包含`模型动转静`脚本(`export_model.py`)以及`模型基于 Paddle Inference 的`预测脚本(`infer.py`)。 #### 3.2.2 文档 * 说明文档中,需要包含`模型动转静`和`模型基于预测引擎`的使用命令说明。 ## 4. 基础训练推理测试开发规范 ### 4.1 开发流程 基础训练推理测试开发的流程如下所示。
更多的介绍可以参考:[Linux GPU/CPU 基础训练推理测试开发规范](./test_linux_train_infer_python.md)。 ### 4.2 核验点 #### 4.2.1 目录结构 在repo根目录下面新建`test_tipc`文件夹,目录结构如下所示。 ``` test_tipc |--configs # 配置目录 | |--model_name # 您的模型名称 | |--train_infer_python.txt # 基础训练推理测试配置文件 |--docs # 文档目录 | |--test_train_inference_python.md # 基础训练推理测试说明文档 |----README.md # TIPC说明文档 |----test_train_inference_python.sh # TIPC基础训练推理测试解析脚本,无需改动 |----common_func.sh # TIPC基础训练推理测试常用函数,无需改动 ``` #### 4.2.2 配置文件和测试文档 * `test_tipc/README.md` 文档中对该模型支持的的功能进行总体介绍。 * `test_tipc/docs/test_train_inference_python.md` 文档中对**Linux GPU/CPU 基础训练推理**的功能支持情况进行介绍。 * 根据测试文档,基于配置文件,跑通训练推理全流程测试。