neural-network - 深度学习中的基础网络和检测网络有什么区别?
问题描述
我最近开始研究对象检测算法。我通常会遇到具有 LeNet 或 PVA-Net 等基础网络的模型,然后是用于检测的不同架构或模型。但我从来不明白这些基础网络和检测网络如何帮助以及如何选择特定模型作为基础或检测网络?
解决方案
假设您正在构建对象检测模型。
CNN 对象检测模型(为简单起见,我们选择 SSD)可能由一个用作特征提取的基础网络组成,而检测模块获取输入特征(从基础网络中提取)以生成包含对象类的输出,以及检测到的对象的坐标(包括预测框的中心(x,y)、高度(h)和宽度(w))。
对于基础网络,我们通常采用已经在大型数据集上训练过的预训练网络,例如ResNet
,VGG
等,ImageNet
希望基础网络能够为检测层产生一组好的特征(或者至少我们没有在训练过程中需要对基础网络的参数进行大量调整,这有助于模型很快收敛)。
对于检测模块,这取决于您要使用哪种方法,例如,单阶段方法(SSD、RetinaNet、YOLO 等)或两阶段方法(Faster R-CNN、Masked R-CNN、 ETC)。在这些方法之间需要权衡准确性和速度,这是您应该选择哪个检测模块的重要指标。
推荐阅读
- linux - 无法将 arm64 内核构建到 halium
- asp.net-mvc - 如何从受保护的视频 URL 播放 HTML 视频
- google-api - 面对 HttpRequest setResponseReturnRawInputStream 的 NoSuchMethodError
- sql - 加入子查询不工作“别名问题”-Postgres
- python - 熊猫无法在一夜之间打开 csv 文件
- r - 如何将行名设置为数据框列表中的列?
- jquery - 即使在滚动时也使元素跟随光标位置
- python - python列表仅在使用列表理解完全匹配时才替换
- javascript - 在哪里/如何进行单元测试和 xstate 保护功能?
- linux - QEMU 自动退出