第四十二篇 EfficientNet:重新思考卷积神经网络的模型缩放

news2024/11/29 15:08:52

文章目录

  • 摘要
  • 1、简介
  • 2、相关工作
  • 3、复合模型缩放
    • 3.1、 问题公式化
    • 3.2、扩展维度
    • 3.3、复合比例
  • 4、EfficientNet架构
  • 5、实验
    • 5.1、扩展MobileNets和ResNets
    • 5.2、EfficientNet的ImageNet结果
    • 5.3、EfficientNet的迁移学习结果
  • 6、讨论
  • 7、结论

摘要

卷积神经网络(ConvNets)通常在固定的资源预算下开发,然后如果有更多的资源,则会扩大规模以获得更好的准确性。本文系统地研究了模型缩放,发现仔细平衡网络深度、宽度和分辨率可以带来更好的性能。基于这一观察,本文提出了一种新的缩放方法,使用一个简单而高效的复合系数均匀缩放深度/宽度/分辨率的所有维度。证明了该方法在扩大MobileNets和ResNet上的有效性。

进一步,我们使用神经架构搜索来设计一个新的基线网络,并将其扩展以获得一系列模型,称为EfficientNets,其精度和效率比以前的ConvNets要好得多。特别是,EfficientNet-B7在ImageNet上实现了最先进的84.3%的top-1精度,同时在推理上比现有最好的卷积网络小8.4倍,快6.1倍。EfficientNets也很好地迁移,并在CIFAR-100(91.7%)、Flowers(98.8%)和其他3个迁移学习数据集上实现了最先进的精度,参数减少了一个数量级。源代码位于https: //github.com/tensorflow/tpu/tree/ master/models/official/efficientnet。
在这里插入图片描述

图1。模型大小与ImageNet精度。所有的数字都是单裁剪,单模型的。EfficientNets的表现明显优于其他ConvNets。特别是,EfficientNet-B7实现了最新的84.3% top-1精度,但比GPipe小8.4倍、快6.1倍。EfficientNet-B1比ResNet-152小7.6倍,快5.7倍。详情见表2和表4。

1、简介

放大卷积网络被广泛用于实现更好的精度。例如,ResNet (He et al., 2016)可以通过使用更多的层数从ResNet-18扩展到ResNet-200;最近,GPipe (Huang等人,2018)通过将基线模型扩大四倍,实现了84.3%的ImageNet top-1精度。然而,扩大卷积网络的过程从来没有被很好地理解,目前有许多方法来做到这一点。最常见的方法是根据卷积网络的深度(He et al., 2016)或宽度(Zagoruyko & Komodakis, 2016)扩大卷积网络。另一种不太常见但越来越流行的方法是通过图像分辨率放大模型(Huang等人,2018)。在之前的工作中,通常只缩放三个维度中的一个——深度、宽度和图像大小。虽然可以任意缩放两个或三个维度,但任意缩放需要繁琐的手动调整,仍然经常产生次优的精度和效率。

本文想研究和重新思考卷积网络的扩大过程。本文研究了中心问题:是否有一种原则性的方法来扩大卷积网络,以达到更好的精度和效率?实证研究表明,平衡网络宽度/深度/分辨率的所有维度是至关重要的,令人惊讶的是,这种平衡可以通过简单地以恒定的比例缩放每个维度来实现。基于这一观察,本文提出了一种简单而有效的复合标度方法。与任意缩放这些因子的传统做法不同,所提出方法用一组固定的缩放系数均匀地缩放网络宽度、深度和分辨率。例如,如果我们想使用 2 N 2^{N} 2N倍的计算资源,那么我们可以简单地将网络深度增加 α N \alpha^{N} αN,宽度增加 β N \beta^{N} βN,图像大小增加 γ N \gamma^{N} γN,其中 α , β , γ \alpha, \beta, \gamma α,β,γ是常系数,通过在原始小模型上进行小网格搜索来确定。图2说明了我们的缩放方法和传统方法之间的区别。

直观地说,复合缩放方法是有意义的,因为如果输入图像较大,那么网络需要更多的层来增加感受野,并需要更多的通道来捕捉更大图像上的更细粒度的模式。事实上,之前的理论(Raghu等人,2017;Lu et al., 2018)和实证结果(Zagoruyko & Komodakis, 2016)都表明网络宽度和深度之间存在一定的关系,但据我们所知,我们首次实证量化了网络宽度、深度和分辨率三个维度之间的关系。

实验证明,所提出的扩展方法在现有的MobileNets上工作良好(Howard等人,2017;Sandler等人,2018)和ResNet (He等人,2016)。值得注意的是,模型扩展的有效性严重依赖于基线网络;为了更进一步,我们使用神经架构搜索(Zoph & Le, 2017;Tan等人,2019)开发一个新的基线网络,并将其扩展以获得一个称为EfficientNets的模型族。图1总结了ImageNet的性能,其中EfficientNets的性能明显优于其他卷积网络。特别是,EfficientNet-B7超过了现有最好的GPipe精度(Huang等人,2018),但使用的参数少了8.4倍,推理速度快了6.1倍。与广泛使用的ResNet-50相比(He et al., 2016), EfficientNet-B4将top-1精度从76.3%提高到83.0%(+6.7%),并且具有相似的FLOPS。除了ImageNet, EfficientNets也很好地迁移,在8个广泛使用的数据集中的5个上实现了最先进的精度,同时比现有的ConvNets减少了多达21倍的参数。

2、相关工作

ConvNet精度:自AlexNet (Krizhevsky等人,2012)赢得2012年ImageNet竞赛以来,ConvNets通过扩大规模变得越来越准确:2014年ImageNet获胜者GoogleNet (Szegedy等人,2015)以约6.8M参数实现了74.8%的top-1精度,2017年ImageNet获奖者SENet (Hu等人,2018)以145M参数实现了82.7%的top-1精度。最近,GPipe (Huang et al., 2018)使用557M参数将最先进的ImageNet top-1验证精度进一步提高到84.3%:它如此之大,以至于只能通过分割网络并将每个部分扩展到不同的加速器来用专门的管道并行库进行训练。虽然这些模型主要是为ImageNet设计的,但最近的研究表明,更好的ImageNet模型也在各种迁移学习数据集(Kornblith等人,2019)和其他计算机视觉任务(如目标检测)上表现更好(He等人,2016;Tan等人,2019)。虽然更高的精度对许多应用程序至关重要,但我们已经达到了硬件内存的限制,因此进一步提高精度需要更高的效率。

卷积网络效率:深度卷积网络通常是过度参数化的。模型压缩(Han等人,2016;He等人,2018;Yang等人,2018)是一种通过交易精度来降低模型大小的常见方法。随着手机变得无处不在,手工制作高效的移动大小的卷积网络也很常见,如SqueezeNets (Iandola等人,2016;Gholami等人,2018),MobileNets (Howard等人,2017;Sandler等人,2018)和ShuffleNets(Zhang等人,2018;Ma et al., 2018)。最近,神经架构搜索在设计高效的移动尺寸卷积网络中变得越来越流行(Tan等人,2019;Cai et al., 2019),并通过广泛调整网络宽度、深度、卷积核类型和大小,实现了比手工制作的移动卷积网络更好的效率。然而,目前还不清楚如何将这些技术应用于具有更大的设计空间和更昂贵的调优成本的大型模型。本文旨在研究超大型卷积网络的模型效率,其精度超过了最先进的水平。为了实现这一目标,我们求助于模型缩放。

模型缩放:对于不同的资源约束,有许多方法可以缩放ConvNet: ResNet (He et al., 2016)可以通过调整网络深度(#layers)缩小(例如ResNet-18)或扩大(例如ResNet-200),而WideResNet (Zagoruyko & Komodakis, 2016)和MobileNets (Howard et al., 2017)可以通过网络宽度(#channels)缩小。众所周知,更大的输入图像大小将有助于准确性,但会带来更多的flop开销。尽管之前的研究(Raghu等人,2017;林和杰格尔卡,2018;Sharir & Shashua, 2018;Lu等人,2018)的研究表明,网络深度和宽度对卷积网络的表达能力都很重要,如何有效地扩展卷积网络以实现更好的效率和精度仍然是一个开放问题。本文工作系统地和经验地研究了网络宽度、深度和分辨率所有三个维度的卷积网络缩放。

3、复合模型缩放

在本节中,我们将阐述缩放问题,研究不同的方法,并提出我们的新缩放方法。
在这里插入图片描述

3.1、 问题公式化

卷积网络层i可以定义为一个函数: Y i = F i ( X i ) {Y_i}= \mathcal{F}_i{}\left ({X_i}\right) Yi=Fi(Xi),其中 F i \mathcal{F}_i Fi是操作符, Y i Y_i Yi是输出张量, X i X_i Xi是输入张量,具有张量形状 ⟨ H i , W i , C i ⟩ \left\langle H_i{, }W_i{, }C_i{}\right\rangle Hi,Wi,Ci,其中 H i {H_i} Hi W i {W_i} Wi是空间维度, C i {C_i} Ci是通道维度。一个ConvNet N \mathcal{N} N可以表示为一个由层组成的列表: N = F k ⊙ … ⊙ F 2 ⊙ F 1 ( X 1 ) = ⨀ j = 1 … k F j ( X 1 ) \mathcal{N} = \mathcal{F}_k{}\odot\ldots\odot\mathcal{F}_2{}\odot\mathcal{F}_1{}\left ({X_1}\right)= \bigodot_j=1{\ldots k }\mathcal{F}_j{}\left ({X_1}\right) N=FkF2F1(X1)=j=1kFj(X1)。在实践中,ConvNet层通常划分为多个阶段,每个阶段中的所有层共享相同的架构:例如,ResNet (He et al.,2016)有五个阶段,每个阶段中的所有层都具有相同的卷积类型,除了第一层执行下采样。因此,我们可以将卷积网络定义为:
N = ⨀ i = 1 … s F i L i ( X ⟨ H i , W i , C i ⟩ ) (1) \mathcal{N}=\bigodot_{i=1 \ldots s} \mathcal{F}_{i}^{L_{i}}\left(X_{\left\langle H_{i}, W_{i}, C_{i}\right\rangle}\right) \tag{1} N=i=1sFiLi(XHi,Wi,Ci)(1)

式中, F i L i \mathcal{F}_{i}^{L_{i}} FiLi表示第i阶段第 F i F_i Fi层重复 L i L_i Li次, ⟨ H i , W i , C i ⟩ \left\langle H_{i}, W_{i}, C_{i}\right\rangle Hi,Wi,Ci表示第i层的输入张量 X X X的形状。图2(a)说明了一个代表性的卷积网络,其中空间维度逐渐缩小,但通道维度在各层上进行扩展,例如,从初始输入形状 ⟨ 224 , 224 , 3 ⟩ \langle 224,224,3\rangle 224,224,3到最终输出形状 ⟨ 7 , 7 , 512 ⟩ \langle 7,7,512\rangle 7,7,512

常规的ConvNet设计主要关注于寻找最佳的层架构 F i \mathcal{F}_{i} Fi,而模型缩放则试图扩展网络长度 ( L i ) \left(L_{i}\right) (Li)、宽度 ( C i ) \left(C_{i}\right) (Ci)和/或分辨率 ( H i , W i ) \left(H_{i}, W_{i}\right) (Hi,Wi),无需改变基线网络中预定义的 F i \mathcal{F}_{i} Fi。通过固定 F i \mathcal{F}_{i} Fi,模型缩放简化了新资源约束下的设计问题,但对于每一层探索不同的 L i , C i , H i , W i L_{i}, C_{i}, H_{i}, W_{i} Li,Ci,Hi,Wi仍然有很大的设计空间。为了进一步缩小设计空间,我们限制所有层必须以恒定比例均匀缩放。我们的目标是在任何给定的资源约束下使模型精度最大化,这可以表述为一个优化问题:

max ⁡ d , w , r Accuracy ⁡ ( N ( d , w , r ) ) \max _{d, w, r} \operatorname{Accuracy}(\mathcal{N}(d, w, r)) d,w,rmaxAccuracy(N(d,w,r))
 s.t.  N ( d , w , r ) = ⨀ i = 1 … s F ^ i d ⋅ L ^ i ( X ⟨ r ⋅ H ^ i , r ⋅ W ^ i , w ⋅ C ^ i ⟩ ) \text { s.t. } \quad \mathcal{N}(d, w, r)=\bigodot_{i=1 \ldots s} \hat{\mathcal{F}}_{i}^{d \cdot \hat{L}_{i}}\left(X_{\left\langle r \cdot \hat{H}_{i}, r \cdot \hat{W}_{i}, w \cdot \hat{C}_{i}\right\rangle}\right)  s.t. N(d,w,r)=i=1sF^idL^i(XrH^i,rW^i,wC^i)
Memory ⁡ ( N ) ≤  targetmemory  FLOPS ⁡ ( N ) ≤  targetflops  (2) \begin{array}{l} \operatorname{Memory}(\mathcal{N}) \leq \text { targetmemory } \\ \operatorname{FLOPS}(\mathcal{N}) \leq \text { targetflops } \end{array} \tag{2} Memory(N) targetmemory FLOPS(N) targetflops (2)

其中, w , d , r w, d, r w,d,r是缩放网络宽度、深度和分辨率的系数; F ^ i , L ^ i , H ^ i , W ^ i , C ^ i \hat{\mathcal{F}}_{i}, \hat{L}_{i}, \hat{H}_{i}, \hat{W}_{i}, \hat{C}_{i} F^i,L^i,H^i,W^i,C^i是基线网络中的预定义参数(如表1所示)。

3.2、扩展维度

问题2的主要困难在于最优解 d ; w ; r d;w;r d;w;r是相互依赖的,并且在不同的资源约束下值会发生变化。由于这一困难,传统方法主要是在这些维度之一对卷积网络进行缩放:
在这里插入图片描述

深度(d):缩放网络深度是许多ConvNets最常用的方法(He et al., 2016;黄等人,2017;Szegedy等人,2015;2016)。直觉是,更深的卷积网络可以捕获更丰富和更复杂的特征,并在新任务上有很好的泛化能力。然而,由于梯度消失问题,更深的网络也更难以训练(Zagoruyko & Komodakis, 2016)。尽管一些技术,如跳跃连接(He et al., 2016)和批量归一化(Ioffe & Szegedy, 2015),缓解了训练问题,但非常深的网络的精度增益却降低了:例如,ResNet-1000与ResNet-101的精度相似,尽管它的层数更多。图3(中)显示了我们对具有不同深度系数d的基线模型进行缩放的实证研究,进一步表明非常深的卷积网络的精度回报递减。

宽度(w):缩放网络宽度通常用于小尺寸模型(Howard等人,2017;Sandler等人,2018;Tan等人,2019)。正如(Zagoruyko & Komodakis, 2016)中讨论的那样,更广泛的网络往往能够捕获更多细粒度特征,也更容易训练。然而,极宽但极浅的网络往往难以捕获更高层次的特征。我们在图3(左)中的经验结果表明,当网络随着w的增大而变得更宽时,精度迅速饱和。

分辨率®:通过更高分辨率的输入图像,ConvNets可以捕获更细粒度的模式。从早期ConvNets的224x224开始,现代ConvNets倾向于使用299x299 (Szegedy et al., 2016)或331x331 (Zoph et al., 2018)以获得更好的准确性。最近,GPipe (Huang等人,2018)以480 × 480分辨率实现了最先进的ImageNet精度。更高的分辨率,如600x600,也广泛应用于目标检测卷积网络(He等人,2017;Lin等人,2017)。图3(右)显示了缩放网络分辨率的结果,更高的分辨率确实可以提高精度,但非常高的分辨率会降低精度增益(r = 1:0表示分辨率224x224, r = 2:5表示分辨率560x560)。

通过上述分析,我们得出了第一个结论:
结论1 -扩大网络宽度、深度或分辨率的任何维度都可以提高精度,但对于更大的模型,精度增益会降低。

3.3、复合比例

我们通过经验观察到,不同的缩放维度并不是相互独立的。直观地说,对于更高分辨率的图像,我们应该增加网络深度,这样更大的感受野可以帮助捕获在更大的图像中包含更多像素的相似特征。相应的,在分辨率较高时,我们也应该增加网络宽度,以便在高分辨率图像中以更多的像素捕获更细粒度的图案。这些直觉表明,我们需要协调和平衡不同的缩放维度,而不是传统的单一维度缩放。
在这里插入图片描述

为了验证我们的直觉,我们比较了不同网络深度和分辨率下的宽度缩放,如图4所示。如果我们只缩放网络宽度w,而不改变深度(d=1.0)和分辨率(r=1.0),精度会很快饱和。随着更深(d=2.0)和更高的分辨率(r=2.0),宽度缩放在相同的FLOPS成本下获得了更好的精度。这些结果引出了第二个结论:

结论2——为了追求更好的精度和效率,在卷积网络缩放过程中平衡网络宽度、深度和分辨率的所有维度是至关重要的。

事实上,之前的一些工作(Zoph等人,2018;Real et al., 2019)已经尝试任意平衡网络宽度和深度,但它们都需要繁琐的手动调整。

本文提出了一种新的复合尺度方法,该方法使用复合系数φ以一种原则性的方式统一尺度网络宽度、深度和分辨率:
 depth:  d = α ϕ  width:  w = β ϕ  resolution:  r = γ ϕ  s.t.  α ⋅ β 2 ⋅ γ 2 ≈ 2 α ≥ 1 , β ≥ 1 , γ ≥ 1 (3) \begin{aligned} \text { depth: } & d=\alpha^{\phi} \\ \text { width: } & w=\beta^{\phi} \\ \text { resolution: } & r=\gamma^{\phi} \\ \text { s.t. } & \alpha \cdot \beta^{2} \cdot \gamma^{2} \approx 2 \\ & \alpha \geq 1, \beta \geq 1, \gamma \geq 1 \end{aligned} \tag{3}  depth:  width:  resolution:  s.t. d=αϕw=βϕr=γϕαβ2γ22α1,β1,γ1(3)
其中, α , β , γ \alpha, \beta, \gamma α,β,γ是常数,可以通过一个小的网格搜索确定。直观地说, ϕ \phi ϕ是一个用户指定的系数,它控制有多少资源可用于模型缩放,而 α , β , γ \alpha, \beta, \gamma α,β,γ指定如何分别将这些额外资源分配给网络宽度、深度和分辨率。值得注意的是,规则卷积op的FLOPS与 d , w 2 , r 2 d, w^{2}, r^{2} d,w2,r2成正比,即网络深度加倍会使FLOPS加倍,但网络宽度或分辨率加倍会使FLOPS增加四倍。由于卷积运算通常主导卷积网络的计算成本,用公式3缩放卷积网络将使总FLOPS大约增加 ( α ⋅ β 2 ⋅ γ 2 ) ϕ \left(\alpha \cdot \beta^{2} \cdot \gamma^{2}\right)^{\phi} (αβ2γ2)ϕ。在本文中,我们约束 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot \beta^{2} \cdot \gamma^{2} \approx 2 αβ2γ22,使得对于任何新的 ϕ \phi ϕ,总FLOPS将大约增加 2 ϕ 2^{\phi} 2ϕ

4、EfficientNet架构

由于模型缩放不会改变基线网络中的层算子 F ^ i \hat{\mathcal{F}}_{i} F^i,因此具有良好的基线网络也至关重要。我们将使用现有的ConvNets评估我们的缩放方法,但为了更好地证明缩放方法的有效性,我们还开发了一个新的移动大小的基线,称为EfficientNet。
在这里插入图片描述

受(Tan等人,2019)启发,通过利用多目标神经架构搜索来优化精度和flop,开发了基线网络。具体来说,我们使用与(Tan et al., 2019)相同的搜索空间,并使用 A C C ( m ) × [ F L O P S ( m ) / T ] w A C C(m) \times[F L O P S(m) / T]^{w} ACC(m)×[FLOPS(m)/T]w作为优化目标,其中ACC(m)和FLOPS (m)表示模型m的精度和FLOPS, T是目标FLOPS, w=-0.07是用于控制精度和FLOPS之间权衡的超参数。不像(Tan等人,2019;Cai et al., 2019),这里我们优化FLOPS而不是延迟,因为我们没有针对任何特定的硬件设备。我们的搜索产生了一个有效的网络,我们将其命名为EfficientNet-B0。由于我们使用与(Tan等人,2019)相同的搜索空间,该架构类似于MnasNet,除了我们的EfficientNet-B0由于计算量目标更大而略大(我们的计算量目标是400M)。表1显示了EfficientNet-B0的架构。其主要构建模块是移动反向瓶颈MBConv (Sandler等人,2018;Tan et al., 2019),我们还添加了SE注意力(Hu et al., 2018)。

从基准EfficientNet-B0开始,我们应用复合缩放方法以两步扩大其规模:

  • 步骤1:我们首先固定 ϕ = 1 \phi =1 ϕ=1,假设有两倍以上的可用资源,并根据公式2和3对 α , β , γ \alpha, \beta, \gamma α,β,γ进行小网格搜索。特别地,我们发现EfficientNet-B0的最佳值是 α = 1.2 , β = 1.1 , γ = 1.15 \alpha =1.2, \beta =1.1, \gamma =1.15 α=1.2,β=1.1,γ=1.15,在 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha\cdot\beta ^{2}\cdot\gamma ^{2}\approx 2 αβ2γ22的约束下。
  • 步骤2:然后我们将 α , β , γ \alpha, \beta, \gamma α,β,γ固定为常数,并使用公式3扩展不同的 ϕ \phi ϕ基线网络,以获得EfficientNet-B1到B7(详细信息见表2)。

值得注意的是,通过直接在大型模型周围搜索α, β, γ可以获得更好的性能,但在更大的模型上搜索成本变得非常昂贵。我们的方法通过只在小的基线网络上进行一次搜索(步骤1)来解决这个问题,然后对所有其他模型使用相同的缩放系数(步骤2)。
在这里插入图片描述

5、实验

在本节中,我们将首先在现有的ConvNets和新提出的EfficientNets上评估我们的缩放方法。

5.1、扩展MobileNets和ResNets

作为概念证明,首先将所提出的缩放方法应用于广泛使用的mobilenet (Howard等人,2017;Sandler等人,2018)和ResNet (He等人,2016)。表3显示了以不同方式扩展它们的ImageNet结果。与其他一维缩放方法相比,所提出的复合缩放方法提高了所有这些模型的精度,表明所提出的缩放方法对一般现有ConvNets的有效性。
在这里插入图片描述

5.2、EfficientNet的ImageNet结果

使用类似的设置在ImageNet上训练EfficientNet模型(Tan等人,2019):衰减0.9和动量0.9的RMSProp优化器;批量范数动量0.99;重量衰减1e-5;初始学习率0.256,每2.4个epoch衰减0.97。我们还使用SiLU (Swish-1)激活(Ramachandran等人,2018;Elfwing等人,2018;Hendrycks & Gimpel, 2016)、AutoAugment (Cubuk et al., 2019)和随机深度(Huang et al., 2016),生存概率为0.8。众所周知,更大的模型需要更多的正则化,我们将EfficientNet-B0的dropout比率(Srivastava等人,2014)从0.2线性增加到B7的0.5。我们从训练集中随机选择25K张图像作为一个minival集,并在这个minival上进行提前停止;然后,在原始验证集上评估提前停止的检查点,以报告最终验证精度。

表2显示了从相同的基准EfficientNet- b0扩展而来的所有EfficientNet模型的性能。所提出的EfficientNet模型通常比其他具有类似精度的ConvNets使用的参数和FLOPS少一个数量级。特别是,EfficientNet-B7以66M参数和37B FLOPS实现了84.3%的top1精度,更准确但比之前最好的GPipe小8.4倍(Huang等人,2018)。这些收益来自于更好的架构、更好的扩展和更好的训练设置,这些设置是为EfficientNet定制的。
在这里插入图片描述

图1和图5说明了代表性ConvNets的参数-精度和FLOPS-精度曲线,其中我们缩放后的EfficientNet模型比其他ConvNets以更少的参数和FLOPS实现了更好的精度。值得注意的是,EfficientNet模型不仅小,而且计算成本更低。例如,我们的EfficientNet-B3取得了比ResNeXt- 101 (Xie等人,2017)更高的精度,使用的FLOPS减少了18倍。
在这里插入图片描述

为了验证延迟,我们还测量了几个代表性covnet在真实CPU上的推断延迟,如表4所示,其中我们报告了20次运行的平均延迟。EfficientNet-B1的运行速度比广泛使用的ResNet-152快5.7倍,而EfficientNet-B7的运行速度比GPipe快6.1倍(Huang等人,2018),这表明我们的efficientnet在真实硬件上确实快。

5.3、EfficientNet的迁移学习结果

我们还在常用的迁移学习数据集列表上评估了EfficientNet,如表6所示。我们借鉴了相同的训练设置(Kornblith等人,2019)和(Huang等人,2018),它们在新的数据集上进行ImageNet预训练检查点和微调。
在这里插入图片描述
在这里插入图片描述

表5显示了迁移学习性能:(1)与公共可用模型相比,如NASNet-A (Zoph等人,2018)和Inception-v4 (Szegedy等人,2017),我们的EfficientNet模型实现了更好的精度,平均参数减少了4.7倍(最高21倍)。(2)与最先进的模型相比,包括动态合成训练数据的DAT (Ngiam et al., 2018)和用专门的管道并行训练的GPipe (Huang et al., 2018),我们的EfficientNet模型仍然在8个数据集中的5个数据集上超过其精度,但使用的参数少了9.6倍。
在这里插入图片描述

图6比较了各种模型的精度参数曲线。总的来说,与现有模型相比,EfficientNets在参数减少一个数量级的情况下始终实现了更好的精度,包括ResNet (He等人,2016)、DenseNet (Huang等人,2017)、Inception (Szegedy等人,2017)和NASNet (Zoph等人,2018)。

6、讨论

为了从EfficientNet架构中分离出我们所提出的缩放方法的贡献,图8比较了相同EfficientNet- b0基线网络的不同缩放方法的ImageNet性能。总的来说,所有的缩放方法都以更多的FLOPS为代价来提高精度,但所提出的复合缩放方法可以进一步提高精度,比其他单维度缩放方法最高提高2.5%,表明所提出的复合缩放的重要性。
在这里插入图片描述

在这里插入图片描述

为了进一步理解为什么我们的复合缩放方法比其他方法更好,图7比较了几个具有不同缩放方法的代表性模型的类激活图(Zhou et al., 2016)。所有这些模型都是从同一基线缩放的,它们的统计数据如表7所示。图像是从ImageNet验证集随机选取的。如图所示,复合缩放的模型倾向于关注更相关、物体细节更多的区域,而其他模型要么缺乏物体细节,要么无法捕捉图像中的所有物体。

在这里插入图片描述

7、结论

本文系统地研究了卷积网络的缩放,并发现仔细平衡网络宽度、深度和分辨率是一个重要但缺失的部分,阻碍了我们获得更好的精度和效率。为解决这个问题,本文提出一种简单高效的复合缩放方法,能够以更有原则的方式轻松地将基线卷积网络扩展到任何目标资源约束,同时保持模型效率。在这种复合缩放方法的支持下,本文证明了mobilesize EfficientNet模型可以非常有效地扩展,在ImageNet和五个常用的迁移学习数据集上,以较少的参数和FLOPS超过最先进的精度。

致谢

我们感谢庞若明、Vijay Vasudevan、Alok Aggarwal、Barret Zoph、Hongkun Yu、Jonathon Shlens、Raphael Gontijo Lopes、Yifeng Lu、Daiyi Peng、Xiaodan Song、Samy Bengio、Jeff Dean和谷歌Brain团队的帮助。

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

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

相关文章

【Android】MMKV—高性能轻量化存储组件

【Android】MMKV—高性能轻量化存储组件 本文参考以及学习文档: Android存储:轻松掌握MMKV通过学习本文,轻松掌握腾讯开发的 MMKV 组件,尽早在项目中替换掉SharedPr - 掘金 MMKV——Android上的使用(替换SP存储)MMKV 是基于 mmap …

python+django自动化平台(一键执行sql) 前端vue-element展示

一、开发环境搭建和配置 pip install mysql-connector-pythonpip install PyMySQL二、django模块目录 dbOperations ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-313.pyc │ ├── admin.cpython-313.pyc │ ├── apps.cpython-313.pyc │ …

arm Rk1126 编译Qt工程报错: Could not find qmake spec

首先修改qmake.conf文件,配置好正确的交叉编译工具: 然后执行编译: /opt/Rv1126/Rv1126-盒子代码/rv1126-qt5-sdk/bin/qmake untitled.pro 报错。 原因:中文路径。修改路径为英文路径即可

[保姆式教程]使用labelimg2软件标注定向目标检测数据和格式转换

定向目标检测是一种在图像或视频中识别和定位对象的同时,还估计它们方向的技术。这种技术特别适用于处理有一定旋转或方向变化的对象,例如汽车、飞机或文本。定向目标检测器的输出是一组旋转的边界框,这些框精确地包围了图像中的对象&#xf…

C语言刷题笔记3(7)

7.1 数组处理斐波那契数列 题目描述:用数组来处理Fibonacci数列并输出。 输入:一个不超过40且大于2的整数n,表示需要处理并输出的Fibonacci数个数。 输出:输出前n个Fibonacci数,每行输出5个值,按每12位向右对齐的方式输出。请注意不要在第…

PHP 去掉特殊不可见字符 “\u200e“

描述 最近在排查网站业务时,发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F‎】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 &#xf…

构建 LLM (大型语言模型)应用程序——从入门到精通(第七部分:开源 RAG)

通过检索增强生成 (RAG) 应用程序的视角学习大型语言模型 (LLM)。 本系列博文 简介数据准备句子转换器矢量数据库搜索与检索大语言模型开源 RAG(本帖)评估服务LLM高级 RAG 1. 简介 我们之前的博客文章广泛探讨了大型语言模型 (LLM),涵盖了其…

linux基础2

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

智能产品综合开发 - 手势识别

1 实训选题目的 本次实训选择的题目是“基于树莓派的手势识别系统”,旨在为人们提供一种便捷的交互方式,使用户能够通过手势控制智能设备,摆脱传统的物理按键操作。通过本项目,我们希望能实现快速、灵活的手势识别,提升…

Qt常用控件之显示类控件

目录 QLabel 文本格式 设置图片 文本对齐/自动换行/边距/缩进 设置伙伴 QLCDNumber 倒计时功能 QProgressBar 进度条 QCalendarWidget QLabel QLabel 同样是 QWidget 的子类,所以前面博客中 QWidget 中的属性方法也是适用的 QLabel可以用来显示文本和图…

架构-微服务-环境搭建

文章目录 前言一、案例准备1. 技术选型2. 模块设计3. 微服务调用 二、创建父工程三、创建基础模块四、创建用户微服务五、创建商品微服务六、创建订单微服务 前言 ‌微服务环境搭建‌ 使用的电商项目中的商品、订单、用户为案例进行讲解。 一、案例准备 1. 技术选型 maven&a…

【JTAG】1149.6协议总结

【JTAG】1149.6协议详解-CSDN博客 IEEE 1149.6标准的基本实现需要在信号路径驱动器中添加一个时脉产生器,它能发射单一脉冲或一列脉冲,这取决于被加载到 1149.1 指令暂存器中的 EXTEST_PULSE 或 EXTEST_TRAIN 指令。1149.6在克服信道中共模讯号干扰能力…

小程序 - 个人简历

为了让招聘人员快速地认识自己,可以做一个“个人简历”微信小程序, 展示自己的个人信息。 下面将对“个人简历”微信小程序进行详细讲解。 目录 个人简历 创建图片目录 页面开发 index.wxml index.wxss 功能实现截图 总结 个人简历 创建图片目录…

Tülu 3:重新定义开源大模型的后训练范式

一、引言 在大型语言模型(LLM)的发展历程中,预训练阶段往往受到最多关注,动辄需要数百万美元算力投入和数万亿token的训练数据。然而,一个鲜为人知但同样关键的事实是:预训练完成的模型实际上并不能直接投…

systemverilog约束中:=和:/的区别

“x dist { [100:102] : 1, 200 : 2, 300 : 5}” 意味着其值等于100或101或102或200或300其中之一, 其权重比例为1:1:1:2:5 “x dist { [100:102] :/ 1, 200 : 2, 300 : 5}” 意味着等于100,101,102或200,或300其…

用Pycharm安装manim

由于版本和工具的差异,manim的安装方式不尽相同。本文用Pycharm来安装manim. 一、准备工作:安装相应版本的python、pycharm和ffmpeg. 此处提供一种安装ffmpeg的方式 下载地址:FFmpeg 下载后,解压到指定目录。 配置环境变量&am…

云GPU——pycharm远程连接featurize实例

点击PyCharm远程连接会有详细的教程, 本文补充虚拟环境的创建以及包的下载。 1、虚拟环境的创建: 2、虚拟环境创建好之后,下载需要的包 (这种方法比较快) 可以在python interpreter点击go to tool window&#xff0c…

Fanuc法那科机器人维修之参考位置详解

参考位置是预先设定好的一个或多个特定点位,当启用这一功能时,系统会实时且精确地判断机器人的当前关节角度是否处于预设参考位置的一定范围之内(这个范围区间是可以根据实际需求进行设置的),并据此输出指定的信号。 这…

混淆零碎知识点

minifyEnabled true //混淆开关 zipAlignEnabled true // Zipalign优化 shrinkResources true // 移除无用的resource文件 (必须要混淆开了之后才才可以设置为true) proguard-rules.pro 为混淆文件 //整个文件保留 不被混淆 -keep class com.cn…

ELK(Elasticsearch + logstash + kibana + Filebeat + Kafka + Zookeeper)日志分析系统

文章目录 前言架构软件包下载 一、准备工作1. Linux 网络设置2. 配置hosts文件3. 配置免密登录4. 设置 NTP 时钟同步5. 关闭防火墙6. 关闭交换分区7. 调整内存映射区域数限制8. 调整文件、进程、内存资源限制 二、JDK 安装1. 解压软件2. 配置环境变量3. 验证软件 三、安装 Elas…