深度学习知识【CSPNet网络详解】

CSPNet的贡献

1.增强了CNN的学习能力,能够在轻量化的同时保持准确性。
2.降低计算瓶颈。
3.降低内存成本。

CSPNet介绍

在神经网络推理过程中计算量过高的问题是由于网络优化中的梯度信息重复导致的。CSPNet通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率。

CSPNet不仅仅是一个网络,更是一个处理思想,可以和ResNet、ResNext、DenseNet、EfficientNet等网络结合。

从下图可以看出,CSPNet与其他模型结合后的效果:

在这里插入图片描述

CSPNet的结构

作者给出了几种设计思路:
在这里插入图片描述
【①密集块(Dense Block)是DenseNet网络结构的核心部分,它是由多个密集连接层(Dense Layer)组成的模块,用于提取图像中的特征信息。 在每个密集块中,所有前面层的输出都会与当前层的输入进行连接,并通过一个非线性变换进行处理。】

上图中的Transition Layer代表过渡层,主要包含瓶颈层( 1 × 1 卷 积 ) 和池化层(可选)。
其中(a)图是原始的DenseNet的特征融合方式。(b)图是CSPDenseNet的特征融合方式。(c)图是Fusion First的特征融合方式。(d)图是Fusion Last的特征融合方式。

Fusion First的方式是对两个分支的feature map先进行concatenation操作,这样梯度信息可以被重用。

Fusion Last的方式是对Dense Block所在分支先进行transtion操作,然后再进行concatenation,梯度信息将被截断,因此不会重复性使用梯度信息。

在这里插入图片描述
上图是对Fusion First、Fusion Last和CSP最终结构进行实验对比,我们可以得到如下结论:

使用Fusion First有助于降低计算代价,但是准确率有显著下降。
使用Fusion Last也是极大降低了计算代价,top-1 accuracy仅仅下降了0.1个百分点。
同时使用Fusion First和Fusion Last相结合的CSP所采用的融合方式可以在降低计算代价的同时,提升准确率。
下图是DenseNet的示意图和CSPDenseNet的改进示意图:
在这里插入图片描述

改进点在于CSPNet将浅层特征映射为两个部分,一部分经过Dense模块(图中的Partial Dense Block),另一部分直接与Partial Dense Block输出进行concate。

CSP思想的应用
CSP思想也可以应用到ResNet或者ResNeXt中:

总结
CSPNet和PRN都是一个思想,将feature map拆成两个部分,一部分进行卷积操作,另一部分和上一部分卷积操作的结果进行concate。

从实验结果来看,分类问题中,使用CSPNet可以降低计算量,但是准确率提升很小;在目标检测问题中,使用CSPNet作为Backbone带来的提升比较大,可以有效增强CNN的学习能力,同时也降低了计算量。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

练习使用动态内存相关的4个函数:malloc、calloc、realloc、free

在了解使用动态内存相关的四个函数之前,我们先了解一下,为什么要有动态内存分配? 首先,我们已经掌握了一种开辟内存的方式,就是直接使用int i20;但是这样开辟空间有两个特点,1:空间开辟大小是固…

【业界动态】数字孪生到底意味着什么

什么是数字孪生?它可以理解为一种技术,也可以理解为某种生态。数字孪生即指将物理实体映射至虚拟空间,进而协助完成预测、决策等动作。随着互联网的建设与发展,数字孪生在未来又会如何落地? 一、数字孪生到底是什么&am…

Redis 教程系列之Redis 发布订阅(十五)

Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 cl…

【基于HTML5的网页设计及应用】——当前日期

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

红外遥控NEC协议

红外遥控技术在我们的日常生活中应用非常广泛,比如我们的遥控器。通过遥控器发射红外光,电视,空调装有红外接收管,负责接受红外光。那么本节将重点介绍其中的原理。 一、工作原理 上图的HS0038便是装在空调,电视上的红…

Redis中的事件(三)

时间事件 事件的调度与执行 因为服务器中同时存在文件事件和时间事件两种事件类型,所以服务器必须对这两种事件进行调度,决定何时应该处理文件事件,何时有应该处理时间事件,以及花多少事件来处理它们等等。事件的调度和执行由ae…

YOLOv9改进策略:卷积魔改 | PConv减少冗余计算和内存访问可以更有效地提取空间特征 |CVPR2023 FasterNet

💡💡💡本文改进内容:CVPR2023 提出的一种新的partial convolution(PConv),通过同时减少冗余计算和内存访问可以更有效地提取空间特征,最后引入到YOLOv9。在detect前加入PConv&#x…

php反序列化——pop链构造[SWPUCTF 2021 新生赛]pop [NISACTF 2022]babyserialize

构造pop链 [SWPUCTF 2021 新生赛]pop 用反推法 从后往前推 这题的最后一步很明显 只要给$admin和$passwd赋值 就会echo flag 所以反推法第一步就是要调用Getflag()函数 找到$this->w00m->{$this->w22m}(); $this->mw00->{$this->w22m}();的意思是调用当…

Linux课程____shell脚本应用

:一、认识shell 常用解释器 Bash , ksh , csh 登陆后默认使用shell,一般为/bin/bash,不同的指令,运行的环境也不同 二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件,简单内容 #!/bin/bash …

C++ :STL中vector扩容机制

vector是STL提供的动态数组,它会在内部空间不够用时动态的调整自身的大小,调整过程中会有大量的数据拷贝,为了减少数据拷贝的次数vector会在调整空间的时候尽量多申请一些空间,这些预留出的空间可以很大程度上减少拷贝的发生。 在…

WPF —— ContextMenu右键菜单 Canvas控件详解

ContextMenu右键菜单的实例 ​​​​​​​WPF中的右键菜单主要是通过ContextMenu来实现&#xff0c; 在控件中使用ContextMenu 直接在控件的ContextMenu属性中关联即可。 <Label Content"右键弹出内容菜单" FontSize"20" Width"200" Heig…

Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 解释&#xff1a;请求的数据既不在Redis中也不在数据库中&#xff0c;这时我们创建一个黑名单来存储该数据&#xff0c;下次再有类似的请求进来…