深度学习模型(yolo)中的后端权重是什么?

问题描述 投票:0回答:1

深度学习的新手,但是似乎找不到/弄清楚后端权重是什么,例如

full_yolo_backend.h5
squeezenet_backend.h5

根据我的发现和试验,这些后端权重具有根本不同的模型架构,例如

  • yolov2模型有40层以上,但后端只有20层以上(?)
  • 您可以使用自己的网络在后端模型之上构建(?)
  • 使用后端模型往往产生较差的结果(?)

我希望出于学习目的,对后端权重与实际模型进行一些解释。非常感谢!

deep-learning object-detection yolo pre-trained-model
1个回答
0
投票
我注意到您使用的是哪种实现,但是在许多应用程序中,您可以将深度模型视为特征提取器,其输出或多或少与任务无关,其后是许多特定于任务的负责人。

后端的选择取决于您在精度和计算复杂度之间权衡方面的特定限制。后端的经典但耗时的选择的示例是resnet-101,resnet-50或VGG,它们可以与FPN(功能金字塔网络)耦合以产生多尺度功能。但是,如果您最关心速度,则可以使用较小的后端,例如不同的MobileNet架构,甚至可以使用原始网络,例如原始Yolov1 / v2论文中使用的原始网络(tinyYolo是极端情况)。

一旦选择了后端(可以使用经过预训练的后端),就可以加载其权重(这就是* h5文件)。最重要的是,您将添加一个小头来执行所需的任务:这可以是分类,bbox回归或类似MaskRCNN的地面/背景分割。对于Yolov2,您可以仅添加很少的卷积层,例如3个卷积层(当然具有非线性),它们将输出大小为张量的张量

BxC1xC2xAxP #B==batch size #C1==number vertical of cells #C2==number of horizontal cells #C3==number of anchors #C4==number of parameters (i.e. bbx parameters, class prediction, confidence)

然后,您可以分别保存/加载此头部的重量。但是,如果您对结果感到满意,则联合培训(端到端)通常会在准确性方面有所提高。

最后,回到最后一个问题,我认为后端的效果很差,因为您仅加载后端的权重,而不加载头部的权重。另一种可能性是您正在使用经过后端X训练的头部,但是您正在将后端切换为Y。在这种情况下,由于头部期望具有不同的功能,因此自然会看到性能下降。

© www.soinside.com 2019 - 2024. All rights reserved.