ResNet变种(ResNet-B/C/D、Res2Net、ResNeXt、ResNeSt)

本文介绍了ResNet的不同变种,包括ResNet-B/C/D,Res2Net,ResNeXt及ResNeSt,详细阐述了各自的创新点和技术细节,如多尺度特征提取、分组卷积的应用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ResNet-B/C/D

在这里插入图片描述

  • ResNet-B:将残差分支的下采样移到后面的3×3卷积里,避免了信息的大量流失。因为原始1×1卷积既要降维又要降尺寸,信息流失比较严重,因此做一个解耦。
  • ResNet-C:将输入部分的7×7卷积核替换为3个3×3卷积核,显著降低参数量和计算量。
  • ResNet-D:在ResNet-B的基础上,做了一个解耦,将identity部分的下采样交给avg pool去做,避免出现1×1卷积和下采样同时出现造成信息流失。

Res2Net

  • 理解多尺度目标:目标在输入图片里面所占的尺寸是多变的,如果不满足这一要求,就不要在训练中增加多尺度训练和随即裁剪。
  • 创新点:
    ① 在更细的粒度来提取多尺度特征
    ② 用了分组卷积替换正常残差卷积,保证了参数量、计算量和原始残差块相当。
    如图所示,K2拿到了3×3的感受野特征,K3拿到了5×5的感受野特征,K4拿到了7×7的感受野特征,因此在一个卷积内部有多种感受野,因此可以捕获多尺度目标。
    在这里插入图片描述

ResNeXt

  • 普通卷积和组卷积

在这里插入图片描述
假设输入channel为4,此时对于每一个卷积核,其channel要和输入特征的channel保持一致,而输出特征channel为n,那么就需要n个卷积核来进行卷积处理。 假设每个卷积核的高和宽都是k,输入特征矩阵的channel为Cin,则对于每一个卷积核来说参数个数为K×K×Cin,则n个卷积核的参数量为K×K×Cin×n。
在这里插入图片描述
同样假设输入channel为4,但将其划分为两个组,对每一个组分别进行卷积操作,此时对于其中一个组:每一个卷积核,其channel要和输入特征的channel保持一致,则为2。假设使用n/2个卷积核,则能够得到channel为n/2的特征矩阵。最后,将输出矩阵进行concat拼接,最终得到的特征矩阵channel也是为n的。假设每个卷积核的高和宽都是k,输入特征矩阵的channel为Cin,并将其分为g组,则对于每一个卷积核来说参数个数为K×K×Cin/g,对于每一个group而言,n/h个卷积核的参数个数为K×K×Cin/g×n/g,总参数量再×g,最后化简结果如图所示。 可以看出采用组卷积后,其参数量为普通卷积的1/g
当g和输入特征的channel和输出特征的channel均相等时,则就相当于对输入特征矩阵的每一个channel都分配了一个channel为1的卷积核进行卷积,也就是MobileNet中的DW卷积。

  • 创新点:将ResNet的计算模式和Inception的计算模式进行合并。ResNet计算模式为shortcut分支,Inception的计算模式分为三步,分别是split-transform-merge,其存在问题就是手工设计痕迹太重。

在这里插入图片描述

  • 为了减少手工设计痕迹,作者粗暴的将每个分支都变成一样的。ResNet使用的是左图的block结构,ResNext使用的是右边的结构,但二者计算量相同,后者精度更高

在这里插入图片描述 在这里插入图片描述

  • 在原论文中,作者给了 如下三个图,其参数量是完全等价的:

在这里插入图片描述
b的每一层模块都和c互相等价,输入是channel为256的特征矩阵,随后经过32个分支(32个group组),每个分支都经过了1×1,卷积核个数为4的卷积层,随后经过3×3卷积后对输出做concat拼接。a和b的区别就是最后对每个group进行1×1的卷积后然后相加。

  • 下表为 ResNeXt-50的参数列表:二者原理基本类似,都是将block进行大量的堆叠。 32为Group数,4代表conv2一系列组卷积中每一个组所采用卷积核的个数,即128/32=4。二者的计算量也类似。为什么Group中要设置为32呢?原论文中作者发现随着Group的不断增加,精确度是越来越高的。注意:对于block小于3的结构而言,上述结构是没有作用的,也就是resnet-18之类的网络。在这里插入图片描述

在这里插入图片描述

ResNeSt

  • 创新点:在ResNeXt基础上加入SKNet思想
  • SKNet:SENet的一个变种,采用多分支attention结构,选择不同卷积核的重要性。

在这里插入图片描述

  • 下图是ResNeSt网络结构:Dense c’可以是全连接层也可以是卷积层。Dense c是1×1的卷积层,r-Softmax是不同分支同一通道的Softmax,最后得到注意力模块,将其与原始特征相乘。

在这里插入图片描述

# Ultralytics YOLO 🚀, AGPL-3.0 license # YOLO11 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect # Parameters nc: 80 # number of classes scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n' # [depth, width, max_channels] n: [0.50, 0.25, 1024] # summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPs s: [0.50, 0.50, 1024] # summary: 319 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPs m: [0.50, 1.00, 512] # summary: 409 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPs l: [1.00, 1.00, 512] # summary: 631 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPs x: [1.00, 1.50, 512] # summary: 631 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs fusion_mode: bifpn node_mode: CSP_MSCB head_channel: 256 # YOLO11n backbone backbone: # [from, repeats, module, args] - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4 - [-1, 2, C3k2, [256, False, 0.25]] - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8 - [-1, 2, C3k2, [512, False, 0.25]] - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16 - [-1, 2, C3k2, [512, True]] - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32 - [-1, 2, C3k2, [1024, True]] - [-1, 1, SPPF, [1024, 5]] # 9 - [-1, 2, C2PSA, [1024]] # 10 # YOLO11n head head: - [4, 1, Conv, [head_channel]] # 11-P3/8 - [6, 1, Conv, [head_channel]] # 12-P4/16 - [10, 1, Conv, [head_channel]] # 13-P5/32 - [12, 1, Conv, [head_channel, 3, 2]] # 14-P5/32 - [[-1, 13], 1, Fusion, [fusion_mode]] # 15 - [-1, 3, node_mode, [head_channel, [5,7,9]]] # 16-P5/32 - [-1, 1, EUCB, []] # 17-P4/16 - [11, 1, Conv, [head_channel, 3, 2]] # 18-P4/16 - [[-1, -2, 12], 1, Fusion, [fusion_mode]] # 19 - [-1, 3, node_mode, [head_channel, [3,5,7]]] # 20-P4/16 - [-1, 1, EUCB, []] # 21-P3/8 - [2, 1, Conv, [head_channel, 3, 2]] # 22-P3/8 - [[-1, -2, 11], 1, Fusion, [fusion_mode]] # 23 - [-1, 3, node_mode, [head_channel, [1,3,5]]] # 24-P3/8 - [[21, -1], 1, Fusion, [fusion_mode]] # 25 - [-1, 3, node_mode, [head_channel, [1,3,5]]] # 26-P3/8 - [24, 1, Conv, [head_channel, 3, 2]] # 27-P4/16 - [26, 1, Conv, [head_channel, 3, 2]] # 28-P4/16 - [[-1, -2, 20, 17], 1, Fusion, [fusion_mode]] # 29-P4/16 - [-1, 3, node_mode, [head_channel, [3,5,7]]] # 30-P4/16 - [20, 1, Conv, [head_channel, 3, 2]] # 31-P5/32 - [30, 1, Conv, [head_channel, 3, 2]] # 32-P5/32 - [[-1, -2, 16], 1, Fusion, [fusion_mode]] # 33-P5/32 - [-1, 3, node_mode, [head_channel, [5,7,9]]] # 34-P5/32 - [[26, 30, 34], 1, Detect, [nc]] # Detect(P3, P4, P5) 画一下结构图
06-06
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刚哥吧

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值