很新的深入学习,但似乎找不到/找出什么是后端权重,如
full_yolo_backend.h5squeezenet_backend.h5根据我的发现和实验,这些后端权重具有根本不同的模型体系结构,例如
。
为了学习的目的,我希望能找到一些关于后端权重和实际模型的解释。非常感谢!
发布于 2020-01-06 08:58:53
我确信您使用的是哪种实现,但在许多应用程序中,您可以将深度模型视为一个特性提取器,其输出或多或少与任务无关,然后是一些特定于任务的头。
后端的选择取决于您在精确性和计算复杂性之间的权衡方面的特定约束。典型但耗时的后端选择是resnet-101、resnet-50或VGG,它们可以与FPN (特征金字塔网络)耦合以产生多尺度特征。但是,如果您主要关心的是速度,那么您可以使用较小的后端,例如不同的MobileNet体系结构,甚至是类似于Yolov1 1/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。在这种情况下,由于head期望有不同的特性,因此很自然地会看到性能下降。
https://stackoverflow.com/questions/59606194
复制相似问题