PP-YOLO详解(1)-- backbone
大家好,本次教程将带领大家开启PP-YOLO学习。通过前面一系列学习,相信大家已经掌握了图像分类任务的基本概念以及相关实践,下面将带大家实战目标检测任务中经典的YOLO系列算法:PP-YOLO。
本次将对使用的backbone网络:ResNet50-vd-dcn,进行讲解。
1 ResNet_D
Resnet_vd最早是在Bag of Tricks for Image Classification with Convolutional Neural Networks,这篇文章中提出了很多非常实用的训练技巧,我会在后面专门出一期教程对这些技巧进行详细讲解。
对于ResNet网络来说,最核心的部分即跳跃连接结构,其分为两种BasicBlock、BottleneckBlock,
,
在这里,我们只关心BottleneckBlock这个结构,在论文中,对该结构做了如下改进:
需要注意的是每个结构中输入和输出的连接方式,在resnet_c中,改进的地方为模型开始的7 * 7卷积层,使用了连续的3 * 3 卷积层进行了替代。在论文中主要针对BottleneckBlock进行了改进。原始的BottleneckBlock如下所示:
1.1 代码讲解
代码来源于paddle2.0rc官方API文档源码,传送门,通过阅读源码,发现这里直接实现了resnet_vb结构,即下采样放在了第二个卷积(3 * 3)上,没有放在第一个卷积(1 * 1)上。并且paddleclas中,对resnet的定义也是使用了