@@ -38,7 +36,7 @@ ResNet_va至vd的结构如下图所示,ResNet最早提出时为va结构,在
**A**:
ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度几乎不变的情况下,精度有非常明显的提升,因此推荐大家使用ResNet_vd系列模型。
-下面给出了batch size=4的情况下,在T4 GPU上,不同模型的的预测耗时、flops、params与精度的变化曲线,可以根据自己自己的实际部署场景中的需求,去选择合适的模型,如果希望模型存储大小尽可能小或者预测速度尽可能快,则可以使用ResNet18_vd模型,如果希望获得尽可能高的精度,则建议使用ResNet152_vd或者ResNet200_vd模型。更多关于ResNet系列模型的介绍可以参考文档:[ResNet及其vd系列模型文档](../models/ResNet_and_vd.md)。
+[ResNet及其vd系列模型文档](../models/ResNet_and_vd.md)中给出了batch size=4的情况下,在T4 GPU上,不同模型的的预测耗时、FLOPs、Params与精度的变化曲线,可以根据自己自己的实际部署场景中的需求,去选择合适的模型,如果希望模型存储大小尽可能小或者预测速度尽可能快,则可以使用ResNet18_vd模型,如果希望获得尽可能高的精度,则建议使用ResNet152_vd或者ResNet200_vd模型。更多关于ResNet系列模型的介绍可以参考文档:[ResNet及其vd系列模型文档](../models/ResNet_and_vd.md)。
* 精度-预测速度变化曲线
@@ -69,7 +67,7 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
### Q1.7 大卷积核一定可以带来正向收益吗?
**A**: 不一定,将网络中的所有卷积核都增大未必会带来性能的提升,甚至会有有损性能,在论文[MixConv: Mixed Depthwise Convolutional Kernels](https://arxiv.org/abs/1907.09595)
-中指出,在一定范围内提升卷积核大小对精度的提升有正向作用,但是超出后会有损精度。所以考虑到模型的大小、计算量等问题,一般不选用大的卷积核去设计网络。
+中指出,在一定范围内提升卷积核大小对精度的提升有正向作用,但是超出后会有损精度。所以考虑到模型的大小、计算量等问题,一般不选用大的卷积核去设计网络。同时,在[PP-LCNet](../models/PP-LCNet.md)文章中,也有关于大卷积核的实验。
## 第2期
@@ -77,9 +75,9 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
### Q2.1: PaddleClas如何训练自己的backbone?
**A**:具体流程如下:
-* 首先在ppcls/modeling/architectures/文件夹下新建一个自己的模型结构文件,即你自己的backbone,模型搭建可以参考resnet.py;
-* 然后在ppcls/modeling/\_\_init\_\_.py中添加自己设计的backbone的类;
-* 其次配置训练的yaml文件,此处可以参考configs/ResNet/ResNet50.yaml;
+* 首先在ppcls/arch/backbone/model_zoo/文件夹下新建一个自己的模型结构文件,即你自己的backbone,模型搭建可以参考resnet.py;
+* 然后在ppcls/arch/backbone/\_\_init\_\_.py中添加自己设计的backbone的类;
+* 其次配置训练的yaml文件,此处可以参考ppcls/configs/ImageNet/ResNet/ResNet50.yaml;
* 最后启动训练即可。
@@ -92,7 +90,7 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
### Q2.3: PaddleClas中configs下的默认参数适合任何一个数据集吗?
-**A**: PaddleClas中的configs下的默认参数是ImageNet-1k的训练参数,这个参数并不适合所有的数据集,具体数据集需要在此基础上进一步调试,调试方法会在之后出一个单独的faq,敬请期待。
+**A**: PaddleClas中的ppcls/configs/ImageNet/下的配置文件默认参数是ImageNet-1k的训练参数,这个参数并不适合所有的数据集,具体数据集需要在此基础上进一步调试。
### Q2.4 PaddleClas中的不同的模型使用了不同的分辨率,标配的应该是多少呢?
@@ -102,7 +100,7 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
### Q2.5 PaddleClas中提供了很多ssld模型,其应用的价值是?
-**A**: PaddleClas中提供了很多ssld预训练模型,其通过半监督知识蒸馏的方法获得了更好的预训练权重,在迁移任务或者下游视觉任务中,无须替换结构文件、只需要替换精度更高的ssld预训练模型即可提升精度,如在PaddleSeg中,[HRNet](https://github.com/PaddlePaddle/PaddleSeg/blob/release/v0.7.0/docs/model_zoo.md)使用了ssld预训练模型的权重后,精度大幅度超越业界同样的模型的精度,在PaddleDetection中,[PP-YOLO](https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.4/configs/ppyolo/README_cn.md)使用了ssld预训练权重后,在较高的baseline上仍有进一步的提升。使用ssld预训练权重做分类的迁移表现也很抢眼,在[SSLD蒸馏策略](../advanced_tutorials/distillation/distillation.md)部分介绍了知识蒸馏对于分类任务迁移的收益。
+**A**: PaddleClas中提供了很多ssld预训练模型,其通过半监督知识蒸馏的方法获得了更好的预训练权重,在迁移任务或者下游视觉任务中,无须替换结构文件、只需要替换精度更高的ssld预训练模型即可提升精度,如在PaddleSeg中,[HRNet](https://github.com/PaddlePaddle/PaddleSeg/blob/release/v0.7.0/docs/model_zoo.md)使用了ssld预训练模型的权重后,精度大幅度超越业界同样的模型的精度,在PaddleDetection中,[PP-YOLO](https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.4/configs/ppyolo/README_cn.md)使用了ssld预训练权重后,在较高的baseline上仍有进一步的提升。使用ssld预训练权重做分类的迁移表现也很抢眼,在[SSLD蒸馏策略](../advanced_tutorials/knowledge_distillation.md)部分介绍了知识蒸馏对于分类任务迁移的收益。
@@ -121,7 +119,7 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
### Q3.3: 怎么使用多个模型进行预测融合呢?
-**A** 使用多个模型进行预测的时候,建议首先将预训练模型导出为inference模型,这样可以摆脱对网络结构定义的依赖,可以参考[模型导出脚本](../../../tools/export_model.py)进行模型导出,之后再参考[inference模型预测脚本](../../../tools/infer/predict.py)进行预测即可,在这里需要根据自己使用模型的数量创建多个predictor。
+**A** 使用多个模型进行预测的时候,建议首先将预训练模型导出为inference模型,这样可以摆脱对网络结构定义的依赖,可以参考[模型导出脚本](../../../tools/export_model.py)进行模型导出,之后再参考[inference模型预测脚本](../../../deploy/python/predict_cls.py)进行预测即可,在这里需要根据自己使用模型的数量创建多个predictor。
### Q3.4: PaddleClas中怎么增加自己的数据增广方法呢?
@@ -136,15 +134,17 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
**A**:
-* 可以使用自动混合精度进行训练,这在精度几乎无损的情况下,可以有比较明显的速度收益,以ResNet50为例,PaddleClas中使用自动混合精度训练的配置文件可以参考:[ResNet50_fp16.yml](../../../ppcls/configs/ResNet/ResNet50_fp16.yml),主要就是需要在标准的配置文件中添加以下几行
+* 可以使用自动混合精度进行训练,这在精度几乎无损的情况下,可以有比较明显的速度收益,以ResNet50为例,PaddleClas中使用自动混合精度训练的配置文件可以参考:[ResNet50_fp16.yml](../../../ppcls/configs/ImageNet/ResNet/ResNet50_fp16.yaml),主要就是需要在标准的配置文件中添加以下几行
```
-use_fp16: True
-amp_scale_loss: 128.0
-use_dynamic_loss_scaling: True
+# mixed precision training
+AMP:
+ scale_loss: 128.0
+ use_dynamic_loss_scaling: True
+ use_pure_fp16: &use_pure_fp16 True
```
-* 可以开启dali,将数据预处理方法放在GPU上运行,在模型比较小时(reader耗时占比更高一些),开启dali会带来比较明显的精度收益,在训练的时候,添加`-o use_dali=True`即可使用dali进行训练,更多关于dali 安装与介绍可以参考:[dali安装教程](https://docs.nvidia.com/deeplearning/dali/user-guide/docs/installation.html#nightly-builds)。
+* 可以开启dali,将数据预处理方法放在GPU上运行,在模型比较小时(reader耗时占比更高一些),开启dali会带来比较明显的训练速度收益,在训练的时候,添加`-o Global.use_dali=True`即可使用dali进行训练,更多关于 dali 安装与介绍可以参考:[dali安装教程](https://docs.nvidia.com/deeplearning/dali/user-guide/docs/installation.html#nightly-builds)。
## 第4期
@@ -294,7 +294,7 @@ Cosine_decay和piecewise_decay的学习率变化曲线如下图所示,容易
**A**:一般来说,数据集的规模对性能影响至关重要,但是图片的标注往往比较昂贵,所以有标注的图片数量往往比较稀少,在这种情况下,数据的增广尤为重要。在训练ImageNet-1k的标准数据增广中,主要使用了Random_Crop与Random_Flip两种数据增广方式,然而,近些年,越来越多的数据增广方式被提出,如cutout、mixup、cutmix、AutoAugment等。实验表明,这些数据的增广方式可以有效提升模型的精度。具体到数据集来说:
-- ImageNet-1k:下表列出了ResNet50在8种不同的数据增广方式的表现,可以看出,相比baseline,所有的数据增广方式均有收益,其中cutmix是目前最有效的数据增广。更多数据增广的介绍请参考[**数据增广章节**](../advanced_tutorials/image_augmentation/ImageAugment.md)。
+- ImageNet-1k:下表列出了ResNet50在8种不同的数据增广方式的表现,可以看出,相比baseline,所有的数据增广方式均有收益,其中cutmix是目前最有效的数据增广。更多数据增广的介绍请参考[**数据增广章节**](../advanced_tutorials/DataAugmentation.md)。
| 模型 | 数据增广方式 | Test top-1 |
|:--:|:--:|:--:|
@@ -332,7 +332,7 @@ Cosine_decay和piecewise_decay的学习率变化曲线如下图所示,容易
- 挖掘相关数据:用在现有数据集上训练饱和的模型去对相关的数据做预测,将置信度较高的数据打label后加入训练集进一步训练,如此循环操作,可进一步提升模型的精度。
-- 知识蒸馏:可以先使用一个较大的模型在该数据集上训练一个精度较高的teacher model,然后使用该teacher model去教导一个Student model,其中,Student model即为目标模型。PaddleClas提供了百度自研的SSLD知识蒸馏方案,即使在ImageNet-1k这么有挑战的分类任务上,其也能稳定提升3%以上。SSLD知识蒸馏的的章节请参考[**SSLD知识蒸馏**](../advanced_tutorials/distillation/distillation.md)。
+- 知识蒸馏:可以先使用一个较大的模型在该数据集上训练一个精度较高的teacher model,然后使用该teacher model去教导一个Student model,其中,Student model即为目标模型。PaddleClas提供了百度自研的SSLD知识蒸馏方案,即使在ImageNet-1k这么有挑战的分类任务上,其也能稳定提升3%以上。SSLD知识蒸馏的的章节请参考[**SSLD知识蒸馏**](../advanced_tutorials/knowledge_distillation.md)。
@@ -342,13 +342,13 @@ Cosine_decay和piecewise_decay的学习率变化曲线如下图所示,容易
**A**: PaddleClas目前共有3种分支:
-* 动态图分支:dygraph分支是PaddleClas的默认分支,也是更新最快的分支。所有的新功能、新改动都会先在dygraph分支上进行。如果想追踪PaddleClas的最新进展,可以关注这个分支。这个分支主要支持动态图,会跟着paddlepaddle的版本一起更新。
+* 开发分支:develop分支是PaddleClas的开发分支,也是更新最快的分支。所有的新功能、新改动都会先在develop分支上进行。如果想追踪PaddleClas的最新进展,可以关注这个分支。这个分支主要支持动态图,会跟着paddlepaddle的版本一起更新。
-* 稳定版本分支:快速更新能够让关注者了解最新进展,但也会带来不稳定性。因此在一些关键的时间点,我们会从dygraph分支中拉出分支,提供稳定的版本。这些分支的名字与paddlepaddle的版本对应,如 2.0-beta 为支持paddlepaddle2.0-beta的稳定版本。这些分支一般只会修复bug,而不更新新的特性和模型。
+* 稳定版本分支(如release/2.1.3):快速更新能够让关注者了解最新进展,但也会带来不稳定性。因此在一些关键的时间点,我们会从develop分支中拉出分支,提供稳定的版本,最新的稳定版分支也是默认分支。需要注意,无特殊情况,我们只会维护最新的release稳定分支,并且一般只会修复bug,而不更新新的特性和模型。
-* 静态图分支:master分支是使用静态图版本的分支,主要用来支持一些老用户的使用,也只进行一些简单维护,不会更新新的特性和模型。不建议新用户使用静态图分支。老用户如果有条件,也建议迁到动态图分支或稳定版本分支。
+* 静态图分支(static):static分支是使用静态图版本的分支,主要用来支持一些老用户的使用,也只进行一些简单维护,不会更新新的特性和模型。不建议新用户使用静态图分支。老用户如果有条件,也建议迁到动态图分支或稳定版本分支。
-总的来说,如果想跟进PaddleClas的最新进展,建议选择dygraph分支,如果需要稳定版本,建议选择最新的稳定版本分支。
+总的来说,如果想跟进PaddleClas的最新进展,建议选择develop分支,如果需要稳定版本,建议选择最新的稳定版本分支。
### Q6.2: 什么是静态图模式?
@@ -358,11 +358,7 @@ Cosine_decay和piecewise_decay的学习率变化曲线如下图所示,容易
**A**: 动态图模式即为命令式编程模式,用户无需预先定义网络结构,每行代码都可以直接运行得到结果。相比静态图模式,动态图模式对用户更加友好,调试也更方便。此外,动态图模式的结构设计也更加灵活,可以在运行过程中随时调整结构。
-PaddleClas目前持续更新的dygraph分支,主要采用动态图模式。如果您是新用户,建议使用动态图模式来进行开发和训练。如果推理预测时有性能需求,可以在训练完成后,将动态图模型转为静态图模型提高效率。
-
-### Q6.4: 动态图模型的预测效率有时不如静态图,应该怎么办?
-
-**A**: 可以使用转换工具,将动态图模型转换为静态图模型,具体可以参考https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-rc1/guides/04_dygraph_to_static/index_cn.html。
+PaddleClas目前持续更新的develop分支和稳定版本的release分支,主要采用动态图模式。如果您是新用户,建议使用动态图模式来进行开发和训练。如果推理预测时有性能需求,可以在训练完成后,将动态图模型转为静态图模型提高效率。
### Q6.5: 构建分类数据集时,如何构建"背景"类别的数据?
diff --git a/docs/zh_CN/faq_series/faq_2021_s1.md b/docs/zh_CN/faq_series/faq_2021_s1.md
index ccf53f64d564e7b61be031c3223b94bd46190523..cff7c98bb57c2c048039ee3a6c8f615038aac298 100644
--- a/docs/zh_CN/faq_series/faq_2021_s1.md
+++ b/docs/zh_CN/faq_series/faq_2021_s1.md
@@ -38,7 +38,9 @@
### Q1.4 PaddleClas提供的10W类图像分类预训练模型在哪里下载,应该怎么使用呢?
-**A**:基于ResNet50_vd, 百度开源了自研的大规模分类预训练模型,其中训练数据为10万个类别,4300万张图片。10万类预训练模型的下载地址:[下载地址](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_10w_pretrained.tar),在这里需要注意的是,该预训练模型没有提供最后的FC层参数,因此无法直接拿来预测;但是可以使用它作为预训练模型,在自己的数据集上进行微调。经过验证,该预训练模型相比于基于ImageNet1k数据集的ResNet50_vd预训练模型,在不同的数据集上均有比较明显的精度收益,最多可达30%,更多的对比实验可以参考:[图像分类迁移学习教程](../application/transfer_learning.md)。
+**A**:基于ResNet50_vd, 百度开源了自研的大规模分类预训练模型,其中训练数据为10万个类别,4300万张图片。10万类预训练模型的下载地址:[下载地址](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_10w_pretrained.tar),在这里需要注意的是,该预训练模型没有提供最后的FC层参数,因此无法直接拿来预测;但是可以使用它作为预训练模型,在自己的数据集上进行微调。经过验证,该预训练模型相比于基于ImageNet1k数据集的ResNet50_vd预训练模型,在不同的数据集上均有比较明显的精度收益,最多可达30%。
+
+
### Q1.5 使用C++进行预测部署的时候怎么进行加速呢?
@@ -178,7 +180,7 @@ RepVGG网络与ACNet同理,只不过ACNet的`1*d`非对称卷积变成了`1*1`
**A**:
1. 图像对CNN的依赖是不必要的,利用Transformer的计算效率和可伸缩性,可以训练很大模型,当模型和数据集增大的情形下,仍然不会存在饱和的情况。受到Transformer在NLP上的启发,在图像分类任务中使用时,将图片分成顺序排列的patches,并将这些patches输入一个线性单元嵌入到embedding作为transformer的输入。
-2. 在中等规模数据集中如ImageNet,ImageNet21k,视觉Transformer模型低于相同规模尺寸的ResNet几个百分点。这是因为transformer缺少CNN平移和局限性,在数据量不够大的时候,不能超越卷积网络。
+2. 在中等规模数据集中如ImageNet1k,ImageNet21k,视觉Transformer模型低于相同规模尺寸的ResNet几个百分点。猜测这是因为transformer缺少CNN所具有的局部性(Locality)和空间不变性(Spatial Invariance)的特点,而在数据量不够大的时候,难以超越卷积网络,不过对于这一问题,[DeiT](https://arxiv.org/abs/2012.12877)使用数据增强的方式在一定程度上解决了Vision Transformer依赖超大规模数据集训练的问题。
3. 在超大规模数据集14M-300M训练时,这种方式可以越过局部信息,建模更加长距离的依赖关系,而CNN能较好关注局部信息全局信息捕获能力较弱。
@@ -199,7 +201,7 @@ RepVGG网络与ACNet同理,只不过ACNet的`1*d`非对称卷积变成了`1*1`
-3. 考虑以下问题:怎样将一张图片怎么传给encoder?
+3. 考虑以下问题:怎样将一张图片传给encoder?
* 如下图所示。假设输入图片是[224,224,3],按照顺序从左到右,从上到下,切分成很多个patch,patch大小可以为[p,p,3](p取值可以是16,32),对其使用Linear Projection of Flattened Patches模块转成特征向量,并concat一个位置向量,传入Encoder中。
@@ -218,7 +220,7 @@ RepVGG网络与ACNet同理,只不过ACNet的`1*d`非对称卷积变成了`1*1`
### Q4.4: 如何理解归纳偏置Inductive Bias?
**A**:
-1. 在机器学习中,会对算需要应用的问题做一些假设,这个假设就称为归纳偏好。在现实生活中观察得到的现象中归纳出一定的先验规则,然后对模型做一定的约束,从而起到模型选择的作用。在CNN中,假设特征具有局部性(Locality)和空间不变性(Spatial Invariance)的特点,即把相邻的的特征有联系而远离的没有,将相邻特征融合在一起,更会容易产生“解”;还有attention机制,也是从人的直觉、生活经验归纳的规则。
+1. 在机器学习中,会对算需要应用的问题做一些假设,这个假设就称为归纳偏好。在现实生活中观察得到的现象中归纳出一定的先验规则,然后对模型做一定的约束,从而起到模型选择的作用。在CNN中,假设特征具有局部性(Locality)和空间不变性(Spatial Invariance)的特点,即把相邻的特征有联系而远离的没有,将相邻特征融合在一起,更会容易产生“解”;还有attention机制,也是从人的直觉、生活经验归纳的规则。
2. Vision Transformer利用的归纳偏置是有序列能力Sequentiality和时间不变性Time Invariance,即序列顺序上的时间间隔的联系,因此也能得出在更大规模数据集上比CNN类的模型有更好的性能。文章Conclusion里的“Unlike prior works using self-attention in computer vision, we do not introduce any image-specific inductive biases into the architecture”和Introduction里的“We find that large scale training trumps inductive bias”,可以得出直观上inductive bias在大量数据的情况中的产生是衰减性能,应该尽可能丢弃。
@@ -242,11 +244,11 @@ PaddleClas的模型包含6大模块的配置,分别为:全局配置,网络
学习率和优化器的配置建议优先使用默认配置,这些参数是我们已经调过的。如果任务的改动比较大,也可以做微调。
-训练和预测两个配置包含了batch_size,数据集,数据预处理(transforms),读数据进程数(num_workers)等比较重要的配置,这部分要根据实际环境适度修改。要注意的是,paddleclas中的batch_size是全局的配置,即不随卡数发生变化。而num_workers定义的是单卡的进程数,即如果num_workers是8,并且使用4卡训练,则实际有32个worker。
+训练和预测两个配置包含了batch_size,数据集,数据预处理(transforms),读数据进程数(num_workers)等比较重要的配置,这部分要根据实际环境适度修改。要注意的是,paddleclas中的batch_size是单卡配置,如果是多卡训练,则总的batch_size是配置文件中所设置的倍数,例如配置文件中设置batch_size为64,4卡训练,总batch_size也就是4*64=256。而num_workers定义的是单卡的进程数,即如果num_workers是8,并且使用4卡训练,则实际有32个worker。
### Q5.2: 如何在命令行中快速的修改配置?
**A**:
-在训练中,我们常常需要对个别配置不断进行微调,而不希望频繁的修改配置文件。这时可以使用-o来调整,修改是要先按层级写出要改的配置名称,层级之间用点分割,再写出要修改的值。例如我们想要修改batch_size,可以在训练的命令后加上-o TRAIN.batchsize=512。
+在训练中,我们常常需要对个别配置不断进行微调,而不希望频繁的修改配置文件。这时可以使用-o来调整,修改是要先按层级写出要改的配置名称,层级之间用点分割,再写出要修改的值。例如我们想要修改batch_size,可以在训练的命令后加上-o DataLoader.TRAIN.sampler.batch_size=512。
### Q5.3: 如何根据PaddleClas的精度曲线选择合适的模型?
**A**:
@@ -264,4 +266,4 @@ PaddleClas提供了多个模型的benchmark,并绘制了性能曲线,主要
### Q5.5: 使用分类模型做其他任务的预训练模型时,应该选择哪些层作为feature?
**A**:
-使用分类模型做其他任务的backbone有很多策略,这里介绍一种较为基础的方法。首先,去掉最后的全连接层,这一层主要包含的是原始任务的分类信息。如果任务比较简单,只要将前一层的输出作为featuremap,并在此基础上添加与任务对应的结构即可。如果任务涉及多尺度,需要选取不同尺度的anchor,例如某些检测模型,那么可以选取每次下采样之前一层的输出作为featuremap。
\ No newline at end of file
+使用分类模型做其他任务的backbone有很多策略,这里介绍一种较为基础的方法。首先,去掉最后的全连接层,这一层主要包含的是原始任务的分类信息。如果任务比较简单,只要将前一层的输出作为featuremap,并在此基础上添加与任务对应的结构即可。如果任务涉及多尺度,需要选取不同尺度的anchor,例如某些检测模型,那么可以选取每次下采样之前一层的输出作为featuremap。
diff --git a/docs/zh_CN/faq_series/faq_2021_s2.md b/docs/zh_CN/faq_series/faq_2021_s2.md
index be102b291d14affea34b6ff6282cc48953033436..3172b38393536bd5342f56bf277ba61f330a5ab8 100644
--- a/docs/zh_CN/faq_series/faq_2021_s2.md
+++ b/docs/zh_CN/faq_series/faq_2021_s2.md
@@ -32,11 +32,9 @@
#### Q2.1.8: 如何在训练时使用 `Mixup` 和 `Cutmix` ?
**A**:
-* `Mixup` 的使用方法请参考 [Mixup](https://github.com/PaddlePaddle/PaddleClas/blob/cf9fc9363877f919996954a63716acfb959619d0/ppcls/configs/ImageNet/DataAugment/ResNet50_Mixup.yaml#L63-L65);`Cuxmix` 请参考 [Cuxmix](https://github.com/PaddlePaddle/PaddleClas/blob/cf9fc9363877f919996954a63716acfb959619d0/ppcls/configs/ImageNet/DataAugment/ResNet50_Cutmix.yaml#L63-L65)。
+* `Mixup` 的使用方法请参考 [Mixup](../../../ppcls/configs/ImageNet/DataAugment/ResNet50_Mixup.yaml#L63-L65);`Cuxmix` 请参考 [Cuxmix](../../../ppcls/configs/ImageNet/DataAugment/ResNet50_Cutmix.yaml#L63-L65)。
-* 在使用 `Mixup` 或 `Cutmix` 时,需要注意:
- * 配置文件中的 `Loss.Tranin.CELoss` 需要修改为 `Loss.Tranin.MixCELoss`,可参考 [MixCELoss](https://github.com/PaddlePaddle/PaddleClas/blob/cf9fc9363877f919996954a63716acfb959619d0/ppcls/configs/ImageNet/DataAugment/ResNet50_Cutmix.yaml#L23-L26);
- * 使用 `Mixup` 或 `Cutmix` 做训练时无法计算训练的精度(Acc)指标,因此需要在配置文件中取消 `Metric.Train.TopkAcc` 字段,可参考 [Metric.Train.TopkAcc](https://github.com/PaddlePaddle/PaddleClas/blob/cf9fc9363877f919996954a63716acfb959619d0/ppcls/configs/ImageNet/DataAugment/ResNet50_Cutmix.yaml#L125-L128)。
+* 使用 `Mixup` 或 `Cutmix` 做训练时无法计算训练的精度(Acc)指标,因此需要在配置文件中取消 `Metric.Train.TopkAcc` 字段,可参考 [Metric.Train.TopkAcc](../../../ppcls/configs/ImageNet/DataAugment/ResNet50_Cutmix.yaml#L125-L128)。
#### Q2.1.9: 训练配置yaml文件中,字段 `Global.pretrain_model` 和 `Global.checkpoints` 分别用于配置什么呢?
**A**:
@@ -103,9 +101,6 @@ pip install paddle2onnx
#### Q1.1.1 PaddleClas和PaddleDetection区别
**A**:PaddleClas是一个兼主体检测、图像分类、图像检索于一体的图像识别repo,用于解决大部分图像识别问题,用户可以很方便的使用PaddleClas来解决小样本、多类别的图像识别问题。PaddleDetection提供了目标检测、关键点检测、多目标跟踪等能力,方便用户定位图像中的感兴趣的点和区域,被广泛应用于工业质检、遥感图像检测、无人巡检等项目。
-#### Q1.1.2 PaddleClas 2.2和PaddleClas 2.1完全兼容吗?
-**A**:PaddleClas2.2相对PaddleClas2.1新增了metric learning模块,主体检测模块、向量检索模块。另外,也提供了商品识别、车辆识别、logo识别和动漫人物识别等4个场景应用示例。用户可以基于PaddleClas 2.2快速构建图像识别系统。在图像分类模块,二者的使用方法类似,可以参考[图像分类示例](../tutorials/getting_started.md)快速迭代和评估。新增的metric learning模块,可以参考[metric learning示例](../tutorials/getting_started_retrieval.md)。另外,新版本暂时还不支持fp16、dali训练,也暂时不支持多标签训练,这块内容将在不久后支持。
-
#### Q1.1.3: Momentum 优化器中的 momentum 参数是什么意思呢?
**A**: Momentum 优化器是在 SGD 优化器的基础上引入了“动量”的概念。在 SGD 优化器中,在 `t+1` 时刻,参数 `w` 的更新可表示为:
```latex
@@ -139,7 +134,7 @@ w_t+1 = w_t - v_t+1
2. 图像裁剪类: CutOut、RandErasing、HideAndSeek、GridMask;
3. 图像混叠类:Mixup, Cutmix.
-其中,Randangment提供了多种数据增强方式的随机组合,可以满足亮度、对比度、饱和度、色调等多方面的数据增广需求
+其中,RandAngment提供了多种数据增强方式的随机组合,可以满足亮度、对比度、饱和度、色调等多方面的数据增广需求。