ResNet 网络结构与残差连接介绍
文章目录
- 1、 残差连接( Residual)
- 2、 不同深度的ResNet结构
- 3、 两种不同的残差连接
ResNet是神经网络中非常著名的网络结构,其中引入了残差连接和批标准化(BN层,Batch Normalization),使得网络深度能够达到百层甚至千层(但上千层的网络效果并不好),实现优良的网络效果。
参考视频:ResNet网络结构,BN以及迁移学习详解
1、 残差连接( Residual)
残差连接如图:
这里有两个细节:
(1)F(x)与x是直接相加的,而不是在某个维度拼接;所以F(x)与x的shape完全相同。
(2)残差块的输出结果是在 F(x)+x 之后再加relu激活函数,而不是对 F(x) 进行激活函数之后再加x.
2、 不同深度的ResNet结构
不同深度(层数)的ResNet结构如上图所示,每个网络均有5个卷积块,每个卷积块里面包含数量不同的残差块。
可以发现resnet-18和resnet-34中的残差块(res1)中都是有两个3x3的卷积,但更深层的网络中的残差块(res2)是有2个1x1的卷积和一个3x3的卷积。这是因为1x1的卷积可以减少参数量,使得res2的参数量远少于res1的参数量,这样就可以减缓深层网络参数量太大导致难以训练的问题。
3、 两种不同的残差连接
从论文中可以看到resnet-34网络结构的一部分:
这三个残差块对应1.2的表格中的conv2_x的最后一个残差块和conv3_x的前两个残差块,可以发现conv3_x的第一个残差块的残差连接是虚线,这是为什么呢?
实线的残差连接就是正常的直接相加,如图所示:
虚线表示在侧边分支加了一个 1*1 卷积核的卷积操作,图中虚线连接的残差块结构如下:
从1.2的表格中可以看到,resnet-34经过 conv2_x 的输出shape是 [56,56,64],但 conv3_x 中tensor的shape是 [28,28,128]。我们知道,一般的残差连接中卷积操作之后的NCHW都不变(所以卷积的步长和padding都是1),这样才可以直接相加。所以conv2_x 中所有tensor的shape都是[56,56,64],conv3_x 中所有tensor的shape都是 [28,28,128]。
那么问题来了,如何从conv2_x过渡到conv3_x呢?
这就是虚线形式的残差连接实现的功能了。
从上面的图可以看到,虚线连接的残差块结构有一个1x1卷积的分支,总共有三个卷积,并且其中两个卷积的步长是2,而不是一般残差块中的stride=1。步长为2就可以将 conv2_x 中大小为56的H和W缩小为28,三个卷积的channel=128可以将 conv2_x 输出的 channel=64的tensor拓展为 channel=128。这样就实现了从conv2_x([56,56,64]) 到conv3_x( [28,28,128])的过渡了,这就是虚线残差块的作用。
所以在从conv3_x开始的每一个卷积块中,第一个残差块都是特殊的虚线残差块,因为要完成shape转换的功能。
ResNet 网络结构与残差连接介绍相关推荐
- 【模型解读】resnet中的残差连接,你确定真的看懂了?
文章首发于微信公众号<与有三学AI> [模型解读]resnet中的残差连接,你确定真的看懂了? 这是深度学习模型解读第6篇,本篇我们将介绍深度学习模型中的残差连接. 作者&编辑 | ...
- 「模型解读」resnet中的残差连接,你确定真的看懂了?
https://www.toutiao.com/a6708715626782786061/ 1 残差连接 想必做深度学习的都知道skip connect,也就是残差连接,那什么是skip connec ...
- 关于Resnet网络中残差连接实线与虚线的含义
何凯明大神的残差网络在论文中给出了两种连接,分别是实线连接和虚线连接 那么图中的实线和虚线分别是什么含义呢? 在图中可以看到,每两层是作为一个block存在的,两层之间用实线或者虚线链接,实线连接的部 ...
- 残差连接的解释(转)
本文首发于微信公众号<与有三学AI> [模型解读]resnet中的残差连接,你确定真的看懂了? 06 这是深度学习模型解读第6篇,本篇我们将介绍深度学习模型中的残差连接. 01 残差连接 ...
- 【论文泛读】 ResNet:深度残差网络
[论文泛读] ResNet:深度残差网络 文章目录 [论文泛读] ResNet:深度残差网络 摘要 Abstract 介绍 Introduction 残差结构的提出 残差结构的一些问题 深度残差网络 ...
- 【神经网络】MLP 编码器-解码器 注意力机制 残差连接
[1] 多层感知机(MLP) 最典型的MLP包括包括三层:输入层.隐层和输出层,MLP神经网络不同层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接). 由 ...
- DL之ResNet:ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ResNet:ResNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 ResNet算法的简介 1.比赛结果-ResNets @ ILSVRC & COCO 20 ...
- ResNet网络结构详解,网络搭建,迁移学习
前言: 参考内容来自up:6.1 ResNet网络结构,BN以及迁移学习详解_哔哩哔哩_bilibili up的代码和ppt:https://github.com/WZMIAOMIAO/deep-le ...
- pytorch图像分类篇:6. ResNet网络结构详解与迁移学习简介
前言 最近在b站发现了一个非常好的 计算机视觉 + pytorch 的教程,相见恨晚,能让初学者少走很多弯路. 因此决定按着up给的教程路线:图像分类→目标检测→-一步步学习用pytorch实现深度学 ...
- 残差连接 (及 梯度消失 网络退化)详解
本文就说说用残差连接解决梯度消失和网络退化的问题. 一.背景 1)梯度消失问题 我们发现很深的网络层,由于参数初始化一般更靠近0,这样在训练的过程中更新浅层网络的参数时,很容易随着网络的深入而导致梯度 ...
最新文章
- 网站推广的三大基本方式
- 最小二乘抛物线拟合原理及证明
- windows2012同步linux时间,Windows server2012时间同步NTP配置
- 01.轮播图之三 : collectionView 轮播
- 深入理解ThreadLocal变量的功能和使用
- oracle数据库中sql语句性能提升之to_char改造
- Linux 下串口编程入门教程
- 22个HTML5的初级技巧
- 大气中水汽凝结物对微波遥感的影响
- 购买的域名设置域名解析
- origin 8.0 win 7 破解版安装及使用教程
- 使用 Fabric CA 生成 MSP
- cf487e Tourists 题解(圆方树)
- Phython画星空(较复杂)
- 一顿操作猛如虎,一看还是二百五
- button渐变色 ios_ios开发
- 【BZOJ3144】【HNOI2013】切糕(网络流)
- 【二叉树】1758:二叉树
- 最适合freshman的Java习题集(四)数组
- 【Lyra UI】UI 玩法逻辑小结
热门文章
- xampp套件使用php,php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手),xampp安装使用...
- adams 2015破解安装汉化教程
- App 测试工具大全,收藏这篇就够了
- 时不变线性系统和时变线性系统方程的对角化
- Java、JSP教务排课系统
- 一次性密码本(绝对无法破译)
- OpenPose的使用
- Java语言学习指导与习题解答_Java语言程序设计(第3版)学习指导与习题解析
- Linux键盘驱动详解 转
- 计算机实验室安全管理责任书,实验室安全管理责任书