From a88fa12a8494543c5d1bc0ea273714de32258538 Mon Sep 17 00:00:00 2001 From: Feng Ni Date: Mon, 1 Aug 2022 10:37:10 +0800 Subject: [PATCH] fix ppyoloe yolox doc (#6543) --- configs/ppyoloe/_base_/ppyoloe_crn.yml | 2 +- .../ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml | 4 +- configs/ppyoloe/ppyoloe_crn_s_400e_coco.yml | 8 +--- configs/yolox/README.md | 46 ++++++++++++------- ..._coco.yml => yolox_cdn_tiny_300e_coco.yml} | 7 ++- 5 files changed, 41 insertions(+), 26 deletions(-) rename configs/yolox/{yoloxv2_tiny_300e_coco.yml => yolox_cdn_tiny_300e_coco.yml} (59%) diff --git a/configs/ppyoloe/_base_/ppyoloe_crn.yml b/configs/ppyoloe/_base_/ppyoloe_crn.yml index 2fde30fb5..7abee87a2 100644 --- a/configs/ppyoloe/_base_/ppyoloe_crn.yml +++ b/configs/ppyoloe/_base_/ppyoloe_crn.yml @@ -39,7 +39,7 @@ PPYOLOEHead: beta: 6.0 nms: name: MultiClassNMS - nms_top_k: 10000 + nms_top_k: 1000 keep_top_k: 300 score_threshold: 0.01 nms_threshold: 0.7 diff --git a/configs/ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml b/configs/ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml index 5b4d644fe..379728886 100644 --- a/configs/ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml +++ b/configs/ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml @@ -64,6 +64,6 @@ PPYOLOEHead: nms: name: MultiClassNMS nms_top_k: 1000 - keep_top_k: 100 + keep_top_k: 300 score_threshold: 0.01 - nms_threshold: 0.6 + nms_threshold: 0.7 diff --git a/configs/ppyoloe/ppyoloe_crn_s_400e_coco.yml b/configs/ppyoloe/ppyoloe_crn_s_400e_coco.yml index dcc1514c2..c3cddf48b 100644 --- a/configs/ppyoloe/ppyoloe_crn_s_400e_coco.yml +++ b/configs/ppyoloe/ppyoloe_crn_s_400e_coco.yml @@ -17,13 +17,9 @@ width_mult: 0.50 TrainReader: batch_size: 32 -LearningRate: - base_lr: 0.04 - - epoch: 400 LearningRate: - base_lr: 0.025 + base_lr: 0.04 schedulers: - !CosineDecay max_epochs: 480 @@ -44,7 +40,7 @@ PPYOLOEHead: static_assigner_epoch: 133 nms: name: MultiClassNMS - nms_top_k: 10000 + nms_top_k: 1000 keep_top_k: 300 score_threshold: 0.01 nms_threshold: 0.7 diff --git a/configs/yolox/README.md b/configs/yolox/README.md index c8c2ae9b9..7b191d630 100644 --- a/configs/yolox/README.md +++ b/configs/yolox/README.md @@ -10,24 +10,24 @@ ## 模型库 ### YOLOX on COCO -| 网络网络 | 输入尺寸 | 图片数/GPU | 学习率策略 | 模型推理耗时(ms) | mAPval
0.5:0.95 | mAPval
0.5 | 下载链接 | 配置文件 | -| :------------- | :------- | :-------: | :------: | :---------: | :-----------: | :-----------: |:-------------: | :-----: | -| YOLOX-nano | 416 | 8 | 300e | 2.3 | 26.1 | 42.0 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_nano_300e_coco.pdparams) | [配置文件](./yolox_nano_300e_coco.yml) | -| YOLOX-tiny | 416 | 8 | 300e | 2.8 | 32.9 | 50.4 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_tiny_300e_coco.pdparams) | [配置文件](./yolox_tiny_300e_coco.yml) | -| YOLOX-s | 640 | 8 | 300e | 3.0 | 40.4 | 59.6 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_s_300e_coco.pdparams) | [配置文件](./yolox_s_300e_coco.yml) | -| YOLOX-m | 640 | 8 | 300e | 5.8 | 46.9 | 65.7| [下载链接](https://paddledet.bj.bcebos.com/models/yolox_m_300e_coco.pdparams) | [配置文件](./yolox_m_300e_coco.yml) | -| YOLOX-l | 640 | 8 | 300e | 9.3 | 50.1 | 68.8 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_l_300e_coco.pdparams) | [配置文件](./yolox_l_300e_coco.yml) | -| YOLOX-x | 640 | 8 | 300e | 16.6 | 51.8 | 70.6 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_x_300e_coco.pdparams) | [配置文件](./yolox_x_300e_coco.yml) | - - -| 网络网络 | 输入尺寸 | 图片数/GPU | 学习率策略 | 模型推理耗时(ms) | mAPval
0.5:0.95 | mAPval
0.5 | 下载链接 | 配置文件 | -| :------------- | :------- | :-------: | :------: | :---------: | :-----------: | :-----------: |:-------------: | :-----: | -| YOLOX-cdn-tiny | 416 | 8 | 300e | 1.9 | 32.4 | 50.2 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_cdn_tiny_300e_coco.pdparams) | [配置文件](./yolox_cdn_tiny_300e_coco.yml) | +| 网络网络 | 输入尺寸 | 图片数/GPU | 学习率策略 | 模型推理耗时(ms) | mAPval
0.5:0.95 | mAPval
0.5 | Params(M) | FLOPs(G) | 下载链接 | 配置文件 | +| :------------- | :------- | :-------: | :------: | :------------: | :---------------------: | :----------------: |:---------: | :------: |:---------------: |:-----: | +| YOLOX-nano | 416 | 8 | 300e | 2.3 | 26.1 | 42.0 | 0.91 | 1.08 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_nano_300e_coco.pdparams) | [配置文件](./yolox_nano_300e_coco.yml) | +| YOLOX-tiny | 416 | 8 | 300e | 2.8 | 32.9 | 50.4 | 5.06 | 6.45 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_tiny_300e_coco.pdparams) | [配置文件](./yolox_tiny_300e_coco.yml) | +| YOLOX-s | 640 | 8 | 300e | 3.0 | 40.4 | 59.6 | 9.0 | 26.8 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_s_300e_coco.pdparams) | [配置文件](./yolox_s_300e_coco.yml) | +| YOLOX-m | 640 | 8 | 300e | 5.8 | 46.9 | 65.7 | 25.3 | 73.8 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_m_300e_coco.pdparams) | [配置文件](./yolox_m_300e_coco.yml) | +| YOLOX-l | 640 | 8 | 300e | 9.3 | 50.1 | 68.8 | 54.2 | 155.6 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_l_300e_coco.pdparams) | [配置文件](./yolox_l_300e_coco.yml) | +| YOLOX-x | 640 | 8 | 300e | 16.6 | **51.8** | **70.6** | 99.1 | 281.9 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_x_300e_coco.pdparams) | [配置文件](./yolox_x_300e_coco.yml) | + + +| 网络网络 | 输入尺寸 | 图片数/GPU | 学习率策略 | 模型推理耗时(ms) | mAPval
0.5:0.95 | mAPval
0.5 | Params(M) | FLOPs(G) | 下载链接 | 配置文件 | +| :------------- | :------- | :-------: | :------: | :------------: | :---------------------: | :----------------: |:---------: | :------: |:---------------: |:-----: | +| YOLOX-cdn-tiny | 416 | 8 | 300e | 1.9 | 32.4 | 50.2 | 5.03 | 6.33 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_cdn_tiny_300e_coco.pdparams) | [配置文件](./yolox_cdn_tiny_300e_coco.yml) | | YOLOX-crn-s | 640 | 8 | 300e | 3.0 | 40.4 | 59.6 | 7.7 | 24.69 | [下载链接](https://paddledet.bj.bcebos.com/models/yolox_crn_s_300e_coco.pdparams) | [配置文件](./yolox_crn_s_300e_coco.yml) | **注意:** - - YOLOX模型训练使用COCO train2017作为训练集,YOLOX-cdn表示使用与YOLOv5 releases v6.0之后版本相同的主干网络,YOLOX-crn表示使用与PPYOLOE相同的主干网络CSPResNet; + - YOLOX模型训练使用COCO train2017作为训练集,YOLOX-cdn表示使用与YOLOv5 releases v6.0之后版本相同的主干网络,YOLOX-crn表示使用与PPYOLOE相同的主干网络CSPResNet; - YOLOX模型训练过程中默认使用8 GPUs进行混合精度训练,默认每卡batch_size为8,默认lr为0.01为8卡总batch_size=64的设置,如果**GPU卡数**或者每卡**batch size**发生了改变,你需要按照公式 **lrnew = lrdefault * (batch_sizenew * GPU_numbernew) / (batch_sizedefault * GPU_numberdefault)** 调整学习率; - 为保持高mAP的同时提高推理速度,可以将[yolox_cspdarknet.yml](_base_/yolox_cspdarknet.yml)中的`nms_top_k`修改为`1000`,将`keep_top_k`修改为`100`,将`score_threshold`修改为`0.01`,mAP会下降约0.1~0.2%; - 为快速的demo演示效果,可以将[yolox_cspdarknet.yml](_base_/yolox_cspdarknet.yml)中的`score_threshold`修改为`0.25`,将`nms_threshold`修改为`0.45`,但mAP会下降较多; @@ -154,15 +154,29 @@ python tools/export_model.py -c configs/yolox/yolox_s_300e_coco.yml -o weights=h python deploy/python/infer.py --model_dir=output_inference/yolox_s_300e_coco --image_file=demo/000000014439_640x640.jpg --device=gpu --run_benchmark=True # tensorRT-FP32测速 -python deploy/python/infer.py --model_dir=output_inference/yolox_s_300e_coco --image_file=demo/000000014439_640x640.jpg --device=gpu --run_benchmark=True --trt_max_shape=640 --trt_min_shape=640 --trt_opt_shape=640 --run_mode=trt_fp32 +python deploy/python/infer.py --model_dir=output_inference/yolox_s_300e_coco --image_file=demo/000000014439_640x640.jpg --device=gpu --run_benchmark=True --run_mode=trt_fp32 # tensorRT-FP16测速 -python deploy/python/infer.py --model_dir=output_inference/yolox_s_300e_coco --image_file=demo/000000014439_640x640.jpg --device=gpu --run_benchmark=True --trt_max_shape=640 --trt_min_shape=640 --trt_opt_shape=640 --run_mode=trt_fp16 +python deploy/python/infer.py --model_dir=output_inference/yolox_s_300e_coco --image_file=demo/000000014439_640x640.jpg --device=gpu --run_benchmark=True --run_mode=trt_fp16 ``` **注意:** - 导出模型时指定`-o exclude_nms=True`仅作为测速时用,这样导出的模型其推理部署预测的结果不是最终检出框的结果。 - [模型库](#模型库)中的速度测试结果为**tensorRT-FP16**测速后的最快速度,为**不包含数据预处理和模型输出后处理(NMS)**的耗时。 +## FAQ + +
+如何计算模型参数量 +可以将以下代码插入:[trainer.py](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.4/ppdet/engine/trainer.py#L153) 来计算参数量。 +```python +params = sum([ + p.numel() for n, p in self.model.named_parameters() + if all([x not in n for x in ['_mean', '_variance']]) +]) # exclude BatchNorm running status +print('Params: ', params) +``` +
+ ## Citations ``` diff --git a/configs/yolox/yoloxv2_tiny_300e_coco.yml b/configs/yolox/yolox_cdn_tiny_300e_coco.yml similarity index 59% rename from configs/yolox/yoloxv2_tiny_300e_coco.yml rename to configs/yolox/yolox_cdn_tiny_300e_coco.yml index 9a3c2646c..81c6c075d 100644 --- a/configs/yolox/yoloxv2_tiny_300e_coco.yml +++ b/configs/yolox/yolox_cdn_tiny_300e_coco.yml @@ -1,7 +1,12 @@ _BASE_: [ 'yolox_tiny_300e_coco.yml' ] -weights: output/yoloxv2_tiny_300e_coco/model_final +depth_mult: 0.33 +width_mult: 0.375 + +log_iter: 100 +snapshot_epoch: 10 +weights: output/yolox_cdn_tiny_300e_coco/model_final CSPDarkNet: arch: "P5" # using the same backbone of YOLOv5 releases v6.0 and later version -- GitLab