【EfficientNetV2】《EfficientNetV2: Smaller Models and Faster Training》

在这里插入图片描述
google

ICML-2021


文章目录

  • 1 Background and Motivation
  • 2 Related Work
  • 3 Advantages / Contributions
  • 4 Method
    • 4. 1 Understanding Training Efficiency
    • 4.2 Training-Aware NAS and Scaling
    • 4.3 Progressive learning
  • 5 Experiments
    • 5.1 Datasets and Metrics
    • 5.2 ImageNet ILSVRC2012 and ImageNet21k
    • 5.3 Transfer Learning Datasets
    • 5.4 Ablation Studies
      • Comparison to EfficientNet
    • Progressive Learning for Different Networks
    • Importance of Adaptive Regularization
  • 6 Conclusion(own)


1 Background and Motivation

efficientNet v1(【EfficientNet】《EfficientNet:Rethinking Model Scaling for Convolutional Neural Networks》) 的基础上升级, faster training speed and better parameter efficiency

作者观察到

  • training with very large image sizes is slow(Progressive training,input image size 随着训练深入而逐渐变大)
  • depthwise convolutions are slow in early layers(提出Fused-MBConv,NAS 出来 early layer 都用的是没有 dw conv 的 Fused-MBConv)
  • equally scaling up every stage is sub-optimal

2 Related Work

  • Training and parameter efficiency
  • Progressive training
  • Neural architecture search (NAS)

3 Advantages / Contributions

提出 EfficentNet v2,用 training-aware neural architecture search and scaling 搜索出来,采用 progressive learning(image size 和 regularization) 进一步提升速度精度,公开数据集上更快更好

在这里插入图片描述

4 Method

EfficientNet
在这里插入图片描述

4. 1 Understanding Training Efficiency

(1)Training with very large image sizes is slow

在这里插入图片描述

(2)Depthwise convolutions are slow in early layers but effective in later stages

在这里插入图片描述
DW conv 虽然参数量和计算量更小,但是 cannot fully utilize modern accelerators

在这里插入图片描述

Fuse-MBConv 高效,精度高,但是参数量和 FLOPS 会变高

MB 和 Fuse-MB 两者在网络中如何搭配更高效呢? 作者: leverage neural architecture search to automatically search for the best combination.

(3)Equally scaling up every stage is sub-optimal

网络深度或者宽度缩放时所有 stage 一样,不是最优的

EfficientNet-S -> EfficientNet-M -> EfficientNet-L

4.2 Training-Aware NAS and Scaling

在 v1 的基础上做的 NAS,搜出来的结构如下
在这里插入图片描述

EfficientNetV2-S,scale up 到 M 和 L 时,gradually add more layers to later stages (e.g., stage 5 and 6)

Training Speed Comparison:
在这里插入图片描述
effNet(reprod) 用了 about 30% smaller image size

4.3 Progressive learning

in the early training epochs, we train the network with small image size and weak regularization (e.g., dropout and data augmentation), then we gradually increase image size and add stronger regularization.

创新点在于不仅 progressive image size,还有 regularization

在这里插入图片描述
输入尺寸越大,数据增强的程度相应的增高,效果会更好

progress learning 的策略如下

在这里插入图片描述
不仅 size 随着训练过程的深入在增大,regularization 强度也在递增,算法流程如下

在这里插入图片描述

  • S i S_i Si image size,最初 S 0 S_0 S0,最终 S e S_e Se

  • ϕ i k \phi_i^k ϕik 正则化强度,regularization magnitude,参考(【Randaugment】《Randaugment:Practical automated data augmentation with a reduced search space》 和 【AutoAgument for OD】《Learning Data Augmentation Strategies for Object Detection》),作者用的正则化技术有 Dropout、RandAugment、Mixup,最低强度 ϕ 0 k \phi_0^k ϕ0k 最高强度 ϕ e k \phi_e^k ϕek

  • M M M,训练过程被划分成了 M M M 个 stage,training process into four stages with about 87 epochs per stage,注意区别于主干的 stage

  • N N N,traning steps,可以理解为 epoch 或者每次 batch-size 的 iteration

progress learning 采用了最简单的线性增长形式,更细节的参数配置范围如下表

在这里插入图片描述

5 Experiments

5.1 Datasets and Metrics

  • ImageNet ILSVRC2012:about 1.28M training images and 50,000 validation images with 1000 classes
  • ImageNet21k:13M training images with 21,841 classes
  • CIFAR-10
  • CIFAR-100
  • Flowers
  • Cars

在这里插入图片描述

5.2 ImageNet ILSVRC2012 and ImageNet21k

结果展示
在这里插入图片描述
又快又好

在这里插入图片描述

不过这个图看起来,速度优势并没有很明显,精度倒是优势很明显

用了 ImageNet21k 后作者的实验心得

  • Scaling up data size is more effective than simply scaling up model size in high-accuracy regime,这里的 data size 指的是数量级的规模,不是输入到网络中的图片 size,
  • Pretraining on ImageNet21k could be quite efficient,作者的方法可以加速训练和推理过程,这个时候上更大的数据集时间可能和之前不用 progressive learning 差不多,但效果进一步提升

5.3 Transfer Learning Datasets

在这里插入图片描述
CIFAR-10 还好,CIFAR-100 和 cars 领先的比较明显

5.4 Ablation Studies

Comparison to EfficientNet

在这里插入图片描述
training speed (reduced from 139h to 54h) and accuracy (improved from 84.7% to 85.0%) are better than the original paper

EfficientNet-v2-S 的基础上,scaling down 一些小模型,看看性能
在这里插入图片描述
主打的是一个快

Progressive Learning for Different Networks

在这里插入图片描述
提速明显

Importance of Adaptive Regularization

在这里插入图片描述
这个是作者的创新点之一

在这里插入图片描述

6 Conclusion(own)

  • Unlike transformers, whose weights (e.g., position embedding) may depend on input length,
  • progressive learning, does it work in object detection?
  • depth-wise 丢到后面的stage用
  • data size vs model size

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

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

相关文章

力扣654 最大二叉树 Java版本

文章目录 题目描述解题思路代码 题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上…

【Python】新手入门学习:详细介绍单一职责原则(SRP)及其作用、代码示例

【Python】新手入门学习:详细介绍单一职责原则(SRP)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyT…

力扣106 从中序与后续遍历序列构造二叉树

文章目录 题目描述解题思路代码 题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], …

海豚调度系列之:认识海豚调度

海豚调度系列之:认识海豚调度 一、海豚调度二、特性三、建议配置四、名次解释 一、海豚调度 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过…

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目,不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块,再根据黑块大小获取四个角的位置,根据四个黑块位置校正图像 将图…

Ubuntu下txt中文显示乱码问题常规解决方法

在正常使用ubuntu 文档时,突然发现txt文档出现,如下情况 无法正常观看,后来搜了一下发现是gedit 没有对应打开文件的编码格式,Ubuntu用的是utf-8,所以打开会有乱码!初始没有GBK和GB2312,把GBK和GB2312添加…

vi 显示行号 显示色彩

首先进入当前用户目录下的.vimrc文件/.virc文件(具体要看操作系统) vi ~/.virc 显示行号 set number 显示色彩 highlight LineNr guifgred 效果

怎样才能选择一套好的ai智能语音系统呢?人工智能电话机器人系统各版本搭建

如今竞争激烈的市场环境下,企业需要不断创新,提高效率,以获得更多的市场份额和利润。而智能电销机器人,作为一种新型的营销工具,正逐渐成为越来越多企业的首选工具,接下来我们看看怎样才能选择一套好的ai智…

生态碳汇涡度相关监测与通量数据分析

朱老师(副教授):来自国内重点高校,长期从事涡度通量观测与分析研究,发表SCI论文多篇,主持国家与地方科研项目多个,在生态环境数据处理与分析中具有丰富的实践项目经验。 本文基于MATLAB语言、以…

滑动窗口最大值(leetcode hot100)

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7], k 3 输…

2024年初中生古诗文大会备考:多选题真题和独家解析(持续更新)

今天我们继续来做初中古诗文大会的一道难题:多选题,让大家了解初中生古诗文大会的考察内容和形式,并且提供了我独家的题目解析和答案,供初中的同学们学习和参考。 Tips:古诗文大会的许多题目都来自于中考、高考&#…

使用Barrier共享鼠标键盘,通过macos控制ubuntu系统

之前文章写过如何使用barrrier通过windows系统控制ubuntu系统,该文章将详细介绍如何使用barrier通过macos系统控制ubuntu系统 一、macOS安装barrier macOS版本barrier链接 1、双击点开安装包 2、将安装包里的barrier拷贝到macOS的达达->应用程序中 3、在达达…

(黑马出品_高级篇_03)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

(黑马出品_高级篇_03)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术——多级缓存 今日目标1.什么是多级缓存2.JVM进程缓存2.1.导入案例2.1.1.安装MySQL2.1.1.1.准备目录2.1.1.2.运行命令2.1.1.3.修改配置 2.1.1.4.…

边框检测在 Python 中的应用

在游戏开发中,我们经常会回使用到边框检测。我们知道,边框检测是计算机视觉中常用的技术,用于检测图像中的边界和轮廓。在Python中,可以使用OpenCV库来实现边框检测。具体是怎么实现的?以下是一个简单的示例代码&#…

深入探索Java中的MarkWord与锁优化机制——无锁、偏向锁、自旋锁、重量级锁

引言 在Java并发编程领域,有效管理对共享资源的访问显得尤为关键。为了保障线程安全,Java虚拟机(JVM)引入了一系列精妙的锁机制,这其中的核心概念就是Java对象头中的MarkWord。本文将详尽解析MarkWord的作用&#xff…

Vue.js+SpringBoot开发考研专业课程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高校教师管理模块2.4 考研专业模块2.5 考研政策模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 考研高校表3.2.2 高校教师表3.2.3 考研专业表3.2.4 考研政策表 四、系统展示五、核…

国家网安教育技术产业融合发展试验区建设专家指导组莅临麒麟信安调研

3月12日下午,由教育部网络安全教学指导委员会秘书长(专家组组长)封化民、工业和信息化部规划司原司长肖华、中国现代国际关系研究院原副院长张力等领导组成的国家网安教育技术产业融合发展试验区建设专家指导组莅临麒麟信安及湖南欧拉生态创新…

【Python】成功解决NameError: name ‘cv2‘ is not defined

【Python】成功解决NameError: name ‘cv2’ is not defined 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您…

mavon-editor实现支持md格式输入并自定义工具栏

需求说明 起源于我在做机器人报警推送的一个模块时,涉及到可以自定义报警的内容,其中内容支持md格式,同时还支持用户在指定光标处插入指定的字符串占位符。于是我在项目中引入mavon-editor库(支持Vue2、Vue3),以支持用户输入md格…

Maven深入了解

Maven深入了解 前言一、Maven的核心概念1.1 Maven-Jar包模块化管理1.2 POM1.3 坐标及其命名规范1.4 仓库的概念1.5 生命周期1.6 插件和目标 二、依赖管理2.1 自己写的模块和模块之间也可以互相依赖2.2 依赖的生效范围(scope标签)2.3 依赖的传递性2.4 依赖冲突问题2.5 依赖的排除…