From 2e6b774ac9794e8cada32b6fbb907cad1451c19d Mon Sep 17 00:00:00 2001 From: cuicheng01 <45199522+cuicheng01@users.noreply.github.com> Date: Thu, 14 Jan 2021 11:21:35 +0800 Subject: [PATCH] Update faq_2021_s1.md (#556) * Update faq_2021_s1.md * Update faq_2021_s1.md * Update faq_2021_s1.md * Update faq_2021_s1.md * Update faq_2021_s1.md --- docs/zh_CN/faq_series/faq_2021_s1.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/zh_CN/faq_series/faq_2021_s1.md b/docs/zh_CN/faq_series/faq_2021_s1.md index f0aa9cbe..730bae8a 100644 --- a/docs/zh_CN/faq_series/faq_2021_s1.md +++ b/docs/zh_CN/faq_series/faq_2021_s1.md @@ -3,6 +3,7 @@ ## 目录 * [第1期](#第1期)(2021.01.05) +* [第2期](#第2期)(2021.01.14) ## 第1期 @@ -47,3 +48,26 @@ 4. 可以将图像预处理的逻辑(主要设计resize、crop、normalize等)放在GPU上运行,这可以进一步加速预测过程。 更多的预测部署加速技巧,也欢迎大家补充。 + + +## 第2期 + +### Q2.1: PaddleClas在设置标签的时候必须从0开始吗?class_num必须等于数据集的类别数吗? + +**A**:在PaddleClas中,标签默认是从0开始,所以,尽量从0开始设置标签,当然,从其他值开始设置也可以,这样会导致设置的class_num增大,进而导致分类的FC层参数量较大,权重文件会占用更多的存储空间。在数据集类别连续的情况下,设置的class_num要等于数据集类别数(当然大于数据集类别数也可以,在很多数据集上甚至可以获得更高的精度,但同样会使FC层参数量较大),在数据集类别数不连续的情况下,设置的class_num要等于数据集中最大的class_id+1。 + +### Q2.2: 当类别数特别多的时候,最后的FC特别大,导致权重文件占用较大的存储空间,该怎么解决? + +**A**:最终的FC的权重是一个大的矩阵,大小为C*class_num,其中C为FC前一层的神经单元个数,如ResNet50中的C为2048,可以通过降低C的值来进一步减小FC权重的大小,比如,可以在GAP之后加一层维数较小的FC层,这样可以大大缩小最终分类层的权重大小。 + +### Q2.3: 为什么使用PaddleClas在自定义的数据集上训练ssld蒸馏没有达到预期? + +首先,需要确保Teacher模型的精度是否存在问题,其次,需要确保Student模型是否成功加载了ImageNet-1k的预训练权重以及Teacher模型是否成功加载了训练自定义数据集的权重,最后,要确保初次学习率不应太大,至少保证初始学习率不要超过训练ImageNet-1k的值。 + +### Q2.4: 移动端或嵌入式端上哪些网络具有优势? + +建议使用移动端系列的网络,网络详情可以参考[移动端系列网络结构介绍](../models/Mobile.md)。如果任务的速度更重要,可以考虑MobileNetV3系列,如果模型大小更重要,可以根据移动端系列网络结构介绍中的StorageSize-Accuracy来确定具体的结构。 + +### Q2.5: 既然移动端网络非常快,为什么还要使用诸如ResNet这样参数量和计算量较大的网络? + +不同的网络结构在不同的设备上运行速度优势不同。在移动端上的cpu上,移动端系列的网络比服务器端的网络运行速度更快,但是在服务器端侧,相同精度下,ResNet等经过特定优化后的网络具有更大的优势,所以需要根据具体情况来选择具体的网络结构。 -- GitLab