ResNet网络模型的详细过程解析

ResNet网络模型的详细过程解析

在这里插入图片描述
以ResNet50为例,详细解析网络的连接过程:(可以参考着本博客最后一张图进行理解)
224x224x3的图片作为输入,经过7x7的卷积核,进行步长为2的卷积,得到大小112x112通道数为64的卷积层。然后经标准化BN和激活函数Relu。
然后经过3x3的最大池化层进行步长为2的池化。得到大小为56x56,通道数64保持不变的输出结果,记为stage0_1。然后对stage0_1进行1x1步长为1的卷积,得到通道数为64的卷积层,然后BN标准化,再Relu,得到输出结果,再对结果进行3x3的卷积核步长为1进行卷积,得到通道数为64大小不变的卷积层,然后BN,再Relu,对得到的结果,再经过1x1的卷积核步长为1进行卷积,得到通道数为256的卷积层,再进行BN,这时得到的结果记为stage1_1_1,这时把得到的结果stage1_1_1与之前得到的结果stage0_1进行融合。由于stage0_1的通道数为64,大小size不变,依然为64x64,所以对其进行升维,经过1x1升维到256维度,因为stage1_1_1是BN后的结果,所以升维到256后的结果也要进行BN,才可以与stage1_1_1进行融合。

在这里插入图片描述
再对融合之后的结果进行Relu,得到的结果记作stage1_1_2,然后对stage1_1_2经过1x1的卷积,把256通道数的特征层进行降维到64通道,然后使用3x3卷积核,经过BN和Relu,然后使用1x1卷积核,得到56x56大小,通道数为256的卷积层,然后再BN,得到结果stage1_2_1,然后把之前得到的结果stage1_1_2与stage1_2_1进行融合,因为b和c在size和channel上一致,所以直接进行融合即可,然后对得到的融合结果再进行Relu。同理,与stage1的第三个bottelneck进行同样的操作,得到融合后的结果,size为56x56,channel为256。然后再对融合后的结果进行Relu,得到stage1_3_2。
在这里插入图片描述
Relu之后的结果进入Stage2,先进行1x1卷积操作,步长为2,进行size的缩小,缩小为28x28,channel也由256降到128,再进行BN和Relu。对得到的结果进行3x3卷积操作,步长为1,再进行BN和Relu,再进行1x1的卷积操作,再进行BN,这时得到结果stage2_1_1,这时把stage1_3_2和stage2_1_1进行融合,但是由于两者的size和channel不同,所以需要对stage1_3_2进行升维(1x1卷积核进行升维)和下采样,升维到512,下采样到28x28,再进行BN,把得到的升维和下采样的结果与stage2_1_1进行融合,融合之后在进行Rule,得到的结果记作stage2_1_2。然后把stage2_1_2进行3x3的卷积操作,再进行BN和Relu,得到的结果进行1x1的卷积操作,再BN得到的结果为stage2_2_1,与之前得到的stage2_1_2进行融合,由于两者在size和channel上保持一致,所以直接进行融合即可……按照以上情况完成stage2。
在这里插入图片描述
接下来的stage3,stage4都是一样的原理,是stage4最后输出的结果大小为7x7,通道数为2048。
然后对该结果进行7x7的一个全局平均池化,得到1x1x2048的一个向量特征,然后与1000个神经元做全连接,对输出的1000个值进行softmax。

可以参考以下几张图进行理解:
在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,关于你的问题,我可以向你详细解析 PyTorch 自带的 ResNet18 模型结构。 ResNet 指的是深度残差网络,也是目前图像分类等领域最为流行的深度学习模型之一。ResNet18 模型结构相对简单,总共包含 18 个层,其中包括 1 个卷积层、4 个阶段(Stage),每个阶段包含多个残差块(Residual Block),以及最后的全局平均池化层和全连接层。 具体来说,ResNet18 的结构如下: 1. 输入层 ResNet18 的输入为 $224 \times 224$ 大小的图片,通道数为 3,即 RGB 彩色图片。 2. 卷积层 第一层为卷积层,使用 $7 \times 7$ 的卷积核进行卷积操作,步长为 2,padding 为 3,输出特征图的大小为 $112 \times 112$,通道数为 64。 3. 阶段 1 第一个阶段包含 2 个残差块,每个残差块包含 2 个 $3 \times 3$ 的卷积层和一个跨层连接(Shortcut Connection),输出特征图大小不变,通道数为 64。 4. 阶段 2 第二个阶段包含 2 个残差块,每个残差块包含 2 个 $3 \times 3$ 的卷积层和一个跨层连接,输出特征图大小为 $56 \times 56$,通道数为 128。 5. 阶段 3 第三个阶段包含 2 个残差块,每个残差块包含 2 个 $3 \times 3$ 的卷积层和一个跨层连接,输出特征图大小为 $28 \times 28$,通道数为 256。 6. 阶段 4 第四个阶段包含 2 个残差块,每个残差块包含 2 个 $3 \times 3$ 的卷积层和一个跨层连接,输出特征图大小为 $14 \times 14$,通道数为 512。 7. 全局平均池化层 最后一个阶段后经过全局平均池化层,输出大小为 1,通道数为 512。 8. 全连接层 最后通过全连接层,将输出映射到目标分类的数量上,一般为 1000 类。 以上就是 PyTorch 自带的 ResNet18 模型结构的详细解析。希望能够解决你的问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值