ResNet

news2024/11/27 10:31:03

论文信息

论文名称:Deep Residual Learning for Image Recognition
论文地址:https://arxiv.org/pdf/1512.03385.pdf
发表期刊:CVPR
发表年份:2016

主要问题

在引言中作者提出了一个问题:训练一个更好的网络是否像堆叠更多的层一样容易?答案当然是否定的,因为在网络训练的过程中存才梯度消失梯度爆炸的问题,这个问题阻碍了网络的收敛。当然梯度消失和梯度爆炸的问题很大程度上通过初始归一化中间层归一化解决了。

但是当更深层的网络收敛后,网络退化的问题暴露了出来:当网络层数增加,精度先饱和,然后急剧下降。这并不是由过拟合引起的(这也是本文着重需要解决的问题)。如图所示,当往一个适当深度的网络中添加层时,网络的训练误差会上升。
在这里插入图片描述
为了解决这个问题作者提出了基于残差结构的残差网络。

主要工作——两种残差结构

作者设计了两种残差结构,作为残差网络的基本结构。
在这里插入图片描述
左侧的网络包含两个残差层,右侧的包含三个残差层,左侧的用在ResNet-18和ResNet-34中,右侧的用在ResNet-50\101\152中。当作者在文章和特地强调了下,残差结构包含更多的残差层也是可以的,但如果只有一层的话与其他网络相比没有任何优势。

主要工作——两种网络

为了方便实验对比,作者根据VGG网络搭建了不含残差结构的Plain Network。(下图中间),作者在Plain Network的基础上加入残差结构,就得到了Residual Network。这里面有两个注意点:①虚线部分的残差连接需要进行维度升降②在每一个卷积层后面加上Batch Normalization(BN)

在这里插入图片描述
作者设计了五种残差网络结构,如下图所示:
在这里插入图片描述

identity shortcut和projection shortcut方式对比

作者在文中提到两种shortcut 方式:
(1)identity shortcut: 一种不需要extra parameters的shortcut
(2)projection shortcut: 一种需要extra parameters的shortcut
作者给出了三种方案,并进行了实验对比:
A:都是identity,zero-padding来升维,所有shortcuts都没有参数要学
B:projection来升维,其他都是identity
C:所有都是projection

举例说明:
(1)在输入输出维度一样的时候:比如14x14x64 – > 14x14x64

identity shortcut会原封不动把x传出去,projection shortcut通过64个1x1x64的filter,映射到输出。这些projection 的filters都是需要learn的。

(2)在输入输出维度不一样的时候: 比如14x14x64 – > 7x7x128

identity shortcut会先把14x14x64 downsample到7x7x64。 然后和输出差的那64个feature map全部zero padding补上,以实现free of parameters的前提。projection shortcut会用128个1x1x64的filters搭配上stride 2实现空间降维,深度升维的骚操作。然而这个也是需要learn的。

参考文献

https://blog.csdn.net/Pcl2001/article/details/125177750
https://blog.csdn.net/m0_50143220/article/details/113488457(identity和projection shortcut对比)
https://blog.csdn.net/weixin_44381334/article/details/106659787(identity和projection shortcut对比)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这个网站,多希望你早点知道,越早越好!

这是一个有趣、神奇的个人博客网站。 这是一个马斯克经常上的网站,而且马斯克还在推特上关注了这个网站的账号。 网站地址:https://waitbutwhy.com/ 这个网站上的内容并不多,网站2013年创建的,至今已有10年,一共才产出…

python爬虫工程师,如何从零开始部署Scrapyd+Feapder+Gerapy?

突然被告知要连着上整整十一天的班,有一点点累,简单更新一下内容吧,水个积分 关注公众号:python技术训练营,精选优质文档,好玩的项目 内容: 1.面试专题几十个大厂面试题 2.入门基础教程 3.11模块…

活动邀请函五秒钟下载即用

在日常中,人们都是以纸质的邀请函发送给被邀请者,不仅需要花费大量的精力和时间去书写发送活动邀请函,还存在着被邀请人没有及时收到活动邀请函而错过参与的时间等。而这样只需制作一份就可以全网分享,用户短时间就能收到活动邀请…

可变参数列表

"多少人都,生来纯洁完美,心底从不染漆黑。" 我们想要实现一个函数,这个函数的功能是返回一个整形的最大值。 emm,似乎有那点味道。但这应用场景似乎很受限制,因为这个函数比较的有效区间,只能装下…

Pycharm远程开发之全局pip,激活远程虚拟环境pip,以及pip的--user选项

前言 最近需要部署一下生成对抗网络的开发环境,我自己的笔记本没有带显卡,想到实验室的服务器有带显卡索性就用实验室服务器的环境开发,通过pycharm的远程开发功能连接到服务器,本来以为轻轻松松就可以开始写代码了,结…

springcloud整合nacos

1.订单服务(order) 1.1 安装nocas Nacos 快速开始 --注意:nacos 我的是 nacos-server-1.4.1.tar.gz 1.2 新建order-nacos 模块 1.3 修改pom文件 添加 nacos 依赖 1.4 配置文件添加 nacos 地址 1.5 创建启动类 使用 RestTemplate 方式调用服…

字符设备驱动内部实现

只要文件存在,就会有唯一对应的inode号,且相应的会存在一个struct inode结构体.,在应用层通过open()打开一个设备文件,会对应产生一个inode号,通过inode号可以找到文件的inode结构体,inode结构体…

中介者模式(二十一)

相信自己,请一定要相信自己 上一章简单介绍了观察者模式(二十), 如果没有看过, 请观看上一章 一. 中介者模式 引用 菜鸟教程里面中介者模式介绍: https://www.runoob.com/design-pattern/mediator-pattern.html 中介者模式(Mediator Pattern&#xff…

paddlespeech http服务解决输出无符号

1.前情提要 下载paddlespeech官网代码并运行http服务进行中文识别时,会发现选择某些模型(我用的是conformer_wenetspeech),是别的结果为一串文字,没有标点,效果如下: 经过调用padddlespeech相关…

【裸机开发】使用汇编清除 .bss 段

目录 1、为什么要清除 .bss 段 2、使用汇编清除 .bss 段 1、为什么要清除 .bss 段 .bss 段保存的是 未被初始化 或者 初始化为0 的全局/静态变量。在编译器看来,这些东西是多余的,实际并不会给他们分配空间。因此,编译生成目标文件的时候&…

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

目录 一、SpringCloud。 (1)认识微服务。 (1.1)单体架构与分布式架构(微服务)。 (1.2)微服务技术对比。 (1.3)SpringCloud。 (2&#xff09…

linux创建静态库

创建一个目录,比如今天是6月13号,就mkdir 0613(创建目录0613),然后cd 0613(进入0613目录) 1.创建C语言库函数文件myheight.c vi myhight.c 2.创建C语言函数文件myweight.c vi myweight.c 3.创建C语言函数文件age.c vi myage.c 4…

代码审计-Java项目JDBCMybatisHibernate注入预编译写法

文章目录 Javaweb-数据库操作-模式&写法&预编译等环境搭建JDBC 注入分析关于预编译 Mybatis 注入分析Hibernate 注入分析总结: Javaweb-代码审计SQL注入-INXEDU在线网校 Javaweb-数据库操作-模式&写法&预编译等 环境搭建 VulDemo审计源码百度云 在…

深入理解深度学习——Transformer:解码器(Decoder)部分

分类目录:《深入理解深度学习》总目录 相关文章: 注意力机制(Attention Mechanism):基础知识 注意力机制(Attention Mechanism):注意力汇聚与Nadaraya-Watson核回归 注意力机制&…

微信小程序分享到微信,公众号h5分享到微信,微信小程序跳转h5页面

一:微信小程序分享到微信 1:需求 分享微信小程序中某个详情页,可以分享到群,个人,朋友圈,好友点击分享页,能跳转到对应详情页阅读。 2:分析问题 如何实现分享?分享时如…

Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)

写在前面 工作中遇到,简单整理理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大…

【踩坑记录】STC8H8K64U硬件PWM使用小结

快速导航 写在前面库配置时钟配置GPIO配置定时器配置串口配置硬件PWM特殊功能同步功能 总结 写在前面 不出意外这是我第一次也是最后一次使用STC的芯片,写这篇博的目的纯粹记录下前段时间调试的痛苦经历,所有目前打算选或是已经开始调试这款芯片的朋友&…

Ubuntu16.04部署BEVformer 实时记录

一 配置依赖 a. Create a conda virtual environment and activate it. conda create -n open-mmlab python3.8 -y conda activate open-mmlabb. Install PyTorch and torchvision following the official instructions. pip install torch1.9.1cu111 torchvision0.10.1cu11…

【Linux】面试重点:死锁和生产消费模型原理

面试要点来了~ 文章目录 前言一、死锁的一系列问题二、生产者消费者模型原理总结 前言 上一篇的互斥量原理中我们讲解了锁的原理,我们知道每次线程申请锁的时候一旦申请成功这个线程自己就把锁带在自己身上了,这就保证了锁的原子性(因为只有…

备忘录模式(二十二)

相信自己,请一定要相信自己 上一章简单介绍了中介者模式(二十一), 如果没有看过, 请观看上一章 一. 备忘录模式 引用 菜鸟教程里面备忘录模式介绍: https://www.runoob.com/design-pattern/memento-pattern.html 备忘录模式(Memento Pattern&#xff…