未验证 提交 baf8431a 编写于 作者: L littletomatodonkey 提交者: GitHub

add faq20201119 (#409)

* add faq20201119
上级 e7ade6cd
......@@ -7,9 +7,8 @@
飞桨图像分类套件PaddleClas是飞桨为工业界和学术界所准备的一个图像分类任务的工具集,助力使用者训练出更好的视觉模型和应用落地。
**近期更新**
- 2020.11.11 添加图像分类[常见问题2020第一季第二](./docs/zh_CN/faq_series/faq_2020_s1.md) 5个新问题,并且计划以后每周会更新,欢迎大家持续关注。
- 2020.11.18 添加图像分类[常见问题2020第一季第三](./docs/zh_CN/faq_series/faq_2020_s1.md) 5个新问题,并且计划以后每周会更新,欢迎大家持续关注。
- 2020.11.09 添加`InceptionV3 `结构和模型,在ImageNet-1k上Top-1 Acc可达79.14%。
- 2020.11.04 添加图像分类[常见问题2020第一季第一期](./docs/zh_CN/faq_series/faq_2020_s1.md) 7个新问题,并且计划以后每周会更新,欢迎大家持续关注。
- 2020.10.12 添加Paddle-Lite demo。
- 2020.10.10 添加cpp inference demo,完善`FAQ 30问`教程。
- 2020.09.17 添加 `HRNet_W48_C_ssld `模型,在ImageNet-1k上Top-1 Acc可达83.62%;添加 `ResNet34_vd_ssld `模型,在ImageNet-1k上Top-1 Acc可达79.72%。
......@@ -88,7 +87,7 @@
- [10万类图像分类预训练模型](./docs/zh_CN/application/transfer_learning.md)
- [通用目标检测](./docs/zh_CN/application/object_detection.md)
- FAQ
- [图像分类2020第一季精选问题(近期更新2020.11.04)](./docs/zh_CN/faq_series/faq_2020_s1.md)
- [图像分类2020第一季精选问题(近期更新2020.11.18)](./docs/zh_CN/faq_series/faq_2020_s1.md)
- [图像分类通用30个问题](./docs/zh_CN/faq.md)
- [PaddleClas实战15个问题](./docs/zh_CN/faq.md)
- [赛事支持](./docs/zh_CN/competition_support.md)
......
......@@ -4,6 +4,7 @@
## 目录
* [第1期](#第1期)(2020.11.03)
* [第2期](#第2期)(2020.11.11)
* [第3期](#第3期)(2020.11.18)
<a name="第1期"></a>
## 第1期
......@@ -100,3 +101,43 @@ ResNet系列模型中,相比于其他模型,ResNet_vd模型在预测速度
**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蒸馏策略](https://github.com/PaddlePaddle/PaddleClas/blob/master/docs/zh_CN/advanced_tutorials/distillation/distillation.md)部分介绍了知识蒸馏对于分类任务迁移的收益。
<a name="第3期"></a>
## 第3期
### Q3.1: DenseNet模型相比于ResNet有什么改进呢?有哪些特点或者应用场景呢?
**A**: DenseNet相比于ResNet,设计了一个更激进的密集连接机制,通过考虑特征重用和旁路的设置,进一步减少了参数量,而且从一定程度上缓解了梯度弥散的问题,因为引入了更加密集的连接,因此模型更容易训练,而且具有一定的正则化效果。在数据量不是很多的图像分类场景中,DenseNet是一个不错的选择。更多关于DenseNet的介绍与系列模型可以参考[DenseNet模型文档](../models/DPN_DenseNet.md)
### Q3.2: DPN网络相比于DenseNet有哪些改进呢?
**A**:DPN的全称是Dual Path Networks,即双通道网络。该网络是由DenseNet和ResNeXt结合的一个网络,其证明了DenseNet能从靠前的层级中提取到新的特征,而ResNeXt本质上是对之前层级中已提取特征的复用。作者进一步分析发现,ResNeXt对特征有高复用率,但冗余度低,DenseNet能创造新特征,但冗余度高。结合二者结构的优势,作者设计了DPN网络。最终DPN网络在同样FLOPS和参数量下,取得了比ResNeXt与DenseNet更好的结果。更多关于DPN的介绍与系列模型可以参考[DPN模型文档](../models/DPN_DenseNet.md)
### Q3.3: 怎么使用多个模型进行预测融合呢?
**A** 使用多个模型进行预测的时候,建议首先将预训练模型导出为inference模型,这样可以摆脱对网络结构定义的依赖,可以参考[模型导出脚本](../../../tools/export_model.py)进行模型导出,之后再参考[inference模型预测脚本](../../../tools/infer/predict.py)进行预测即可,在这里需要根据自己使用模型的数量创建多个predictor。
### Q3.4: PaddleClas中怎么增加自己的数据增广方法呢?
**A**
* 对于单张图像的增广,可以参考[基于单张图片的数据增广脚本](../../../ppcls/data/imaug/operators.py),参考`ResizeImage`或者`CropImage`等数据算子的写法,创建一个新的类,然后在`__call__`中,实现对应的增广方法即可。
* 对于一个batch图像的增广,可以参考[基于batch数据的数据增广脚本](../../../ppcls/data/imaug/batch_operators.py),参考`MixupOperator`或者`CutmixOperator`等数据算子的写法,创建一个新的类,然后在`__call__`中,实现对应的增广方法即可。
## Q3.5: 怎么进一步加速模型训练过程呢?
**A**
* 可以使用自动混合精度进行训练,这在精度几乎无损的情况下,可以有比较明显的速度收益,以ResNet50为例,PaddleClas中使用自动混合精度训练的配置文件可以参考:[ResNet50_fp16.yml](../../../configs/ResNet/ResNet50_fp16.yml),主要就是需要在标准的配置文件中添加以下几行
```
use_fp16: True
amp_scale_loss: 128.0
use_dynamic_loss_scaling: 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)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册