GETTING_STARTED_cn.md 4.1 KB
Newer Older
Q
qingqing01 已提交
1 2 3 4
# 入门使用

## 安装

5
关于安装配置运行环境,请参考[安装指南](INSTALL_cn.md)
Q
qingqing01 已提交
6 7 8


## 准备数据
9 10
- 首先按照[准备数据文档](PrepareDataSet.md) 准备数据。  
- 然后设置`configs/datasets`中相应的coco或voc等数据配置文件中的数据路径。
Q
qingqing01 已提交
11 12 13 14


## 训练/评估/预测

15 16 17 18 19 20 21 22 23 24
PaddleDetection在[tools](https://github.com/PaddlePaddle/PaddleDetection/tree/master/dygraph/tools)中提供了`训练`/`评估`/`预测`/`导出模型`等功能,支持通过传入不同可选参数实现特定功能

### 参数列表

以下列表可以通过`--help`查看

|         FLAG             |     支持脚本    |        用途        |      默认值       |         备注         |
| :----------------------: | :------------: | :---------------: | :--------------: | :-----------------: |
|          -c              |      ALL       |  指定配置文件  |  None  |  **必选**,例如-c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml |
|        --eval            |     train      |  是否边训练边测试  |  False  |  可选,如需指定,直接`--eval`即可 |
25 26
|      --fleet         |       train     |  是否使用fleet API训练  |  False  |  可以使用--fleet来指定使用fleet API进行多机训练  |
|      --fp16        |       train     |  是否开启混合精度训练  |  False  |  可以使用--fp16来指定使用混合精度训练  |
27 28 29 30 31 32
|          -o              |      ALL       |  设置或更改配置文件里的参数内容  |  None  |  可选,例如:`-o use_gpu=False`  |
|       --slim_config             |     ALL      |  模型压缩策略配置文件  |  None  |  可选,例如`--slim_config configs/slim/prune/yolov3_prune_l1_norm.yml`  |
|       --output_dir       |      infer/export_model     |  预测后结果或导出模型保存路径  |  `./output`  |  可选,例如`--output_dir=output`  |
|    --draw_threshold      |      infer     |  可视化时分数阈值  |  0.5  |  可选,`--draw_threshold=0.7`  |
|      --infer_dir         |       infer     |  用于预测的图片文件夹路径  |  None  |  可选  |
|      --infer_img         |       infer     |  用于预测的图片路径  |  None  |  可选,`--infer_img``--infer_dir`必须至少设置一个  |
33
|      --classwise         |       eval     |  是否评估单类AP和绘制单类PR曲线  |  False  |  可选  |
34 35 36 37 38 39 40 41 42 43

### 训练

- 单卡训练
```bash
# 通过CUDA_VISIBLE_DEVICES指定GPU卡号
export CUDA_VISIBLE_DEVICES=0
python tools/train.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml
```
- 多卡训练
Q
qingqing01 已提交
44 45 46

```bash
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
47 48 49
python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml
```

50 51 52 53 54 55 56 57 58 59 60 61 62 63
- 混合精度训练

```bash
export CUDA_VISIBLE_DEVICES=0
python tools/train.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml --fp16
```

- fleet API训练

```bash
# fleet API用于多机训练,启动方式与单机多卡训练方式基本一致,只不过需要使用--ips指定ip列表以及--fleet开启多机训练
python -m paddle.distributed.launch --ips="xx.xx.xx.xx,yy.yy.yy.yy" --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml --fleet
```

64 65 66
- 边训练边评估
```bash
python tools/train.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml --eval
Q
qingqing01 已提交
67 68
```

69
### 评估
Q
qingqing01 已提交
70
```bash
71 72
# 目前只支持单卡评估
CUDA_VISIBLE_DEVICES=0 python tools/eval.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml
Q
qingqing01 已提交
73 74
```

75
### 预测
Q
qingqing01 已提交
76
```bash
77
CUDA_VISIBLE_DEVICES=0 python tools/infer.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml --infer_img={IMAGE_PATH}
Q
qingqing01 已提交
78
```
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

## 预测部署

(1)导出模型

```bash
python tools/export_model.py -c configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.yml \
        -o weights=output/faster_rcnn_r50_fpn_1x_coco/model_final \
        --output_dir=output_inference
```

(2)预测部署

参考[预测部署文档](https://github.com/PaddlePaddle/PaddleDetection/tree/master/dygraph/deploy)


## 模型压缩

参考[模型压缩文档](https://github.com/PaddlePaddle/PaddleDetection/tree/master/dygraph/configs/slim)