32_ConvNeXt网络详解
1.1 简介
ConvNeXt是一种计算机视觉模型,由Meta AI(前Facebook AI)的研究人员在2022年提出,它旨在探索卷积神经网络(CNN)在图像识别任务上的潜力,尤其是在与当时流行的Vision Transformer(ViT)模型相比较时。ConvNeXt设计的核心目标是结合Transformer模型中的设计理念,如大 kernel size、层归一化位置、 MLP结构等,来升级传统的卷积神经网络架构,从而在不牺牲效率的情况下,达到或超越基于Transformer的模型的性能。
关键特性与设计原则
-
大核卷积(Large Kernel Convolution): ConvNeXt 引入了大核卷积层,类似于Transformer中的多头自注意力机制,能够捕捉更广泛的上下文信息。这有助于提高模型对图像中长距离依赖关系的理解能力。
-
层归一化(Layer Normalization): 与传统CNN中常用的批量归一化不同,ConvNeXt在每个卷积块之后使用层归一化,这与Transformer模型中的做法一致,有助于稳定训练过程并加速收敛。
-
MLP结构(Modified MLP Block): ConvNeXt采用了类似于ViT中的MLP(多层感知机)结构,即两层全连接层,中间夹带一个GELU激活函数,但将这种结构融入到卷积网络中,代替了传统的卷积-归一化-激活函数的组合,增强模型的表达能力。
-
深分层结构(Deep Hierarchical Structure): 类似于ResNet等经典网络,ConvNeXt采用深度分层的设计,通过逐步下采样和增加特征维度来构建多尺度特征表示。这样的设计有助于模型学习从低级到高级的视觉特征。
-
简洁性与可扩展性: ConvNeXt保持了架构的简洁性,易于理解和实现,同时提供了多种规模的变体(例如tiny, small, base, large),以适应不同资源限制下的应用场景。
性能表现
在多个标准基准测试上,包括ImageNet分类、COCO目标检测和ADE20K语义分割等,ConvNeXt展示出了与最先进的Transformer模型相当甚至更好的性能,同时保持了训练和推理的高效性。它的成功证明了经过精心设计的卷积网络依然具有强大的竞争力,并且在某些场景下可能比Transformer更为优越,尤其是在计算资源有限的环境下。
应用领域
由于其出色的性能和效率,ConvNeXt已被广泛应用于图像分类、物体检测、语义分割以及其他计算机视觉任务中,成为研究者和工程师的一个重要工具箱成员,尤其是在追求高精度和实时处理的应用场景下。
总之,ConvNeXt是对传统卷积神经网络的一次现代化升级,它融合了Transformer的优秀设计思想,展现了卷积网络在现代深度学习时代的新活力。

1.2 模型结构
ConvNeXt-T模型结构图:

Layer Scale指的就是一个特征图的缩放。
1.3 网络的设计与实验
这个网络模型的结构很精简,而且结构上看上去也“没什么亮点”,那么它为什么能取得比较优异的性能呢?
作者认为,随着信息技术和时代的发展,各种新的架构和优化策略促使了transformer拥有了更好的效果,那么如果我们使用相同的策略去训练CNN,是否也能达到更好的效果呢?作者进行了一些列的实验。

Macro design
在这一部分又分成两个小部分,分别是stage ratio和patchify stem。
stage ratio:在Resnet50当中,stage间的堆叠比例大致是1:1:2:1,而在swin transformer中它对应四个stage重复block的比例大概是1:1:3:1。所以作者就将resnet50的stage的堆叠比例也改为了1:1:3:1。修改之后,作者发现准确率由78.8上升为79.4,GFLOPS上升。
patchify stem:stem指的是最初的下采样模块,比如说resnet50中的stem就是由conv1中的7x7卷积和下面的那个3x3最大池化下采样组成的。在swin transformer中,是采用4x4,步距为4的卷积得到的。所以作者就将resnet50的stem也替换成了 swin transformer的stem,替换之后,准确率上升0.1个点。GFLOPS下降。

ResNeXt
下图左为resnet的瓶颈结构(像一个沙漏,两头粗中间细)。
下图右为resneXt的结构,采用的是组卷积。
作者将组卷积极端化,直接每个通道安排一个卷积核,进行dw卷积。这么做之后,准确率由79.5降至78.3,GFLOPS大量降低。接下来作者增大了输入特征的维度(channel)使输入通道数和swin transformer保持一致都是96。这么做以后,准确率由78.3提升至80.5。

Inverted Bottleneck
倒残差,两头细中间粗,像一个坚果。
作者比较了一下,然后将resnet中的bottleneck变成了inverted bottleneck。然后准确率上升。

Large kernel size
将DW卷积模块上移,准确率从80.6下降为79.9。作者认为这个DW卷积有点像MSA,而MSA是放在MLP前面的,所以他就将DW放在了1x1前面。
然后调整DW卷积的卷积核尺寸。作者发现当size为7的时候准确率趋于饱和了,再增大就会发现准确率还出现降低的一个情况。而这个7正好和swin transformer窗口的大小是一致的。

Micro designs
对细节进行了一些改动。替换激活函数(准确率为80.6)、更少的激活函数(81.3)、更少的归一化层(81.4)、LN代替BN(81.5)、借鉴patch merging采用单独的下采样层(82.0)


1.4 模型性能
与SWIN transformer相比,ConvNext效果要更好,且它的推理速度更快。
第四列的指标是指在a100这个GPU上每秒推理图片的数目,convnext-t推理速度相比swin transformer提升了47%

在COCO或者分割数据集上效果也很好。

1.5 模型参数
C代表每一个stage输入特征层的channel。B指每个stage重复block的次数。

附:GELU激活函数

相关文章:
32_ConvNeXt网络详解
1.1 简介 ConvNeXt是一种计算机视觉模型,由Meta AI(前Facebook AI)的研究人员在2022年提出,它旨在探索卷积神经网络(CNN)在图像识别任务上的潜力,尤其是在与当时流行的Vision Transformer&…...
Langchain[3]:Langchain架构演进与功能扩展:流式事件处理、事件过滤机制、回调传播策略及装饰器应用
Langchain[3]:Langchain架构演进与功能扩展:流式事件处理、事件过滤机制、回调传播策略及装饰器应用 1. Langchain的演变 v0.1: 初始版本,包含基本功能。 从0.1~0.2完成的特性: 通过事件流 API 提供更好的流式支持。标准化工具调用支持Tool…...
java导出PDF详细教程+各种踩坑
直接上代码了 所需依赖: <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.4.3</version> </dependency><dependency><groupId>com.itextpdf</groupId><art…...
【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks
阅读时间:2023-12-26 1 介绍 年份:2019 作者:Johannes von Oswald,Google Research;Christian Henning,EthonAI AG;Benjamin F. Grewe,苏黎世联邦理工学院神经信息学研究所 期刊&a…...
使用 tcpdump 进行网络流量捕获与分析
目录 安装 tcpdump基本用法捕获网络流量指定网络接口捕获特定主机的流量捕获特定端口的流量捕获特定协议的流量 常用选项保存捕获的数据包从文件读取数据包显示数据包内容指定捕获数据包的长度限制捕获的数据包数量显示详细信息过滤表达式 示例捕获本地回环接口上的HTTP流量捕获…...
k8s集群 安装配置 Prometheus+grafana
k8s集群 安装配置 Prometheusgrafana k8s环境如下:机器规划: node-exporter组件安装和配置安装node-exporter通过node-exporter采集数据显示192.168.40.180主机cpu的使用情况显示192.168.40.180主机负载使用情况 Prometheus server安装和配置创建sa账号&…...
【Java--数据结构】二叉树oj题(上)
前言 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 判断是否是相同的树 oj链接 要判断树是否一样,要满足3个条件 根的 结构 和 值 一样左子树的结构和值一样右子树的结构和值一样 所以就可以总结以下思路…...
微服务之间Feign调用
需使用的服务 FeignClient(name "rdss-back-service", fallback SysUserServiceFallback.class, configuration FeignConfiguration.class) public interface SysUserService {/*** 订单下单用户模糊查询*/GetMapping(value "/user/getOrderUserName")…...
【Qt】按钮的属性相关API
目录 一. QPushButton 二. QRadioButton 按钮组 三. QCheckBox Qt中按钮的继承体系如下图 QAbstractButton是一个抽象类,集成了按钮的核心属性和API 按钮说明QPushButton(普通按钮)最常见的按钮,用于触发操作或者事件。可以设…...
blender和3dmax和maya和c4d比较
Blender、3ds Max、Maya和Cinema 4D (C4D)都是强大的3D建模和动画软件,但它们各有特点和适用领域。以下是它们的比较: Blender: 开源免费全面的功能,包括建模、动画、渲染、视频编辑等学习曲线较陡峭,但社区支持强大适合独立艺术家…...
visio保存一部分图/emf图片打开很模糊/emf插入到word或ppt中很模糊
本文主要解决三个问题 visio保存一部分图 需求描述:在一个visio文件中画了很多个图,但我只想把其中一部分保存成某种图片格式,比如jpg emf png之类的,以便做后续的处理。 方法:超级容易。 选中希望保存的这部分图&…...
沙尘传输模拟教程(基于wrf-chem)
沙尘传输模拟教程(基于wrf-chem) 文章目录 沙尘传输模拟教程(基于wrf-chem)简介实验目的wrf-chem简介 软件准备wps、wrf-chem安装conda安装ncl安装ncap安装 数据准备气象数据准备下垫面数据准备 WPS数据预处理namelist.wps的设置geogrid.exe下垫面处理ungrib.exe气象数据预处理…...
使用 Python 进行测试(8)纯净测试
原文:Testing with Python (part 8): purity test 总结 如果你要使用综合测试(integrated tests): def test_add_new_item_to_cart(product, cart):new_product Product.objects.create(nameNew Product, price15.00)new_cart…...
python的tkinter、socket库开发tcp的客户端和服务端
一、tcp通讯流程和开发步骤 1、tcp客户端和服务端通讯流程图 套接字是通讯的利器,连接时要经过三次握手建立连接,断开连接要经过四次挥手断开连接。 2、客户端开发流程 1)创建客户端套接字 2)和服务端器端套接字建立连接 3&#x…...
Python面试题:Python中的异步编程:详细讲解asyncio库的使用
Python 的异步编程是实现高效并发处理的一种方法,它使得程序能够在等待 I/O 操作时继续执行其他任务。在 Python 中,asyncio 库是实现异步编程的主要工具。asyncio 提供了一种机制来编写可以在单线程内并发执行的代码,适用于 I/O 密集型任务。…...
【信号频率估计】MVDR算法及MATLAB仿真
目录 一、MVDR算法1.1 简介1.2 原理1.3 特点1.3.1 优点1.3.2 缺点 二、算法应用实例2.1 信号的频率估计2.2 MATLAB仿真代码 三、参考文献 一、MVDR算法 1.1 简介 最小方差无失真响应(Mininum Variance Distortionless Response,MVDR)算法最…...
HarmonyOS NEXT零基础入门到实战-第二部分
HarmonyOS NEXT零基础入门到实战-第二部分 Swiper 轮播组件 Swiper是一个 容器 组件,当设置了多个子组件后,可以对这些 子组件 进行轮播显示。(文字、图片...) 1、Swiper基本语法 2、Swiper常见属性 3、Swiper样式自定义 4、案例&…...
《小程序02:云开发之增删改查》
一、前置操作 // 一定要用这个符号包含里面的${}才会生效 wx.showToast({title: 获取数据成功:${colorLista}, })1.1:初始化介绍 **1、获取数据库引用:**在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用 cons…...
SQL执行流程、SQL执行计划、SQL优化
select查询语句 select查询语句中join连接是如何工作的? 1、INNER JOIN 返回两个表中的匹配行。 2、LEFT JOIN 返回左表中的所有记录以及右表中的匹配记录。 3、RIGHT JOIN 返回右表中的所有记录以及左表中的匹配记录。 4、FULL OUTER JOIN 返回左侧或右侧表中有匹…...
【前端】JavaScript入门及实战41-45
文章目录 41 嵌套的for循环42 for循环嵌套练习(1)43 for循环嵌套练习(2)44 break和continue45 质数练习补充 41 嵌套的for循环 <!DOCTYPE html> <html> <head> <title></title> <meta charset "utf-8"> <script type"…...
回归分析:机器学习预测建模的基石与工业实践
1. 项目概述:为什么回归分析是机器学习的“定海神针” 如果你刚接触机器学习,可能会被各种炫酷的算法名字搞得眼花缭乱——神经网络、支持向量机、随机森林……但在所有这些“明星”算法背后,有一个基础得不能再基础,却又重要得不…...
在Hermes Agent项目中集成Taotoken实现自定义模型供应商的切换
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Hermes Agent项目中集成Taotoken实现自定义模型供应商的切换 1. 场景与目标 Hermes Agent 是一个功能强大的智能体开发框架&…...
微信消息自动转发:5分钟实现跨群智能消息同步
微信消息自动转发:5分钟实现跨群智能消息同步 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 在微信群管理和团队协作中,你是否经常需要将重要消息手动转发到多个群聊…...
从锂电池热失控到锡须短路:高可靠性系统安全工程实践
1. 从“工程恐怖故事”到系统安全文化的反思最近在整理资料时,翻到一篇十多年前的旧文,标题叫《工程恐怖:机毁人亡》。文章汇集了几位航空与国防领域工程师亲历的、令人脊背发凉的真实事故案例。这些故事没有出现在主流新闻的头条,…...
PEX8796实战解析:从芯片特性到PCIe扩展设计的关键考量
1. PEX8796芯片基础认知与核心特性 第一次拿到PEX8796这颗PCIe交换芯片时,我盯着密密麻麻的引脚图发了半小时呆。作为PLX(现已被博通收购)的经典产品,这颗芯片在工业控制、服务器扩展等领域已经默默服役了十余年。实测中发现&…...
2026 年全球网络安全威胁态势与关键技术防御研究
摘要 本文基于 Security Affairs 2026 年第 576 期安全通讯披露的最新网络攻击事件与漏洞情报,系统分析 Linux 无文件远控、内核提权、AI 供应链投毒、钓鱼攻击工业化、关键信息基础设施入侵等新型威胁的技术机理、传播路径与危害特征。研究结合 Quasar Linux RAT、…...
免费公式识别神器:img2latex-mathpix本地部署完全指南
免费公式识别神器:img2latex-mathpix本地部署完全指南 【免费下载链接】img2latex-mathpix Mathpix has changed their billing policy and no longer has free monthly API requests. This repo is now archived and will not receive any updates for the foresee…...
FreeRTOS CPU使用率统计的坑:为什么你的数据跑了1小时就不准了?
FreeRTOS CPU使用率统计的陷阱与高精度优化方案 当你在嵌入式系统中集成FreeRTOS的CPU使用率统计功能时,可能会遇到一个令人困惑的现象:系统运行约1小时后,统计数值突然出现明显偏差。这不是你的代码出了问题,而是隐藏在32位变量和…...
如何快速提取B站视频素材:新手必备的DownKyi音画分离指南
如何快速提取B站视频素材:新手必备的DownKyi音画分离指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&am…...
【管理科学】【财务领域】【社会科学】人的需求来源和由需求诞生的企业/业务/行业及其上游产业链/中游产业链/下游产业链的所有内容03
编号 类型 (核心功能) 人的需求类型 (对应场景) 人需求得以满足的信息产品/实体产品/制造加工工具/原材料/其他 由需求诞生的企业/业务/行业及其上游产业链/中工产业链/下游产业链的所有内容及多学科数学建模方程式 /时序数学方程式及货币来源及业务财务模型 流动时序方程…...
