YOLOv10改进,YOLOv10主干网络替换为VanillaNet( CVPR 2023 华为提出的全新轻量化架构),大幅度涨点

embedded/2025/2/15 6:06:53/

在这里插入图片描述

摘要

基础模型的核心理念是“更多即不同”,这一理念在计算机视觉和自然语言处理领域取得了惊人的成功。然而,变压器模型的优化挑战和固有复杂性呼唤一种向简化转变的范式。在本研究中,引入了 VanillaNet,一种拥抱设计优雅的神经网络架构。通过避免高深度、快捷方式和复杂操作如自注意,VanillaNet 设计简洁而功能强大。每一层都精心设计为紧凑和简洁,训练后修剪非线性激活函数以恢复原始架构。VanillaNet 克服了固有的复杂性挑战,非常适合资源受限的环境。其易于理解和高度简化的架构为高效部署开辟了新可能。广泛的实验表明,VanillaNet 在性能上与著名的深度神经网络和视觉变压器相当,展示了极简主义在深度学习中的力量。VanillaNet 的这一愿景之旅具有重新定义基础模型格局和挑战现状的巨大潜力,为优雅和高效的模型设计开辟了新路径。

模型细节:

VanillaNet-6 模型的架构,仅由 6 个卷积层组成,非常容易在任何现代硬件上使用。输入特征的大小在每个阶段都被下采样,而通道数则加倍,这借鉴了经典神经网络如 AlexNet 和 VGGNet 的设计。结构如下图所示:
在这里插入图片描述

该结构通过避免深度、高度复杂的操作(如自注意力机制)和快捷连接,实现了设计上的简洁优雅。以下是 VanillaNet 的不同版本的架构细节:
在这里插入图片描述

  • stem: 初始卷积层,使用 4×4 的卷积核,输出通道数为 512,步幅为 4。
  • stage1: 第一阶段,特征图大小为 56×56,包括一个 1×1 的卷积层,输出通道数为 1024,之后接一个 2×2 的最大池化层。
  • stage2: 第二阶段,特征图大小为 28×28,包括一个 1×1 的卷积层,输出通道数为 2048,之后接一个 2×2 的最大池化层。
  • stage3: 第三阶段,特征图大小为 14×14,包括一个或多个 1×1 的卷积层,输出通道数为 4096,之后接一个 2×2 的最大池化层。层数根据不同版本的 VanillaNet 变化(如 VanillaNet-7 有 1 层,VanillaNet-8 有 2 层,以此类推)。
  • stage4: 第四阶段,特征图大小为 7×7,包括一个 1×1 的卷积层,输出通道数为 4096。
    classifier: 分类器部分,首先是一个 7×7 的平均池化层,然后是一个 1×1 的卷积层,输出通道数为 1000(对应 ImageNet 的 1000 个分类)。
  • 上表中列出了不同版本的 VanillaNet 的详细架构。对于 VanillaNet-13-1.5×,所有卷积层的通道数乘以 1.5。对于 VanillaNet-13-1.5׆,在 stage2、stage3 和 stage4 采用了自适应池化,特征图大小分别调整为 40×40、20×20 和 10×10。

官网表显示了使用不同网络在ImageNet数据集上的分类结果。列出了参数数量、FLOPs、深度、GPU 延迟和准确性以进行比较。在过去的几十年里,研究人员专注于在 ARM/CPU 上最小化 FLOPs 或延迟&


http://www.ppmy.cn/embedded/119073.html

相关文章

cmd命令大全详解

CMD是Windows操作系统中的命令行解释器,它允许用户通过键入命令来执行各种操作。以下是一些常用的CMD命令及其简要说明: dir - 显示目录中的文件和子目录。 cmddir cd - 更改当前目录。 cmdcd [目录路径] mkdir - 创建新目录。 cmdmkdir [目录名] rmd…

compose remember 作用

在编程和软件开发领域,尤其是在使用Jetpack Compose进行Android应用开发时,“compose”和“remember”具有特定的含义和用途。 Compose的含义 Compose在Jetpack Compose框架中,主要指的是一种用于构建UI的声明式编程范式。它允许开发者以声…

Vue之axios请求

Vue之axios请求 axios请求, 是Vue前端框架非常重要的一部分, 今天我们就讲解axios请求, 到底有什么作用, 以及会告诉大家axios的常见用法。 axios请求, 是网页向后端发起请求, 后端吧数据给我们网页, 这是一个前后端交互的过程。当我们学会了axios, 我们可以实现前端和后端练…

html TAB切换按钮变色、自动生成table

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

初始爬虫9

1.元素定位后的操作 “find_element“仅仅能够获取元素&#xff0c;不能够直接获取其中的数据&#xff0c;如果需要获取数据需要使用以下方法”。下面列出了两个方法&#xff1a; 获取文本 element.text 通过定位获取的标签对象的 text 属性&#xff0c;获取文本内容 获取属性…

思科安全网络解决方案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

.NET IIS发布项目后设置虚拟路径访问文件 404

解决方案: 找到Startup.cs中适当配置静态文件中间件&#xff1a; 确保调用了UseStaticFiles中间件 public void Configure(IApplicationBuilder app) {app.UseStaticFiles(); // 确保这行在UseRouting之前app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoin…

木舟0基础学习Java的第三十一天(SpringMVC,xml式和注解式开发,携带数据,取值,视图解析)

SpringMVC Mybatis: 优化了dao层 降低了java与dao层的耦合 Spring:是大管家 整合和管理mybatis与springmve(是spring中子模块) SpringMVC:优化了servlet层 降低了java与servlet的耦合 为什么要使用 springMVC? SpringMVC 是一种基于 Java&#xff0c;实现了 Web MVC 设计模…