深度学习:CSPNet

news2024/11/26 23:34:23

深度学习:CSPNet

  • 前言
    • 解决的问题
  • Method
    • 目前主流网络存在的问题
    • Partial Dense Block
    • Partial Transition Layer
    • Exact Fusion Model
  • 实验

前言

CSPNet 是作者 Chien-Yao Wang 于 2019 发表的论文 CSPNET: A NEW BACKBONE THAT CAN
ENHANCE LEARNING CAPABILITY OF CNN。也是对 DenseNet 网络推理效率低的改进版本。

解决的问题

  1. 由于在轻量级的网络下,他的精度会有所下降,CSPnet可以在维持足够精度的同时提升10%到20%的计算效率,同时可以应用于传统的 ResNet,ResNeXt,DenseNet等网络。
  2. 降低计算瓶颈。
  3. 降低内存资源。

Method

目前主流网络存在的问题

在这里插入图片描述

我们以DenseNet为例,如上图,我们上下两个分别为他们的推导公式,我们发现有很多以前的feature重复出现,在反向传播的过程中,网络会不断的学习这些相同的梯度,作者认为这些冗余feature会影响模型的性能,于是作者对网络做出了下面的改进。

##Cross Stage Partial Network
在这里插入图片描述

如上图为作者作出的改进,作者首先把input 分成两部分,一部分经过了卷基层,另一部分什么也不做,然后在把这两个结果concat拼接。
总体而言,所提出的 CSPDenseNet 保留了 DenseNet 特征重用特性的优势,但同时通过截断梯度流来防止过多的重复梯度信息。这个想法是通过设计分层特征融合策略并在局部transition层中使用来实现的。

Partial Dense Block

设计局部dense block的优点是:

  1. 增加梯度路径:通过拆分合并策略,梯度路径的数量可以增加一倍。由于采用了跨阶段策略,可以缓解使用显式特征图副本进行concatenation带来的缺点;
  2. 平衡每层的计算:通常,DenseNet 的base layer中的通道数远大于growth rate(注:DenseNet的超参数,值为dense block中dense卷积层的卷积核个数)。由于在一个局部dense block中参与dense层操作的base layer通道只占原始数量的一半,因此可以有效解决近一半的计算瓶颈(注:解决近一半的计算瓶颈是通过拆分输入通道实现,拆分各一半,一半传入dense block,一半直接传到dense block后);
  3. 减少内存流量:假设 DenseNet 中一个dense block的基本特征图大小为w × h × c,growth rate为 dd,总共有 m 个dense层。那么,那个dense block的CIO(Convolutional Input/Output)是( c × m ) + ( ( m ^ 2 + m ) × d ) / 2 。虽然 m 和 d 通常远小于 c,但局部dense block最多可以节省网络一半的内存流量。

Partial Transition Layer

在DenseNet中,Trainsition layer起到了特征融合的作用,在这里,作者采取了4中不同的融合策略进行试验如下图:
在这里插入图片描述
通过实验,最终作者选取了第三种方案,这种方案速度更快,精度更高。

Exact Fusion Model

实验

在这里插入图片描述

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

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

相关文章

【C语言】数据结构-单链表

主页:114514的代码大冒险 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言(链表的优势) 一、单链表是什么 二、单链表操作…

Hadoop基础之《(2)—Hadoop概述》

一、Hadoop是什么 1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 2、主要解决,海量数据的存储和海量数据的分析计算问题。 3、广义上来说,Hadoop通常是指一个更广泛的概念—Hadoop生态圈。 二、Hadoop的三大发行版本 Apache版本&#x…

【论文简述】Long-range Attention Network for Multi-View Stereo(WACV 2021)

一、论文简述 1. 第一作者:Xudong Zhang 2. 发表年份:2021 3. 发表期刊:WACV 4. 关键词:MVS、注意力、级联、监督回归 5. 探索动机:先前的方法忽略了像素之间的依赖关系,并且期望回归的方式效率不高。…

Kettle(10):switch/case组件

1 机智的体育老师——条件判断 有一天,体育老师要让班上的男女同学分别排成两队。但这个班上还有几名同学,很特殊——他们是蜘蛛!!所以,机智的体育老师需要把他们排成三队,男同学一队,女同学一队,蜘蛛一队。 体育老师要做一件非常重要的事情:判断学生是男孩还是女孩、…

联想E14 开机黑屏报错2102:Detection error on HDD0 (Main HDD)

环境: 联想E14 Win10专业版 问题描述: 联想E14 开机黑屏报错2102:Detection error on HDD0 (Main HDD) 解决方案: 1.关机重启 2.尝试拆解,拔出硬盘数据线,重新安装

Scanpy 单细胞基因分析

参考:https://www.bilibili.com/video/BV1sq4y1C7Qx/ https://scanpy-tutorials.readthedocs.io/en/latest/pbmc3k.html 代码下载:scanpy分析scRNA-seq数据基本流程(含scanpy seurat两大工具对比) 链接: https://pan.baidu.com/s…

华为机试 HJ33 整数与IP地址间的转换

华为机试题 HJ33 整数与IP地址间的转换 一、题目描述 描述原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例:一个ip地址为10.0.3.193每段数字 …

C# - JSON Schema validation

C# - JSON Schema validation引言如何生成 C# 类 JSON Schema利用在线工具利用 Visual Studio利用 NJsonSchema验证 JSON Schema针对 JSON Schema 字符串针对 C# 类 Schema引言 针对 API 测试,我们需要验证 Response 中的一些字段类型,是否缺省等&#…

Linux操作系统精讲之高级IO

代码在: https://github.com/sjmshsh/System-Call-Learn 通过阅读本篇文章,你可以收获: 理解五种IO模型的基本概念,重点是IO多路转接掌握select,poll,epoll系统调用接口并实现简易的TCP服务器理解epoll的…

10、创建不同类型的工程

文章目录10、创建不同类型的模块10.1 创建Java模块10.2 创建Java Web模块1 IDEA中配置Tomcat2 创建Web工程3 配置Web工程并运行4 乱码的解决10.3 创建Maven Java模块1 Maven的介绍2 Maven的配置3 Maven Java工程的创建4 编写代码及测试10.4 创建Maven Web模块1 创建Maven的Web模…

java基础语法——断点调试与数据加密(基础语法练习学习)

目录 Eclipse的断点调试 基础语法的练习 Eclipse的断点调试 作用:查看程序执行流程和调试程序 断点: 就是一个标记,就是我们经常用到的debug(检查程序错误,我们用到的是debug as) A–哪里加?—— 在实际的程序行号…

Knowledge-based-BERT(二)

多种预训练任务解决NLP处理SMILES的多种弊端,代码:Knowledge-based-BERT,原文:Knowledge-based BERT: a method to extract molecular features like computational chemists,代码解析继续K_BERT_WCL_pretrain。模型框…

Java多线程 - 线程安全和线程同步解决线程安全问题

文章目录线程安全问题线程同步方式一: 同步代码块方式二: 同步方法方式三: Lock锁线程安全问题 线程安全问题指的是: 多个线程同时操作同一个共享资源的时候可能会出现业务安全问题,称为线程安全问题。 举例: 取钱模型演示 需求:小明和小红是一对夫妻&am…

建单向链表-C语言实现

任务描述 本关需要你建立一个带头结点的单向链表。 相关知识 什么是链表?链表和二叉树是C语言数据结构的基础和核心。 链表有多种形式,它可以是单链接的或者双链接的,可以是已排序的或未排序的,可以是循环的或非循环的。 本关让我们来学习单链表。 单链表 单向链表(单…

XC-16 SpringSecurity Oauth2 JWT

SpringSecurityOauth2用户认证需求分析用户认证与授权单点登录需求第三方认证需求用户认证技术方案单点登录技术方案Oauth2认证Oauth2认证流程2.2.2Oauth2在本项目中的应用SpringSecurity Oauth2认证解决方案SpringSecurityOauth2研目标搭建认证服务器导入基础工程创建数据库Oa…

一起自学SLAM算法:9.2 LSD-SLAM算法

连载文章,长期更新,欢迎关注: 下面将从原理分析、源码解读和安装与运行这3个方面展开讲解LSD-SLAM算法。 9.2.1 LSD-SLAM原理分析 前面已经说过,LSD-SLAM算法是直接法的典型代表。因此在下面的分析中,首先介绍一下直…

学习笔记:Java 并发编程④

若文章内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系博主删除。 视频链接:https://www.bilibili.com/video/av81461839配套资料:https://pan.baidu.com/s/1lSDty6-hzCWTXFYuqThRPw&am…

CSS语法格式与三种引入方式

文章目录第一章——CSS简介1.1 CSS语法格式1.2 CSS 位置1.3 CSS引入方式1.3.1.行内样式表(内联样式表)1.3.2 外部样式表1.3.3 内部样式表第一章——CSS简介 1.1 CSS语法格式 CSS 规则由两个主要的部分构成:选择器以及一条或多条声明。 选择…

C语言全局变量和局部变量

局部变量定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。例如:intf1(int a){ int b,c;//a,b,c仅在函数f1()内有效 return abc; } i…

各种CV领域 Attention (原理+代码大全)

人类在处理信息时,天然会过滤掉不太关注的信息,着重于感兴趣信息,于是将这种处理信息的机制称为注意力机制。 注意力机制分类:软注意力机制(全局注意)、硬注意力机制(局部注意)、和…