【YOLO v5 v7 v8 小目标改进】新CNN架构 InceptionNeXt:怎么让大卷积核既好用又快

新CNN架构 InceptionNeXt:怎么让大卷积核既好用又快

    • 提出背景
      • 问题: 如何提高大核心卷积的效率,同时保持或提升模型性能?
    • 改进思路
      • MetaNeXt
      • Inception深度卷积
      • InceptionNeXt
    • 小目标涨点
      • YOLO v5 魔改
      • YOLO v7 魔改
      • YOLO v8 魔改

 


提出背景

论文:https://arxiv.org/pdf/2303.16900.pdf

代码:https://github.com/sail-sg/inceptionnext

 

受到视觉变换器(ViTs)长距离建模能力的启发,近期广泛研究并采用了大核心卷积技术,以扩大感受野并提高模型性能,像是ConvNeXt的杰出工作所示,它采用了7×7深度卷积。

虽然这种深度操作只消耗少量的浮点操作数(FLOPs),但由于高内存访问成本,在强大的计算设备上大大降低了模型效率。

目前仍不清楚如何在保持性能的同时加速基于大核心的CNN模型。

为了解决这一问题,受到Inception的启发,我们提议将大核心深度卷积分解为沿着通道维度的四个并行分支,即小正方形核心、两个正交的带状核心以及一个恒等映射。

通过这种新型的Inception深度卷积,我们构建了一系列网络,命名为IncepitonNeXt,它们不仅具有高吞吐量,还保持了竞争力的性能。

在这里插入图片描述
InceptionNeXt模型在保持与ConvNeXt(大卷积核)相近的准确率的同时,训练速度提高了约1.6倍,这表明InceptionNeXt在效率和性能之间取得了良好的平衡。

  1. 部分通道不进行深度卷积操作:我们的初步发现表明,并非所有输入通道都需要进行计算成本高昂的深度卷积操作。

    因此,我们提出只对部分通道进行深度卷积操作,而其他通道保持不变。

    这是因为深度卷积操作的高计算成本特性。

  2. 将大核心深度卷积分解为多组小核心卷积:接着,我们提出将大核心的深度卷积分解为几组小核心的卷积,采用Inception风格。

    具体来说,对于进行处理的通道,1/3的通道使用3×3的核心,1/3的通道使用1×k的核心,剩余1/3的通道使用k×1的核心。

    这种方法是因为大核心深度卷积的内存访问成本高和速度慢的特征。

问题: 如何提高大核心卷积的效率,同时保持或提升模型性能?

  • 解法: 通过改进大核心卷积的结构和计算方法来提高效率,同时保持性能。
    • 子特征1: 采用堆叠3×3卷积替代大核心卷积,如VGG模型所示。
      • 原因: 通过重复使用小核心卷积,可以在不牺牲感受野的情况下提高计算效率。
    • 子特征2: 将k×k卷积分解为1×k和k×1的卷积顺序堆叠,如Inception v3所做。
      • 原因: 该方法通过减少参数数量和计算量来提高大核心卷积的效率。
    • 子特征3: 分解大核心卷积为多个小组的小核心卷积,以及采用结构重参数化技术等。
      • 原因: 这些方法旨在简化大核心卷积的计算,提高模型的运行速度,同时尽可能保持模型的性能。

在这里插入图片描述
四种不同的模型块结构:MetaFormer块、MetaNeXt块、ConvNeXt块和InceptionNeXt块。

这些块是构建深度学习模型时的基本单元。

MetaFormer块是一个基础结构,包含了标准的MLP和Normalization层,以及一个用于空间信息交互的Token Mixer。

MetaNeXt块是从ConvNeXt块简化而来的,合并了MetaFormer的两个残差子块。

ConvNeXt块采用了7x7的深度卷积作为Token Mixer,而InceptionNeXt块则采用了分解的Inception风格深度卷积,将大核心卷积分解为更小的多个并行分支,这样做可以提高效率。

改进思路

MetaNeXt提供了改进空间信息处理效率的初始框架,Inception深度卷积进一步针对深度卷积的效率进行了优化,最后,InceptionNeXt模型整合了这些优化,构建出既高效又性能卓越的CNN模型。

  1. MetaNeXt构建相当于大楼的设计蓝图

    • 就像建筑师设计摩天大楼的蓝图一样,MetaNeXt提供了一个初始框架,确立了基本结构和核心功能。这一步骤确保了大楼(即模型)在满足基本需求的同时,能够高效处理空间信息,为后续的优化和提升奠定基础。
  2. Inception深度卷积的创新类似于引入高效的建筑材料和先进的施工技术

    • 正如建筑师选择轻质但强度高的材料,以及采用先进技术来提升建造效率和建筑性能,Inception深度卷积通过优化深度卷积操作,将大核心操作分解为多个小核心操作,类似于采用更高效的材料和技术来提升整个大楼的建造效率和性能。
  3. InceptionNeXt模型的构建就像是最终将设计蓝图和先进材料技术整合,建成一座摩天大楼

    • 在有了设计蓝图(MetaNeXt构建)和高效的建筑材料及技术(Inception深度卷积)之后,建筑师和工程师合作,将这些元素整合起来,建造出既美观又高效的摩天大楼。InceptionNeXt模型正是将MetaNeXt的基础框架和Inception深度卷积的优化技术整合在一起,构建出一个既高效又性能卓越的CNN模型,它能够在处理复杂视觉任务时展现出卓越的性能。

就像是从设计蓝图到选择材料和技术,再到最终建造出一座现代化、高效的摩天大楼的整个过程。

MetaNeXt

  • 问题: 如何提高模型在处理空间信息时的效率和性能?需要一个高效处理空间信息的模型结构。

  • 解法: 提出MetaNeXt块,将深度卷积抽象为token混合器,负责空间信息交互。

    • 子特征1: 使用TokenMixer简化深度卷积过程。
      • 原因: 为了在保持空间信息交互能力的同时提高处理速度和简化模型结构。
    • 子特征2: 在MetaNeXt块中采用标准化和MLP模块以及1×1卷积。
      • 原因: 这些操作有助于进一步提升模型的特征提取能力和计算效率。

提出MetaNeXt块,使用TokenMixer简化深度卷积,增加标准化和MLP模块以及1×1卷积,以提高处理速度和简化模型结构,同时保持空间信息交互能力。

MetaNeXt块的设计提供了改进深度卷积处理效率和性能的基础框架,为进一步的优化铺平了道路。

Inception深度卷积

  • 问题: 如何解决传统大核心深度卷积在模型速度上的瓶颈?

  • 解法: 提出Inception深度卷积,通过分解大核心操作为多个小核心操作来提高效率。

    • 子特征1: 对输入通道进行分组,部分通道保持不变,作为恒等映射分支。
      • 原因: 研究表明,对于深度卷积层,处理部分通道就足够,这有助于减少计算负担。
    • 子特征2: 将处理的通道通过不同的小核心分支进行并行处理。
      • 原因: 通过避免使用大的方形核心,而是采用小的方形核心和带状核心,可以在不牺牲感受野的前提下提高计算效率。

通过Inception深度卷积的设计,将大核心操作分解为多个小核心操作,对输入通道进行分组并通过不同的小核心分支并行处理。

Inception深度卷积的提出直接针对MetaNeXt块中深度卷积的效率问题,通过更细致的操作优化,实现了更高的计算效率和性能。

这一创新是基于MetaNeXt设计理念的进一步发展和精细化。

InceptionNeXt

  • 问题: 如何构建一个既高效又性能卓越的CNN模型?
  • 解法: 基于InceptionNeXt块构建一系列模型,采用四阶段框架,并根据ConvNeXt的设计指导原则进行调整。
    • 子特征1: 模型采用四阶段框架,与ConvNeXt和ResNet类似。
      • 原因: 这种框架结构被证明能有效提升深度学习模型的性能,同时保持良好的计算效率。
    • 子特征2: 利用Inception深度卷积在每个阶段内部提升效率和性能。
      • 原因: Inception深度卷积通过分解大核心操作为多个并行的小核心操作,实现了更好的速度-准确度权衡。

基于InceptionNeXt块,采用四阶段框架,并根据ConvNeXt的设计指导原则进行调整,整合Inception深度卷积的优化。

InceptionNeXt模型的构建是对MetaNeXt构建和Inception深度卷积设计理念的实际应用和综合体现。

它将MetaNeXt的基础设计理念和Inception深度卷积的具体实现策略相结合,通过一系列精心设计的模型框架,实现了对深度学习模型性能和效率的最优化。

通过这种方法论的分解,我们不仅解决了传统深度卷积操作效率低下的问题,还提出了一种新的CNN架构,即InceptionNeXt,它通过简化和优化卷积操作来提高模型的整体性能和效率。

小目标涨点

更新中…

YOLO v5 魔改

YOLO v7 魔改

YOLO v8 魔改

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【改进算法】【IHAOAVOA】天鹰优化算法和非洲秃鹫混合优化算法

目录 1 主要内容 IHAOAVOA流程图 主要创新点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现《IHAOAVOA: An improved hybrid aquila optimizer and African vultures optimization algorithm for global optimization problems》,天鹰优化算法&am…

【c++】理解vec.push_back(vector<int>())

vector<vector> vec; vec.push_back(vector()); vec.back().push_back(10); 定义一个二维向量&#xff08;动态数组&#xff09;: vector<vector> vec; 这行代码定义了一个名为vec的变量&#xff0c;它是一个向量&#xff08;动态数组&#xff09;&#xff0c;其中…

Apache Echarts介绍与入门

介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网地址&#xff1a;https://echarts.apache.org/zh/index.html 入门案例 Apache Echarts官方提供的快…

MySQL误truncate截断后数据恢复2024.3.1

近期很多MySQL数据丢失情况&#xff0c;很多是人为误操作导致。MySQL数据库丢失可能由truncate截断表、delete删除表中数据行、delete删除表、delete删除库、操作系统rm删除数据库文件、硬盘坏道等情况导致。本案例是一个误截断表导致的丢失。 不管哪种情况&#xff0c;第一时…

STM32USART串口数据包

文章目录 前言一、介绍部分数据包两种包装方式&#xff08;分割数据&#xff09;HEX数据包文本数据包 数据包的收发流程数据包的发送数据包的接收固定包长的hex数据包接收可变包长的文本数据包接收 二、实例部分固定包长的hex数据包接收连接线路代码实现 可变包长的文本数据包接…

JavaScript DOM操作笔记记录回忆总结

一、什么是DOM&#xff1f; 1、通过 HTML DOM&#xff0c;可访问 JavaScript HTML 文档的所有元素。 2、当网页被加载时&#xff0c;浏览器会创建页面的文档对象模型&#xff08;Document Object Model&#xff09; 二、操作DOM 1、在操作DOM之前&#xff0c;我们需要先获取到…

设计模式-结构型模式-外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。[DP] 首先&#xff0c;定义子系统的各个组件接口和具体实现类&#xff1a; // 子系统组件接…

1美元持有ZKFair PFP-CyberArmy,潜在收益分析

3月2日&#xff0c;ZKFair PFP-CyberArmy 将在 Element 上正式开始Public Sale。

yolov9从头开始训练

yolov9从头开始训练 一、准备数据集 数据集相关文件存放布局如下 yolov9-datasets ├── train │ ├── images │ │ ├── image.jpg │ │ ├── │ └── labels │ ├── image.txt │ ├── ├── valid │ ├── images │ │ ├── image.jpg │ │ ├─…

Android minigbm框架普法

Android minigbm框架普法 引言 假设存在这么一个场景&#xff0c;我的GPU的上层实现走的不是标准的Mesa接口&#xff0c;且GPU也没有提专门配套的gralloc和hwcompoer实现。那么我们的Android要怎么使用到EGL和GLES库呢&#xff0c;并且此GPU驱动是支持drm实现的&#xff0c;也有…

【Sql Server】Update中的From语句,以及常见更新操作方式

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

翻译论文:Beating Floating Point at its Own Game: Posit Arithmetic(一)

仅作记录学习使用&#xff0c;侵删 原文Beating Floating Point at its Own Game: Posit Arithmetic 参考翻译Posit: 替换IEE754的新方式 | SIGARCH 摘要 IEEE标准754浮点数&#xff08;浮点数&#xff09;的直接接点替换 Posit的优势 不需要区间算术或可变大小操作数 如…

Freesia 项目引用的依赖

UML图 项目总依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version> </parent> <groupId>com.freesia</groupId> <artifa…

Java ElasticSearch面试题

Java ES-ElasticSearch面试题 前言1、ElasticSearch是什么&#xff1f;2. 说说你们公司ES的集群架构&#xff0c;索引数据大小&#xff0c;分片有多少 &#xff1f;3. ES的倒排索引是什么&#xff1f;4. ES是如何实现 master 选举的?5. 描述一下 ES索引文档的过程&#xff1a;…

【Kubernetes】k8s中容器之间、pod之间如何进行网络通信?

目录 PodKubernetes 网络模型同一Pod上的容器之间进行通信同一Node上的不同Pod之间进行通信不同Node上的Pod之间进行通信Service参考 Pod 首先来回顾一下Pod&#xff1a; Pod 是用于构建应用程序的最小可部署对象。单个 Pod 代表集群中正在运行的工作负载&#xff0c;并封装一…

mybatisPlus中 Mapper层以及Service层的方法 整理分类 以及代码实操

MyBatis-Plus是一个基于MyBatis的增强工具&#xff0c;旨在简化开发、提高效率。它提供了通用的mapper和service&#xff0c;可以在不编写任何SQL语句的情况下&#xff0c;快速实现对单表的CRUD、批量、逻辑删除、分页等操作。 功能代码测试前提&#xff1a; 需要对mybatisPl…

git介绍4.2

git(版本控制工具) 一、git 介绍 1、git是目前世界上最先进的分布式版本控制系统&#xff0c;可以有效&#xff0c;高速的处理从小到大的项目版本管理。 2、git是linux torvalds 为了帮助管理linux内核开发二开发的一个开放源码的版本控制软件。 3、git作用&#xff1a;更好…

Kubernetes(k8s第二部分)

资源清单相当于剧本 什么是资源&#xff1a; k8s中所有的内容都抽象为资源&#xff0c;资源实例化后&#xff0c;叫做对象。 1.K8S中的资源 集群资源分类 名称空间级别&#xff1a; kubeadm k8s kube-system kubectl get pod -n default 工作负载型资源&#xff0c;&a…

光栅化算法

多数计算机图形图像&#xff0c;是通过光栅显像显示给用户的&#xff0c;这种系统将图像作为像素阵列进行显示&#xff0c;像素&#xff08;pixel&#xff09;即图像元素&#xff08;picture element&#xff09;的简称。这些像素采用RGB颜色空间。本文讨论光栅显像的基本原理&…

基于ceph-deploy部署Ceph 集群

Ceph分布式存储一、存储基础1、单机存储设备1.1 单机存储的问题 2、分布式存储(软件定义的存储SDS)2.1 分布式存储的类型 二、Ceph简介1、Ceph优势2、Ceph架构3、Ceph 核心组件4、OSD 存储后端5、Ceph 数据的存储过程6、Ceph 版本发行生命周期 三、Ceph 集群部署1、 基于 ceph-…