ResNet网络结构及Pytorch复现

ResNet结构

ResNet的网络结构有:ResNet18、ResNet34、ResNet50、ResNet101、ResNet152.其中ResNet18和ResNet34属于浅层网络,ResNet50、ResNet101、ResNet152属于深层网络。

ResNet创新点

1.超深的网络结构(突破1000层)

2.提出Residual模块

3.使用Batch Normalization加速训练

残差结构

ResNet有两种残差结构,左边这种称为BasicBlock,包含2个3*3的卷积层,用于ResNet18、ResNet34中,右边这种称为Bottleneck,包含3个卷积层,依次为1*1、3*3、1*1,用于ResNet50、ResNet101、ResNet152。

我们把残差结构称为block,每个stage都是由若干个block组成。再由若干stage组成整个网络。这里把开始时7*7的卷积层和3*3的maxpool层称为stem层,除去stem层每种ResNet都是4个stage。图中一个方括号就是一个Block,由若干个Block组成一个stage,图中conv2_x对应stage1,conv3_x对应stage2,conv4_x对应stage3,conv5_x对应stage4.

各ResNet网络都具有以下的共同点:

  • 网络一共有5个卷积组,每个卷积组都进行若干次基本的卷积操作(Conv->BN->ReLU)
  • 每个卷积组都会进行一次下采样操作,使特征图的尺寸减半。在卷积组2中使用最大池化进行下采样;在其余4个卷积组中使用卷积进行下采样。
  • 每个网络的第一个卷积组都是相同的,卷积核7*7,步长为2。
  • 第2-5卷积组均由若干残差结构组成,称为stage1-4.

下面以ResNet34和ResNet50为例介绍网络的结构。

ResNet 34

stem layer

处理流程是:卷积->BN->ReLU->池化->BN->ReLU

卷积:输入图片的尺寸为3*224*224(channel*height*width),使用64个3*7*7的卷积核进行卷积,padding=3,stride=2.输出为64*112*112。

池化:使用64个3*3,padding=1,stride=2的池化单元进行maxpooling,输出为64*56*56。

stage 1

处理流程是:(卷积->BN->ReLU)*3

stage 1由3个BasicBlock组成,每个BasicBlock由两层卷积层组成,每层64个64*3*3的卷积核,stride=1,padding=1。输出仍为64*56*56.

stage 2

处理流程是:(卷积->BN->ReLU)*4

stage 2由4个BasicBlock组成,与stage 1不同,第一个BasicBlock的卷积层1是128个64*3*3的卷积核,stride=2,padding=1;卷积层2是128个128*3*3的卷积核,stride=1,padding=1.输出128*28*28.

到第一个Block末尾处,需要在output加上residual,但输入为64*56*56,所以在输入和输出之间加一个1*1的卷积层,stride=2,使得输入和输出尺寸一致。(代码中downsample部分)

第二、三、四个BasicBlock由两层卷积层组成,每层128个128*3*3的卷积核,stride=1,padding=1。输出为128*28*28. 由于这些Block没有降低尺寸,residual和输出尺寸相同,所以没有downsample部分。

stage 3-4

stage 3-4与stage 2类似,都使通道数变多,输出尺寸变小。stage 3的输出为256*14*14,stage 4的输出为512*7*7.

了解网络的结构后,我们发现:ResNet中的下采样操作发生在每个Stage的第一个Block或最大池化层,实现方式是操作都是通过在卷积或者池化中取步长为2。

ResNet 50

stem layer

所有ResNet的stem layer均是相同的。

处理流程是:卷积->BN->ReLU->池化->BN->ReLU

卷积:输入图片的尺寸为3*224*224(channel*height*width),使用64个3*7*7的卷积核进行卷积,padding=3,stride=2.输出为64*112*112。

池化:使用3*3,padding=1,stride=2的池化单元进行maxpooling,输出为64*56*56。

stage 1

与Basicblock不同的是,每一个Bottleneck都会在输入和输出之间加上一个卷积层,加入卷积层的原因是使得输入和输出尺寸一致。只不过在stage 1中还没有downsample,这点和Basicblock是相同的。

处理流程是:(卷积->BN->ReLU)*3

stage 1由3个Bottleneck组成,每个Bottleneck由三层卷积层组成,第一层64个1*1的卷积核,stride=1,padding=0。输出为64*56*56;第二层64个64*3*3的卷积核,stride=1,padding=1,输出为64*56*56;第三层256个64*1*1的卷积核,stride=1,padding=0,输出为256*56*56.此操作重复3遍,输出为256*56*56.

stage 2

由4个Bottleneck组成,不同的是第一个Bottleneck,第一层128个1*1的卷积核,stride=1,padding=0,输出为128*56*56;第二层

### 回答1: ResNet-18是一个基于残差网络的深度卷积神经网络,它包含18个卷积层和全连接层。以下是ResNet-18的网络结构: 输入图像(224x224x3) 卷积层1(7x7卷积核,64个卷积核,步长2)+ BN + ReLU 最大池化层(3x3池化核,步长2) 残差块1(64个卷积核,2个3x3卷积层,每层都有BN和ReLU激活函数) 残差块2(128个卷积核,2个3x3卷积层,每层都有BN和ReLU激活函数) 残差块3(256个卷积核,2个3x3卷积层,每层都有BN和ReLU激活函数) 残差块4(512个卷积核,2个3x3卷积层,每层都有BN和ReLU激活函数) 全局平均池化层 全连接层(1000个神经元) Softmax输出 ResNet-18的关键在于残差块,它允许网络直接拟合残差函数,从而避免了梯度消失问题,使得网络能够更好地训练。 ### 回答2: ResNet-18是一种用于图像分类的卷积神经网络结构。它是ResNet系列网络中的一员,由深度残差网络(Residual Network)发展而来。 ResNet-18主要由多个残差模块组成。每个残差模块中包含两个卷积层和一个跳跃连接。卷积层使用3x3的卷积核进行卷积操作,并使用ReLU激活函数进行非线性变换。跳跃连接将输入直接添加到残差模块的输出,以解决深层网络中的梯度消失问题。 在ResNet-18中,首先是一个7x7的卷积层,用于图像的初步特征提取。然后是一个最大池化层,将图像尺寸缩小为原来的一半。接下来是4个残差模块的堆叠,每个模块中包含两个3x3的卷积层。在每个模块的第一个卷积层后,图像尺寸会减小,通道数会增加。模块之间的通道数和图像尺寸变化如下:64-64、64-128、128-256、256-512。 最后,全局平均池化层将特征图转换成一个向量,并通过一个全连接层映射到最终的分类结果。在全连接层之后,通常还会添加一个softmax层用于分类。 ResNet-18相对于传统的深度卷积网络具有更强的表达能力和更好的训练结果。它采用跳跃连接和残差结构可以有效地解决梯度消失问题,并使网络训练更加稳定和高效。因此,ResNet-18成为了图像分类等任务中的一种重要网络结构。 ### 回答3: ResNet18是一种深度卷积神经网络模型,它是ResNet系列模型中较为简单和轻量级的一种。ResNet18的网络结构由18个卷积层和全局平均池化层组成。 ResNet18的基本模块是残差模块,这种模块可以解决深度网络中的梯度消失和梯度爆炸问题,同时可以加速模型的训练过程。每个残差模块包括两个卷积层,一个标准化层和一个跳跃连接。跳跃连接将输入直接与输出相加,使得梯度能够更轻松地传播。 ResNet18的第一个残差模块由一个7×7的卷积层、一个最大池化层和两个基本的残差模块组成。其余的模块由若干个基本的残差模块组成。最后,全局平均池化层将特征图转换为一个固定长度的向量,并通过一个全连接层将其映射到分类数目的维度。 与其他深度网络相比,ResNet18在参数量和运算量方面都较少,因此更易于训练和部署。它可以很好地解决图像分类、目标检测和语义分割等计算机视觉任务,并在一些基准测试中表现优异。 总之,ResNet18是一种具有18个卷积层和全局平均池化层的深度卷积神经网络模型。通过引入残差模块,它可以有效地训练深度网络,并在图像分类和计算机视觉任务中取得很好的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值