经典网络解读——Efficientnet

论文:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2019.5)
作者:Mingxing Tan, Quoc V. Le
链接:https://arxiv.org/abs/1905.11946
代码:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

Efficientnet升级版本EfficientnetV2解读

最近项目上用到,由于之前模型采用IResnet50做识别,在rv1126上量化成int16时间上不满足要求,量化成int8推理造成的精度下降又太大,不能接受,遂想到替换更高效的网络,网上一搜就看到下面这张图,很直观。
在这里插入图片描述
efficientnet-B0比ResNet-50的精度更高且flops更少,且一直扩充到efficientnet-B3都是如此,类比IResnet50,估计efficientnet也比它快;由于efficientnet是分类网络,但我们是识别任务,需要提取feature,所以需做修改,下面是量化成int16后的具体推理时间,与我的猜想基本一致。

网络结构转int16的rknn模型大小(M)input_sizerv1126上用NPU推理时间(ms)
iResnet-50112x11270
efficientnet-b0(仿照iresnet改造,卷积最后一层,直接flatten)25.8112x11217
efficientnet-b0(直接将最后类别数改成num_features数量,精度不行)9.3112x11213
efficientnet-b1(仿照iresnet改造,卷积最后一层,直接flatten)33112x11225
efficientnet-b2(仿照iresnet改造,卷积最后一层,直接flatten)39.7112x11228
efficientnet-b3(仿照iresnet改造,卷积最后一层,直接flatten)47.3112x11235

虽然之前经常用这个网络,但是由于没涉及到量化,很少留意到这些细节,所以仔细解读一下efficientnet这个经典网络。


文章目录

  • 1、算法概述
  • 2、Efficientnet细节
    • 2.1 单个维度模型缩放
    • 2.2 混合缩放
    • 2.3 Efficientnet结构
  • 3、实验
    • 3.1 Scaling up MobileNets and ResNets
    • 3.2 Efficientnet在ImageNet上分类精度
    • 3.3 Efficientnet在CPU上的延迟
    • 3.4 Efficientnet的迁移学习能力


1、算法概述

Efficientnet是谷歌针对于模型缩放相关的探索提出的分类网络;在这之前的卷积神经网络(ConvNets)通常是在固定受限的资源下开发的,如果有更多的资源可用,则可以根据扩展以获得更好的准确性。该篇论文通过仔细平衡网络深度,宽度和分辨率之间的关系来获得更好的性能,并且在MobileNet和ResNet上验证了其有效性。论文作者通过神经架构搜索获得一个baseline模型(Efficientnet-B0),然后通过论文所提的模型缩放技术获得一系列缩放模型。这一系列模型在ImageNet分类数据集上的精度和参数量都比现如今最先进的卷积网络有了不小的提升。如下图,左图是精度和模型大小,右图是精度和flops。
在这里插入图片描述


2、Efficientnet细节

在这之前也有模型缩放相关的研究,例如将网络放大可以得到更好的性能,比如Resnet系列,通常来说Resnet200比Resnet18得到的分类精度好得多;但是之前的模型缩放通常只缩放三个维度(深度、宽度和图像大小)中的一个。虽然可以任意缩放两个或三个维度,但任意缩放需要繁琐的手动调优,并且仍然经常产生次优的精度和效率。虽然更大的网络能带来更高的精度,但是我们时常受到硬件内存限制,所以需要探索更高效的网络结构;如今“高效”网络结构有:SqueezeNets、MobileNets、ShuffleNets以及通过神经网络搜索得到的NASNet,但这些高效网络设计技巧目前尚不清楚如何推广应用到大规模网络。
本论文通过实验验证得到结论:平衡模型缩放过程中的深度、宽度和分辨率是非常重要的,而且只是简单的通过模型缩放公式就可以得到它们之间的关系。关于网络宽度缩放、深度缩放、和输入图像分辨率缩放及综合缩放的示例图如下图所示:
在这里插入图片描述

2.1 单个维度模型缩放

网络深度用d表示,直觉上更深的卷积神经网络可以捕获更丰富、更复杂的特征,并能很好地泛化新任务。然而,由于梯度的消失,更深的网络也更难以训练;虽然现在的跳转连接(skip connection)和batch normalization技术一定程度上缓和了梯度消失问题,但是随着深度增加,精度提升的收益还是会递减,如下图(中);
网络宽度用w表示,缩放网络宽度通常用于小尺度网络结构,通道数“更宽”的网络往往能够捕获更细粒度的特征,并且更容易训练;极宽但较浅的网络往往难以捕捉更高级的特征。而且当网络变得更宽即w更大时,准确性很快会饱和,如下图(左)所示;
网络输入分辨率用r表示,网络接收更高的分辨率,可以捕获更细粒度的特征。但随着分辨率不断提高,其精度收益率也会递减最终达到饱和。如下图(右)所示;
在这里插入图片描述

2.2 混合缩放

作者通过实验得出:对于更高分辨率的图像,我们应该增加网络深度,这样有利用在更大图像上用更大的感知域捕获更多像素的特征。相应的也应该同时增加网络宽度,以便于在高分辨率图像中捕获更多像素的更细粒度的特征。如下图所示:
在这里插入图片描述
所以我们需要协调和平衡不同的缩放维度,而不是传统的单一维度缩放。
作者通过以下公式设置三个维度的限制,利用网络结构搜索搜出最佳的d,w,r匹配。
在这里插入图片描述

2.3 Efficientnet结构

和设计MnasNet一样,作者也是通过网络搜索得到最佳的基线模型efficientnet-B0,与它不同的是设置的搜索最优目标不一样,efficientnet-B0是以最佳flops为目标,而前者是最小推理速度。搜出来的efficientnet-B0结构与MnasNet结构相似,主要组成部分为mobile inverted bottleneck MBConv,其结构如下表所示:
在这里插入图片描述
得到efficientnet-B0后,应用本文所提的模型缩放技术,分以下两步得到B1至B7。
在这里插入图片描述
论文中说,也可以直接通过网络搜索得到更大规模的网络结构,但这样做太耗费资源,作者提出的规则模型缩放技术,可以通过先搜索小规模网络结构,然后通过模型缩放得到一系列更大规模的网络结构,这样做解决了这个难题。


3、实验

3.1 Scaling up MobileNets and ResNets

作者首先在已有的分类算法网络结构上验证提出的模型缩放方法,评估其在ImageNet上的Top-1及Top-5准确率,实验结果如下:
在这里插入图片描述
从实验结果可以看出,相对于Baseline模型,单纯扩充w、d或者r,模型的Top-1准确率是有一定提升的,但相对于采用本论文所提的组合扩充方式,组合扩充方式还是有精度方面的优势。

3.2 Efficientnet在ImageNet上分类精度

在这里插入图片描述

3.3 Efficientnet在CPU上的延迟

在这里插入图片描述

3.4 Efficientnet的迁移学习能力

在这里插入图片描述

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

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

相关文章

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程,避免人为频繁点击脚本的构思与源码。 加油!为实现全部电脑自动化办公而奋斗! 为实现摆烂躺平的人生而奋斗!!&#xff…

【全开源】最新恋爱交友脱单盲盒源码

PHP开源版,带扩列付费恋爱定位入群,内有详细安装教程,轻松部署,搭建即可运营,内置永久免费更新地址,后续无忧升级。 程序介绍: 近期爆火的模式,无压力付费交友,由线下摆…

调用WinPE给现有的Windows做一个备份

前言 前段时间有小伙伴问我:如何让给电脑备份系统。 小白直接告诉他:为啥要备份系统呢?直接给电脑创建一个还原点就好了。 Windows还原点创建教程(点我跳转) 没想到小伙伴的格局比小白大得多,他说&…

C语言----函数

1.函数的概念 函数:founction c语言的程序代码都是函数组成的 c语言中的函数就是一个完成某项特定的任务的一段代码,这段代码有特殊的写法和调用方法 c语言中我们一般见到两种函数: .库函数 .自定义函数 2.库函数 有对应的头文件 #i…

AutoCAD 2025 for mac/win:设计未来,触手可及

在数字化时代,设计不再局限于纸笔之间,而是跃然于屏幕之上,AutoCAD 2025正是这一变革的杰出代表。无论是Mac用户还是Windows用户,AutoCAD 2025都以其卓越的性能和出色的用户体验,成为了CAD设计绘图领域的佼佼者。 Aut…

什么是 Web3 的生成式 AI?

从 Web 1.0 的静态、单向通信到 Web 2.0 的动态、用户驱动的格局,互联网在二十年的时间里经历了一场显着的转变。现在,当我们站在 Web 3.0 时代的边缘时,我们正在见证更具颠覆性的事物的曙光:生成式人工智能 (AI) 融入我们的数字世…

4月28日,深圳Sui Meetup活动圆满成功

对于Sui来说,2024年无疑是充满历史意义的一年。在这几个月的时间里,Sui凭借其革命性的技术架构和稳固的生态系统,在区块链界中如同新星般冉冉升起。 其总锁定价值(TVL)屡创新高,链上生态系统繁荣昌盛&…

【Python小练】求斐波那契数列第n个数

题目 输出斐波那契数列第n个数。 分析 首先我们要知道,斐波那契数列,这个数列从第三位开始等于前两个数的和,要知道数列第n个数(n>2),就要知道其前两相的值,着就需要用到递归了。来看一下吧…

平面模型上提取凸凹多边形------pcl

平面模型上提取凸凹多边形 pcl::PointCloud<pcl::PointXYZ>::Ptr PclTool::ExtractConvexConcavePolygons(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud) {pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl::PointCloud<pcl::PointXYZ>);p…

Windows如何通过wsl2迅速启动Docker desktop的PHP的Hyperf项目容器?

一、安装WSL 什么是WSL&#xff1f; 官网&#xff1a;什么是WSL&#xff1f; Windows Subsystem for Linux (WSL) 是一个在Windows 10和Windows 11上运行原生Linux二进制可执行文件的兼容性层。 换句话说&#xff0c;WSL让你可以在Windows系统上运行Linux环境&#xff0c;而无需…

第74天:漏洞发现-Web框架中间件插件BurpSuite浏览器被动主动探针

目录 思维导图 前置知识 案例一&#xff1a;浏览器插件-辅助&资产&漏洞库-Hack-Tools&Fofa_view&Pentestkit 案例二&#xff1a; BurpSuite 插件-被动&特定扫描-Fiora&Fastjson&Shiro&Log4j 思维导图 前置知识 目标&#xff1a; 1. 用…

Python 深度学习(三)

原文&#xff1a;zh.annas-archive.org/md5/98cfb0b9095f1cf64732abfaa40d7b3a 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第八章&#xff1a;深度学习与电脑游戏 上一章关注的是解决棋盘游戏问题。在本章中&#xff0c;我们将研究更复杂的问题&#xff0c;即训练…