diff --git a/docs/zh_CN/models/ImageNet1k/DPN_DenseNet.md b/docs/zh_CN/models/ImageNet1k/DPN_DenseNet.md deleted file mode 100644 index 1f4149de86554ea91789c32196c0e721045c44f3..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/DPN_DenseNet.md +++ /dev/null @@ -1,158 +0,0 @@ -# DPN 与 DenseNet 系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1) - - [1.3.2 基于 T4 GPU 的预测速度](#1.3.2) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -DenseNet 是 2017 年 CVPR best paper 提出的一种新的网络结构,该网络设计了一种新的跨层连接的 block,即 dense-block。相比 ResNet 中的 bottleneck,dense-block 设计了一个更激进的密集连接机制,即互相连接所有的层,每个层都会接受其前面所有层作为其额外的输入。DenseNet 将所有的 dense-block 堆叠,组合成了一个密集连接型网络。密集的连接方式使得 DenseNe 更容易进行梯度的反向传播,使得网络更容易训练。 -DPN 的全称是 Dual Path Networks,即双通道网络。该网络是由 DenseNet 和 ResNeXt 结合的一个网络,其证明了 DenseNet 能从靠前的层级中提取到新的特征,而 ResNeXt 本质上是对之前层级中已提取特征的复用。作者进一步分析发现,ResNeXt 对特征有高复用率,但冗余度低,DenseNet 能创造新特征,但冗余度高。结合二者结构的优势,作者设计了 DPN 网络。最终 DPN 网络在同样 FLOPS 和参数量下,取得了比 ResNeXt 与 DenseNet 更好的结果。 - -该系列模型的 FLOPS、参数量以及 T4 GPU 上的预测耗时如下图所示。 - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.DPN.flops.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.DPN.params.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.DPN.png) - -![](../../../images/models/T4_benchmark/t4.fp16.bs4.DPN.png) - -目前 PaddleClas 开源的这两类模型的预训练模型一共有 10 个,其指标如上图所示,可以看到,在相同的 FLOPS 和参数量下,相比 DenseNet,DPN 拥有更高的精度。但是由于 DPN 有更多的分支,所以其推理速度要慢于 DenseNet。由于 DenseNet264 的网络层数最深,所以该网络是 DenseNet 系列模型中参数量最大的网络,DenseNet161 的网络的宽度最大,导致其是该系列中网络中计算量最大、精度最高的网络。从推理速度来看,计算量大且精度高的的 DenseNet161 比 DenseNet264 具有更快的速度,所以其比 DenseNet264 具有更大的优势。 - -对于 DPN 系列网络,模型的 FLOPS 和参数量越大,模型的精度越高。其中,由于 DPN107 的网络宽度最大,所以其是该系列网络中参数量与计算量最大的网络。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPS
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| DenseNet121 | 0.757 | 0.926 | 0.750 | | 5.690 | 7.980 | -| DenseNet161 | 0.786 | 0.941 | 0.778 | | 15.490 | 28.680 | -| DenseNet169 | 0.768 | 0.933 | 0.764 | | 6.740 | 14.150 | -| DenseNet201 | 0.776 | 0.937 | 0.775 | | 8.610 | 20.010 | -| DenseNet264 | 0.780 | 0.939 | 0.779 | | 11.540 | 33.370 | -| DPN68 | 0.768 | 0.934 | 0.764 | 0.931 | 4.030 | 10.780 | -| DPN92 | 0.799 | 0.948 | 0.793 | 0.946 | 12.540 | 36.290 | -| DPN98 | 0.806 | 0.951 | 0.799 | 0.949 | 22.220 | 58.460 | -| DPN107 | 0.809 | 0.953 | 0.802 | 0.951 | 35.060 | 82.970 | -| DPN131 | 0.807 | 0.951 | 0.801 | 0.949 | 30.510 | 75.360 | - -### 1.3 Benchmark - - - -#### 1.3.1 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|-------------|-----------|-------------------|-------------------|-------------------|-------------------| -| DenseNet121 | 224 | 256 | 3.40 | 6.94 | 9.17 | -| DenseNet161 | 224 | 256 | 7.06 | 14.37 | 19.55 | -| DenseNet169 | 224 | 256 | 5.00 | 10.29 | 12.84 | -| DenseNet201 | 224 | 256 | 6.38 | 13.72 | 17.17 | -| DenseNet264 | 224 | 256 | 9.34 | 20.95 | 25.41 | -| DPN68 | 224 | 256 | 8.18 | 11.40 | 14.82 | -| DPN92 | 224 | 256 | 12.48 | 20.04 | 25.10 | -| DPN98 | 224 | 256 | 14.70 | 25.55 | 35.12 | -| DPN107 | 224 | 256 | 19.46 | 35.62 | 50.22 | -| DPN131 | 224 | 256 | 19.64 | 34.60 | 47.42 | - - - -#### 1.3.2 基于 T4 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP16
Batch Size=1
(ms) | FP16
Batch Size=4
(ms) | FP16
Batch Size=8
(ms) | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|-------------|-----------|-------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------| -| DenseNet121 | 224 | 256 | 4.16436 | 7.2126 | 10.50221 | 4.40447 | 9.32623 | 15.25175 | -| DenseNet161 | 224 | 256 | 9.27249 | 14.25326 | 20.19849 | 10.39152 | 22.15555 | 35.78443 | -| DenseNet169 | 224 | 256 | 6.11395 | 10.28747 | 13.68717 | 6.43598 | 12.98832 | 20.41964 | -| DenseNet201 | 224 | 256 | 7.9617 | 13.4171 | 17.41949 | 8.20652 | 17.45838 | 27.06309 | -| DenseNet264 | 224 | 256 | 11.70074 | 19.69375 | 24.79545 | 12.14722 | 26.27707 | 40.01905 | -| DPN68 | 224 | 256 | 11.7827 | 13.12652 | 16.19213 | 11.64915 | 12.82807 | 18.57113 | -| DPN92 | 224 | 256 | 18.56026 | 20.35983 | 29.89544 | 18.15746 | 23.87545 | 38.68821 | -| DPN98 | 224 | 256 | 21.70508 | 24.7755 | 40.93595 | 21.18196 | 33.23925 | 62.77751 | -| DPN107 | 224 | 256 | 27.84462 | 34.83217 | 60.67903 | 27.62046 | 52.65353 | 100.11721 | -| DPN131 | 224 | 256 | 28.58941 | 33.01078 | 55.65146 | 28.33119 | 46.19439 | 89.24904 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)。 - - - -## 3. 模型训练、评估和预测 - -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/DPN/`、`ppcls/configs/ImageNet/DenseNet/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - - - -## 4. 模型推理部署 - - - -### 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-推理模型准备) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理) 。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 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)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。 - - - -### 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)来完成相应的部署工作。 diff --git a/docs/zh_CN/models/ImageNet1k/EfficientNet_and_ResNeXt101_wsl.md b/docs/zh_CN/models/ImageNet1k/EfficientNet_and_ResNeXt101_wsl.md deleted file mode 100644 index accf46cccddc07369e549801d3ca9f375a850199..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/EfficientNet_and_ResNeXt101_wsl.md +++ /dev/null @@ -1,170 +0,0 @@ -# EfficientNet 与 ResNeXt101_wsl 系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1) - - [1.3.2 基于 V100 GPU 的预测速度](#1.3.2) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -EfficientNet 是 Google 于 2019 年发布的一个基于 NAS 的轻量级网络,其中 EfficientNetB7 刷新了当时 ImageNet-1k 的分类准确率。在该文章中,作者指出,传统的提升神经网络性能的方法主要是从网络的宽度、网络的深度、以及输入图片的分辨率入手,但是作者通过实验发现,平衡这三个维度对精度和效率的提升至关重要,于是,作者通过一系列的实验中总结出了如何同时平衡这三个维度的放缩,与此同时,基于这种放缩方法,作者在 EfficientNet_B0 的基础上,构建了 EfficientNet 系列中 B1-B7 共 7 个网络,并在同样 FLOPS 与参数量的情况下,精度达到了 state-of-the-art 的效果。 - -ResNeXt 是 facebook 于 2016 年提出的一种对 ResNet 的改进版网络。在 2019 年,facebook 通过弱监督学习研究了该系列网络在 ImageNet 上的精度上限,为了区别之前的 ResNeXt 网络,该系列网络的后缀为 wsl,其中 wsl 是弱监督学习(weakly-supervised-learning)的简称。为了能有更强的特征提取能力,研究者将其网络宽度进一步放大,其中最大的 ResNeXt101_32x48d_wsl 拥有 8 亿个参数,将其在 9.4 亿的弱标签图片下训练并在 ImageNet-1k 上做 finetune,最终在 ImageNet-1k 的 top-1 达到了 85.4%,这也是迄今为止在 ImageNet-1k 的数据集上以 224x224 的分辨率下精度最高的网络。Fix-ResNeXt 中,作者使用了更大的图像分辨率,针对训练图片和验证图片数据预处理不一致的情况下做了专门的 Fix 策略,并使得 ResNeXt101_32x48d_wsl 拥有了更高的精度,由于其用到了 Fix 策略,故命名为 Fix-ResNeXt101_32x48d_wsl。 - - -该系列模型的 FLOPS、参数量以及 T4 GPU 上的预测耗时如下图所示。 - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.EfficientNet.flops.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.EfficientNet.params.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs1.EfficientNet.png) - -![](../../../images/models/T4_benchmark/t4.fp16.bs1.EfficientNet.png) - -目前 PaddleClas 开源的这两类模型的预训练模型一共有 14 个。从上图中可以看出 EfficientNet 系列网络优势非常明显,ResNeXt101_wsl 系列模型由于用到了更多的数据,最终的精度也更高。EfficientNet_B0_Small 是去掉了 SE_block 的 EfficientNet_B0,其具有更快的推理速度。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPS
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| ResNeXt101_
32x8d_wsl | 0.826 | 0.967 | 0.822 | 0.964 | 29.140 | 78.440 | -| ResNeXt101_
32x16d_wsl | 0.842 | 0.973 | 0.842 | 0.972 | 57.550 | 152.660 | -| ResNeXt101_
32x32d_wsl | 0.850 | 0.976 | 0.851 | 0.975 | 115.170 | 303.110 | -| ResNeXt101_
32x48d_wsl | 0.854 | 0.977 | 0.854 | 0.976 | 173.580 | 456.200 | -| Fix_ResNeXt101_
32x48d_wsl | 0.863 | 0.980 | 0.864 | 0.980 | 354.230 | 456.200 | -| EfficientNetB0 | 0.774 | 0.933 | 0.773 | 0.935 | 0.720 | 5.100 | -| EfficientNetB1 | 0.792 | 0.944 | 0.792 | 0.945 | 1.270 | 7.520 | -| EfficientNetB2 | 0.799 | 0.947 | 0.803 | 0.950 | 1.850 | 8.810 | -| EfficientNetB3 | 0.812 | 0.954 | 0.817 | 0.956 | 3.430 | 11.840 | -| EfficientNetB4 | 0.829 | 0.962 | 0.830 | 0.963 | 8.290 | 18.760 | -| EfficientNetB5 | 0.836 | 0.967 | 0.837 | 0.967 | 19.510 | 29.610 | -| EfficientNetB6 | 0.840 | 0.969 | 0.842 | 0.968 | 36.270 | 42.000 | -| EfficientNetB7 | 0.843 | 0.969 | 0.844 | 0.971 | 72.350 | 64.920 | -| EfficientNetB0_
small | 0.758 | 0.926 | | | 0.720 | 4.650 | - -### 1.3 Benchmark - - - -#### 1.3.1 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|-------------------------------|-----------|-------------------|-------------------------------|-------------------------------|-------------------------------| -| ResNeXt101_
32x8d_wsl | 224 | 256 | 13.55 | 23.39 | 36.18 | -| ResNeXt101_
32x16d_wsl | 224 | 256 | 21.96 | 38.35 | 63.29 | -| ResNeXt101_
32x32d_wsl | 224 | 256 | 37.28 | 76.50 | 121.56 | -| ResNeXt101_
32x48d_wsl | 224 | 256 | 55.07 | 124.39 | 205.01 | -| Fix_ResNeXt101_
32x48d_wsl | 320 | 320 | 55.01 | 122.63 | 204.66 | -| EfficientNetB0 | 224 | 256 | 1.96 | 3.71 | 5.56 | -| EfficientNetB1 | 240 | 272 | 2.88 | 5.40 | 7.63 | -| EfficientNetB2 | 260 | 292 | 3.26 | 6.20 | 9.17 | -| EfficientNetB3 | 300 | 332 | 4.52 | 8.85 | 13.54 | -| EfficientNetB4 | 380 | 412 | 6.78 | 15.47 | 24.95 | -| EfficientNetB5 | 456 | 488 | 10.97 | 27.24 | 45.93 | -| EfficientNetB6 | 528 | 560 | 17.09 | 43.32 | 76.90 | -| EfficientNetB7 | 600 | 632 | 25.91 | 71.23 | 128.20 | -| EfficientNetB0_
small | 224 | 256 | 1.24 | 2.59 | 3.92 | - - - -## 1.3.2 基于 T4 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP16
Batch Size=1
(ms) | FP16
Batch Size=4
(ms) | FP16
Batch Size=8
(ms) | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|---------------------------|-----------|-------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------| -| ResNeXt101_
32x8d_wsl | 224 | 256 | 18.19374 | 21.93529 | 34.67802 | 18.52528 | 34.25319 | 67.2283 | -| ResNeXt101_
32x16d_wsl | 224 | 256 | 18.52609 | 36.8288 | 62.79947 | 25.60395 | 71.88384 | 137.62327 | -| ResNeXt101_
32x32d_wsl | 224 | 256 | 33.51391 | 70.09682 | 125.81884 | 54.87396 | 160.04337 | 316.17718 | -| ResNeXt101_
32x48d_wsl | 224 | 256 | 50.97681 | 137.60926 | 190.82628 | 99.01698256 | 315.91261 | 551.83695 | -| Fix_ResNeXt101_
32x48d_wsl | 320 | 320 | 78.62869 | 191.76039 | 317.15436 | 160.0838242 | 595.99296 | 1151.47384 | -| EfficientNetB0 | 224 | 256 | 3.40122 | 5.95851 | 9.10801 | 3.442 | 6.11476 | 9.3304 | -| EfficientNetB1 | 240 | 272 | 5.25172 | 9.10233 | 14.11319 | 5.3322 | 9.41795 | 14.60388 | -| EfficientNetB2 | 260 | 292 | 5.91052 | 10.5898 | 17.38106 | 6.29351 | 10.95702 | 17.75308 | -| EfficientNetB3 | 300 | 332 | 7.69582 | 16.02548 | 27.4447 | 7.67749 | 16.53288 | 28.5939 | -| EfficientNetB4 | 380 | 412 | 11.55585 | 29.44261 | 53.97363 | 12.15894 | 30.94567 | 57.38511 | -| EfficientNetB5 | 456 | 488 | 19.63083 | 56.52299 | - | 20.48571 | 61.60252 | - | -| EfficientNetB6 | 528 | 560 | 30.05911 | - | - | 32.62402 | - | - | -| EfficientNetB7 | 600 | 632 | 47.86087 | - | - | 53.93823 | - | - | -| EfficientNetB0_small | 224 | 256 | 2.39166 | 4.36748 | 6.96002 | 2.3076 | 4.71886 | 7.21888 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)。 - - - -## 3. 模型训练、评估和预测 - -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/EfficientNet/`、 `ppcls/configs/ImageNet/ResNeXt/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - - - -## 4. 模型推理部署 - - - -### 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-推理模型准备) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理) 。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 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)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。 - - - -### 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)来完成相应的部署工作。 diff --git a/docs/zh_CN/models/ImageNet1k/Mobile.md b/docs/zh_CN/models/ImageNet1k/Mobile.md deleted file mode 100644 index 7fd3a6c02180c5eaf6f31d9d079437110f84cd26..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/Mobile.md +++ /dev/null @@ -1,286 +0,0 @@ -# 移动端系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 SD855 的预测速度](#1.3.1) - - [1.3.2 基于 V100 GPU 的预测速度](#1.3.2) - - [1.3.3 基于 T4 GPU 的预测速度](#1.3.3) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -MobileNetV1 是 Google 于 2017 年发布的用于移动设备或嵌入式设备中的网络。该网络将传统的卷积操作替换深度可分离卷积,即 Depthwise 卷积和 Pointwise 卷积的组合,相比传统的卷积操作,该组合可以大大节省参数量和计算量。与此同时,MobileNetV1 也可以用于目标检测、图像分割等其他视觉任务中。 - -MobileNetV2 是 Google 继 MobileNetV1 提出的一种轻量级网络。相比 MobileNetV1,MobileNetV2 提出了 Linear bottlenecks 与 Inverted residual block 作为网络基本结构,通过大量地堆叠这些基本模块,构成了 MobileNetV2 的网络结构。最终,在 FLOPS 只有 MobileNetV1 的一半的情况下取得了更高的分类精度。 - -ShuffleNet 系列网络是旷视提出的轻量化网络结构,到目前为止,该系列网络一共有两种典型的结构,即 ShuffleNetV1 与 ShuffleNetV2。ShuffleNet 中的 Channel Shuffle 操作可以将组间的信息进行交换,并且可以实现端到端的训练。在 ShuffleNetV2 的论文中,作者提出了设计轻量级网络的四大准则,并且根据四大准则与 ShuffleNetV1 的不足,设计了 ShuffleNetV2 网络。 - -MobileNetV3 是 Google 于 2019 年提出的一种基于 NAS 的新的轻量级网络,为了进一步提升效果,将 relu 和 sigmoid 激活函数分别替换为 hard_swish 与 hard_sigmoid 激活函数,同时引入了一些专门减小网络计算量的改进策略。 - -GhostNet 是华为于 2020 年提出的一种全新的轻量化网络结构,通过引入 ghost module,大大减缓了传统深度网络中特征的冗余计算问题,使得网络的参数量和计算量大大降低。 - -![](../../../images/models/mobile_arm_top1.png) - -![](../../../images/models/mobile_arm_storage.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.mobile_trt.flops.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.mobile_trt.params.png) - - -目前 PaddleClas 开源的的移动端系列的预训练模型一共有 35 个,其指标如图所示。从图片可以看出,越新的轻量级模型往往有更优的表现,MobileNetV3 代表了目前主流的轻量级神经网络结构。在 MobileNetV3 中,作者为了获得更高的精度,在 global-avg-pooling 后使用了 1x1 的卷积。该操作大幅提升了参数量但对计算量影响不大,所以如果从存储角度评价模型的优异程度,MobileNetV3 优势不是很大,但由于其更小的计算量,使得其有更快的推理速度。此外,我们模型库中的 ssld 蒸馏模型表现优异,从各个考量角度下,都刷新了当前轻量级模型的精度。由于 MobileNetV3 模型结构复杂,分支较多,对 GPU 并不友好,GPU 预测速度不如 MobileNetV1。GhostNet 于 2020 年提出,通过引入 ghost 的网络设计理念,大大降低了计算量和参数量,同时在精度上也超过前期最高的 MobileNetV3 网络结构。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPS
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| MobileNetV1_x0_25 | 0.514 | 0.755 | 0.506 | | 0.070 | 0.460 | -| MobileNetV1_x0_5 | 0.635 | 0.847 | 0.637 | | 0.280 | 1.310 | -| MobileNetV1_x0_75 | 0.688 | 0.882 | 0.684 | | 0.630 | 2.550 | -| MobileNetV1 | 0.710 | 0.897 | 0.706 | | 1.110 | 4.190 | -| MobileNetV1_ssld | 0.779 | 0.939 | | | 1.110 | 4.190 | -| MobileNetV2_x0_25 | 0.532 | 0.765 | | | 0.050 | 1.500 | -| MobileNetV2_x0_5 | 0.650 | 0.857 | 0.654 | 0.864 | 0.170 | 1.930 | -| MobileNetV2_x0_75 | 0.698 | 0.890 | 0.698 | 0.896 | 0.350 | 2.580 | -| MobileNetV2 | 0.722 | 0.907 | 0.718 | 0.910 | 0.600 | 3.440 | -| MobileNetV2_x1_5 | 0.741 | 0.917 | | | 1.320 | 6.760 | -| MobileNetV2_x2_0 | 0.752 | 0.926 | | | 2.320 | 11.130 | -| MobileNetV2_ssld | 0.7674 | 0.9339 | | | 0.600 | 3.440 | -| MobileNetV3_large_
x1_25 | 0.764 | 0.930 | 0.766 | | 0.714 | 7.440 | -| MobileNetV3_large_
x1_0 | 0.753 | 0.923 | 0.752 | | 0.450 | 5.470 | -| MobileNetV3_large_
x0_75 | 0.731 | 0.911 | 0.733 | | 0.296 | 3.910 | -| MobileNetV3_large_
x0_5 | 0.692 | 0.885 | 0.688 | | 0.138 | 2.670 | -| MobileNetV3_large_
x0_35 | 0.643 | 0.855 | 0.642 | | 0.077 | 2.100 | -| MobileNetV3_small_
x1_25 | 0.707 | 0.895 | 0.704 | | 0.195 | 3.620 | -| MobileNetV3_small_
x1_0 | 0.682 | 0.881 | 0.675 | | 0.123 | 2.940 | -| MobileNetV3_small_
x0_75 | 0.660 | 0.863 | 0.654 | | 0.088 | 2.370 | -| MobileNetV3_small_
x0_5 | 0.592 | 0.815 | 0.580 | | 0.043 | 1.900 | -| MobileNetV3_small_
x0_35 | 0.530 | 0.764 | 0.498 | | 0.026 | 1.660 | -| MobileNetV3_small_
x0_35_ssld | 0.556 | 0.777 | 0.498 | | 0.026 | 1.660 | -| MobileNetV3_large_
x1_0_ssld | 0.790 | 0.945 | | | 0.450 | 5.470 | -| MobileNetV3_large_
x1_0_ssld_int8 | 0.761 | | | | | | -| MobileNetV3_small_
x1_0_ssld | 0.713 | 0.901 | | | 0.123 | 2.940 | -| ShuffleNetV2 | 0.688 | 0.885 | 0.694 | | 0.280 | 2.260 | -| ShuffleNetV2_x0_25 | 0.499 | 0.738 | | | 0.030 | 0.600 | -| ShuffleNetV2_x0_33 | 0.537 | 0.771 | | | 0.040 | 0.640 | -| ShuffleNetV2_x0_5 | 0.603 | 0.823 | 0.603 | | 0.080 | 1.360 | -| ShuffleNetV2_x1_5 | 0.716 | 0.902 | 0.726 | | 0.580 | 3.470 | -| ShuffleNetV2_x2_0 | 0.732 | 0.912 | 0.749 | | 1.120 | 7.320 | -| ShuffleNetV2_swish | 0.700 | 0.892 | | | 0.290 | 2.260 | -| GhostNet_x0_5 | 0.668 | 0.869 | 0.662 | 0.866 | 0.082 | 2.600 | -| GhostNet_x1_0 | 0.740 | 0.916 | 0.739 | 0.914 | 0.294 | 5.200 | -| GhostNet_x1_3 | 0.757 | 0.925 | 0.757 | 0.927 | 0.440 | 7.300 | -| GhostNet_x1_3_ssld | 0.794 | 0.945 | 0.757 | 0.927 | 0.440 | 7.300 | - -### 1.3 Benchmark - - - -#### 1.3.1 基于 SD855 的预测速度和存储大小 - -| Models | SD855 time(ms)
bs=1, thread=1 | SD855 time(ms)
bs=1, thread=2 | SD855 time(ms)
bs=1, thread=4 | Storage Size(M) | -|:--:|----|----|----|----| -| MobileNetV1_x0_25 | 2.88 | 1.82 | 1.26 | 1.900 | -| MobileNetV1_x0_5 | 8.74 | 5.26 | 3.09 | 5.200 | -| MobileNetV1_x0_75 | 17.84 | 10.61 | 6.21 | 10.000 | -| MobileNetV1 | 30.24 | 17.86 | 10.30 | 16.000 | -| MobileNetV1_ssld | 30.19 | 17.85 | 10.23 | 16.000 | -| MobileNetV2_x0_25 | 3.46 | 2.51 | 2.03 | 6.100 | -| MobileNetV2_x0_5 | 7.69 | 4.92 | 3.57 | 7.800 | -| MobileNetV2_x0_75 | 13.69 | 8.60 | 5.82 | 10.000 | -| MobileNetV2 | 20.74 | 12.71 | 8.10 | 14.000 | -| MobileNetV2_x1_5 | 40.79 | 24.49 | 15.50 | 26.000 | -| MobileNetV2_x2_0 | 67.50 | 40.03 | 25.55 | 43.000 | -| MobileNetV2_ssld | 20.71 | 12.70 | 8.06 | 14.000 | -| MobileNetV3_large_x1_25 | 24.52 | 14.76 | 9.89 | 29.000 | -| MobileNetV3_large_x1_0 | 16.55 | 10.09 | 6.84 | 21.000 | -| MobileNetV3_large_x0_75 | 11.53 | 7.06 | 4.94 | 16.000 | -| MobileNetV3_large_x0_5 | 6.50 | 4.22 | 3.15 | 11.000 | -| MobileNetV3_large_x0_35 | 4.43 | 3.11 | 2.41 | 8.600 | -| MobileNetV3_small_x1_25 | 7.88 | 4.91 | 3.45 | 14.000 | -| MobileNetV3_small_x1_0 | 5.63 | 3.65 | 2.60 | 12.000 | -| MobileNetV3_small_x0_75 | 4.50 | 2.96 | 2.19 | 9.600 | -| MobileNetV3_small_x0_5 | 2.89 | 2.04 | 1.62 | 7.800 | -| MobileNetV3_small_x0_35 | 2.23 | 1.66 | 1.43 | 6.900 | -| MobileNetV3_small_x0_35_ssld | | | | 6.900 | -| MobileNetV3_large_x1_0_ssld | 16.56 | 10.10 | 6.86 | 21.000 | -| MobileNetV3_large_x1_0_ssld_int8 | | | | 10.000 | -| MobileNetV3_small_x1_0_ssld | 5.64 | 3.67 | 2.61 | 12.000 | -| ShuffleNetV2 | 9.72 | 5.97 | 4.13 | 9.000 | -| ShuffleNetV2_x0_25 | 1.94 | 1.53 | 1.43 | 2.700 | -| ShuffleNetV2_x0_33 | 2.23 | 1.70 | 1.79 | 2.800 | -| ShuffleNetV2_x0_5 | 3.67 | 2.63 | 2.06 | 5.600 | -| ShuffleNetV2_x1_5 | 17.21 | 10.56 | 6.81 | 14.000 | -| ShuffleNetV2_x2_0 | 31.21 | 18.98 | 11.65 | 28.000 | -| ShuffleNetV2_swish | 31.21 | 9.06 | 5.74 | 9.100 | -| GhostNet_x0_5 | 5.28 | 3.95 | 3.29 | 10.000 | -| GhostNet_x1_0 | 12.89 | 8.66 | 6.72 | 20.000 | -| GhostNet_x1_3 | 19.16 | 12.25 | 9.40 | 29.000 | -| GhostNet_x1_3_ssld | 19.16 | 17.85 | 10.18 | 29.000 | - - - -#### 1.3.2 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -| -------------------------------- | --------- | ----------------- | ------------------------------ | ------------------------------ | ------------------------------ | -| MobileNetV1_x0_25 | 224 | 256 | 0.47 | 0.93 | 1.39 | -| MobileNetV1_x0_5 | 224 | 256 | 0.48 | 1.09 | 1.69 | -| MobileNetV1_x0_75 | 224 | 256 | 0.55 | 1.34 | 2.03 | -| MobileNetV1 | 224 | 256 | 0.64 | 1.57 | 2.48 | -| MobileNetV1_ssld | 224 | 256 | 0.66 | 1.59 | 2.58 | -| MobileNetV2_x0_25 | 224 | 256 | 0.83 | 1.17 | 1.78 | -| MobileNetV2_x0_5 | 224 | 256 | 0.84 | 1.45 | 2.04 | -| MobileNetV2_x0_75 | 224 | 256 | 0.96 | 1.62 | 2.53 | -| MobileNetV2 | 224 | 256 | 1.02 | 1.93 | 2.89 | -| MobileNetV2_x1_5 | 224 | 256 | 1.32 | 2.58 | 4.14 | -| MobileNetV2_x2_0 | 224 | 256 | 1.57 | 3.13 | 4.76 | -| MobileNetV2_ssld | 224 | 256 | 1.01 | 1.97 | 2.84 | -| MobileNetV3_large_x1_25 | 224 | 256 | 1.75 | 2.87 | 4.23 | -| MobileNetV3_large_x1_0 | 224 | 256 | 1.37 | 2.67 | 3.46 | -| MobileNetV3_large_x0_75 | 224 | 256 | 1.37 | 2.23 | 3.17 | -| MobileNetV3_large_x0_5 | 224 | 256 | 1.10 | 1.85 | 2.69 | -| MobileNetV3_large_x0_35 | 224 | 256 | 1.01 | 1.44 | 1.92 | -| MobileNetV3_small_x1_25 | 224 | 256 | 1.20 | 2.04 | 2.64 | -| MobileNetV3_small_x1_0 | 224 | 256 | 1.03 | 1.76 | 2.50 | -| MobileNetV3_small_x0_75 | 224 | 256 | 1.04 | 1.71 | 2.37 | -| MobileNetV3_small_x0_5 | 224 | 256 | 1.01 | 1.49 | 2.01 | -| MobileNetV3_small_x0_35 | 224 | 256 | 1.01 | 1.44 | 1.92 | -| MobileNetV3_small_x0_35_ssld | 224 | 256 | | | | -| MobileNetV3_large_x1_0_ssld | 224 | 256 | 1.35 | 2.47 | 3.72 | -| MobileNetV3_large_x1_0_ssld_int8 | 224 | 256 | | | | -| MobileNetV3_small_x1_0_ssld | 224 | 256 | 1.06 | 1.89 | 2.48 | -| ShuffleNetV2 | 224 | 256 | 1.05 | 1.76 | 2.37 | -| ShuffleNetV2_x0_25 | 224 | 256 | 0.92 | 1.27 | 1.73 | -| ShuffleNetV2_x0_33 | 224 | 256 | 0.91 | 1.29 | 1.81 | -| ShuffleNetV2_x0_5 | 224 | 256 | 0.89 | 1.43 | 1.94 | -| ShuffleNetV2_x1_5 | 224 | 256 | 0.93 | 1.99 | 2.85 | -| ShuffleNetV2_x2_0 | 224 | 256 | 1.45 | 2.70 | 3.35 | -| ShuffleNetV2_swish | 224 | 256 | 1.43 | 1.93 | 2.69 | -| GhostNet_x0_5 | 224 | 256 | 1.66 | 2.24 | 2.73 | -| GhostNet_x1_0 | 224 | 256 | 1.69 | 2.73 | 3.81 | -| GhostNet_x1_3 | 224 | 256 | 1.84 | 2.88 | 3.94 | -| GhostNet_x1_3_ssld | 224 | 256 | 1.85 | 3.17 | 4.29 | - - - -#### 1.3.3 基于 T4 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|-----------------------------|-----------------------|-----------------------|-----------------------|-----------------------|-----------------------| -| MobileNetV1_x0_25 | 224 | 256 | 0.47 | 0.93 | 1.39 | -| MobileNetV1_x0_5 | 224 | 256 | 0.48 | 1.09 | 1.69 | -| MobileNetV1_x0_75 | 224 | 256 | 0.55 | 1.34 | 2.03 | -| MobileNetV1 | 224 | 256 | 0.64 | 1.57 | 2.48 | -| MobileNetV1_ssld | 224 | 256 | 0.66 | 1.59 | 2.58 | -| MobileNetV2_x0_25 | 224 | 256 | 0.83 | 1.17 | 1.78 | -| MobileNetV2_x0_5 | 224 | 256 | 0.84 | 1.45 | 2.04 | -| MobileNetV2_x0_75 | 224 | 256 | 0.96 | 1.62 | 2.53 | -| MobileNetV2 | 224 | 256 | 1.02 | 1.93 | 2.89 | -| MobileNetV2_x1_5 | 224 | 256 | 1.32 | 2.58 | 4.14 | -| MobileNetV2_x2_0 | 224 | 256 | 1.57 | 3.13 | 4.76 | -| MobileNetV2_ssld | 224 | 256 | 1.01 | 1.97 | 2.84 | -| MobileNetV3_small_x0_35 | 224 | 256 | 1.01 | 1.44 | 1.92 | -| MobileNetV3_small_x0_5 | 224 | 256 | 1.01 | 1.49 | 2.01 | -| MobileNetV3_small_x0_75 | 224 | 256 | 1.04 | 1.71 | 2.37 | -| MobileNetV3_small_x1_0 | 224 | 256 | 1.03 | 1.76 | 2.50 | -| MobileNetV3_small_x1_25 | 224 | 256 | 1.20 | 2.04 | 2.64 | -| MobileNetV3_large_x0_35 | 224 | 256 | 1.10 | 1.74 | 2.34 | -| MobileNetV3_large_x0_5 | 224 | 256 | 1.10 | 1.85 | 2.69 | -| MobileNetV3_large_x0_75 | 224 | 256 | 1.37 | 2.23 | 3.17 | -| MobileNetV3_large_x1_0 | 224 | 256 | 1.37 | 2.67 | 3.46 | -| MobileNetV3_large_x1_25 | 224 | 256 | 1.75 | 2.87 | 4.23 | -| MobileNetV3_small_x1_0_ssld | 224 | 256 | 1.06 | 1.89 | 2.48 | -| MobileNetV3_large_x1_0_ssld | 224 | 256 | 1.35 | 2.47 | 3.72 | -| ShuffleNetV2_swish | 224 | 256 | 1.43 | 1.93 | 2.69 | -| ShuffleNetV2_x0_25 | 224 | 256 | 0.92 | 1.27 | 1.73 | -| ShuffleNetV2_x0_33 | 224 | 256 | 0.91 | 1.29 | 1.81 | -| ShuffleNetV2_x0_5 | 224 | 256 | 0.89 | 1.43 | 1.94 | -| ShuffleNetV2_x1_0 | 224 | 256 | 1.05 | 1.76 | 2.37 | -| ShuffleNetV2_x1_5 | 224 | 256 | 0.93 | 1.99 | 2.85 | -| ShuffleNetV2_x2_0 | 224 | 256 | 1.45 | 2.70 | 3.35 | -| GhostNet_x0_5 | 224 | 256 | 1.66 | 2.24 | 2.73 | -| GhostNet_x1_0 | 224 | 256 | 1.69 | 2.73 | 3.81 | -| GhostNet_x1_3 | 224 | 256 | 1.84 | 2.88 | 3.94 | -| GhostNet_x1_3_ssld | 224 | 256 | 1.85 | 3.17 | 4.29 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)。 - - - -## 3. 模型训练、评估和预测 - -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/MobileNetV1/`、、、、、 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - - - -## 4. 模型推理部署 - - - -### 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-推理模型准备) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理) 。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 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)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。 - - - -### 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)来完成相应的部署工作。 diff --git a/docs/zh_CN/models/ImageNet1k/ResNeSt_RegNet.md b/docs/zh_CN/models/ImageNet1k/ResNeSt_RegNet.md deleted file mode 100644 index 7b9d676427bcb62850e7d918c88f49f5ab239b8d..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/ResNeSt_RegNet.md +++ /dev/null @@ -1,124 +0,0 @@ -# ResNeSt 与 RegNet 系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1) - - [1.3.2 基于 T4 GPU 的预测速度](#1.3.2) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -ResNeSt 系列模型是在 2020 年提出的,在原有的 resnet 网络结构上做了改进,通过引入 K 个 Group 和在不同 Group 中加入类似于 SEBlock 的 attention 模块,使得精度相比于基础模型 ResNet 有了大幅度的提高,且参数量和 flops 与基础的 ResNet 基本保持一致。 - -RegNet 是由 facebook 于 2020 年提出,旨在深化设计空间理念的概念,在 AnyNetX 的基础上逐步改进,通过加入共享瓶颈 ratio、共享组宽度、调整网络深度与宽度等策略,最终实现简化设计空间结构、提高设计空间的可解释性、改善设计空间的质量,并保持设计空间的模型多样性的目的。最终设计出的模型在类似的条件下,性能还要优于 EfficientNet,并且在 GPU 上的速度提高了 5 倍。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPs
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| ResNeSt50_fast_1s1x64d | 0.8035 | 0.9528| 0.8035 | -| 8.68 | 26.3 | -| ResNeSt50 | 0.8083 | 0.9542| 0.8113 | -| 10.78 | 27.5 | -| RegNetX_4GF | 0.7850 | 0.9416| 0.7860 | -| 8.0 | 22.1 | - -### 1.3 Benchmark - - - -#### 1.3.1 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -| ---------------------- | --------- | ----------------- | ------------------------------ | ------------------------------ | ------------------------------ | -| ResNeSt50_fast_1s1x64d | 224 | 256 | 2.73 | 5.33 | 8.24 | -| ResNeSt50 | 224 | 256 | 7.36 | 10.23 | 13.84 | -| RegNetX_4GF | 224 | 256 | 6.46 | 8.48 | 11.45 | - - - -#### 1.3.2 基于 T4 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP16
Batch Size=1
(ms) | FP16
Batch Size=4
(ms) | FP16
Batch Size=8
(ms) | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|--------------------|-----------|-------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------| -| ResNeSt50_fast_1s1x64d | 224 | 256 | 3.46466 | 5.56647 | 9.11848 | 3.45405 | 8.72680 | 15.48710 | -| ResNeSt50 | 224 | 256 | 7.05851 | 8.97676 | 13.34704 | 6.16248 | 12.0633 | 21.49936 | -| RegNetX_4GF | 224 | 256 | 6.69042 | 8.01664 | 11.60608 | 6.46478 | 11.19862 | 16.89089 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)。 - - - -## 3. 模型训练、评估和预测 - -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/ResNeSt/`、`ppcls/configs/ImageNet/RegNet/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - - - -## 4. 模型推理部署 - - - -### 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-推理模型准备) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理) 。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 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)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。 - - - -### 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)来完成相应的部署工作。 diff --git a/docs/zh_CN/models/ImageNet1k/ResNet_and_vd.md b/docs/zh_CN/models/ImageNet1k/ResNet_and_vd.md deleted file mode 100644 index dccc94609f648f16cba5bafad6688aad7e4bf479..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/ResNet_and_vd.md +++ /dev/null @@ -1,187 +0,0 @@ -# ResNet 及其 Vd 系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1) - - [1.3.2 基于 T4 GPU 的预测速度](#1.3.2) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -ResNet 系列模型是在 2015 年提出的,一举在 ILSVRC2015 比赛中取得冠军,top5 错误率为 3.57%。该网络创新性的提出了残差结构,通过堆叠多个残差结构从而构建了 ResNet 网络。实验表明使用残差块可以有效地提升收敛速度和精度。 - -斯坦福大学的 Joyce Xu 将 ResNet 称为「真正重新定义了我们看待神经网络的方式」的三大架构之一。由于 ResNet 卓越的性能,越来越多的来自学术界和工业界学者和工程师对其结构进行了改进,比较出名的有 Wide-ResNet, ResNet-vc,ResNet-vd, Res2Net 等,其中 ResNet-vc 与 ResNet-vd 的参数量和计算量与 ResNet 几乎一致,所以在此我们将其与 ResNet 统一归为 ResNet 系列。 - -本次发布 ResNet 系列的模型包括 ResNet50,ResNet50_vd,ResNet50_vd_ssld,ResNet200_vd 等 14 个预训练模型。在训练层面上,ResNet 的模型采用了训练 ImageNet 的标准训练流程,而其余改进版模型采用了更多的训练策略,如 learning rate 的下降方式采用了 cosine decay,引入了 label smoothing 的标签正则方式,在数据预处理加入了 mixup 的操作,迭代总轮数从 120 个 epoch 增加到 200 个 epoch。 - -其中,ResNet50_vd_v2 与 ResNet50_vd_ssld 采用了知识蒸馏,保证模型结构不变的情况下,进一步提升了模型的精度,具体地,ResNet50_vd_v2 的 teacher 模型是 ResNet152_vd(top1 准确率 80.59%),数据选用的是 ImageNet-1k 的训练集,ResNet50_vd_ssld 的 teacher 模型是 ResNeXt101_32x16d_wsl(top1 准确率 84.2%),数据选用结合了 ImageNet-1k 的训练集和 ImageNet-22k 挖掘的 400 万数据。知识蒸馏的具体方法正在持续更新中。 - -该系列模型的 FLOPS、参数量以及 T4 GPU 上的预测耗时如下图所示。 - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.ResNet.flops.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.ResNet.params.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.ResNet.png) - -![](../../../images/models/T4_benchmark/t4.fp16.bs4.ResNet.png) - - -通过上述曲线可以看出,层数越多,准确率越高,但是相应的参数量、计算量和延时都会增加。ResNet50_vd_ssld 通过用更强的 teacher 和更多的数据,将其在 ImageNet-1k 上的验证集 top-1 精度进一步提高,达到了 82.39%,刷新了 ResNet50 系列模型的精度。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPS
(G) | Parameters
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| ResNet18 | 0.710 | 0.899 | 0.696 | 0.891 | 3.660 | 11.690 | -| ResNet18_vd | 0.723 | 0.908 | | | 4.140 | 11.710 | -| ResNet34 | 0.746 | 0.921 | 0.732 | 0.913 | 7.360 | 21.800 | -| ResNet34_vd | 0.760 | 0.930 | | | 7.390 | 21.820 | -| ResNet34_vd_ssld | 0.797 | 0.949 | | | 7.390 | 21.820 | -| ResNet50 | 0.765 | 0.930 | 0.760 | 0.930 | 8.190 | 25.560 | -| ResNet50_vc | 0.784 | 0.940 | | | 8.670 | 25.580 | -| ResNet50_vd | 0.791 | 0.944 | 0.792 | 0.946 | 8.670 | 25.580 | -| ResNet50_vd_v2 | 0.798 | 0.949 | | | 8.670 | 25.580 | -| ResNet101 | 0.776 | 0.936 | 0.776 | 0.938 | 15.520 | 44.550 | -| ResNet101_vd | 0.802 | 0.950 | | | 16.100 | 44.570 | -| ResNet152 | 0.783 | 0.940 | 0.778 | 0.938 | 23.050 | 60.190 | -| ResNet152_vd | 0.806 | 0.953 | | | 23.530 | 60.210 | -| ResNet200_vd | 0.809 | 0.953 | | | 30.530 | 74.740 | -| ResNet50_vd_ssld | 0.824 | 0.961 | | | 8.670 | 25.580 | -| ResNet50_vd_ssld_v2 | 0.830 | 0.964 | | | 8.670 | 25.580 | -| Fix_ResNet50_vd_ssld_v2 | 0.840 | 0.970 | | | 17.696 | 25.580 | -| ResNet101_vd_ssld | 0.837 | 0.967 | | | 16.100 | 44.570 | - -* 注:`ResNet50_vd_ssld_v2` 是在 `ResNet50_vd_ssld` 训练策略的基础上加上 AutoAugment 训练得到,`Fix_ResNet50_vd_ssld_v2` 是固定 `ResNet50_vd_ssld_v2` 除 FC 层外所有的网络参数,在 320x320 的图像输入分辨率下,基于 ImageNet1k 数据集微调得到。 - - -### 1.3 Benchmark - - - -#### 1.3.1 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=1\4
(ms) | FP32
Batch Size=8
(ms) | -|------------------|-----------|-------------------|--------------------------|--------------------------|--------------------------| -| ResNet18 | 224 | 256 | 1.22 | 2.19 | 3.63 | -| ResNet18_vd | 224 | 256 | 1.26 | 2.28 | 3.89 | -| ResNet34 | 224 | 256 | 1.97 | 3.25 | 5.70 | -| ResNet34_vd | 224 | 256 | 2.00 | 3.28 | 5.84 | -| ResNet34_vd_ssld | 224 | 256 | 2.00 | 3.26 | 5.85 | -| ResNet50 | 224 | 256 | 2.54 | 4.79 | 7.40 | -| ResNet50_vc | 224 | 256 | 2.57 | 4.83 | 7.52 | -| ResNet50_vd | 224 | 256 | 2.60 | 4.86 | 7.63 | -| ResNet50_vd_v2 | 224 | 256 | 2.59 | 4.86 | 7.59 | -| ResNet101 | 224 | 256 | 4.37 | 8.18 | 12.38 | -| ResNet101_vd | 224 | 256 | 4.43 | 8.25 | 12.60 | -| ResNet152 | 224 | 256 | 6.05 | 11.41 | 17.33 | -| ResNet152_vd | 224 | 256 | 6.11 | 11.51 | 17.59 | -| ResNet200_vd | 224 | 256 | 7.70 | 14.57 | 22.16 | -| ResNet50_vd_ssld | 224 | 256 | 2.59 | 4.87 | 7.62 | -| ResNet101_vd_ssld | 224 | 256 | 4.43 | 8.25 | 12.58 | - - - -#### 1.3.2 基于 T4 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP16
Batch Size=1
(ms) | FP16
Batch Size=4
(ms) | FP16
Batch Size=8
(ms) | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|-------------------|-----------|-------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------| -| ResNet18 | 224 | 256 | 1.3568 | 2.5225 | 3.61904 | 1.45606 | 3.56305 | 6.28798 | -| ResNet18_vd | 224 | 256 | 1.39593 | 2.69063 | 3.88267 | 1.54557 | 3.85363 | 6.88121 | -| ResNet34 | 224 | 256 | 2.23092 | 4.10205 | 5.54904 | 2.34957 | 5.89821 | 10.73451 | -| ResNet34_vd | 224 | 256 | 2.23992 | 4.22246 | 5.79534 | 2.43427 | 6.22257 | 11.44906 | -| ResNet34_vd_ssld | 224 | 256 | 2.23992 | 4.22246 | 5.79534 | 2.43427 | 6.22257 | 11.44906 | -| ResNet50 | 224 | 256 | 2.63824 | 4.63802 | 7.02444 | 3.47712 | 7.84421 | 13.90633 | -| ResNet50_vc | 224 | 256 | 2.67064 | 4.72372 | 7.17204 | 3.52346 | 8.10725 | 14.45577 | -| ResNet50_vd | 224 | 256 | 2.65164 | 4.84109 | 7.46225 | 3.53131 | 8.09057 | 14.45965 | -| ResNet50_vd_v2 | 224 | 256 | 2.65164 | 4.84109 | 7.46225 | 3.53131 | 8.09057 | 14.45965 | -| ResNet101 | 224 | 256 | 5.04037 | 7.73673 | 10.8936 | 6.07125 | 13.40573 | 24.3597 | -| ResNet101_vd | 224 | 256 | 5.05972 | 7.83685 | 11.34235 | 6.11704 | 13.76222 | 25.11071 | -| ResNet152 | 224 | 256 | 7.28665 | 10.62001 | 14.90317 | 8.50198 | 19.17073 | 35.78384 | -| ResNet152_vd | 224 | 256 | 7.29127 | 10.86137 | 15.32444 | 8.54376 | 19.52157 | 36.64445 | -| ResNet200_vd | 224 | 256 | 9.36026 | 13.5474 | 19.0725 | 10.80619 | 25.01731 | 48.81399 | -| ResNet50_vd_ssld | 224 | 256 | 2.65164 | 4.84109 | 7.46225 | 3.53131 | 8.09057 | 14.45965 | -| ResNet50_vd_ssld_v2 | 224 | 256 | 2.65164 | 4.84109 | 7.46225 | 3.53131 | 8.09057 | 14.45965 | -| Fix_ResNet50_vd_ssld_v2 | 320 | 320 | 3.42818 | 7.51534 | 13.19370 | 5.07696 | 14.64218 | 27.01453 | -| ResNet101_vd_ssld | 224 | 256 | 5.05972 | 7.83685 | 11.34235 | 6.11704 | 13.76222 | 25.11071 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)。 - - - -## 3. 模型训练、评估和预测 - -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/ResNet/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - - - -## 4. 模型推理部署 - - - -### 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-推理模型准备) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理) 。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 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)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。 - - - -### 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)来完成相应的部署工作。 diff --git a/docs/zh_CN/models/ImageNet1k/SEResNext_and_Res2Net.md b/docs/zh_CN/models/ImageNet1k/SEResNext_and_Res2Net.md deleted file mode 100644 index 6b3ffaba2b7d1b829307fd13cd981d53cd9e660b..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/SEResNext_and_Res2Net.md +++ /dev/null @@ -1,209 +0,0 @@ -# SEResNeXt 与 Res2Net 系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1) - - [1.3.2 基于 T4 GPU 的预测速度](#1.3.2) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -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 上的预测耗时如下图所示。 - - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.SeResNeXt.flops.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.SeResNeXt.params.png) - -![](../../../images/models/T4_benchmark/t4.fp32.bs4.SeResNeXt.png) - -![](../../../images/models/T4_benchmark/t4.fp16.bs4.SeResNeXt.png) - - -目前 PaddleClas 开源的这三类的预训练模型一共有 24 个,其指标如图所示,从图中可以看出,在同样 Flops 和 Params 下,改进版的模型往往有更高的精度,但是推理速度往往不如 ResNet 系列。另一方面,Res2Net 表现也较为优秀,相比 ResNeXt 中的 group 操作、SEResNet 中的 SE 结构操作,Res2Net 在相同 Flops、Params 和推理速度下往往精度更佳。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPs
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| 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 | -| Res2Net50_vd_26w_4s_ssld | 0.831 | 0.966 | | | 8.370 | 25.060 | -| 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 | -| Res2Net101_vd_26w_4s_ssld | 0.839 | 0.971 | | | 16.670 | 45.220 | -| Res2Net200_vd_26w_4s | 0.812 | 0.957 | | | 31.490 | 76.210 | -| Res2Net200_vd_26w_4s_ssld | **0.851** | 0.974 | | | 31.490 | 76.210 | -| 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 | -| SE_ResNeXt101_32x4d | 0.7939 | 0.9443 | 0.793 | 0.950 | 15.020 | 46.280 | -| SENet154_vd | 0.814 | 0.955 | | | 45.830 | 114.290 | - -### 1.3 Benchmark - - - -#### 1.3.1 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(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 | - - - -#### 1.3.1 基于 T4 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP16
Batch Size=1
(ms) | FP16
Batch Size=4
(ms) | FP16
Batch Size=8
(ms) | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -|-----------------------|-----------|-------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------|------------------------------| -| 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 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2-模型快速体验)。 - - - -## 3. 模型训练、评估和预测 - -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/SEResNeXt/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - - - -## 4. 模型推理部署 - - - -### 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-推理模型准备) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#42-基于-python-预测引擎推理) 。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../inference_deployment/cpp_deploy.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../inference_deployment/cpp_deploy_on_windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 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)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../inference_deployment/paddle_lite_deploy.md)来完成相应的部署工作。 - - - -### 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)来完成相应的部署工作。 diff --git a/docs/zh_CN/models/ImageNet1k/ViT_and_DeiT.md b/docs/zh_CN/models/ImageNet1k/ViT_and_DeiT.md deleted file mode 100644 index 8dec6002e6f25987d59f40a66b0f2e64f1721b87..0000000000000000000000000000000000000000 --- a/docs/zh_CN/models/ImageNet1k/ViT_and_DeiT.md +++ /dev/null @@ -1,150 +0,0 @@ -# ViT 与 DeiT 系列 ------ - -## 目录 - -- [1. 模型介绍](#1) - - [1.1 模型简介](#1.1) - - [1.2 模型指标](#1.2) - - [1.3 Benchmark](#1.3) - - [1.3.1 基于 V100 GPU 的预测速度](#1.3.1) -- [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) - - - -## 1. 模型介绍 - - - -### 1.1 模型简介 - -ViT(Vision Transformer)系列模型是 Google 在 2020 年提出的,该模型仅使用标准的 Transformer 结构,完全抛弃了卷积结构,将图像拆分为多个 patch 后再输入到 Transformer 中,展示了 Transformer 在 CV 领域的潜力。[论文地址](https://arxiv.org/abs/2010.11929)。 - -DeiT(Data-efficient Image Transformers)系列模型是由 FaceBook 在 2020 年底提出的,针对 ViT 模型需要大规模数据集训练的问题进行了改进,最终在 ImageNet 上取得了 83.1%的 Top1 精度。并且使用卷积模型作为教师模型,针对该模型进行知识蒸馏,在 ImageNet 数据集上可以达到 85.2% 的 Top1 精度。[论文地址](https://arxiv.org/abs/2012.12877)。 - - - -### 1.2 模型指标 - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPS
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| ViT_small_patch16_224 | 0.7553 | 0.9211 | 0.7785 | 0.9342 | 9.41 | 48.60 | -| ViT_base_patch16_224 | 0.8187 | 0.9618 | 0.8178 | 0.9613 | 16.85 | 86.42 | -| ViT_base_patch16_384 | 0.8414 | 0.9717 | 0.8420 | 0.9722 | 49.35 | 86.42 | -| ViT_base_patch32_384 | 0.8176 | 0.9613 | 0.8166 | 0.9613 | 12.66 | 88.19 | -| ViT_large_patch16_224 | 0.8303 | 0.9655 | 0.8306 | 0.9644 | 59.65 | 304.12 | -| ViT_large_patch16_384 | 0.8513 | 0.9736 | 0.8517 | 0.9736 | 174.70 | 304.12 | -| ViT_large_patch32_384 | 0.8153 | 0.9608 | 0.815 | - | 44.24 | 306.48 | - - -| Models | Top1 | Top5 | Reference
top1 | Reference
top5 | FLOPS
(G) | Params
(M) | -|:--:|:--:|:--:|:--:|:--:|:--:|:--:| -| DeiT_tiny_patch16_224 | 0.7208 | 0.9112 | 0.722 | 0.911 | 1.07 | 5.68 | -| DeiT_small_patch16_224 | 0.7982 | 0.9495 | 0.799 | 0.950 | 4.24 | 21.97 | -| DeiT_base_patch16_224 | 0.8180 | 0.9558 | 0.818 | 0.956 | 16.85 | 86.42 | -| DeiT_base_patch16_384 | 0.8289 | 0.9624 | 0.829 | 0.972 | 49.35 | 86.42 | -| DeiT_tiny_distilled_patch16_224 | 0.7449 | 0.9192 | 0.745 | 0.919 | 1.08 | 5.87 | -| DeiT_small_distilled_patch16_224 | 0.8117 | 0.9538 | 0.812 | 0.954 | 4.26 | 22.36 | -| DeiT_base_distilled_patch16_224 | 0.8330 | 0.9647 | 0.834 | 0.965 | 16.93 | 87.18 | -| DeiT_base_distilled_patch16_384 | 0.8520 | 0.9720 | 0.852 | 0.972 | 49.43 | 87.18 | - -### 1.3 Benchmark - - - -#### 1.3.1 基于 V100 GPU 的预测速度 - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -| -------------------------- | --------- | ----------------- | ------------------------------ | ------------------------------ | ------------------------------ | -| ViT_small_
patch16_224 | 256 | 224 | 3.71 | 9.05 | 16.72 | -| ViT_base_
patch16_224 | 256 | 224 | 6.12 | 14.84 | 28.51 | -| ViT_base_
patch16_384 | 384 | 384 | 14.15 | 48.38 | 95.06 | -| ViT_base_
patch32_384 | 384 | 384 | 4.94 | 13.43 | 24.08 | -| ViT_large_
patch16_224 | 256 | 224 | 15.53 | 49.50 | 94.09 | -| ViT_large_
patch16_384 | 384 | 384 | 39.51 | 152.46 | 304.06 | -| ViT_large_
patch32_384 | 384 | 384 | 11.44 | 36.09 | 70.63 | - -| Models | Crop Size | Resize Short Size | FP32
Batch Size=1
(ms) | FP32
Batch Size=4
(ms) | FP32
Batch Size=8
(ms) | -| ------------------------------------ | --------- | ----------------- | ------------------------------ | ------------------------------ | ------------------------------ | -| DeiT_tiny_
patch16_224 | 256 | 224 | 3.61 | 3.94 | 6.10 | -| DeiT_small_
patch16_224 | 256 | 224 | 3.61 | 6.24 | 10.49 | -| DeiT_base_
patch16_224 | 256 | 224 | 6.13 | 14.87 | 28.50 | -| DeiT_base_
patch16_384 | 384 | 384 | 14.12 | 48.80 | 97.60 | -| DeiT_tiny_
distilled_patch16_224 | 256 | 224 | 3.51 | 4.05 | 6.03 | -| DeiT_small_
distilled_patch16_224 | 256 | 224 | 3.70 | 6.20 | 10.53 | -| DeiT_base_
distilled_patch16_224 | 256 | 224 | 6.17 | 14.94 | 28.58 | -| DeiT_base_
distilled_patch16_384 | 384 | 384 | 14.12 | 48.76 | 97.09 | - - - -## 2. 模型快速体验 - -安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考[ResNet50 模型快速体验](./ResNet.md#2)。 - - - -## 3. 模型训练、评估和预测 - -<<<<<<< f18496291fdbc9ca57ece7790b00f456b68a1f68:docs/zh_CN/models/ImageNet1k/ViT_and_DeiT.md -此部分内容包括训练环境配置、ImageNet数据的准备、模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/DeiT/` 中提供了模型的训练配置,可以通过如下脚本启动训练:此部分内容可以参考[ResNet50 模型训练、评估和预测](./ResNet.md#3)。 -======= -此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 `ppcls/configs/ImageNet/DeiT/`、`ppcls/configs/ImageNet/VisionTransformer/` 中提供了该模型的训练配置,启动训练方法可以参考:[ResNet50 模型训练、评估和预测](./ResNet.md#3-模型训练评估和预测)。 - -**备注:** 由于 DeiT、ViT 系列模型默认使用的 GPU 数量为 8 个,所以在训练时,需要指定8个GPU,如`python3 -m paddle.distributed.launch --gpus="0,1,2,3,4,5,6,7" tools/train.py -c xxx.yaml`, 如果使用 4 个 GPU 训练,默认学习率需要减小一半,精度可能有损。 ->>>>>>> docs: fix path of config:docs/zh_CN/models/ViT_and_DeiT.md - - - -## 4. 模型推理部署 - - - -### 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#4.1) 。 - - - -### 4.2 基于 Python 预测引擎推理 - -PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考[ResNet50 基于 Python 预测引擎推理](./ResNet.md#4.2) 完成模型的推理预测。 - - - -### 4.3 基于 C++ 预测引擎推理 - -PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考[服务器端 C++ 预测](../../deployment/image_classification/cpp/linux.md)来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考[基于 Visual Studio 2019 Community CMake 编译指南](../../deployment/image_classification/cpp/windows.md)完成相应的预测库编译和模型预测工作。 - - - -### 4.4 服务化部署 - -Paddle Serving 提供高性能、灵活易用的工业级在线推理服务。Paddle Serving 支持 RESTful、gRPC、bRPC 等多种协议,提供多种异构硬件和多种操作系统环境下推理解决方案。更多关于Paddle Serving 的介绍,可以参考[Paddle Serving 代码仓库](https://github.com/PaddlePaddle/Serving)。 - -PaddleClas 提供了基于 Paddle Serving 来完成模型服务化部署的示例,您可以参考[模型服务化部署](../../deployment/image_classification/paddle_serving.md)来完成相应的部署工作。 - - - -### 4.5 端侧部署 - -Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考[Paddle Lite 代码仓库](https://github.com/PaddlePaddle/Paddle-Lite)。 - -PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考[端侧部署](../../deployment/image_classification/paddle_lite.md)来完成相应的部署工作。 - - - -### 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 模型转换与预测](../../deployment/image_classification/paddle2onnx.md)来完成相应的部署工作。