Backbone之ResNeXt介绍

Res2Net

论文地址:https://arxiv.org/pdf/1512.03385.pdf

resnext在各大检测/分割任务中可以说是常客了,Faster Rcnn/cascade rcnn+xt101+FPN+DCN这一整套可以说是检测分割任务做baseline最好的选择之一了,基本上都不会让人失望,作为特征提取网络的核心,backbone的性能直接决定了检测或者分割网络的精度,下面就是对resnext的介绍:

早在AlexNet时代,为了解决显存不够大的问题,提出了分组卷积的概念,通过相同网络拓扑结构进行一个堆叠来控制参数,resnext更简单直接,对原来resnet的1x1->3x3->1x1结构动刀,减少了单一分支3x3卷积核个数,同时采用多通道的形式将3x3卷积变的更加细粒度,如下图所示

在这里插入图片描述

这张图可以说就是整个resnext的核心思想,相比resnet增加了一个新参数cardinality,其实就是分组的个数

对于Inception结构,虽然也是多路卷积,但是人工的构造太深了,Inception的本质其实也是split-transform-merge,输入通过split将channel分成多路,每一路做卷积特征转换,最后融合所有结果,

在这里插入图片描述

如上图所示,Inception过于复杂,同时人工设计的痕迹太重,其实split-transform-merge模式在fc层就得到了应用

在这里插入图片描述

对输入的x1,x2等元素,一对一进行权重加权计算,然后merge求和,最后经过激活层。

所以一个神经网络的通用单元其实就可以如以下所示:

在这里插入图片描述

上面的C其实就是resnext的超参cardinality

考虑到ResNet的残差映射,改写上面公式:

在这里插入图片描述

在pytroch中,普通的卷积api Conv2d其实就已经把组卷积放进去了:
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

当groups=1时就是

普通卷积,当groups不等于1时就是对输入channel进行分组,这个时候输出的维度out_channel就必须是in_channel 的整数倍

在这里插入图片描述
在这里插入图片描述
两种网络结构对比,可以很明显的看出来resnext的参数基本上没有增加,可以说相比resnet有一个硬提升。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值