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

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

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

 


提出背景

论文: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 魔改

YOLO v9 魔改

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

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

相关文章

进程之守护进程

目录 1、Linux进程的类型: 2、守护进程的特点: 3、守护进程的创建步骤 1、Linux进程的类型:</

RUUFFY、由利、希亦内衣洗衣机怎么样?测评对比谁更好?

我们传统的洗衣机其实并不可以用来清洗内衣裤&#xff0c;以及袜子这类小型的衣物&#xff0c;容易出现细菌的交叉感染&#xff0c;而且传统洗衣机单单清洗这些小件衣物并不划算&#xff0c;需要很多的水量&#xff0c;有些全自动的大型洗衣机需要更多的衣物同时清洗才能正常工…

110. 平衡二叉树【简单】

110. 平衡二叉树【简单】 题目描述&#xff1a; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;r…

利用MiniZinc进行约束建模——以着色问题为例

文章目录 1. 什么是 MiniZinc ?2. 安装方法(Windows)3. 求解着色问题3.1 问题描述3.2 建立 MiniZinc 模型3.3 运行求解1. 什么是 MiniZinc ? 约束满足性问题(Constraint Satisfaction Problem,CSP)判断在有限变量与有限约束条件下,是否存在满足所有约束条件的变量赋值…

chmod+x 命令

将linux上旧的four_diag.sh文件删除&#xff0c;从本地重新上传后&#xff0c;不能执行&#xff0c;需要执行命令&#xff1a; chmod x four_diag.sh 才行 chmod x 的意思就是给执行权限 命令格式&#xff1a; chmod x 文件名 LINUX下不同的文件类型有不同的颜色&#xff1…

IDEA修改git提交者的信息

git提交后&#xff0c;idea会记录下提交人的信息&#xff0c;如果不修改提交人信息的话&#xff0c;会有一个默认值。避免每次提交都要填提交人信息&#xff0c;直接设置成自己想要的默认值&#xff0c;该怎么操作&#xff1f; 提交的时候在这里修改提交人信息 避免每次都去设置…

和鲸科技受邀参与湖南省气象信息中心开展人工智能研究型业务支撑平台学术交流

为推进湖南省机器学习统一平台建设&#xff0c;2 月 29 日&#xff0c;湖南省气象信息中心开展学术讲座活动&#xff0c;活动由中心副主任冯冼主持&#xff0c;中心业务骨干、湖南省气象台、湖南分院等技术人员参加。 本次讲座邀请上海和今信息科技有限公司&#xff08;简称“…

【企业动态】欢迎法国客户来访东胜物联,深入探讨智能化合作

本周&#xff0c;来自法国的客户莅临我司工厂进行实地参观考察。客户是一家历史悠久的设备供应商&#xff0c;其产品涵盖冷链、餐饮、农业等多个行业应用领域&#xff0c;正致力于从传统设备向智能设备转型&#xff0c;希望将设备接入物联网。在此次访问中&#xff0c;他们参观…

fastapi_mail发送邮件,邮件附件文件重命名

当fastapi_mail发送邮件的时候&#xff0c;想对附件的名称进行重命名 以下是fastapi_mail下的schemas.py的源码 import os from enum import Enum from mimetypes import MimeTypes from typing import Dict, List, Optional, Unionfrom pydantic import BaseModel, EmailStr,…

HarmonyOS | UI开发 (一) | 基础组件(Text/Span,TextInput/TextArea,Button,Image)

文章目录 前言一、基础组件1.1.Text的概述1.2.Text的创建方式- string字符串创建- 引用Resource资源 1.3.Text自定义文本样式- 通过textAlign属性设置文本对齐样式- 通过textOverflow属性控制文本超长处理- 通过lineHeight属性设置文本行高- 通过copyOption属性设置文本是否可复…

python大数据分析游戏行业中的 Apache Kafka:用例 + 架构!

python大数据分析游戏行业中的 Apache Kafka&#xff1a;用例 架构&#xff01; 这篇博文探讨了使用 Apache Kafka 的事件流如何提供可扩展、可靠且高效的基础设施&#xff0c;让游戏玩家开心并让游戏公司取得成功。讨论了游戏行业中的各种用例和架构&#xff0c;包括在线和移…

C++初阶篇----类与对象中卷

目录 引言1. 构造函数1.1概念1.2 特性 2. 析构函数2.1 概念2.2 特性 3. 拷贝构造函数3.1 概念3.2特征 4. 赋值运算符重载4.1 运算符重载4.2 赋值运算符重载4.3 前置和后置重载 5.日期类的实现6.const成员7.取地址及const取地址操作符重载 引言 当一个类既没有成员变量又没有成…

汉诺塔问题(C语言)

一&#xff1a;问题 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从…

wordpress相册gallery的几种不同调用方式

常规方式调用 if ( $gallery get_post_gallery( get_the_ID() ) ) :echo $gallery; endif; 调用循环中的所有图片并可以自字义样式 if ( $gallery get_post_gallery( get_the_ID(), false ) ) :foreach ( $gallery[src] AS $src ) {echo <img src" . $src . "…

QVector和QString互相转换

我的画图项目需要读写自定义虚线样式 {...comboBox_penStyle new QComboBox;QStringList SL_penStyle;SL_penStyle << "______" << "----------" << ".........." << "-.-.-.-.-." << "-..-..-..…

【OJ】日期差值与日期累加

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. KY111 日期差值1.1 题目分析1.2 代码 2. KY258 日期累加2.1 题目分析2.2 代码 1. KY111 日期差值 1.1 题目分析 日期之间比较可能会出现给的两个年月日都不相同&#xff0c;这个就不好作差&#xff0c;每个月给的…

LeetCode每日一题 二叉树的最大深度(二叉树)

题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#xff1a; 输入&#xff1a;root [1,nul…

VUE:key属性的作用

在 Vue.js 中&#xff0c;key属性的主要作用是帮助 Vue 在进行 DOM 更新时&#xff0c;能够更准确地识别哪些节点可以复用。 当key值发生变化时&#xff0c;Vue 会执行以下步骤&#xff1a; 1.查找旧节点&#xff1a;Vue 会查找虚拟 DOM 中具有旧key值的节点。 2.匹配新节点…

Kubernetes编排系统:实现云原生应用的自动化部署与管理

随着云计算和容器技术的日益普及,如何高效、自动化地部署和管理应用成为了企业面临的重要挑战。Kubernetes,作为一个开源的容器编排系统,凭借其强大的功能、灵活性和可扩展性,逐渐成为了业界的宠儿。本文将首先简要介绍Kubernetes编排系统的基本概念,然后详细阐述其核心组…

前端知识点、技巧、webpack、性能优化(持续更新~)

1、 请求太多 页面加载慢 &#xff08;webpack性能优化&#xff09; 可以把 图片转换成 base64 放在src里面 减少服务器请求 但是图片会稍微大一点点 以上的方法不需要一个一个自己转化 可以在webpack 进行 性能优化 &#xff08;官网有详细描述&#xff09;