SEResNext_and_Res2Net.md 19.5 KB
Newer Older
S
sibo2rr 已提交
1 2
# SEResNeXt 与 Res2Net 系列
-----
G
gaotingquan 已提交
3

S
sibo2rr 已提交
4
## 目录
D
dyning 已提交
5

G
gaotingquan 已提交
6 7 8 9 10
- [1. 模型介绍](#1)
    - [1.1 模型简介](#1.1)
    - [1.2 模型指标](#1.2)
    - [1.3 Benchmark](#1.3)
      - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1)
G
gaotingquan 已提交
11
      - [1.3.2 基于 T4 GPU 的预测速度](#1.3.2)
G
gaotingquan 已提交
12 13 14 15 16 17 18 19 20
- [2. 模型快速体验](#2)
- [3. 模型训练、评估和预测](#3)
- [4. 模型推理部署](#4)
  - [4.1 推理模型准备](#4.1)
  - [4.2 基于 Python 预测引擎推理](#4.2)
  - [4.3 基于 C++ 预测引擎推理](#4.3)
  - [4.4 服务化部署](#4.4)
  - [4.5 端侧部署](#4.5)
  - [4.6 Paddle2ONNX 模型转换与预测](#4.6)
D
dyning 已提交
21

S
sibo2rr 已提交
22
<a name='1'></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
23

G
gaotingquan 已提交
24 25 26 27 28 29
## 1. 模型介绍

<a name='1.1'></a>

### 1.1 模型简介

S
sibo2rr 已提交
30 31 32 33 34 35 36
ResNeXt 是 ResNet 的典型变种网络之一,ResNeXt 发表于 2017 年的 CVPR 会议。在此之前,提升模型精度的方法主要集中在将网络变深或者变宽,这样增加了参数量和计算量,推理速度也会相应变慢。ResNeXt 结构提出了通道分组(cardinality)的概念,作者通过实验发现增加通道的组数比增加深度和宽度更有效。其可以在不增加参数复杂度的前提下提高准确率,同时还减少了参数的数量,所以是比较成功的 ResNet 的变种。

SENet 是 2017 年 ImageNet 分类比赛的冠军方案,其提出了一个全新的 SE 结构,该结构可以迁移到任何其他网络中,其通过控制 scale 的大小,把每个通道间重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。

Res2Net 是 2019 年提出的一种全新的对 ResNet 的改进方案,该方案可以和现有其他优秀模块轻松整合,在不增加计算负载量的情况下,在 ImageNet、CIFAR-100 等数据集上的测试性能超过了 ResNet。Res2Net 结构简单,性能优越,进一步探索了 CNN 在更细粒度级别的多尺度表示能力。Res2Net 揭示了一个新的提升模型精度的维度,即 scale,其是除了深度、宽度和基数的现有维度之外另外一个必不可少的更有效的因素。该网络在其他视觉任务如目标检测、图像分割等也有相当不错的表现。

该系列模型的 FLOPS、参数量以及 T4 GPU 上的预测耗时如下图所示。
littletomatodonkey's avatar
littletomatodonkey 已提交
37 38


39
![](../../../images/models/T4_benchmark/t4.fp32.bs4.SeResNeXt.flops.png)
littletomatodonkey's avatar
littletomatodonkey 已提交
40

41
![](../../../images/models/T4_benchmark/t4.fp32.bs4.SeResNeXt.params.png)
littletomatodonkey's avatar
littletomatodonkey 已提交
42

43
![](../../../images/models/T4_benchmark/t4.fp32.bs4.SeResNeXt.png)
littletomatodonkey's avatar
littletomatodonkey 已提交
44

45
![](../../../images/models/T4_benchmark/t4.fp16.bs4.SeResNeXt.png)
littletomatodonkey's avatar
littletomatodonkey 已提交
46

W
WuHaobo 已提交
47

S
sibo2rr 已提交
48
目前 PaddleClas 开源的这三类的预训练模型一共有 24 个,其指标如图所示,从图中可以看出,在同样 Flops 和 Params 下,改进版的模型往往有更高的精度,但是推理速度往往不如 ResNet 系列。另一方面,Res2Net 表现也较为优秀,相比 ResNeXt 中的 group 操作、SEResNet 中的 SE 结构操作,Res2Net 在相同 Flops、Params 和推理速度下往往精度更佳。
littletomatodonkey's avatar
littletomatodonkey 已提交
49

G
gaotingquan 已提交
50
<a name='1.2'></a>
W
WuHaobo 已提交
51

G
gaotingquan 已提交
52
### 1.2 模型指标
W
WuHaobo 已提交
53

G
gaotingquan 已提交
54
| Models                | Top1   | Top5   | Reference<br>top1 | Reference<br>top5 | FLOPs<br>(G) | Params<br>(M) |
W
WuHaobo 已提交
55 56 57
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
| Res2Net50_26w_4s      | 0.793  | 0.946  | 0.780             | 0.936             | 8.520        | 25.700            |
| Res2Net50_vd_26w_4s   | 0.798  | 0.949  |                   |                   | 8.370        | 25.060            |
littletomatodonkey's avatar
littletomatodonkey 已提交
58
| Res2Net50_vd_26w_4s_ssld   | 0.831  | 0.966  |                   |                   | 8.370        | 25.060            |
W
WuHaobo 已提交
59 60
| Res2Net50_14w_8s      | 0.795  | 0.947  | 0.781             | 0.939             | 9.010        | 25.720            |
| Res2Net101_vd_26w_4s  | 0.806  | 0.952  |                   |                   | 16.670       | 45.220            |
littletomatodonkey's avatar
littletomatodonkey 已提交
61
| Res2Net101_vd_26w_4s_ssld  | 0.839  | 0.971  |                   |                   | 16.670       | 45.220            |
W
WuHaobo 已提交
62
| Res2Net200_vd_26w_4s  | 0.812  | 0.957  |                   |                   | 31.490       | 76.210            |
63
| Res2Net200_vd_26w_4s_ssld  | **0.851**  | 0.974  |                   |                   | 31.490       | 76.210            |
W
WuHaobo 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| ResNeXt50_32x4d       | 0.778  | 0.938  | 0.778             |                   | 8.020        | 23.640            |
| ResNeXt50_vd_32x4d    | 0.796  | 0.946  |                   |                   | 8.500        | 23.660            |
| ResNeXt50_64x4d       | 0.784  | 0.941  |                   |                   | 15.060       | 42.360            |
| ResNeXt50_vd_64x4d    | 0.801  | 0.949  |                   |                   | 15.540       | 42.380            |
| ResNeXt101_32x4d      | 0.787  | 0.942  | 0.788             |                   | 15.010       | 41.540            |
| ResNeXt101_vd_32x4d   | 0.803  | 0.951  |                   |                   | 15.490       | 41.560            |
| ResNeXt101_64x4d      | 0.784  | 0.945  | 0.796             |                   | 29.050       | 78.120            |
| ResNeXt101_vd_64x4d   | 0.808  | 0.952  |                   |                   | 29.530       | 78.140            |
| ResNeXt152_32x4d      | 0.790  | 0.943  |                   |                   | 22.010       | 56.280            |
| ResNeXt152_vd_32x4d   | 0.807  | 0.952  |                   |                   | 22.490       | 56.300            |
| ResNeXt152_64x4d      | 0.795  | 0.947  |                   |                   | 43.030       | 107.570           |
| ResNeXt152_vd_64x4d   | 0.811  | 0.953  |                   |                   | 43.520       | 107.590           |
| SE_ResNet18_vd        | 0.733  | 0.914  |                   |                   | 4.140        | 11.800            |
| SE_ResNet34_vd        | 0.765  | 0.932  |                   |                   | 7.840        | 21.980            |
| SE_ResNet50_vd        | 0.795  | 0.948  |                   |                   | 8.670        | 28.090            |
| SE_ResNeXt50_32x4d    | 0.784  | 0.940  | 0.789             | 0.945             | 8.020        | 26.160            |
| SE_ResNeXt50_vd_32x4d | 0.802  | 0.949  |                   |                   | 10.760       | 26.280            |
L
littletomatodonkey 已提交
81
| SE_ResNeXt101_32x4d   | 0.7939  | 0.9443  | 0.793             | 0.950             | 15.020       | 46.280            |
W
WuHaobo 已提交
82 83
| SENet154_vd           | 0.814  | 0.955  |                   |                   | 45.830       | 114.290           |

G
gaotingquan 已提交
84
### 1.3 Benchmark
W
WuHaobo 已提交
85

G
gaotingquan 已提交
86
<a name='1.3.1'></a>
W
WuHaobo 已提交
87

G
gaotingquan 已提交
88
#### 1.3.1 基于 V100 GPU 的预测速度
W
WuHaobo 已提交
89

S
sibo2rr 已提交
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| Models                 | Crop Size | Resize Short Size | FP32<br/>Batch Size=1<br/>(ms) | FP32<br/>Batch Size=4<br/>(ms) | FP32<br/>Batch Size=8<br/>(ms) |
|-----------------------|-----------|-------------------|-----------------------|-----------------------|-----------------------|
| Res2Net50_26w_4s      | 224       | 256               | 3.52               | 6.23               | 9.30               |
| Res2Net50_vd_26w_4s   | 224       | 256               | 3.59               | 6.35               | 9.50               |
| Res2Net50_14w_8s      | 224       | 256               | 4.39               | 7.21               | 10.38              |
| Res2Net101_vd_26w_4s  | 224       | 256               | 6.34               | 11.02              | 16.13              |
| Res2Net200_vd_26w_4s  | 224       | 256               | 11.45             | 19.77             | 28.81             |
| ResNeXt50_32x4d       | 224       | 256               | 5.07              | 8.49              | 12.02             |
| ResNeXt50_vd_32x4d    | 224       | 256               | 5.29               | 8.68               | 12.33              |
| ResNeXt50_64x4d       | 224       | 256               | 9.39              | 13.97             | 20.56             |
| ResNeXt50_vd_64x4d    | 224       | 256               | 9.75              | 14.14             | 20.84             |
| ResNeXt101_32x4d      | 224       | 256               | 11.34             | 16.78             | 22.80             |
| ResNeXt101_vd_32x4d   | 224       | 256               | 11.36             | 17.01             | 23.07             |
| ResNeXt101_64x4d      | 224       | 256               | 21.57             | 28.08             | 39.49             |
| ResNeXt101_vd_64x4d   | 224       | 256               | 21.57             | 28.22             | 39.70             |
| ResNeXt152_32x4d      | 224       | 256               | 17.14             | 25.11             | 33.79             |
| ResNeXt152_vd_32x4d   | 224       | 256               | 16.99             | 25.29             | 33.85             |
| ResNeXt152_64x4d      | 224       | 256               | 33.07             | 42.05             | 59.13             |
| ResNeXt152_vd_64x4d   | 224       | 256               | 33.30             | 42.41             | 59.42             |
| SE_ResNet18_vd        | 224       | 256               | 1.48               | 2.70               | 4.32               |
| SE_ResNet34_vd        | 224       | 256               | 2.42               | 3.69               | 6.29               |
| SE_ResNet50_vd        | 224       | 256               | 3.11               | 5.99               | 9.34               |
| SE_ResNeXt50_32x4d    | 224       | 256               | 6.39               | 11.01              | 14.94              |
| SE_ResNeXt50_vd_32x4d | 224       | 256               | 7.04               | 11.57              | 16.01              |
| SE_ResNeXt101_32x4d   | 224       | 256               | 13.31             | 21.85             | 28.77             |
| SENet154_vd           | 224       | 256               | 34.83             | 51.22             | 69.74             |
| Res2Net50_vd_26w_4s_ssld | 224 | 256 | 3.58 | 6.35 | 9.52 |
| Res2Net101_vd_26w_4s_ssld | 224 | 256 | 6.33 | 11.02 | 16.11 |
| Res2Net200_vd_26w_4s_ssld | 224 | 256 | 11.47 | 19.75 | 28.83 |
littletomatodonkey's avatar
littletomatodonkey 已提交
119

G
gaotingquan 已提交
120
<a name='1.3.1'></a>
littletomatodonkey's avatar
littletomatodonkey 已提交
121

G
gaotingquan 已提交
122
#### 1.3.1 基于 T4 GPU 的预测速度
littletomatodonkey's avatar
littletomatodonkey 已提交
123

littletomatodonkey's avatar
fix bs  
littletomatodonkey 已提交
124
| Models                | Crop Size | Resize Short Size | FP16<br>Batch Size=1<br>(ms) | FP16<br>Batch Size=4<br>(ms) | FP16<br>Batch Size=8<br>(ms) | FP32<br>Batch Size=1<br>(ms) | FP32<br>Batch Size=4<br>(ms) | FP32<br>Batch Size=8<br>(ms) |
littletomatodonkey's avatar
littletomatodonkey 已提交
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|-----------------------|-----------|-------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|
| Res2Net50_26w_4s      | 224       | 256               | 3.56067                      | 6.61827                      | 11.41566                     | 4.47188                      | 9.65722                      | 17.54535                     |
| Res2Net50_vd_26w_4s   | 224       | 256               | 3.69221                      | 6.94419                      | 11.92441                     | 4.52712                      | 9.93247                      | 18.16928                     |
| Res2Net50_14w_8s      | 224       | 256               | 4.45745                      | 7.69847                      | 12.30935                     | 5.4026                       | 10.60273                     | 18.01234                     |
| Res2Net101_vd_26w_4s  | 224       | 256               | 6.53122                      | 10.81895                     | 18.94395                     | 8.08729                      | 17.31208                     | 31.95762                     |
| Res2Net200_vd_26w_4s  | 224       | 256               | 11.66671                     | 18.93953                     | 33.19188                     | 14.67806                     | 32.35032                     | 63.65899                     |
| ResNeXt50_32x4d       | 224       | 256               | 7.61087                      | 8.88918                      | 12.99674                     | 7.56327                      | 10.6134                      | 18.46915                     |
| ResNeXt50_vd_32x4d    | 224       | 256               | 7.69065                      | 8.94014                      | 13.4088                      | 7.62044                      | 11.03385                     | 19.15339                     |
| ResNeXt50_64x4d       | 224       | 256               | 13.78688                     | 15.84655                     | 21.79537                     | 13.80962                     | 18.4712                      | 33.49843                     |
| ResNeXt50_vd_64x4d    | 224       | 256               | 13.79538                     | 15.22201                     | 22.27045                     | 13.94449                     | 18.88759                     | 34.28889                     |
| ResNeXt101_32x4d      | 224       | 256               | 16.59777                     | 17.93153                     | 21.36541                     | 16.21503                     | 19.96568                     | 33.76831                     |
| ResNeXt101_vd_32x4d   | 224       | 256               | 16.36909                     | 17.45681                     | 22.10216                     | 16.28103                     | 20.25611                     | 34.37152                     |
| ResNeXt101_64x4d      | 224       | 256               | 30.12355                     | 32.46823                     | 38.41901                     | 30.4788                      | 36.29801                     | 68.85559                     |
| ResNeXt101_vd_64x4d   | 224       | 256               | 30.34022                     | 32.27869                     | 38.72523                     | 30.40456                     | 36.77324                     | 69.66021                     |
| ResNeXt152_32x4d      | 224       | 256               | 25.26417                     | 26.57001                     | 30.67834                     | 24.86299                     | 29.36764                     | 52.09426                     |
| ResNeXt152_vd_32x4d   | 224       | 256               | 25.11196                     | 26.70515                     | 31.72636                     | 25.03258                     | 30.08987                     | 52.64429                     |
| ResNeXt152_64x4d      | 224       | 256               | 46.58293                     | 48.34563                     | 56.97961                     | 46.7564                      | 56.34108                     | 106.11736                    |
| ResNeXt152_vd_64x4d   | 224       | 256               | 47.68447                     | 48.91406                     | 57.29329                     | 47.18638                     | 57.16257                     | 107.26288                    |
| SE_ResNet18_vd        | 224       | 256               | 1.61823                      | 3.1391                       | 4.60282                      | 1.7691                       | 4.19877                      | 7.5331                       |
| SE_ResNet34_vd        | 224       | 256               | 2.67518                      | 5.04694                      | 7.18946                      | 2.88559                      | 7.03291                      | 12.73502                     |
| SE_ResNet50_vd        | 224       | 256               | 3.65394                      | 7.568                        | 12.52793                     | 4.28393                      | 10.38846                     | 18.33154                     |
| SE_ResNeXt50_32x4d    | 224       | 256               | 9.06957                      | 11.37898                     | 18.86282                     | 8.74121                      | 13.563                       | 23.01954                     |
| SE_ResNeXt50_vd_32x4d | 224       | 256               | 9.25016                      | 11.85045                     | 25.57004                     | 9.17134                      | 14.76192                     | 19.914                       |
| SE_ResNeXt101_32x4d   | 224       | 256               | 19.34455                     | 20.6104                      | 32.20432                     | 18.82604                     | 25.31814                     | 41.97758                     |
| SENet154_vd           | 224       | 256               | 49.85733                     | 54.37267                     | 74.70447                     | 53.79794                     | 66.31684                     | 121.59885                    |
G
gaotingquan 已提交
150 151 152 153 154 155 156 157 158 159 160

<a name="2"></a>  

## 2. 模型快速体验

安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)

<a name="3"></a>

## 3. 模型训练、评估和预测

G
gaotingquan 已提交
161
此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/SEResNeXt/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)
G
gaotingquan 已提交
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178

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

## 4. 模型推理部署

<a name="4.1"></a>

### 4.1 推理模型准备

Paddle Inference 是飞桨的原生推理库, 作用于服务器端和云端,提供高性能的推理能力。相比于直接基于预训练模型进行预测,Paddle Inference可使用 MKLDNN、CUDNN、TensorRT 进行预测加速,从而实现更优的推理性能。更多关于Paddle Inference推理引擎的介绍,可以参考[Paddle Inference官网教程](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/infer/inference/inference_cn.html)

Inference 的获取可以参考 [ResNet50 推理模型准备](./ResNet.md#41-推理模型准备)

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

### 4.2 基于 Python 预测引擎推理

G
gaotingquan 已提交
179
PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理)
G
gaotingquan 已提交
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209

<a name="4.3"></a>

### 4.3 基于 C++ 预测引擎推理

PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。

<a name="4.4"></a>

### 4.4 服务化部署

Paddle Serving 提供高性能、灵活易用的工业级在线推理服务。Paddle Serving 支持 RESTful、gRPC、bRPC 等多种协议,提供多种异构硬件和多种操作系统环境下推理解决方案。更多关于Paddle Serving 的介绍,可以参考[Paddle Serving 代码仓库](https://github.com/PaddlePaddle/Serving)

PaddleClas 提供了基于 Paddle Serving 来完成模型服务化部署的示例,您可以参考[模型服务化部署](../inference_deployment/paddle_serving_deploy.md)来完成相应的部署工作。

<a name="4.5"></a>

### 4.5 端侧部署

Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)

PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。

<a name="4.6"></a>

### 4.6 Paddle2ONNX 模型转换与预测

Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。更多关于 Paddle2ONNX 的介绍,可以参考[Paddle2ONNX 代码仓库](https://github.com/PaddlePaddle/Paddle2ONNX)

PaddleClas 提供了基于 Paddle2ONNX 来完成 inference 模型转换 ONNX 模型并作推理预测的示例,您可以参考[Paddle2ONNX 模型转换与预测](@shuilong)来完成相应的部署工作。