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

文章目录

  • 摘要
  • 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团队的帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

典型组合逻辑电路设计

目录 行为级描述方式基本运算电路 一、半加器(Half Adder) 二、全加器(Full Adder) 1、逻辑门构成加法器 2、集成全加器 3、串行加法器 4、超前进位加法器 三、全减器(Full Deductor) 数值比较电路 一、一位比较器 二、…

【论文阅读】三平面相关与变体

文章目录 1. 【CVPR2023】Tri-Perspective View for Vision-Based 3D Semantic Occupancy Prediction动机可视化方法Pipeline 2. 【2023/08/31】PointOcc: Cylindrical Tri-Perspective View for Point-based 3D Semantic Occupancy Prediction动机(针对雷达点云、与…

修改bag的frame_id的工具srv_tools

在使用数据集导航或者建图时,bag中的点云或者其他话题的frame_id没有和需要的对应 1.创建工作空间 2.cd xxxx/src 3.git clone https://github.com/srv/srv_tools.git cd .. catkin_make source ./devel/setup.bash rosrun bag_tools change_frame_id.py -t /要改…

hue 4.11容器化部署,已结合Hive与Hadoop

配合《Hue 部署过程中的报错处理》食用更佳 官方配置说明页面: https://docs.gethue.com/administrator/configuration/connectors/ 官方配置hue.ini页面 https://github.com/cloudera/hue/blob/master/desktop/conf.dist/hue.ini docker部署 注意: …

如何用Excel做数据可视化自动化报表?

作为一个经常需要做数据报表的人,我最常用的工具是Excel,对于我来说用Excel处理繁琐冗杂的数据并不难,但是我发现身边很多人用Excel做的数据报表非常的耗时,而且最后的成品也是难以直视,逻辑和配色等都非常的“灾难”。…

layui table 纵向滚动条导致单元格表头表体错位问题

我用的时layui2.6.8版本 历史项目维护,bug给我让我做了,本来利用前端手段强解决,后来发现很多table 找了解决办法 打开layui-v2.6.8/lay/modules/table.js 如果打开后时压缩的代码 直接搜索 e.find(".layui-table-patch") …

C语言学习笔记:流程控制和数据输入输出

流程控制和数据的输入输出 算法 著名计算机科学家沃思提出了一个公式: 数据结构 算法 程序 数据结构:对数据的描述 算法:对操作步骤的描述 算法定义 广义的说,为解决一个问题而采取的方法和有限的步骤,就称为“…

旋转图像(java)

题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 代码思路: class Solution {public void ro…

windows 应用 UI 自动化实战

UI 自动化技术架构选型 UI 自动化是软件测试过程中的重要一环,网络上也有很多 UI 自动化相关的知识或资料,具体到 windows 端的 UI 自动化,我们需要从以下几个方面考虑: 开发语言 毋庸置疑,在 UI 自动化测试领域&am…

【R语言管理】Pycharm配置R语言及使用Anaconda管理R语言虚拟环境

目录 使用Anaconda创建R语言虚拟环境1. 安装Anaconda2. 创建R语言虚拟环境 Pycharm配置R语言1. 安装Pycharm2. R Language for IntelliJ插件 参考 使用Anaconda创建R语言虚拟环境 1. 安装Anaconda Anaconda的安装可参见另一博客-【Python环境管理工具】Anaconda安装及使用教程…

C语言进程编程

getpid函数&#xff1a; 原型&#xff1a;pid_t getpid(void) 特性&#xff1a;返回值是PID值 用途&#xff1a;获取当前进程PID 用法例 #include<stdio.h> #include <sys/types.h> #include<unistd.h> int main() {pid_t pid;pid getpid();printf(&qu…

SpringMVC |(一)SpringMVC概述

文章目录 &#x1f4da;SpringMVC概述&#x1f407;三层架构&#x1f407;异步调用 &#x1f4da;SpringMVC入门案例&#x1f407;入门案例&#x1f407;注意事项 &#x1f4da;小结 学习来源&#xff1a;黑马程序员SSM框架教程_SpringSpringMVCMaven高级SpringBootMyBatisPlus…

Android 桌面窗口新功能推进,聊一聊 Android 桌面化的未来

Android 桌面化支持可以说是 Android 15 里被多次提及的 new features&#xff0c;例如在 Android 15 QPR1 Beta 2 里就提到为 Pixel 平板引入了桌面窗口支持&#xff0c;桌面窗口允许用户在自由窗口同时运行多个应用&#xff0c;同时可以像在传统 PC 平台上一样调整这些窗口的…

Vue+Vite 组件开发的环境准备(零基础搭建)

一、什么是Vite Vue3作为一款现代化的JavaScript框架&#xff0c;配合Vite这样的构建工具&#xff0c;极大地简化了流程&#xff0c;提升了效率。Vite 是一个基于现代浏览器原生的 ES 模块系统&#xff0c;能够以原生模块导入的方式运行源代码的开发服务器。它被设计用来替代传…

linux高级系统编程之进程

进程 一个正在进行的程序 并行与并发 并行:执行的程序在不同CPU上同时执行 并发:一个CPU,多个进程交替执行,因为交替速度很快,所以从宏观上来看是同时执行的,但是从围观的角度是交替执行的 单道与多道 单道程序设计:所有进程一个一个排队执行,若A阻塞,B只能等待,,即使CPU处于空…

git 命令之只提交文件的部分更改

git 命令之只提交文件的部分更改 有时&#xff0c;我们在一个文件中进行了多个更改&#xff0c;但只想提交其中的一部分更改。这时可以使用 使用 git add -p 命令 Git add -p命令允许我们选择并添加文件中的特定更改。它将会显示一个交互式界面&#xff0c;显示出文件中的每个更…

Excel中根据某列内容拆分为工作簿

简介&#xff1a;根据A列的内容进行筛选&#xff0c;将筛选出来的数据生成一个新的工作簿(可以放到指定文件夹下)&#xff0c;且工作簿名为筛选内容。 举例&#xff1a; 将上面的内容使用VBA会在当前test1下生成5个工作簿&#xff0c;工作簿名分别为TEST1.xls TEST2.xls TEST3…

数据结构 (10)队列

前言 队列是一种特殊的数据结构&#xff0c;它遵循先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则。 一、定义与基本概念 定义&#xff1a;队列是一种只允许在一端&#xff08;队尾&#xff09;进行插入操作&#xff0c;而在另一端&#xff08;队头…

Tomcat10部署Servlet加载错误问题解决

Servlet加载错误&#xff1a;HelloServlet不是Servlet 环境信息&#xff1a;IDEA中的maven项目&#xff0c;tomcat10.1.33 问题信息&#xff1a;XXX.Servlet不是Servlet 问题原因&#xff1a;tomcat10将JavaEE也换成了Jakarta EE&#xff1b; Jakarta EE较以前的JavaEE有一个重…

2024年第十三届”认证杯“数学中国数学建模国际赛(小美赛)

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓