PaddleClas:ResNet_vd结构

 1:ResNet的不同结构

va结构:

ResNet最早提出时的结构,在降采样残差模块这个部分,在左边的特征变换通路中(Path A),第一个1x1卷积部分就行了降采样,从而导致信息丢失(卷积的kernel size为1,stride为2,输入特征图中 有部分特征没有参与卷积的计算);

在vb结构:

把降采样的步骤从最开始的第一个1x1卷积调整到中间的3x3卷积中,从而避免了信息丢失的问题,PaddleClas中的ResNet模型默认就是ResNet_vb;

vc结构:

则是将最开始这个7x7的卷积变成3个3x3的卷积,在感受野不变的情况下,计算量和存储大小几乎不变,而且实验证明精度相对于vb结构有所提升;

vd结构:

是修改了降采样残差模块右边的特征通路(Path B)。把降采样的过程由平均池化这个操作去替代了,这一系列的改进(va->vd),几乎没有带来新增的预测耗时,结合适当的训练策略,比如说标签平滑以及mixup数据增广,精度可以提升高达2.7%。

2:ResNet中的BasicBlock与bottleneck

ResNet的网络结构

ResNet系列中有两种不同的block,分别是basic-block和bottleneck-block,堆叠较多这样的block组成了ResNet网络。

  • basic-block是带有shortcut的两个3x3的卷积核的堆叠,左图
  • bottleneck-block是带有shortcut的1x1卷积核、3x3卷积核、1x1卷积核的堆叠,右图
  • basic-block中有两层,bottleneck-block有三层

                basic block                                                              bottleneck block

左边是BasicBlock:ResNet18和ResNet34就由其堆叠。

右边是BottleNeck:ResNet50、ResNet101、ResNet152就由其堆叠。

下面以ResNet18为例,分析网络结构的构建。

根据上面表格中的表述,可以将整个网络的主体部分分为4块,conv2_x,conv3_x,conv4_x,conv5_x,在所有的结构中conv2_x这一部分都没有对的大小做改变feature map。而conv3_x,conv4_x,conv5_x则都将对feature map缩小两倍。

ResNet18:

在conv2_x中共有2个basicBlock,此部分的feature map输入(conv1的输出)channel为64,输出也是64,输入和输出的channel相同,且feature size也相同,因此可以直接相加,所以就不需要在shortcut中添加那个1*1的卷积了。

在conv3_x中也有2个basicBlock,此部分的输入channel是64,而输出channel是128,因此不匹配。而且,在这个模块中将feature size缩小了两倍,所以在conv3_x中的第一个basicBlock中,使用了stride=2,此时feature map的size也已经缩小了,所以需要在shortcut中添加1*1卷积,并且stride=2,让输入和输出具有相同的形状,从而可以相加。 在conv3_x的第二个block则不要shortcut中的1*1卷积,也没有出现stride=2的情况,因为这个block的输入和输出形状相同。

conv4_x、conv5_x和conv3_x的情况一模一样了。所以不做具体分析了。

总结:
ResNet中的每个conv模块(conv2_x,conv3_x,conv4_x,conv5_x)中,如果当前模块的输入channel以及feature map size与输出的不一样,那么会在当前模块的第一个block(basicBlock或bottleNeck)中使用stride=2将feature map size缩小,并且在shortcut中添加一个1*1的卷积,用来将输入channel和输出channel进行匹配。当前模块的所有非第一个block,都是采用正常的结构(stride=1, 并且shortcut中没有1*1卷积)

参考:

1:ResNet结构分析 - 知乎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微风❤水墨

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值