主干网络backbone讲解—— Conv4与Resnet12

文章介绍了两种卷积神经网络结构:Conv-64F和Resnet12。Conv-64F由4个重复的卷积块组成,每个块包含卷积、BatchNorm和ReLU,最后可能有全局最大池化层。Resnet12则包含4个残差块,每个块有3个卷积层,利用残差学习解决梯度消失问题,同时应用DropBlock防止过拟合。这两种网络常用于图像分类和目标识别任务。

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

1 Conv4

在一些论文中,也称为Conv-64F。其中“64F”表示网络中使用了64个滤波器(filters)

它包含 4 个重复的卷积块,在每个块中包含:

  • 一个 kernel=3,stride=1,padding=1的卷积层;
  • 一个 BatchNorm层;
  • 一个 ReLU ;
  • 一个大小为 2 的最大池化层。

输入图像的大小调整为 3 × 84 × 84 ,经过第一个卷积块后channel从3变成64。

有些论文还会在最后添加一个大小为5的全局最大池化层以降低嵌入的维数,大大减少后期转换的计算负担。

四个卷积块如图所示:
在这里插入图片描述

四个卷积块是相同的,图像shape的变化过程

  1. 图像经过第一个卷积块之后,3 × 84 × 84变成64 × 42 × 42(2 × 2最大池化);

  2. 经过第二个卷积块之后,变成64 × 21 × 21;

  3. 第三个卷积块输出64 × 10 × 10;

  4. 第四个卷积块输出64 × 5 × 5。

    图像经过CNN后,输出的是局部特征,一共有 5 × 5=25个局部描述符。如果想要得到全局特征,需要经过5 × 5的最大池化后则输出64 × 1 × 1,再按照channel展平为1维得到,或者通过全局平均池化再按照channel方向展平。

第一个卷积块如下如图所示:
在这里插入图片描述

在最后的卷积层之后,Conv-64F还包括一个全连接层,用于将特征图转换为分类输出。全连接层的输出经过softmax函数激活,得到最终的分类结果。

总体来说,Conv-64F主干网络是一个相对简单的卷积神经网络结构,但在许多图像分类和目标识别任务中已经表现出良好的性能。

Resnet12

Resnet12包含4个残差块,每个残差块有3个卷积层。“12”表示一共有12个卷积层;
一个残差块包含,如图(a):

  • kernel=3, stride=1, padding=1的卷积层+ Batchnorm层+ leakyReLU层;
  • kernel=3, stride=1, padding=1的卷积层+ Batchnorm层+ leakyReLU层;
  • kernel=3, stride=1, padding=1的卷积层+Batchnorm层;
  • 下采样层包含kernel=1, stride=1, padding=0的卷积层+ Batchnorm层;
  • 最后再经过leakyReLU层,2 × 2的最大池化层,以及使用DropBlock防止过拟合。

在这里插入图片描述

图像shape的变化过程

  1. 图像经过第一个残差块之后,3 × 84 × 84变成64 × 42 × 42(2 × 2最大池化);
  2. 经过第二个残差块之后,变成160 × 21 × 21;
  3. 第三个残差块输出320 × 10 × 10;
  4. 第四个残差块输出640 × 5 × 5。
  5. 经过5 × 5的平均池化后输出640 × 1 × 1,使用DropBlock防止过拟合,再按照channel展平为640维。

ResNet12被广泛应用于图像分类、目标检测和语义分割等任务中,其具有优秀的性能和较低的计算复杂度,即可以有效地解决深度神经网络中的梯度消失和梯度爆炸问题,并且可以在保持较小计算量的同时实现高精度的分类。

<think>好的,我需要帮助用户了解ResNet主干网络的结构和特点。首先,用户引用了几个相关的资料,特别是引用[2]提到了Res2Net,它是在ResNet基础上改进的。因此,我需要先回顾ResNet的基本结构,再结合用户提供的资料来补充相关信息。 首先,ResNet的核心创新是残差学习,通过跳跃连接解决深度网络中的梯度消失问题。ResNet有不同的层数版本,如ResNet-18、34、50、101、152。不同层数的结构有所不同,尤其是50层及以上的使用了Bottleneck结构,即1x1卷积层减少计算量,接着3x3卷积,再用1x1恢复通道数。 然后,用户提供的引用[2]提到Res2Net是在ResNet块内构造分层的类残差连接,增强多尺度特征表示。这可能意味着Res2Net对ResNet的残差块进行了改进,但ResNet本身的结构特点还是基础。需要将ResNet的基本结构和Res2Net的改进区分开来,同时指出ResNet在多尺度特征上的处理方式,可能传统ResNet是分层方式,而Res2Net更细粒度。 另外,引用[4]提到深度卷积神经网络能够自动学习层次化特征,ResNet作为其中的代表,具备这样的特性。需要强调ResNet的层次化特征和残差连接带来的好处,比如缓解梯度消失、支持更深的网络、提升特征复用等。 可能需要注意用户提到的ResNet主干网络结构,即backbone,通常指的是去掉全连接层后的卷积部分,用于特征提取。ResNet作为backbone在目标检测等任务中被广泛应用,如Faster R-CNN等。 需要确保回答结构清晰,分点说明结构和特点,结合用户提供的引用资料中的相关信息,比如多尺度特征、残差块的设计、性能优势等。同时,生成的相关问题需要ResNet相关,可能涉及变体如Res2Net、应用场景、其他网络的比较等。 最后,检查是否符合格式要求:行内数学公式用$...$,独立公式用$$...$$,正确引用标注,使用中文,生成相关问题。</think>### ResNet主干网络的结构特点 #### 1. 核心结构:残差学习 ResNet(残差神经网络)的核心创新在于**残差块(Residual Block)**设计。其基本单元为: $$ \mathbf{y} = \mathcal{F}(\mathbf{x}, \{W_i\}) + \mathbf{x} $$ 其中$\mathbf{x}$是输入,$\mathcal{F}$是残差函数,$W_i$为权重参数。通过跳跃连接(Shortcut Connection)将输入直接传递到输出端,使网络能够学习输入输出的差异(即残差),有效缓解梯度消失问题[^4]。 #### 2. 典型网络架构 ResNet根据深度分为多个版本(如18/34/50/101/152层): - **浅层结构(ResNet-18/34)**:使用基础残差块,包含两个$3\times3$卷积层。 - **深层结构(ResNet-50/101/152)**:引入**Bottleneck结构**(图1),由1×1卷积(降维)、3×3卷积(特征提取)、1×1卷积(升维)组成,减少计算量。 ![ResNet结构示意图](假设此处插入结构图) #### 3. 主要特点 1. **梯度传播优化**:跳跃连接允许梯度直接回传至浅层,支持训练极深网络(如152层)。 2. **多尺度特征提取**:通过分层下采样(步长2的卷积或池化),逐步扩大感受野并抽象不同尺度的特征[^2]。 3. **计算效率**:Bottleneck结构在深层网络中平衡性能计算成本。 4. **特征复用性**:残差连接保留原始信息,增强特征复用能力。 #### 4. 性能优势 - 在ImageNet分类任务中,ResNet-152的Top-5错误率低至3.57%。 - 作为主干网络Backbone),广泛用于目标检测(如Faster R-CNN)、语义分割等任务,因其层次化特征适合多尺度目标表示。 #### 5. 改进变体 - **Res2Net**:在残差块内构造分层连接,增强多尺度特征粒度。 - **ResNeXt**:引入分组卷积,提升特征多样性。 ```python # 残差块示例(PyTorch风格) class ResidualBlock(nn.Module): def __init__(self, in_channels, out_channels, stride=1): super().__init__() self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1) self.bn1 = nn.BatchNorm2d(out_channels) self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1) self.bn2 = nn.BatchNorm2d(out_channels) self.shortcut = nn.Sequential() if in_channels == out_channels else \ nn.Conv2d(in_channels, out_channels, kernel_size=1, stride=stride) def forward(self, x): out = F.relu(self.bn1(self.conv1(x))) out = self.bn2(self.conv2(out)) out += self.shortcut(x) return F.relu(out) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值