文章目录

  • 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 网络结构与残差连接介绍相关推荐

  1. 【模型解读】resnet中的残差连接,你确定真的看懂了?

    文章首发于微信公众号<与有三学AI> [模型解读]resnet中的残差连接,你确定真的看懂了? 这是深度学习模型解读第6篇,本篇我们将介绍深度学习模型中的残差连接. 作者&编辑 | ...

  2. 「模型解读」resnet中的残差连接,你确定真的看懂了?

    https://www.toutiao.com/a6708715626782786061/ 1 残差连接 想必做深度学习的都知道skip connect,也就是残差连接,那什么是skip connec ...

  3. 关于Resnet网络中残差连接实线与虚线的含义

    何凯明大神的残差网络在论文中给出了两种连接,分别是实线连接和虚线连接 那么图中的实线和虚线分别是什么含义呢? 在图中可以看到,每两层是作为一个block存在的,两层之间用实线或者虚线链接,实线连接的部 ...

  4. 残差连接的解释(转)

    本文首发于微信公众号<与有三学AI> [模型解读]resnet中的残差连接,你确定真的看懂了? 06 这是深度学习模型解读第6篇,本篇我们将介绍深度学习模型中的残差连接. 01 残差连接 ...

  5. 【论文泛读】 ResNet:深度残差网络

    [论文泛读] ResNet:深度残差网络 文章目录 [论文泛读] ResNet:深度残差网络 摘要 Abstract 介绍 Introduction 残差结构的提出 残差结构的一些问题 深度残差网络 ...

  6. 【神经网络】MLP 编码器-解码器 注意力机制 残差连接

    [1] 多层感知机(MLP)   最典型的MLP包括包括三层:输入层.隐层和输出层,MLP神经网络不同层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接).   由 ...

  7. DL之ResNet:ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之ResNet:ResNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 ResNet算法的简介 1.比赛结果-ResNets @ ILSVRC & COCO 20 ...

  8. ResNet网络结构详解,网络搭建,迁移学习

    前言: 参考内容来自up:6.1 ResNet网络结构,BN以及迁移学习详解_哔哩哔哩_bilibili up的代码和ppt:https://github.com/WZMIAOMIAO/deep-le ...

  9. pytorch图像分类篇:6. ResNet网络结构详解与迁移学习简介

    前言 最近在b站发现了一个非常好的 计算机视觉 + pytorch 的教程,相见恨晚,能让初学者少走很多弯路. 因此决定按着up给的教程路线:图像分类→目标检测→-一步步学习用pytorch实现深度学 ...

  10. 残差连接 (及 梯度消失 网络退化)详解

    本文就说说用残差连接解决梯度消失和网络退化的问题. 一.背景 1)梯度消失问题 我们发现很深的网络层,由于参数初始化一般更靠近0,这样在训练的过程中更新浅层网络的参数时,很容易随着网络的深入而导致梯度 ...

最新文章

  1. 网站推广的三大基本方式
  2. 最小二乘抛物线拟合原理及证明
  3. windows2012同步linux时间,Windows server2012时间同步NTP配置
  4. 01.轮播图之三 : collectionView 轮播
  5. 深入理解ThreadLocal变量的功能和使用
  6. oracle数据库中sql语句性能提升之to_char改造
  7. Linux 下串口编程入门教程
  8. 22个HTML5的初级技巧
  9. 大气中水汽凝结物对微波遥感的影响
  10. 购买的域名设置域名解析
  11. origin 8.0 win 7 破解版安装及使用教程
  12. 使用 Fabric CA 生成 MSP
  13. cf487e Tourists 题解(圆方树)
  14. Phython画星空(较复杂)
  15. 一顿操作猛如虎,一看还是二百五
  16. button渐变色 ios_ios开发
  17. 【BZOJ3144】【HNOI2013】切糕(网络流)
  18. 【二叉树】1758:二叉树
  19. 最适合freshman的Java习题集(四)数组
  20. 【Lyra UI】UI 玩法逻辑小结

热门文章

  1. xampp套件使用php,php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手),xampp安装使用...
  2. adams 2015破解安装汉化教程
  3. App 测试工具大全,收藏这篇就够了
  4. 时不变线性系统和时变线性系统方程的对角化
  5. Java、JSP教务排课系统
  6. 一次性密码本(绝对无法破译)
  7. OpenPose的使用
  8. Java语言学习指导与习题解答_Java语言程序设计(第3版)学习指导与习题解析
  9. Linux键盘驱动详解 转
  10. 计算机实验室安全管理责任书,实验室安全管理责任书