EffcientNetV2(2021):更快、更强、效率更高的EffcientNet!

EffcientNetV2: Smaller Models and Faster Training

EfficientNetV2:更小的模型和更快的训练

论文地址: https://arxiv.org/abs/2104.00298

本文介绍了 EfficientNetV2,这是一个新的卷积网络系列,与以前的模型相比,它具有更快的训练速度和更好的参数效率。

1、前言

EfficientNetV2是谷歌的MingxingTan与Quov V.Le对EfficientNet的一次升级,旨在保持参数量高效利用的同时尽可能提升训练速度。在EfficientNet的基础上,使用训练感知神经架构搜索NAS和缩放技术来优化训练速度和参数效率,然后从富含 Fused-MBConv 等新操作的搜索空间中搜索得到的;同时结合一种改进的渐进式学习方法,它会根据图像大小自适应调整正则化。两种改进的组合得到了本文的EfficientNetV2,它在多个基准数据集上取得了SOTA性能,且训练速度更快。在 ImageNet ILSVRC2012 上实现了 87.3% 的 top-1 准确率,比最近的 ViT 准确率高出 2.0%,同时使用相同的计算资源训练速度提高了 5 倍至 11 倍。

作者指出,可以通过在训练过程中逐渐增加图像大小来进一步加快训练速度,但这通常会导致准确性下降。 为了弥补这种准确性下降,我们提出了一种改进的渐进式学习方法,该方法可以根据图像大小自适应调整正则化(例如数据增强)。

作者认为,对不同的图像尺寸保持相同的正则化并不理想:对于同一个网络,小图像尺寸导致网络容量小,因此需要弱正则化; 反之亦然,大图像尺寸需要更强的正则化来对抗过度拟合。 基于这种见解,作者提出了一种改进的渐进式学习方法:在早期训练时期,我们用小图像尺寸和弱正则化(例如,dropout和数据增强)来训练网络,然后我们逐渐增加图像尺寸并添加更强的正则化 。 基于渐进调整大小,但通过动态调整正则化,我们的方法可以加快训练速度,而不会导致准确性下降。

2、EfficientNet 的训练瓶颈

1、Training with very large image sizes is slow:使用大尺寸图像进行训练速度很慢,于是作者在训练期间逐步调整图像大小和正则化。

2、Depthwise convolutions are slow in early layers but ef-fective in later stages:深度卷积在早期层很慢,但在后期很有效

EfficientNet 的另一个训练瓶颈就来自于广泛的深度卷积。 深度卷积比常规卷积具有更少的参数和 FLOP,但它们通常无法充分利用现代加速器,所以就有了Fused-MBConv,它能更好地利用移动或服务器加速器。

当在早期阶段 1-3 中应用时,FusedMBConv 可以提高训练速度,参数和 FLOP 的开销很小,但如果将 Fused-MBConv 替换所有MBConv(阶段 1-7),那么它会显着增加参数和 FLOP,同时也会降低训练速度。 因此,找到 MBConv 和 Fused-MBConv 这两个构建模块的正确组合并非易事,于是作者利用了神经架构搜索来自动搜索最佳组合。下表是用 Fused-MBConv 替换 MBConv,No fused 表示所有阶段都使用 MBConv,Fused stage1-3 表示在阶段 {2,3,4} 中将 MBConv 替换为 Fused-MBConv。

Fused-MBConv

它将 MBConv中的 升维 conv1x1和depthwise_conv3x3 替换为单个普通的 conv3x3

3、Equally scaling up every stage is sub-optimal:同样扩大每个阶段的规模并不是最优的办法

作者使用非均匀缩放策略在后期逐渐添加更多层。 此外,EfficientNets 会大幅扩大图像尺寸,导致内存消耗大、训练速度慢。 为了解决这个问题,作者稍微修改了缩放规则,并将最大图像尺寸限制为较小的值(480像素)。

3、EfficientNetV2 与V1 的主要区别

(1) 第一,EfficientNetV2 在早期层广泛使用 MBConv 和 Fused-MBConv。

(2) 第二,EfficientNetV2 更喜欢 MBConv 的较小扩展比,因为较小的扩展比往往具有较少的内存访问开销。

(3) 第三,EfficientNetV2 更喜欢较小的3x3内核尺寸,但它增加了更多层来补偿较小内核尺寸导致的感受野减小。

(4) 第四,EfficientNetV2 完全删除了原始 EfficientNet 中的最后一个 stride=1 的阶段,这可能是由于其较大的参数大小和内存访问开销。

在卷积神经网络中,步幅为1意味着卷积核在进行卷积操作时,每次移动一个像素的距离。这通常用于减少特征图(feature map)的尺寸,同时增加参数的数量,因为需要更多的卷积核来覆盖整个特征图。

作者发现,原始EfficientNet模型中的最后一个步幅为1的阶段虽然增加了模型的参数量,但同时也带来了较大的内存访问开销。换句话说,这个额外的阶段增加了模型的大小和复杂度,但可能并没有带来与之相称的性能提升。因此,为了提高参数效率和减少内存使用,在V2的设计中选择去掉了这个部分。

简而言之,作者在权衡模型性能和效率后决定牺牲这个可能带来额外计算负担的阶段,以实现更高效的模型设计。这种设计选择反映了EfficientNetV2在追求更快训练速度和更好参数效率的目标。

4、EfficientNetV2-S模型结构

5、在ImageNet ILSVRC2012(1000 个类别)上的结果

EfficientNetV2-m 实现了与 EfficientNet-B7 相当的精度,同时使用相同的计算资源训练速度提高了 11 倍。

EfficientNetV2 模型在准确性和推理速度方面也显着优于所有最新的 RegNet 和 ResNeSt。

EfficientNetV2-L 实现了 85.7% 的 top-1 准确率,超过了 ViT-L/16(21k)。

6、在ImageNet21k(21,841 个类别)上的结果

在 ImageNet21k 上进行预训练,并在 ImageNet ILSVRC2012 上进行微调。与 ViT-L/16(21k) 相比,EfficientNetV2L(21k) 将 top-1 准确率提高了 1.5%(85.3% vs. 86.8%),使用的参数减少了2.5倍,FLOP 次数减少了3.6倍,同时运行速度提高了6倍,训练和推理速度提高7倍。

7、总结

在我的实际使用中,EfficientNetv2效果确实非常好,优于Vision Transformer、ResNet、DenseNet这些网络,略逊于Swin Transformer。需要注意的一点是,虽然EfficientNetv2-s模型大小只有82.6MB,ResNet34模型大小83.2MB,两者从模型大小上相差不大, 但是EfficientNetv2-s的计算复杂度远远高于ResNet34,相同的内存、显存、数据集和参数,ResNet34可以使用32的batchsize,而EfficientNetv2-s只能为8。

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

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

相关文章

HDFS_API文件和文件夹

代码: Beforepublic void init() throws URISyntaxException, IOException {URI uri new URI("hdfs://master:9000");// 创建一个配置文件Configuration entries new Configuration();// 获取到了客户端对象 // entries.set("dfs.replicat…

【嵌入式linux开发】SPI设备文件读取ICM-40609D传感器

【嵌入式linux开发】SPI设备文件操作ICM-40609D传感器 前言一、数据手册浅读二、linux系统下使用SPI设备文件操作ICM-40609-D三、ros1发布imu数据3.1、创建ros1工作空间3.2、数据发布节点代码 前言 在本篇博客中,将从ICM-40609-D传感器的数据手册出发,简…

公安局软件管理平台建设方案和必要性,论文-3-———未来之窗行业应用跨平台架构

三、平台功能设计 四、技术架构 1. 前端界面 - 采用简洁、易用的设计风格,适应不同终端设备的访问。 - 基于 HTML5、CSS3 和 JavaScript 构建。 2. 后端服务 - 选择主流的 Web 开发框架,如 未来之窗跨平台架构,VUE。 - 数据库…

Github Webhook触发Jenkins自动构建

1.功能说明 Github Webhook可以触发Jenkins自动构建,通过配置Github Webhook,每次代码变更之后(例如push操作),Webhook会自动通知Jenkins服务器,Jenkins会自动执行预定义的构建任务(如Jenkins …

Redis-认识与应用(从ChatGpt的角度看Redis)

问题:您好,我的项目是在线教育平台,用springboot3搭建,我现在想学redis,请问redis能在我的项目中有什么应用场景呢 问题:就是我项目能应用上具体什么场景,请给我例子,并给我具体代码…

springboot整合openfeign

文章目录 准备一、引入必要依赖二、写一个feign client并暴露到注册中心2.1 client2.2 开启Feign客户端功能 三、别的服务引入IProductClient并调用方法3.1 建一个order-service,引入IProductClient所在模块3.2 注入IProductClient,并调用方法 四、启动服…

JAVA基本简介(期末)

1、JDK JRE JVM (1)JDK JAVA标准开发包,提供了编译、运行JAVA程序所需的各种工具和资源,包括JAVA编译器、JAVA运行时的环境,及常用的JAVA类库等 (2)JRE JAVA运行环境,用于解释执行JA…

JW01二氧化碳传感器(串行通信 STM32)

目录 一、介绍 二、传感器原理 1.工作原理介绍 2.串口数据流格式 三、程序设计 main.c文件 usart3.h文件 usart3.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 JW01-CO2检测模块是一种用于检测空气中二氧化碳浓度的传感器模块。它可以广泛应用于室内空气质量…

美畅物联丨GB/T 28181系列之TCP/UDP被动模式和TCP主动模式

GB/T 28181《安全防范视频监控联网系统信息传输、交换、控制技术要求》作为我国安防领域的重要标准,为视频监控系统的建设提供了全面的技术指导和规范。该标准详细规定了视频监控系统的信息传输、交换和控制技术要求,在视频流传输方面,GB/T 2…

【Day20240924】05git 两人协作 冲突

git 两人协作 冲突 命令行解决 两个人修改同一文件时 的冲突可视化解决 两个人修改同一文件时 的冲突参考 命令行解决 两个人修改同一文件时 的冲突 假设kerwin.js是项目的路由文件。tiechui文件夹是组员铁锤的工作目录;test2008文件夹是组长的工作目录。此时&…

Redis 优化

目录 优雅的 key 删除 Bigkey 恰当的数据类型 批处理优化 Pipeline 集群下的批处理 服务端优化 持久化配置 慢查询 命令以及安全配置 内存安全和配置 内存缓冲区配置 集群最佳实践 集群带宽问题 集群还是主从 优雅的 key 删除 Bigkey Bigkey 内存占用较多&…

ubuntu 安裝 Poetry 示例

ubuntu 安裝 Poetry 示例 一、前言 poetry 是一个命令行工具,安装之后就可以使用 poetry 指令。可以将其安装全局环境或者是虚拟环境,我推荐安装在全局环境,这样在后面使用时不需要单独激活虚拟环境。 (1)安装 Poet…

【Linux】组管理权限管理任务调度【更详细,带实操】

Linux全套讲解系列,参考视频-B站韩顺平,本文的讲解更为详细 一、组管理 1、linux组的介绍 linux对文件的管理机制 linux中的文件有三个概念: 1、文件所有者是谁,谁创建了文件,当然文件所有者也可以修改2、文件属于…

基于内容的推荐算法

算法原理概述 首先推荐算法的作用是给用户推荐其可能喜欢的物品。此算法所依赖的数据大概分为两部分:(1)用户过去喜欢的物品;(2)每个物品的标签。 算法步骤 (1)根据用户过去喜欢的…

IIS HTTPS 网页可能暂时无法连接,或者它已永久性地移动到了新网址 ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY

问题描述:站点突然无法访问,经排查发现,HTTP协议的网址可以继续访问,HTTPS的网址不可以访问。 问题分析:在Windows更新和滚动之后,由于 HTTP/2,当站点启动了 HTTP/2 连接,会出现一个…

手机如何快速切换ip?探索多种方法

在当今这个信息高速流通的时代,IP地址作为网络世界中的独特标识,其重要性日益凸显。对于手机用户而言,无论是出于保护个人隐私、访问地域限制内容,还是进行网络测试等需求,快速切换IP地址都显得尤为关键。本文将深入探…

MySQL数据库备份详解

文章目录 引言● 数据库备份的重要性 MySQL数据库备份的基础知识● 备份类型1、完全备份2、增量备份3、差异备份 ● 备份工具与方法1、逻辑备份工具——mysqldump2、物理备份工具——Xtrabackup3、第三方解决方案 MySQL数据库备份的实施步骤1、环境准备2、选择合适的备份工具与…

大数据新视界 --大数据大厂之大数据实战指南:Apache Flume 数据采集的配置与优化秘籍

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

openeuler22.03 LTS 源码编译安装nginx1.22.1

openeuler22.03 LTS 源码编译安装nginx1.22.1 下载安装包 #官网下载nginx1.22.1 wget http://nginx.org/download/nginx-1.22.1.tar.gz安装依赖包 #安装依赖包,NGINX是C语言写的,pcre-devel支持正则表达式,openssl 开启加密 [rootproxy ~]…

AI编辑器CURSOR_CURSOR安装教程_使用AI进行编码的最佳方式。

一、CUROR简介 作为一个在代码海洋里遨游多年的老程序员,我得说,遇到CURSOR这位AI编辑器,就像是编程路上偶遇了一位智慧而又贴心的老友。 想象一下,夜深人静,你正埋头于那些错综复杂的逻辑和无尽的bug之中&#xff0…