README.md 6.0 KB
Newer Older
D
dyning 已提交
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
- [1. 简介](#1)
- [2. 模型复现流程与规范](#2)
    - [2.1 复现流程](#2.1)
    - [2.2 核验点](#2.2)
- [3. 模型推理开发规范](#3)
    - [3.1 开发流程](#3.1)
    - [3.2 核验点](#3.2)
littletomatodonkey's avatar
littletomatodonkey 已提交
12
- [4. 基础训练推理测试开发规范](#4)
littletomatodonkey's avatar
littletomatodonkey 已提交
13 14
    - [4.1 开发流程](#4.1)
    - [4.2 核验点](#4.2)
littletomatodonkey's avatar
littletomatodonkey 已提交
15

littletomatodonkey's avatar
littletomatodonkey 已提交
16 17 18 19 20 21
<a name="1"></a>

## 1. 简介

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

D
dyning 已提交
22
- 步骤一:参考 [《模型复现指南》](../../lwfx/ArticleReproduction_CV.md),完成模型的训练与基于训练引擎的预测程序开发。
littletomatodonkey's avatar
littletomatodonkey 已提交
23

D
dyning 已提交
24
- 步骤二:参考[《Linux GPU/CPU 模型推理开发文档》](./infer_python.md),在基于训练引擎预测的基础上,完成基于Paddle Inference的推理程序开发。
littletomatodonkey's avatar
littletomatodonkey 已提交
25

D
dyning 已提交
26
- 步骤三:参考[《Linux GPU/CPU 基础训练推理测试开发文档》](./test_train_infer_python.md),完成Linux GPU/CPU 训练、推理测试功能开发。
littletomatodonkey's avatar
littletomatodonkey 已提交
27 28

<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
在模型复现过程中,至少需要产出下面的内容。

littletomatodonkey's avatar
littletomatodonkey 已提交
52
#### 2.2.1 代码与精度
littletomatodonkey's avatar
littletomatodonkey 已提交
53

littletomatodonkey's avatar
littletomatodonkey 已提交
54 55
**【参考】**

littletomatodonkey's avatar
littletomatodonkey 已提交
56
* [模型复现指南](../../lwfx/ArticleReproduction_CV.md)中第`3`章节。
littletomatodonkey's avatar
littletomatodonkey 已提交
57 58 59

**【要求】**

littletomatodonkey's avatar
littletomatodonkey 已提交
60
* 模型结构、数据预处理/后处理、优化器、预训练模型与参考代码保持一致。
littletomatodonkey's avatar
littletomatodonkey 已提交
61

littletomatodonkey's avatar
littletomatodonkey 已提交
62
* 代码中包含训练(`train.py`)、评估(`eval.py`)、预测(`predict.py`)的脚本,分别作为模型`训练``评估``预测`的入口。
littletomatodonkey's avatar
littletomatodonkey 已提交
63

littletomatodonkey's avatar
littletomatodonkey 已提交
64
#### 2.2.2 小数据集
littletomatodonkey's avatar
littletomatodonkey 已提交
65

littletomatodonkey's avatar
littletomatodonkey 已提交
66 67
**【参考】**

littletomatodonkey's avatar
littletomatodonkey 已提交
68
* [模型复现指南](../../lwfx/ArticleReproduction_CV.md)`3.2`章节。
littletomatodonkey's avatar
littletomatodonkey 已提交
69 70 71

**【要求】**

littletomatodonkey's avatar
littletomatodonkey 已提交
72
repo中包含`lite_data`小数据集压缩包,解压之后可以获取`lite_data`小数据集文件夹。该数据集可以便于快速验证训练过程的能否跑通,其中包含的数据也可以用于验证推理部署过程。
littletomatodonkey's avatar
littletomatodonkey 已提交
73 74 75 76


#### 2.2.3 训练日志

littletomatodonkey's avatar
littletomatodonkey 已提交
77 78 79 80 81 82
**【参考】**

[模型复现指南](../../lwfx/ArticleReproduction_CV.md)`3.12`章节。

**【要求】**

littletomatodonkey's avatar
littletomatodonkey 已提交
83
* 日志文件中,每个迭代过程的输出信息至少包含`loss`, `avg_reader_cost`, `avg_batch_cost`, `avg_ips`关键字段。含义如下所示。
littletomatodonkey's avatar
littletomatodonkey 已提交
84 85 86 87
    * `loss`: 过去若干个iter的loss值
    * `avg_reader_cost`: 过去若干个iter的平均reader耗时 (单位: sec)
    * `avg_batch_cost`: 过去若干个iter的平均训练耗时 (单位: sec)
    * `avg_ips`: 过段若干个iter个训练速度(单位: images/sec)
littletomatodonkey's avatar
littletomatodonkey 已提交
88
* 如果训练过程中包含模型评估过程,则日志文件中也需要包含`模型评估`结果指标。
littletomatodonkey's avatar
littletomatodonkey 已提交
89

D
dyning 已提交
90
#### 2.2.4 基于训练引擎的预测程序
91

littletomatodonkey's avatar
littletomatodonkey 已提交
92 93 94 95 96 97 98
**【参考】**

* [模型复现指南](../../lwfx/ArticleReproduction_CV.md)`3.13`章节。

**【要求】**

提供基于训练引擎的预测脚本与命令,文档需要提供示例图片,并根据示例图片,可视化出使用提供的预测命令运行得到的结果。
99 100

#### 2.2.5 文档
littletomatodonkey's avatar
littletomatodonkey 已提交
101

littletomatodonkey's avatar
littletomatodonkey 已提交
102 103
**【参考】**

littletomatodonkey's avatar
littletomatodonkey 已提交
104
* [repo模板首页文档](../../../community/repo_template/README.md),如果论文还没有完成推理部署部分,可以先不添加模板文档中的`第5章`内容。
littletomatodonkey's avatar
littletomatodonkey 已提交
105 106 107 108

**【要求】**

* 按照参考`repo模板首页文档`的内容,添加对应的信息。
littletomatodonkey's avatar
littletomatodonkey 已提交
109 110

<a name="3"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
111 112 113

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

littletomatodonkey's avatar
littletomatodonkey 已提交
114 115
<a name="3.1"></a>

littletomatodonkey's avatar
littletomatodonkey 已提交
116 117
### 3.1 开发流程

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

<div align="center">
littletomatodonkey's avatar
littletomatodonkey 已提交
121
    <img src="./images/py_inference_pipeline.png" width="800">
littletomatodonkey's avatar
littletomatodonkey 已提交
122 123
</div>

littletomatodonkey's avatar
littletomatodonkey 已提交
124
更多的介绍可以参考:[模型推理开发规范](./infer_python.md)
littletomatodonkey's avatar
littletomatodonkey 已提交
125

littletomatodonkey's avatar
littletomatodonkey 已提交
126
<a name="3.2"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
127

littletomatodonkey's avatar
littletomatodonkey 已提交
128
### 3.2 核验点
littletomatodonkey's avatar
littletomatodonkey 已提交
129

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

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

littletomatodonkey's avatar
littletomatodonkey 已提交
134
#### 3.2.2 文档
littletomatodonkey's avatar
littletomatodonkey 已提交
135

littletomatodonkey's avatar
littletomatodonkey 已提交
136 137 138 139 140 141 142
* 说明文档中,需要包含`模型动转静``模型基于预测引擎`的使用命令说明。

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

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

<a name="4.1"></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
143 144 145

### 4.1 开发流程

littletomatodonkey's avatar
littletomatodonkey 已提交
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
基础训练推理测试开发的流程如下所示。

<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 已提交
176

D
dyning 已提交
177
#### 4.2.2 配置文件和测试文档
littletomatodonkey's avatar
littletomatodonkey 已提交
178

littletomatodonkey's avatar
littletomatodonkey 已提交
179
* `test_tipc/README.md` 文档中对该模型支持的的功能进行总体介绍。
D
dyning 已提交
180 181
* `test_tipc/docs/test_train_inference_python.md` 文档中对**Linux GPU/CPU 基础训练推理**的功能支持情况进行介绍。
* 根据测试文档,基于配置文件,跑通训练推理全流程测试。