【CNN】FractalNet——与DenseNet有异曲同工之妙

news2025/1/11 21:57:45

FractalNet论文名称:FractalNet: Ultra-Deep Neural Networks without Residuals
FractalNet论文下载链接:

FractalNet(分型网络),2016年Gustav Larsson首次提出。

(1)分形网络不像resNet那样连一条捷径,而是通过不同长度的子路径组合,网络选择合适的子路径集合提升模型表现
(2)分形网络体现的一种特性为:浅层子网提供更迅速的回答,深层子网提供更准确的回答。
在这里插入图片描述
(1)图中以粉红色的卷积层Convolution为基础层,实际上可以为其它类型的层或者子网络;
(2)绿色的Join层一般可以用相加或concat,这里采取了相加然后取平均,因此所有基础层可以使用一样的channel数量
(3)fC(z) 中C表示列数,z表示输入,C=1表示一个基础层
(4)fC+1(z) 则如图所示,在右边叠加两个fC(z) ,左边接一个基础层
(5)以此类推,当C等于4的时候,可以得到图中的f4(z)
(6)f4(z)作为一个block,如图中最右边的网络所示,完整的网络接了5个block,block之间用Pool层连接,最后是预测层
(7)令block个数为B,每个block中的列数为C,网络的总深度为B⋅2C−1
观察上图中左半部分,描述的是网络的单个模块(block)的结构。注意,这里的fC不是CNN中常用到的全连接层, 而是指分形次数为 C 的模块。fC 模块的表达式如下:
在这里插入图片描述
其中,⊕ 是一个聚合(join)操作,本文推荐使用均值,而非常见的concat 或 addition。

中间图就是一个典型的 C=4 的block。把这些block堆叠起来,加上pooling和prediction层,就是完整的分类网络了,也就是右图。

网络结构看完了,FratalNet并不存在像ResNet那样skip connect的结构。但是,实际上如果把fC模块改成:
在这里插入图片描述
这就变成一个 DenseNet 的结构了。而众所皆知,DenseNet某种意义上是ResNet的改进版。所以其实FratalNet也算是ResNet的近亲,这大概也是为什么业界还是ResNet用得多的原因吧——反正都差不多,不如挑个结构最简单的。
最后,路径舍弃(Drop path)也是FractalNet的贡献之一,可以看作一种新的正则化规则
ResNet收敛快,但还是要经过基本的卷积结构,卷积通用的问题是缺少有效的正则化方法。对于深的如ResNet采用BN,对于宽的如WideResNet采用Dropout。而FractalNet是基于路径,舍弃一些路径,是一种新的正则化方法(与Stochastic Depth Net中的随机失活几乎一样。
对路径舍弃采用了 50% 局部以及 50% 全局的混合采样:
局部:连接层以固定几率舍弃每个输入,但我们保证至少一个输入保留。如图第1、3个。
全局:为了整个网络选出每条路径,并限制其为单列结构,激励每列成为有力的预测器,每列只做卷积。如图第2、4个。
在这里插入图片描述
实验训练的时候,mini-batch之间交叉使用Local和Global。
参考:
点头教育

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

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

相关文章

嵌入式 Linux 文件IO操作

目录 Linux 文件操作 1 Linux 系统环境文件操作概念 2 缓冲 IO 文件操作 1 文件的创建,打开与关闭 fopen 函数函数 2 freopen 函数 3、fdopen函数 4、fclose函数 5、格式化读写 6、单个字符读写 7、文件定位 8、标准目录文件 9、非缓冲IO文件操作 Linux 文…

十二、MyBatis的高级映射及延迟加载

1 数据库表的准备 准备数据库表:一个班级对应多个学生。班级表:t_clazz。学生表:t_stu 2 环境搭建 创建模块 打包方式:jar 引入依赖:mybatis依赖、mysql驱动依赖、junit依赖、logback依赖 配置文件:…

C#/.net程序调用python

C#/.net程序调用python C#的优势在于window下的开发,不仅功能强大而且开发周期短。而python则有众多的第三方库,可以避免自己造轮子,利用C#来做界面,而具体实现使用python来实现可以大大提高开发效率。本文介绍如何使用pythonnet…

Kubernetes初始化容器

初始化容器 之前了解了容器的健康检查的两个探针:liveness probe(存活探针)和readiness probe(可读性探针)的使用方法,我们说在这两个探针是可以影响容器的生命周期的,包括我们之前提到的容器的…

如何或者无插件Web页面监控播放软件LiveNVR的固定视频流地址,实现大屏上墙、播放、视频分析等目的

1、LiveNVR介绍 LiveNVR的安防监控的视频直播,可以按标准的Onvif/RTSP协议接入监控设备,也可以通过海康、大华、天地伟业等厂家私有SDK接入监控,实现web页面的播放和录像回放。 可以分发HTTP-FLV、WS-FLV、WebRTC、RTMP、HLS(M3U8)、RTSP等多…

Linux安装Tomcat9

默认Linux已经安装了JDK 并且已经配置好了环境变量 下载链接 Tomcat9 下载完成如下图 ,这个下载完成需要看一下,有的包里bin目录内缺少bootstrap.jar文件,因此下载包的时候要看看bin目录下的是不是有这个文件,如果没有启动Tomcat…

CHAPTER 1 Linux 集群

集群1 集群介绍2 集群分类1. 高可用性集群(High Availability Cluster)HA2. 负载均衡集群(Load Balance Cluster)LB3. 高性能集群(High Performance Computing Cluster)HPC3 HA集群逻辑架构1. 信息层/基础架…

Qt页面菜单栏、工具栏、状态栏

1、菜单栏 QMenu *editMenu ui->menuBar->addMenu("编辑(&E)");2、编辑菜单栏及工具栏内容 QAction *action_copy editMenu->addAction(QIcon("copy.png"),QString("复制(&c)"));action_copy->setShortcut(QKeySequence(…

数学建模竞赛的一些心得体会

1.数学建模经验首先简要的介绍一下我的情况。数学建模我也是在大一暑假开始接触的,之前对其没有任何的了解。我本身对数学也有相对较厚的兴趣,同时我也是计算机专业的学生,因此,我觉得我可参加数学建模的这个比赛。大一的暑假参加…

Linux->进程终止和等待

目录 1. 进程终止场景 1.1 进程退出码 1.2 进程常见退出方式 2. 进程等待 2.1 进程等待的必要性 2.2 进程等待的方式 wait()方式 waitpid()方式 options参数 status参数 1. 进程终止场景 代码运行完毕,结果正确 代码运行完毕,结果不正确 代码异…

【编程架构实践】关于技术栈和架构

架构是什么?老生常谈了。那就看看ChatGPT怎么说:软件架构是软件工程师在设计一个软件系统时,定义系统架构结构的一种科学方法。它指的是软件系统在软件工程师关注功能、性能和安全等质量属性的条件下,组织系统的方式。换句话说&am…

Flask源码篇:wsgi、Werkzeug与Flask启动工作流程

目录1 wsgi介绍2 使用wsgi实现一个web应用3 Werkzeug介绍4 Flask工作流程分析(1)创建Flask app(2)启动Falsk app(3)分析run_simple方法(4)分析make_server方法(5&#xf…

内容分发网络

介绍 CDN 内容分发网络(英语:Content Delivery Network 或 Content Distribution Network,缩写:CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器&…

【数据库视图】简单学习视图,了解一些视图的简单功能

前言: 大家好,我是良辰丫🍅🍅🍅,今天我想带大家去了解一下数据库的视图,虽然视图这个东西在很多地方(各种公司以及项目)已经不再用了,但是许多大学生在考试的时候涉及,🛴🛴&#x1f…

【c++】STL常用容器5—list容器

文章目录list基本概念list构造函数list赋值和交换list大小操作list插入和删除list数据存取list反转和排序list基本概念 功能:将数据进行链式存储。 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链…

京东物流实时风控实践

摘要:本文整理自京东风控数据产品组架构师周文跃,在 FFA 2022 实时风控专场的分享。本篇内容主要分为六个部分:1. 京东物流业务介绍2. 物流风控场景概括3. 物流风控平台建设4. Flink 赋能5. 技术挑战6. 未来规划Tips:点击「阅读原…

操作系统权限提升(二十)之Linux提权-计划任务提权

系列文章 操作系统权限提升(十八)之Linux提权-内核提权 操作系统权限提升(十九)之Linux提权-SUID提权 计划任务提权 计划任务提权原理 linux计划任务提权是因为权限配置不当,计划任务以root权限运行,低权限的用户可以修改计划任务的文件,…

docker启动容器服务之后访问失败

关于docker启动容器服务之后,宿主机访问失败(解决方法) 注:在进行docker容器启动宿主机进行容器访问时,无需进行网络的配置,docker容器在启动时会自动解决 第一种原因及修改方法 在进行启动的时候&#…

JVM虚拟机概述(1)

1.JVM概述 1.1为什么要学习JVM 通过学习JVM ( java Virtual Machine )可以帮助我们理解java程序运行的过程,了解虚拟机中各种机制的实现原理。为后期写出优质的代码做好准备,为向更高的层次提升打好基础。 1.2虚拟机 虚拟机的本质就是在windows中&…

深入浅出的学习傅里叶变换

学习傅里叶变换需要面对大量的数学公式,数学功底较差的同学听到傅里叶变换就头疼。事实上,许多数学功底好的数字信号处理专业的同学也不一定理解傅里叶变换的真实含义,不能做到学以致用! 事实上,傅里叶变换的相关运算…