提交 7b000a5a 编写于 作者: G gaotingquan 提交者: Tingquan Gao

docs: fix invalid link

上级 76435bf5
......@@ -246,4 +246,4 @@ Slim:
* 如果希望在服务端使用 cpp 进行部署,可以参考 [cpp inference 预测教程](../inference_deployment/cpp_deploy.md)
* 如果希望将分类模型部署为服务,可以参考 [hub serving 预测部署教程](../inference_deployment/paddle_hub_serving_deploy.md)
* 如果希望在移动端使用分类模型进行预测,可以参考 [PaddleLite 预测部署教程](../inference_deployment/paddle_lite_deploy.md)
* 如果希望使用whl包对分类模型进行预测,可以参考 [whl包预测](./docs/zh_CN/inference_deployment/whl_deploy.md)
* 如果希望使用whl包对分类模型进行预测,可以参考 [whl包预测](../inference_deployment/whl_deploy.md)
......@@ -6,17 +6,17 @@
- [如何贡献代码](#1)
- [1.1 PaddleClas 分支说明](#1.1)
- [1.2 PaddleClas 代码提交流程与规范](#1.2)
- [1.2.1 fork 和 clone 代码](1.2.1)
- [1.2.2 和远程仓库建立连接](1.2.2)
- [1.2.3 创建本地分支](1.2.3)
- [1.2.4 使用 pre-commit 勾子](1.2.4)
- [1.2.5 修改与提交代码](1.2.5)
- [1.2.6 保持本地仓库最新](1.2.6)
- [1.2.7 push到远程仓库](1.2.7)
- [1.2.8 提交Pull Request](1.2.8)
- [1.2.9 签署 CLA 协议和通过单元测试](1.2.9)
- [1.2.10 删除分支](1.2.10)
- [1.2.11 提交代码的一些约定](1.2.11)
- [1.2.1 fork 和 clone 代码](#1.2.1)
- [1.2.2 和远程仓库建立连接](#1.2.2)
- [1.2.3 创建本地分支](#1.2.3)
- [1.2.4 使用 pre-commit 勾子](#1.2.4)
- [1.2.5 修改与提交代码](#1.2.5)
- [1.2.6 保持本地仓库最新](#1.2.6)
- [1.2.7 push到远程仓库](#1.2.7)
- [1.2.8 提交Pull Request](#1.2.8)
- [1.2.9 签署 CLA 协议和通过单元测试](#1.2.9)
- [1.2.10 删除分支](#1.2.10)
- [1.2.11 提交代码的一些约定](#1.2.11)
- [总结](#2)
- [参考文献](#3)
......
......@@ -7,21 +7,21 @@
- [SSLD 蒸馏策略](#2)
- [2.1 简介](#2.1)
- [2.2 数据选择](#2.2)
- [实验](#3)
- [实验](#3)
- [3.1 教师模型的选择](#3.1)
- [3.2 大数据蒸馏](#3.2)
- [3.3 ImageNet1k 训练集 finetune](#3.3)
- [3.4 数据增广以及基于 Fix 策略的微调](#3.4)
- [3.5 实验过程中的一些问题](#3.5)
- [蒸馏模型的应用](#4)
- [蒸馏模型的应用](#4)
- [4.1 使用方法](#4.1)
- [4.2 迁移学习 finetune](#4.2)
- [4.3 目标检测](#4.3)
- [SSLD实战](#5)
- [SSLD实战](#5)
- [5.1 参数配置](#5.1)
- [5.2 启动命令](#5.2)
- [5.3 注意事项](#5.3)
- [参考文献](#6)
- [参考文献](#6)
<a name="1"></a>
## 一、模型压缩与知识蒸馏方法简介
......@@ -207,7 +207,7 @@ SSLD 的流程图如下图所示。
<a name="5"></a>
## 五、SSLD实战
本节将基于 ImageNet-1K 的数据集详细介绍 SSLD 蒸馏实验,如果想快速体验此方法,可以参考 [**30分钟玩转PaddleClas(进阶版)**](../../tutorials/quick_start_professional.md) 中基于 CIFAR100 的 SSLD 蒸馏实验。
本节将基于 ImageNet-1K 的数据集详细介绍 SSLD 蒸馏实验,如果想快速体验此方法,可以参考 [**30分钟玩转PaddleClas(进阶版)**](../quick_start/quick_start_classification_professional.md) 中基于 CIFAR100 的 SSLD 蒸馏实验。
<a name="5.1"></a>
### 5.1 参数配置
......
......@@ -20,12 +20,12 @@
- [1.2 准备训练好的模型](#1.2)
- [快速开始](#2)
- [2.1 模型量化](#2.1)
- [2.1.1 在线量化训练](2.1.1)
- [2.1.2 离线量化](2.1.2)
- [2.1.1 在线量化训练](#2.1.1)
- [2.1.2 离线量化](#2.1.2)
- [2.2 模型剪枝](#2.2)
- [导出模型](#3)
- [模型部署](#4)
- [训练超参数建议](#5)
- [导出模型](#3)
- [模型部署](#4)
- [训练超参数建议](#5)
<a name="1"></a>
......
简体中文 | [English](README.md)
简体中文 | [English](../../en/algorithm_introduction/ImageNet_models.md)
## ImageNet预训练模型库
......
......@@ -8,12 +8,12 @@
- [数据集格式说明](#数据集格式说明)
- [图像分类任务常见数据集介绍](#图像分类任务常见数据集介绍)
- [2.1 ImageNet1k](#ImageNet1k])
- [2.1 ImageNet1k](#ImageNet1k)
- [2.2 Flowers102](#Flowers102)
- [2.3 CIFAR10 / CIFAR100](#CIFAR10/CIFAR100)
- [2.4 MNIST](#MNIST)
- [2.5 NUS-WIDE](#NUS-WIDE)
<a name="数据集格式说明"></a>
## 一、数据集格式说明
......
......@@ -203,7 +203,7 @@ python tools/export_model.py -c configs/ppyolo/ppyolov2_r50vd_dcn_365e_coco.yml
导出模型之后,在主体检测与识别任务中,就可以将检测模型的路径更改为该 inference 模型路径,完成预测。
以商品识别为例,其配置文件为 [inference_product.yaml](../../../deploy/configs/inference_product.yaml) ,修改其中的 `Global.det_inference_model_dir` 字段为导出的主体检测 inference 模型目录,参考[图像识别快速开始教程](../tutorials/quick_start_recognition.md) ,即可完成商品检测与识别过程。
以商品识别为例,其配置文件为 [inference_product.yaml](../../../deploy/configs/inference_product.yaml) ,修改其中的 `Global.det_inference_model_dir` 字段为导出的主体检测 inference 模型目录,参考[图像识别快速开始教程](../quick_start/quick_start_recognition.md) ,即可完成商品检测与识别过程。
### FAQ
......
......@@ -9,11 +9,11 @@
- [准备环境](#1)
- [1.1编译opencv库](#1.1)
- [1.2准备环境](#1.2)
- [1.2.1 预测库源码编译](1.2.1)
- [1.2.2 直接下载安装](1.2.2)
- [1.2.1 预测库源码编译](#1.2.1)
- [1.2.2 直接下载安装](#1.2.2)
- [编译](#2)
- [2.1 编译 PaddleClas C++ 预测 demo](#2.1)
- [2.2 编译 config lib 预测库与 cls lib 预测库](#2.2)
- [2.2 编译 config lib 预测库与 cls lib 预测库](#2.2)
- [运行](#3)
- [3.1 准备 inference model](#3.1)
- [3.2 运行 demo](#3.2)
......@@ -252,7 +252,7 @@ make
<a name="3"></a>
## 3. 运行
<a name="3.l"></a>
<a name="3.1"></a>
### 3.1 准备 inference model
首先需要准备 inference model,关于将模型导出为 inference model 的具体步骤,可以参考 [模型导出](./export_model.md) 文档。假设导出的预测模型文件放在 `./inference` 目录下,则目录结构如下。
......
......@@ -11,7 +11,7 @@ PaddlePaddle 支持导出 inference 模型用于部署推理场景,相比于
- [分类模型导出](#分类模型导出)
- [主体检测模型导出](#主体检测模型导出)
- [识别模型导出](#识别模型导出)
- [命令参数说明](#命令参数说明])
- [命令参数说明](#命令参数说明)
<a name="环境准备"></a>
......
......@@ -45,7 +45,7 @@
- 轻量级模型系列
- PP-LCNet系列<sup>[[28](#28)]</sup>([论文地址](https://arxiv.org/pdf/2109.15099.pdf))
- PP-LCNet系列<sup>[[28](#ref28)]</sup>([论文地址](https://arxiv.org/pdf/2109.15099.pdf))
- [PPLCNet_x0_25](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/legendary_models/PPLCNet_x0_25_pretrained.pdparams)
- [PPLCNet_x0_35](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/legendary_models/PPLCNet_x0_35_pretrained.pdparams)
- [PPLCNet_x0_5](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/legendary_models/PPLCNet_x0_5_pretrained.pdparams)
......@@ -108,7 +108,7 @@
- [ReXNet_1_5](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ReXNet_1_5_pretrained.pdparams)
- [ReXNet_2_0](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ReXNet_2_0_pretrained.pdparams)
- [ReXNet_3_0](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ReXNet_3_0_pretrained.pdparams)
- SEResNeXt与Res2Net系列
- ResNeXt系列<sup>[[7](#ref7)]</sup>([论文地址](https://arxiv.org/abs/1611.05431))
......@@ -304,8 +304,8 @@
- [RedNet50](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/RedNet50_pretrained.pdparams)
- [RedNet101](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/RedNet101_pretrained.pdparams)
- [RedNet152](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/RedNet152_pretrained.pdparams)
**注意**:以上模型中EfficientNetB1-B7的预训练模型转自[pytorch版EfficientNet](https://github.com/lukemelas/EfficientNet-PyTorch),ResNeXt101_wsl系列预训练模型转自[官方repo](https://github.com/facebookresearch/WSL-Images),剩余预训练模型均基于飞桨训练得到的,并在configs里给出了相应的训练超参数。
......@@ -393,4 +393,4 @@ TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE.
<a name="ref38">[38]</a>Fisher Yu, Dequan Wang, Evan Shelhamer, Trevor Darrell. Deep Layer Aggregation.
<a name="ref39">[39]</a>Duo Lim Jie Hu, Changhu Wang, Xiangtai Li, Qi She, Lei Zhu, Tong Zhang, Qifeng Chen. Involution: Inverting the Inherence of Convolution for Visual Recognition.
\ No newline at end of file
<a name="ref39">[39]</a>Duo Lim Jie Hu, Changhu Wang, Xiangtai Li, Qi She, Lei Zhu, Tong Zhang, Qifeng Chen. Involution: Inverting the Inherence of Convolution for Visual Recognition.
......@@ -31,27 +31,27 @@
- [3.2.4 模型评估](#3.2.4)
- [3.3 使用预训练模型进行模型预测](#3.3)
- [3.4 使用inference模型进行模型推理](#3.4)
<a name="1"></a>
<a name="1"></a>
## 一、数据集介绍
<a name="1.1"></a>
<a name="1.1"></a>
### 1.1 ImageNet-1k
ImageNet项目是一个大型视觉数据库,用于视觉目标识别软件研究。该项目已手动注释了1400多万张图像,以指出图片中的对象,并在至少100万张图像中提供了边框。ImageNet-1k是ImageNet数据集的子集,其包含1000个类别。训练集包含1281167个图像数据,验证集包含50000个图像数据。2010年以来,ImageNet项目每年举办一次图像分类竞赛,即ImageNet大规模视觉识别挑战赛(ILSVRC)。挑战赛使用的数据集即为ImageNet-1k。到目前为止,ImageNet-1k已经成为计算机视觉领域发展的最重要的数据集之一,其促进了整个计算机视觉的发展,很多计算机视觉下游任务的初始化模型都是基于该数据集训练得到的权重。
<a name="1.2"></a>
<a name="1.2"></a>
### 1.2 CIFAR-10/CIFAR-100
CIFAR-10数据集由10个类的60000个彩色图像组成,图像分辨率为32x32,每个类有6000个图像,其中训练集5000张,验证集1000张,10个不同的类代表飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、轮船和卡车。CIFAR-100数据集是CIFAR-10的扩展,由100个类的60000个彩色图像组成,图像分辨率为32x32,每个类有600个图像,其中训练集500张,验证集100张。由于这两个数据集规模较小,因此可以让研究人员快速尝试不同的算法。这两个数据集也是图像分类领域测试模型好坏的常用数据集。
<a name="2"></a>
<a name="2"></a>
## 二、图像分类的流程
将准备好的训练数据做相应的数据预处理后经过图像分类模型,模型的输出与真实标签做交叉熵损失函数,该损失函数描述了模型的收敛方向,遍历所有的图片数据输入模型,对最终损失函数通过某些优化器做相应的梯度下降,将梯度信息回传到模型中,更新模型的权重,如此循环往复遍历多次数据,即可得到一个图像分类的模型。
<a name="2.1"></a>
<a name="2.1"></a>
### 2.1 数据及其预处理
数据的质量及数量往往可以决定一个模型的好坏。在图像分类领域,数据包括图像及标签。在大部分情形下,带有标签的数据比较匮乏,所以数量很难达到使模型饱和的程度,为了可以使模型学习更多的图像特征,图像数据在进入模型之前要经过很多图像变换或者数据增强,来保证输入图像数据的多样性,从而保证模型有更好的泛化能力。PaddleClas提供了训练ImageNet-1k的标准图像变换,也提供了多种数据增强的方法,相关代码可以[数据处理](../../../ppcls/data/preprocess),配置文件可以参考[数据增强配置文件](../../../ppcls/configs/ImageNet/DataAugment), 相关数据增强算法详见数据[增强介绍文档](../algorithm_introduction/DataAugmentation.md)
......@@ -129,7 +129,7 @@ python3 tools/train.py \
...
```
训练期间也可以通过VisualDL实时观察loss变化,详见[VisualDL](../extension/VisualDL.md)
训练期间也可以通过VisualDL实时观察loss变化,详见[VisualDL](../others/VisualDL.md)
<a name="3.1.2"></a>
#### 3.1.2 模型微调
......@@ -338,4 +338,3 @@ python3 python/predict_cls.py \
注意: 如果使用`Transformer`系列模型,如`DeiT_***_384`, `ViT_***_384`等,请注意模型的输入数据尺寸,需要设置参数`resize_short=384`, `resize=384`
如果你希望提升评测模型速度,使用gpu评测时,建议开启TensorRT加速预测,使用cpu评测时,建议开启MKLDNN加速预测。
# 使用VisualDL可视化训练过程
## 前言
VisualDL是飞桨可视化分析工具,以丰富的图表呈现训练参数变化趋势、模型结构、数据样本、高维数据分布等。可帮助用户更清晰直观地理解深度学习模型训练过程及模型结构,进而实现高效的模型优化。更多细节请查看[VisualDL](https://github.com/PaddlePaddle/VisualDL/)
## 在PaddleClas中使用VisualDL
现在PaddleClas支持在训练阶段使用VisualDL查看训练过程中学习率(learning rate)、损失值(loss)以及准确率(accuracy)的变化情况。
### 设置config文件并启动训练
在PaddleClas中使用VisualDL,只需在训练配置文件(config文件)中设置字段 `Global.use_visualdl``True`
```yaml
# config.yaml
Global:
...
use_visualdl: True
...
```
PaddleClas 会将 VisualDL 的日志保存在 `Global.output_dir` 字段指定目录下的 `vdl/` 子目录下,然后正常启动训练即可:
```shell
python3 tools/train.py -c config.yaml
```
### 启动VisualDL
在启动训练程序后,可以在新的终端session中启动VisualDL服务:
```shell
visualdl --logdir ./output/vdl/
```
上述命令中,参数`--logdir`用于指定保存 VisualDL 日志的目录,VisualDL将遍历并且迭代寻找指定目录的子目录,将所有实验结果进行可视化。也同样可以使用下述参数设定VisualDL服务的ip及端口号:
* `--host`:设定IP,默认为127.0.0.1
* `--port`:设定端口,默认为8040
更多参数信息,请查看[VisualDL](https://github.com/PaddlePaddle/VisualDL/blob/develop/README_CN.md#2-%E5%90%AF%E5%8A%A8%E9%9D%A2%E6%9D%BF)
在启动VisualDL后,即可在浏览器中查看训练过程,输入地址`127.0.0.1:8840`
<div align="center">
<img src="../../images/VisualDL/train_loss.png" width="400">
</div>
# 更新日志
- 2021.08.11 更新7个[FAQ](docs/zh_CN/faq_series/faq_2021_s2.md)
- 2021.06.29 添加Swin-transformer系列模型,ImageNet1k数据集上Top1 acc最高精度可达87.2%;支持训练预测评估与whl包部署,预训练模型可以从[这里](docs/zh_CN/models/models_intro.md)下载。
- 2021.08.11 更新7个[FAQ](../faq_series/faq_2021_s2.md)
- 2021.06.29 添加Swin-transformer系列模型,ImageNet1k数据集上Top1 acc最高精度可达87.2%;支持训练预测评估与whl包部署,预训练模型可以从[这里](../models/models_intro.md)下载。
- 2021.06.22,23,24 PaddleClas官方研发团队带来技术深入解读三日直播课。课程回放:[https://aistudio.baidu.com/aistudio/course/introduce/24519](https://aistudio.baidu.com/aistudio/course/introduce/24519)
- 2021.06.16 PaddleClas v2.2版本升级,集成Metric learning,向量检索等组件。新增商品识别、动漫人物识别、车辆识别和logo识别等4个图像识别应用。新增LeViT、Twins、TNT、DLA、HarDNet、RedNet系列30个预训练模型。
- 2021.04.15
......
......@@ -8,7 +8,7 @@
* [1. 环境配置](#环境配置)
* [2. 图像识别体验](#图像识别体验)
* [2.1 下载、解压inference 模型与demo数据](#下载、解压inference模型与demo数据)
* [2.1 下载、解压inference 模型与demo数据](#2.1)
* [2.2 瓶装饮料识别与检索](#瓶装饮料识别与检索)
* [2.2.1 识别单张图像](#识别单张图像)
* [2.2.2 基于文件夹的批量识别](#基于文件夹的批量识别)
......@@ -74,7 +74,8 @@ cd ..
wget {数据下载链接地址} && tar -xf {压缩包的名称}
```
<a name="下载、解压inference模型与demo数据"></a>
<a name="2.1"></a>
### 2.1 下载、解压 inference 模型与 demo 数据
下载 demo 数据集以及轻量级主体检测、识别模型,命令如下。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册