README.md 5.2 KB
Newer Older
littletomatodonkey's avatar
littletomatodonkey 已提交
1
# Linux GPU/CPU 基础训练推理开发规范
littletomatodonkey's avatar
littletomatodonkey 已提交
2

littletomatodonkey's avatar
littletomatodonkey 已提交
3
# 目录
littletomatodonkey's avatar
littletomatodonkey 已提交
4

littletomatodonkey's avatar
littletomatodonkey 已提交
5 6 7 8 9 10 11 12 13 14
- [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)
littletomatodonkey's avatar
littletomatodonkey 已提交
15

littletomatodonkey's avatar
littletomatodonkey 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28
<a name="1"></a>

## 1. 简介

该系列文档主要介绍飞桨模型基于 Linux GPU/CPU 基础训练推理开发过程,主要包含三个步骤。

1. 参考 [《模型复现指南》](../../lwfx/ArticleReproduction_CV.md),完成模型的训练与基于训练引擎的预测过程。

2. 参考[《Linux GPU/CPU 模型推理开发文档》](./py_inference.md),在基于训练引擎预测的基础上,完成基于Paddle Inference的推理过程开发。

3. 参考[《Linux GPU/CPU 基础训练推理测试开发文档》](./test_linux_train_infer_python.md),完成Linux GPU/CPU 训练、推理测试功能开发。

<a name="2"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
29

littletomatodonkey's avatar
littletomatodonkey 已提交
30 31 32
## 2. 模型复现流程与规范

<a name="2.1"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
33 34 35

### 2.1 复现流程

littletomatodonkey's avatar
littletomatodonkey 已提交
36
如果您对于模型复现过程已经非常熟悉,在复现过程中可以按照自己的复现方法进行复现。但是需要注意训练日志与文档内容符合规范。可以参考`2.2章节`
littletomatodonkey's avatar
littletomatodonkey 已提交
37

littletomatodonkey's avatar
littletomatodonkey 已提交
38
如果您在模型复现方面经验较少,或者复现过程中遇到问题,希望快速排查问题,强烈建议您按照模型复现指南进行操作。以CV任务为例,复现指南将模型复现分为13个步骤,如下所示。
littletomatodonkey's avatar
littletomatodonkey 已提交
39 40 41 42 43

<div align="center">
    <img src="../../lwfx/images/framework_reprodcv.png" width="800">
</div>

littletomatodonkey's avatar
littletomatodonkey 已提交
44
更多内容请参考:[模型复现指南](../lwfx/ArticleReproduction_CV.md)
littletomatodonkey's avatar
littletomatodonkey 已提交
45

littletomatodonkey's avatar
littletomatodonkey 已提交
46
<a name="2.2"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
47

littletomatodonkey's avatar
littletomatodonkey 已提交
48
### 2.2 核验点
littletomatodonkey's avatar
littletomatodonkey 已提交
49

littletomatodonkey's avatar
littletomatodonkey 已提交
50 51 52
在模型复现过程中,至少需要产出下面的内容。

#### 2.2.1 小数据集
littletomatodonkey's avatar
littletomatodonkey 已提交
53

littletomatodonkey's avatar
littletomatodonkey 已提交
54
* repo中包含`lite_data`小数据集压缩包,解压之后可以获取`lite_data`小数据集文件夹。该数据集可以便于快速验证训练过程的能否跑通,其中包含的数据也可以用于验证推理部署过程。
littletomatodonkey's avatar
littletomatodonkey 已提交
55 56 57 58 59 60 61 62 63

#### 2.2.2 代码与精度

* 代码中包含训练(`train.py`)、评估(`eval.py`)、预测(`predict.py`)的脚本,分别作为模型训练、评估、预测的入口。

* 模型结构、数据预处理/后处理、优化器、预训练模型与参考代码保持一致。

#### 2.2.3 训练日志

littletomatodonkey's avatar
littletomatodonkey 已提交
64
* 日志文件中,每个迭代过程的输出信息至少包含`loss`, `avg_reader_cost`, `avg_batch_cost`, `avg_ips`关键字段。含义如下所示。
littletomatodonkey's avatar
littletomatodonkey 已提交
65 66 67 68 69
    * `loss`: 过去若干个iter的loss值
    * `avg_reader_cost`: 过去若干个iter的平均reader耗时 (单位: sec)
    * `avg_batch_cost`: 过去若干个iter的平均训练耗时 (单位: sec)
    * `avg_ips`: 过段若干个iter个训练速度(单位: images/sec)

littletomatodonkey's avatar
littletomatodonkey 已提交
70
#### 2.2.4 文档
littletomatodonkey's avatar
littletomatodonkey 已提交
71 72

* 说明文档中需要有数据准备以及模型训练、评估、预测的命令。
littletomatodonkey's avatar
littletomatodonkey 已提交
73 74 75 76
* 介绍预测命令(`predict.py`)时,需要提供示例图片,并根据示例图片,可视化出使用提供的预测命令运行得到的结果。


<a name="3"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
77 78 79

## 3. 模型推理开发规范

littletomatodonkey's avatar
littletomatodonkey 已提交
80 81
<a name="3.1"></a>

littletomatodonkey's avatar
littletomatodonkey 已提交
82 83
### 3.1 开发流程

littletomatodonkey's avatar
littletomatodonkey 已提交
84
基于Paddle Inference的预测过程分为下面9个步骤。
littletomatodonkey's avatar
littletomatodonkey 已提交
85 86

<div align="center">
littletomatodonkey's avatar
littletomatodonkey 已提交
87
    <img src="./images/py_inference_pipeline.png" width="800">
littletomatodonkey's avatar
littletomatodonkey 已提交
88 89 90 91
</div>

更多的介绍可以参考:[模型推理开发规范](./inference.md)

littletomatodonkey's avatar
littletomatodonkey 已提交
92
<a name="3.2"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
93

littletomatodonkey's avatar
littletomatodonkey 已提交
94
### 3.2 核验点
littletomatodonkey's avatar
littletomatodonkey 已提交
95

littletomatodonkey's avatar
littletomatodonkey 已提交
96
#### 3.2.1 代码与预测结果
littletomatodonkey's avatar
littletomatodonkey 已提交
97

littletomatodonkey's avatar
littletomatodonkey 已提交
98
* 项目中需要包含`模型动转静`脚本(`export_model.py`)以及`模型基于 Paddle Inference 的`预测脚本(`infer.py`)。
littletomatodonkey's avatar
littletomatodonkey 已提交
99

littletomatodonkey's avatar
littletomatodonkey 已提交
100
#### 3.2.2 文档
littletomatodonkey's avatar
littletomatodonkey 已提交
101

littletomatodonkey's avatar
littletomatodonkey 已提交
102 103 104 105 106 107 108
* 说明文档中,需要包含`模型动转静``模型基于预测引擎`的使用命令说明。

<a name="4"></a>

## 4. 基础训练推理测试开发规范

<a name="4.1"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
109 110 111

### 4.1 开发流程

littletomatodonkey's avatar
littletomatodonkey 已提交
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
基础训练推理测试开发的流程如下所示。

<div align="center">
    <img src="./images/test_linux_train_infer_python_pipeline.png" width="400">
</div>

更多的介绍可以参考:[Linux GPU/CPU 基础训练推理测试开发规范](./test_linux_train_infer_python.md)


<a name="4.2"></a>

### 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基础训练推理测试常用函数,无需改动
```

littletomatodonkey's avatar
littletomatodonkey 已提交
142

littletomatodonkey's avatar
littletomatodonkey 已提交
143
#### 4.2.2 配置文件和说明文档
littletomatodonkey's avatar
littletomatodonkey 已提交
144

littletomatodonkey's avatar
littletomatodonkey 已提交
145 146 147
* `test_tipc/README.md` 文档中对该模型支持的的功能进行总体介绍。
* `test_tipc/docs/test_train_inference_python.md` 文档中对**Linux GPU/CPU 基础训练推理**的功能进行详细介绍。
* 根据文档内容,基于配置文件,跑通自动化训练、推理的测试过程。