经典网络解读——EfficientnetV2

news2025/1/11 19:50:12

论文:EfficientNetV2: Smaller Models and Faster Training(2021.4)
作者:Mingxing Tan, Quoc V. Le
链接:https://arxiv.org/abs/2104.00298
代码:https://github.com/google/automl/tree/master/efficientnetv2

EfficientnetV1解读
接着上一篇EfficientnetV1,V2是对V1的改进,可能精度更高或者更快,所以又接着探索EfficientnetV2,结果和预料一样,在其中也发现了之前很容易忽视的关系到模型精度的细节,网络输入的input-size的重要性。

按照efficientnetv2论文中的实验结果,efficientnetv2_s的精度是比efficientnet-B3的精度高2.4%的,但我们实验跑出的结果却是几乎没什么提升,再结合之前efficientnet-B7和efficientnet-B3跑出的结果也相似,想想这与论文得到的结果不符啊,想了很久才恍然大悟,我们实验是用的相同大小输入图像,这限制了大规模模型比如efficientnet-B7的能力,efficientnetv2_s的情况也一样,后来换成大尺寸输入图片,efficientnetv2_s相对于efficientnet-B3的优势就凸显出来了。


文章目录

  • 1、算法概述
  • 2、背景知识
  • 3、EfficientNetV2细节
    • 3.1 如何让训练高效
    • 3.2 EfficientnetV2结构
    • 3.3 EfficientnetV2的缩放
    • 3.4 训练速度比较
    • 3.5 渐进式训练
  • 4、实验

1、算法概述

该算法作者是和Efficientnet是同一作者,是Efficientnet的升级版本,作者将训练感知神经结构搜索和缩放相结合,共同优化训练速度和参数效率。在搜索空间中对模型进行搜索,并加入了Fused-MBConv等新操作。作者还提出了一种改进的渐进式学习方法(训练过程中输入图像逐渐增大),该方法可以根据图像大小自适应地调整正则化(例如数据增强)。以这种方式训练,在ImageNet21k的预训练模型加载情况下,EfficientnetV2在ImageNet数据集上实现了87.3%的Top-1准确率,比ViT高2%,而且在相同资源情况下,训练速度加快了5到11倍。具体情况如下图所示:
在这里插入图片描述


2、背景知识

训练高效与参数高效:
像DenseNet和Efficientnet都属于参数高效,目的是以较少的参数获得较高的精度。而最近也有很多工作将目的转化为提升训练速度和推理速度,比如RegNet、ResNeSt、Efficientnet-X,它们关注GPU/TPU的推理速度,而NFNets和BoTNets关注提升训练速度,但是它们一个共同点就是会带来更多的参数,而作者所提的EfficientnetV2旨在提升训练速度的同时减小参数量,即训练高效的同时保持参数高效。

渐进式训练
之前也有工作采用渐进式训练,它们的目的大多是为了加速训练,但通常情况下会带来掉精度的问题。另一个相关的工作是最近的Mix&Match,它为每个批次随机采样不同大小的图像进行训练,但是却为每个批次都使用相同的正则化,导致精度下降。本文中,作者主要区别在于自适应调整正则化,从而提高了训练速度和准确性。作者安排训练示例从简单到困难进行训练,通过添加更多的正则化来逐渐增加学习难度。

神经网络结构搜索(NAS)
NASNet通过将搜索目标定为FLOPs高效或者推理高效,本文将搜索目标定为训练高效和参数高效。

EfficientNet
它利用NAS搜索在准确性和flop方面有更好权衡搜索得到基线模型EfficientNet-B0,然后通过模型复合缩放策略得到Efficientnet-B1至B7。详细解读见我的另一篇文章EfficientnetV1解读


3、EfficientNetV2细节

3.1 如何让训练高效

训练大尺寸图像较慢,用较小图片训练,可以加速训练过程,然后用大尺寸图片推理,可以得到相似精度。实际EfficientnetV2实验中是渐进式增大训练图像尺寸,然后渐进式增加正则化进行训练。
在这里插入图片描述
可以看到官方代码给的配置都是用较小的图片尺寸训练,然后用稍大的图片尺寸推理的,并且随着网络规模的增大,正则化也在加大。
在这里插入图片描述

深度可分离卷积在网络层前期是缓慢的,但在网络层后期是高效的。
深度可分离卷积比常规卷积具有更少的参数和FLOPs,但它们通常不能充分利用现代加速器进行加速。而Fused-MBConv可以很好的利用移动端或服务器加速器。其结构如下图所示,它直接把MBConv中的depthwiseconv3x3和后面的conv1x1卷积替换成了常规的conv3x3卷积。
在这里插入图片描述
应用了Fused-MBConv的Efficientnet-B4的加速效果如下:
在这里插入图片描述

每个stage都以相同的缩放系数的次优的
因为每个stage对训练时间和拥有的参数量的贡献都不是相同的,在本文中,作者将使用非均匀缩放策略在网络后期阶段逐渐添加更多的层。此外,EfficientNets倾向于扩展图像大小,导致大量内存消耗和缓慢的训练。为了解决这个问题,作者稍微修改了缩放规则,并将最大图像大小限制为较小的值。

3.2 EfficientnetV2结构

通过NAS Search得到的EfficientnetV2_s结构如下
在这里插入图片描述
与之相对应的Efficientnet-B0结构如下:
在这里插入图片描述
可以看出相对于Efficientnet几点不同:
1、 EfficientnetV2在网络前几层使用Fused-MBConv替换了MBConv;
2、 EfficientnetV2中MBConv的扩充比减小了,意味着减小了显存开销;
3、 EfficientnetV2均采用3x3的小卷积核,为了得到相同感受野,网络层数更深了;
4、 EfficientnetV2去掉了最后一个1x1的卷积层

3.3 EfficientnetV2的缩放

(1)将最大推理图像大小限制为480,因为非常大的图像通常会导致昂贵的内存和训练速度开销;
(2)作为一种启发式,我们也逐渐在网络后期阶段(如上图网络结构表中第5和第6阶段)增加更多的层,以达到为了增加网络容量而不增加太多的运行时开销。

3.4 训练速度比较

固定大小的输入图片训练速度对比情况如下:
在这里插入图片描述

3.5 渐进式训练

作者认为,即使对于相同的网络,较小的图像尺寸也会导致较小的网络容量,因此需要较弱的正则化;反之,更大的图像尺寸导致更多的计算和更大的容量,从而更容易出现过拟合,所以需要更强的正则化。作者采用的正则化技术有Dropout(网络级正则化技术)、RandAugment(单张图片数据增强)、Mixup(交叉图片数据增强),随着输入图片尺寸的加大,应该加强正则化。
渐进式学习的步骤如下:
在这里插入图片描述


4、实验

ImageNet ILSVRC2012上分类实验
网络训练采用渐进式学习,设置如下:
在这里插入图片描述
得到的分类结果如下:
在这里插入图片描述
消融实验:略

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

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

相关文章

Docker容器---docker-Consul部署

一、Docker-consul简介 1、概述 consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多…

一、交换网络基础

目录 1.交换机的转发行为 2.数据帧的类型 3.ARP地址解析步骤 Hub:物理层设备 交换机:数据链路层设备 1.交换机的转发行为 泛洪(Flooding)(有可能是单播帧(未知单播帧),也有可能是…

一文解决ArcGIS生成点和管段 含案例讲解

背景 在工作中,我们经常遇到要将坐标数据导入 GIS,生成点位,若是地理坐标系(经纬度),那么直接用 arcgis或者QGIS 导入数据就行了,可实际中总会遇到各种问题: 坐标数据集为大地 200…

SQLite数据库添加密码

背景: 最近发现软件在运行过程中,数据库文件暴露在外面,而且直接拷贝后就能打开,发现这样来说数据并不是很安全我使用的开发环境是VS QT,使用navicat创建了一个数据库准备 百度搜索了一些资料和博客,发现…

kube-prometheus部署到 k8s 集群

文章目录 **修改镜像地址****访问配置****修改 Prometheus 的 service****修改 Grafana 的 service****修改 Alertmanager 的 service****安装****Prometheus验证****Alertmanager验证****Grafana验证****卸载****Grafana显示时间问题** 或者配置ingress添加ingress访问grafana…

《深入解析WIndows操作系统》第9章读书笔记

1、闪存类型:常见的闪存类型有NOR和NAND。NOR闪存在操作上最接近RAM,它的每个字节都可以被独立地寻址,而NAND闪存则被组织成以块为单位,就像磁盘一样。NOR类型的闪存用来设计保存计算机主板上的BIOS,而NAND类型的闪存被…

Go语言的包管理工具go mod与之前的GOPATH有什么区别?

在深入探讨Go语言的包管理工具go mod与之前的GOPATH之间的区别之前,我们首先需要理解这两个概念各自的作用和背景。 GOPATH时代 在Go语言早期版本中,GOPATH是一个非常重要的环境变量。它告诉Go工具链在哪里查找你的Go代码、第三方库以及编译后的二进制…

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周,美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务,即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月(27…

JWT是什么?如何使用?

JWT是什么?如何使用? 前言什么是JWT?概念工作方式JWT的组成HeaderPayloadSignatrue 实战引入依赖自定义注解定义实体类定义一个JWT工具类业务校验并生成token定义拦截器配置拦截器定义接口方法并添加注解开始验证 使用场景注意事项 JWT与传统…

【练习1】

1.字符串最后一个单词的长度 #include <iostream> #include<string> using namespace std;int main() {string a;int res,i,flag;flag1;i0;getline(cin,a);res0;while(flag1){if(a[i]! ){resres1;}else{res0;}if(ia.length()-1){flag-1;}i;}cout<<res<<…

服务器遭受攻击后的黑洞状态应对策略及防护机制解析

引言 在网络安全领域中&#xff0c;当服务器遭受大规模DDoS攻击或其他恶意流量冲击时&#xff0c;为了保护服务的稳定性和其他正常用户的使用体验&#xff0c;往往会采取一种紧急防护手段——将服务器置于黑洞状态。所谓黑洞状态&#xff0c;即网络服务商暂时屏蔽掉对服务器的…

与Apollo共创生态:让汽车更聪明,让出行更简单

目录 前言Apollo X 企业解决方案Studio X 企业协同开发工具链Apollo开放平台携手伙伴共创生态Apollo开发平台生态共创计划 前言 百度2013年开始布局自动驾驶&#xff0c;2017年推出全球首个自动驾驶开放平台Apollo。目前百度Apollo已经在自动驾驶、智能汽车、智能地图等领域拥有…

Agisoft Metashape 自定义底图

Agisoft Metashape 自定义底图 前言 Agisoft Metashape 从2.0.2 版本开始,Agisoft Metashape Professional 和 Agisoft Viewer 支持自定义底图,可用于模型和正射视图模式。本文以添加Esri World Image卫星底图图源为例,介绍Agisoft Metashape 自定义底图的方法。 添加自定…

STM32F103(Cubemx)驱动ST7789

源码来源&#xff1a; 中景园电子的标准库使用SPI驱动ST7789的TFT_LCD彩屏&#xff0c;将标准库修改为HAL库使用 Cubemx配置&#xff1a; 时钟配置 SPI配置&#xff1a; 引脚配置 源码修改 修改原有的SPI发送函数&#xff0c;并把原有的引脚初始化注释&#xff0c;不需要…

smac 路径优化器分析——距离成本和代价地图成本分析

参考 泰勒级数直观详解 前向差分&#xff0c;后向差分&#xff0c;中心差分 相关文章 smac 路径优化器分析——平滑度成本分析 smac 路径优化器分析——曲率成本分析 距离成本 距离成本函数 用优化后的点与原路径点的欧氏距离的平方作为成本。 下图中蓝色原点是原路径点…

73、栈-柱状图中最大的矩形

思路&#xff1a; 矩形面积&#xff1a;宽度*高度 高度如何确定呢&#xff1f;就是在宽度中最矮的元素。如何确定宽度&#xff0c;就是要确定左右边界。 当我们在处理直方图最大矩形面积问题时&#xff0c;遇到一个比栈顶柱子矮的新柱子时开始计算面积的原因关键在于如何确定…

大数据组件之Storm详解

Storm 是一个免费并开源的分布式实时计算系统&#xff0c;具有高容错性和可扩展性。它能够处理无边界的数据流&#xff0c;并提供了实时计算的功能。与传统的批处理系统相比&#xff0c;Apache Storm 更适合处理实时数据。 让我们深入了解一下 Storm&#xff1a; 1.Storm 简介…

【自研网关系列】过滤器链 -- 灰度发布过滤器

&#x1f308;Yu-Gateway&#xff1a;&#xff1a;基于 Netty 构建的自研 API 网关&#xff0c;采用 Java 原生实现&#xff0c;整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施&#xff0c;承载请求路由、安全控制、流量治理等…

图像预处理工具_CogImageFileTool

CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存。也可使用CoglmageFileTool工具将图片插入到.idb数据库里。 添加工具 参数介绍 文件名 写入模式 读取模式 删除

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板&#xff1a;13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去&#xff1a;点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…