ResNet50网络结构图及结构详解

2021 年 11 月 18 日 极市平台
↑ 点击 蓝字  关注极市平台

作者丨臭咸鱼@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/353235794
编辑丨极市平台

极市导读

 

本文详细介绍了ResNet50的具体结构,附有自制超全结构图。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

引言

之前我读了ResNet的论文Deep Residual Learning for Image Recognition,也做了论文笔记(https://zhuanlan.zhihu.com/p/353228657),笔记里记录了ResNet的理论基础(核心思想、基本Block结构、Bottleneck结构、ResNet多个版本的大致结构等等),看本文之间可以先看看打打理论基础。

一个下午的时间,我用PPT纯手工做了一张图片详细说明ResNet50的具体结构,本文将结合该图片详细介绍ResNet50。

这张图和这篇文章估计全网最详细了(狗头)。

废话不多说,先放图片。(文末有无水印版图片或PPT源文件的下载链接)

上图(称为本图)可划分为左、中、右3个部分,三者内容分别如下

  1. ResNet50整体结构
  2. ResNet50各个Stage具体结构
  3. Bottleneck具体结构

接下来为正文内容,本文先后介绍了本图从左到右的3个部分,并对Bottleneck进行了简要分析

ResNet50整体结构

首先需要声明,这张图的内容是ResNet的Backbone部分(即图中没有ResNet中的全局平均池化层和全连接层)。

如本图所示,输入INPUT经过ResNet50的5个阶段(Stage 0Stage 1、……)得到输出OUTPUT

下面附上ResNet原文展示的ResNet结构,大家可以结合着看,看不懂也没关系,只看本文也可以无痛理解的。

上图描述了ResNet多个版本的具体结构,本文描述的“ResNet50”中的50指有50个层。和上图一样,本图描述的ResNet也分为5个阶段。

ResNet各个Stage具体结构

如本图所示,ResNet分为5个stage(阶段),其中Stage 0的结构比较简单,可以视其为对INPUT的预处理,后4个Stage都由Bottleneck组成,结构较为相似。Stage 1包含3个Bottleneck,剩下的3个stage分别包括4、6、3个Bottleneck

现在对Stage 0Stage 1进行详细描述,同理就可以理解后3个Stage。

Stage 0

  • (3,224,224)指输入 INPUT的通道数(channel)、高(height)和宽(width),即 (C,H,W)。现假设输入的高度和宽度相等,所以用 (C,W,W)表示。
  • 该stage中第1层包括3个先后操作
  1. CONV
    CONV是卷积(Convolution)的缩写, 7×7指卷积核大小, 64指卷积核的数量(即该卷积层输出的通道数), /2指卷积核的步长为2。
  2. BN
    BN是Batch Normalization的缩写,即常说的BN层。
  3. RELU
    RELU指ReLU激活函数。
  • 该stage中第2层为 MAXPOOL,即最大池化层,其kernel大小为 3×3、步长为 2
  • (64,56,56)是该stage输出的通道数(channel)、高(height)和宽(width),其中 64等于该stage第1层卷积层中卷积核的数量, 56等于 224/2/2(步长为2会使输入尺寸减半)。

总体来讲,在_Stage 0_中,形状为(3,224,224)的输入先后经过卷积层、BN层、ReLU激活函数、MaxPooling层得到了形状为(64,56,56)的输出。

Stage 1

在理解了Stage 0以及熟悉图中各种符号的含义之后,可以很容易地理解Stage 1。理解了Stage 1之后,剩下的3个stage就不用我讲啦,你自己就能看懂。

Stage 1的输入的形状为(64,56,56),输出的形状为(64,56,56)

下面介绍Bottleneck的具体结构(难点),把Bottleneck搞懂后,你就懂Stage 1了。

Bottleneck具体结构

现在让我们把目光放在本图最右侧,最右侧介绍了2种Bottleneck的结构。

“BTNK”是BottleNeck的缩写(本文自创,请谨慎使用)。

2种Bottleneck分别对应了2种情况:输入与输出通道数相同(BTNK2)、输入与输出通道数不同(BTNK1),这一点可以结合ResNet原文去看喔。

BTNK2

我们首先来讲BTNK2

BTNK2有2个可变的参数CW,即输入的形状(C,W,W)中的cW

令形状为(C,W,W)的输入为 ,令BTNK2左侧的3个卷积块(以及相关BN和RELU)为函数 ,两者相加( )后再经过1个ReLU激活函数,就得到了BTNK2的输出,该输出的形状仍为(C,W,W),即上文所说的BTNK2对应输入 与输出 通道数相同的情况。

BTNK1

BTNK1有4个可变的参数CWC1S

BTNK2相比,BTNK1多了1个右侧的卷积层,令其为函数 BTNK1对应了输入 与输出 通道数不同的情况,也正是这个添加的卷积层将 变为 ,起到匹配输入与输出维度差异的作用( 通道数相同),进而可以进行求和

简要分析

可知,ResNet后4个stage中都有BTNK1BTNK2

  • 4个stage中 BTNK2参数规律相同
    4个stage中 BTNK2的参数全都是1个模式和规律,只是输入的形状 (C,W,W)不同。
  • Stage 1BTNK1参数的规律与后3个stage不同
    然而,4个stage中 BTNK1的参数的模式并非全都一样。具体来讲,后3个stage中 BTNK1的参数模式一致, Stage 1BTNK1的模式与后3个stage的不一样,这表现在以下2个方面:
  1. 参数 SBTNK1左右两个1×1卷积层是否下采样
    Stage 1中的 BTNK1:步长 S为1,没有进行下采样,输入尺寸和输出尺寸相等。
    后3个stage的 BTNK1:步长 S为2,进行了下采样,输入尺寸是输出尺寸的2倍。
  2. 参数 CC1BTNK1左侧第一个1×1卷积层是否减少通道数
    Stage 1中的 BTNK1:输入通道数 C和左侧1×1卷积层通道数 C1相等( C=C1=64),即左侧1×1卷积层没有减少通道数。
    后3个stage的 BTNK1:输入通道数 C和左侧1×1卷积层通道数 C1不相等( C=2*C1),左侧1×1卷积层有减少通道数。
  • 为什么Stage 1BTNK1参数的规律与后3个stage不同?(个人观点)

    • 关于 BTNK1左右两个1×1卷积层是否下采样
      因为 Stage 0中刚刚对网络输入进行了卷积和最大池化,还没有进行残差学习,此时直接下采样会损失大量信息;而后3个stage直接进行下采样时,前面的网络已经进行过残差学习了,所以可以直接进行下采样。
    • 关于 BTNK1左侧第一个1×1卷积层是否减少通道数
      根据ResNet原文可知, Bottleneck左侧两个1×1卷积层的主要作用分别是减少通道数和恢复通道数,这样就可以使它们中间的3×3卷积层的输入和输出的通道数都较小,因此效率更高。
      Stage 1BTNK1的输入通道数 C为64,它本来就比较小,因此没有必要通过左侧第一个1×1卷积层减少通道数。
图片和PPT源文件的下载链接

链接:https://pan.baidu.com/s/1cX0OUNQO4pgX9H8-xtx7oQ

提取码:9y0v

参考链接

https://www.bilibili.com/read/cv2051292

https://arxiv.org/abs/1512.03385

如果觉得有用,就请分享到朋友圈吧!

△点击卡片关注极市平台,获取 最新CV干货

公众号后台回复“transformer”获取最新Transformer综述论文下载~


极市干货
课程/比赛: 珠港澳人工智能算法大赛 保姆级零基础人工智能教程
算法trick 目标检测比赛中的tricks集锦 从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
技术综述: 一文弄懂各种loss function 工业图像异常检测最新研究总结(2019-2020)


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~



觉得有用麻烦给个在看啦~   
登录查看更多
1

相关内容

13个经典CNN架构比较分析!从AlexNet到ResNet再到ConvNeXt
专知会员服务
100+阅读 · 2022年3月14日
何恺明的ResNet论文,被引量刚突破10万+
专知会员服务
25+阅读 · 2021年12月19日
结构化剪枝综述
专知会员服务
48+阅读 · 2021年11月18日
深度学习激活函数全面综述论文
专知会员服务
69+阅读 · 2021年10月1日
专知会员服务
23+阅读 · 2021年8月1日
专知会员服务
44+阅读 · 2020年11月13日
【IJCAJ 2020】多通道神经网络 Multi-Channel Graph Neural Networks
专知会员服务
25+阅读 · 2020年7月19日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
深度神经网络模型压缩与加速综述
专知会员服务
126+阅读 · 2019年10月12日
CNN网络结构的发展(最全整理)
极市平台
73+阅读 · 2019年11月2日
后ResNet时代:SENet与SKNet
PaperWeekly
23+阅读 · 2019年3月25日
综述:DenseNet—Dense卷积网络(图像分类)
专知
83+阅读 · 2018年11月26日
CNN五大经典模型:LeNet,AlexNet,GoogleNet,VGG,DRL
黑龙江大学自然语言处理实验室
14+阅读 · 2018年9月7日
手把手教你构建ResNet残差网络
专知
38+阅读 · 2018年4月27日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
干货 | 深度学习之卷积神经网络(CNN)的模型结构
机器学习算法与Python学习
12+阅读 · 2017年11月1日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
最全的DNN概述论文:详解前馈、卷积和循环神经网络技术
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Arxiv
0+阅读 · 2022年4月18日
Arxiv
0+阅读 · 2022年4月16日
Arxiv
0+阅读 · 2022年4月16日
VIP会员
相关VIP内容
13个经典CNN架构比较分析!从AlexNet到ResNet再到ConvNeXt
专知会员服务
100+阅读 · 2022年3月14日
何恺明的ResNet论文,被引量刚突破10万+
专知会员服务
25+阅读 · 2021年12月19日
结构化剪枝综述
专知会员服务
48+阅读 · 2021年11月18日
深度学习激活函数全面综述论文
专知会员服务
69+阅读 · 2021年10月1日
专知会员服务
23+阅读 · 2021年8月1日
专知会员服务
44+阅读 · 2020年11月13日
【IJCAJ 2020】多通道神经网络 Multi-Channel Graph Neural Networks
专知会员服务
25+阅读 · 2020年7月19日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
深度神经网络模型压缩与加速综述
专知会员服务
126+阅读 · 2019年10月12日
相关资讯
CNN网络结构的发展(最全整理)
极市平台
73+阅读 · 2019年11月2日
后ResNet时代:SENet与SKNet
PaperWeekly
23+阅读 · 2019年3月25日
综述:DenseNet—Dense卷积网络(图像分类)
专知
83+阅读 · 2018年11月26日
CNN五大经典模型:LeNet,AlexNet,GoogleNet,VGG,DRL
黑龙江大学自然语言处理实验室
14+阅读 · 2018年9月7日
手把手教你构建ResNet残差网络
专知
38+阅读 · 2018年4月27日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
干货 | 深度学习之卷积神经网络(CNN)的模型结构
机器学习算法与Python学习
12+阅读 · 2017年11月1日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
最全的DNN概述论文:详解前馈、卷积和循环神经网络技术
相关基金
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
Top
微信扫码咨询专知VIP会员