ResNet

ResNet

ResNet结构

在这里插入图片描述
不论是多少层的ResNet网络,它们都有以下共同点:

  • 网络一共包含5个卷积组,每个卷积组中包含1个或多个基本的卷积计算过程(Conv-> BN->ReLU)
  • 每个卷积组中包含1次下采样操作,使特征图大小减半,下采样通过以下两种方式实现:
    1. 最大池化,步长取2,只用于第2个卷积组(Conv2_x)
    2. 卷积,步长取2,用于除第2个卷积组之外的4个卷积组
  • 第1个卷积组只包含1次卷积计算操作,5种典型ResNet结构的第1个卷积组完全相同,卷积核均为7x7, 步长均为2
  • 第2-5个卷积组都包含多个相同的残差单元,在很多代码实现上,通常把第2-5个卷积组分别叫做Stage1、Stage2、Stage3、Stage4
  • 首先是第一层卷积使用kernel 7∗7,步长为2,padding为3。之后进行BN,ReLU和maxpool。这些构成了第一部分卷积模块conv1。
  • 然后是四个stage,有些代码中用make_layer()来生成stage,每个stage中有多个模块,每个模块叫做building block,resnet18= [2,2,2,2],就有8个building block。注意到他有两种模块BasicBlockBottleneckresnet18和resnet34用的是BasicBlock,resnet50及以上用的是Bottleneck。无论BasicBlock还是Bottleneck模块,都用到了**残差连接(shortcut connection)**方式:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ResNet中, 使用了如上2种‘shortcut’。

下面分别选取一个浅层网络ResNet18及深层网络ResNet50 来详细解析一下网络结构以及数据流。

ResNet18

ResNet18的18层代表的是带有权重的18层,包括卷积层和全连接层,不包括池化层和BN层。

layer1

ResNet18 ,使用的是 BasicBlock。layer1,特点是没有进行降采样,卷积层的 stride = 1,不会降采样。在进行 shortcut 连接时,也没有经过 downsample 层。

在这里插入图片描述
layer2,layer3,layer4
而 layer2,layer3,layer4 的结构图如下,每个 layer 包含 2 个 BasicBlock,但是第 1 个 BasicBlock 的第 1 个卷积层的 stride = 2,会进行降采样。在进行 shortcut 连接时,会经过 downsample 层,进行降采样和降维
在这里插入图片描述
在这里插入图片描述

ResNet50

layer1

在 layer1 中,首先第一个 Bottleneck 只会进行升维,不会降采样。shortcut 连接前,会经过 downsample 层升维处理。第二个 Bottleneck 的 shortcut 连接不会经过 downsample 层。

在这里插入图片描述

layer2,layer3,layer4

而 layer2,layer3,layer4 的结构图如下,每个 layer 包含多个 Bottleneck,但是第 1 个 Bottleneck 的 3 3 3 × 3 3 3卷积层的 stride = 2,会进行降采样。在进行 shortcut 连接时,会经过 downsample 层,进行降采样和降维。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值