当前位置:网站首页>EfficientNet模型的完整细节
EfficientNet模型的完整细节
2022-07-07 12:37:00 【小白学视觉】
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达导读
本文介绍了一种高效的网络模型EfficientNet,并分析了 EfficientNet B0 至B7的网络结构之间的差异。
我在一个Kaggle竞赛中翻阅notebooks,发现几乎每个人都在使用EfficientNet 作为他们的主干,而我之前从未听说过这个。
谷歌AI在这篇文章中:https://arxiv.org/abs/1905.11946介绍了它,他们试图提出一种更高效的方法,就像它的名字所建议的那样,同时改善了最新的结果。一般来说,模型设计得太宽,太深,或者分辨率太高。刚开始的时候,增加这些特性是有用的,但很快就会饱和,然后模型的参数会很多,因而效率不高。在EfficientNet中,这些特性是按更有原则的方式扩展的,也就是说,一切都是逐渐增加的。

不明白发生了什么?不要担心,一旦看到了架构,你就会明白了。但首先,让我们看看他们得到了什么结果。

由于参数的数目相当少,这个模型族是非常高效的,也提供更好的结果。现在我们知道了为什么这些可能会成为标准的预训练模型,但是缺少了一些东西。
共同之处
首先,任何网络都以它为主干,在此之后,所有对架构的实验都以它为开始,这在所有8个模型和最后的层中都是一样的。

之后,每个主干包含7个block。这些block还有不同数量的子block,这些子block的数量随着EfficientNetB0到EfficientNetB7而增加。要可视化模型层,代码如下:
!pip install tf-nightly-gpu
import tensorflow as tf
IMG_SHAPE = (224, 224, 3)
model0 = tf.keras.applications.EfficientNetB0(input_shape=IMG_SHAPE, include_top=False, weights="imagenet")
tf.keras.utils.plot_model(model0) # to draw and visualize
model0.summary() # to see the list of layers and parameters如果你计算EfficientNet-B0的总层数,总数是237层,而EfficientNet-B7的总数是813层!!但不用担心,所有这些层都可以由下面的5个模块和上面的主干组成。

我们使用这5个模块来构建整个结构。
模块1 — 这是子block的起点。
模块2 — 此模块用于除第一个模块外的所有7个主要模块的第一个子block的起点。
模块3 — 它作为跳跃连接到所有的子block。
模块4 — 用于将跳跃连接合并到第一个子block中。
模块5 — 每个子block都以跳跃连接的方式连接到之前的子block,并使用此模块进行组合。
这些模块被进一步组合成子block,这些子block将在block中以某种方式使用。

子block1 — 它仅用于第一个block中的第一个子block。
子block2 — 它用作所有其他block中的第一个子block。
子block3 — 用于所有block中除第一个外的任何子block。
到目前为止,我们已经指定了要组合起来创建EfficientNet模型的所有内容,所以让我们开始吧。
模型结构
EfficientNet-B0

EfficientNet-B0架构。(x2表示括号内的模块重复两次)
EfficientNet-B1

EfficientNet-B1的结构
EfficientNet-B2
它的架构与上面的模型相同,唯一的区别是特征图(通道)的数量不同,增加了参数的数量。
EfficientNet-B3

EfficientNet-B3的结构
EfficientNet-B4

EfficientNet-B4的结构
EfficientNet-B5

EfficientNet-B5的结构
EfficientNet-B6

EfficientNet-B6的结构
EfficientNet-B7

EfficientNet-B7的结构
很容易看出各个模型之间的差异,他们逐渐增加了子block的数量。如果你理解了体系结构,我鼓励你将任意的模型打印出来,并仔细阅读它以更彻底地了解它。下面的表表示了EfficientNet-B0中卷积操作的内核大小以及分辨率、通道和层。

此表已包含在原始论文中。对于整个模型族来说,分辨率是一样的。我不确定卷积核的大小是否改变了。层的数量已经在上面的图中显示了。通道数量是不同的,它是根据从每个型号的摘要中看到的信息计算出来的,如下所示:

在结束之前,我附上了另一个图像,来自它的研究论文,显示了它与其他的SOTA的performance的比较,还有减少的参数的数量和所需的FLOPS。

好消息!
小白学视觉知识星球
开始面向外开放啦

下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~边栏推荐
- 小米的芯片自研之路
- Beginner JSP
- AutoCAD - how to input angle dimensions and CAD diameter symbols greater than 180 degrees?
- JS get the current time, month, day, year, and the uniapp location applet opens the map to select the location
- docker部署oracle
- 多商户商城系统功能拆解01讲-产品架构
- ES日志报错赏析-trying to create too many buckets
- Horizontal of libsgm_ path_ Interpretation of aggregation program
- Details of redis core data structure & new features of redis 6
- Multi merchant mall system function disassembly lecture 01 - Product Architecture
猜你喜欢

通过 iValueConverter 给datagrid 的背景颜色 动态赋值

Beginner JSP

常用數字信號編碼之反向不歸零碼碼、曼徹斯特編碼、差分曼徹斯特編碼

Parsing of XML files

Use case diagram

Notes de l'imprimante substance: paramètres pour les affichages Multi - écrans et multi - Résolutions

手把手教会:XML建模

Ian Goodfellow, the inventor of Gan, officially joined deepmind as research scientist

Applet directory structure

潘多拉 IOT 开发板学习(HAL 库)—— 实验12 RTC实时时钟实验(学习笔记)
随机推荐
Nllb-200: meta open source new model, which can translate 200 languages
Mrs offline data analysis: process OBS data through Flink job
C # switch pages through frame and page
JS get the current time, month, day, year, and the uniapp location applet opens the map to select the location
AutoCAD - how to input angle dimensions and CAD diameter symbols greater than 180 degrees?
Reverse non return to zero code, Manchester code and differential Manchester code of common digital signal coding
一款你不容错过的Laravel后台管理扩展包 —— Voyager
Interface automation test - solution of data dependency between interfaces
Ascend 910实现Tensorflow1.15实现LeNet网络的minist手写数字识别
Equipment failure prediction machine failure early warning mechanical equipment vibration monitoring machine failure early warning CNC vibration wireless monitoring equipment abnormal early warning
LeetCode 648. Word replacement
Leetcode——剑指 Offer 05. 替换空格
一文读懂数仓中的pg_stat
Differences between cookies and sessions
Leetcode——236. 二叉树的最近公共祖先
Arm cortex-a9, mcimx6u7cvm08ad processor application
2022PAGC 金帆奖 | 融云荣膺「年度杰出产品技术服务商」
Cesium 已知一点经纬度和距离求另一个点的经纬度
Hands on Teaching: XML modeling
交换机和路由器的异同