没有合适的资源?快使用搜索试试~ 我知道了~
基于梯度的神经架构搜索优化移动设备ConvNet的模型:FBNet
10734FBNet:通过可微分神经架构搜索的硬件感知高效ConvNet吴碧晨1岁,戴晓亮2岁,张培昭3岁,王阳涵3岁,孙飞3岁,吴一鸣3岁,田远东3岁,彼得·瓦伊达3岁,贾阳青3岁,库尔特·科伊策1岁,加州大学伯克利分校2岁,普林斯顿大学3岁,Facebook Inc.{bichen,keutzer}@ berkeley.edu,xdai@princeton.edu,{stzpz,yanghan,feisun,wiyiming,yuandong,vajdap,jiayq}@ fb.com摘要为移动设备设计准确高效的ConvNets具有挑战性,因为设计空间非常大。由于这一点,以前的神经架构搜索(NAS)方法是计算昂贵的。ConvNet架构的最优性取决于输入分辨率和目标设备等因素。然而,现有的方法对于逐个案例的重新设计来说资源需求太大。此外,以前的工作主要集中在减少FLOP,但FLOP计数并不总是反映实际的延迟。为了解决这些问题,我们提出了一个可区分的神经架构搜索(DNAS)框架,该框架使用基于梯度的方法来优化Con vNet架构,避免了像以前的方法那样分别枚举和训练单独的架构。FBNets(Facebook-Berkeley-Nets)是由DNAS发现的一系列模型,它超越了手动设计和自动生成的最先进的模型。FBNet-B在ImageNet上实现了74.1%的top-1精度,在三星S8手机上有2.95兆FLOP和23.1 ms延迟,比MobileNetV 2 -1.3小2.4倍,速度快1.5倍[17],精度相似。尽管比MnasNet更高的准确性和更低的延迟[20],但我们估计FBNet-B的搜索成本比MnasNet小420倍,仅为216 GPU小时。针对不同的分辨率和通道大小进行搜索最小的FBNet在三星S8上实现了50.2%的准确率和2.9毫秒的延迟(每秒345帧)。在三星优化的FBNet上,iPhone-X优化模型在iPhone X上实现了1.4倍的加速 。 FBNet 模 型 开 源 于 https : //github 。com/facebookresearch/mobile-vision.在Facebook实习时完成的工作图1.用于ConvNet设计的可微分神经架构搜索(DNAS)。DNAS探索了一个逐层空间,ConvNet的每一层都可以选择不同的块。搜索空间由随机超网表示。搜索过程使用SGD训练随机超网以优化结构分布。从训练的分布中采样最优架构。在目标设备上测量每个运营商的延迟,并用于计算超级网络的损失。1. 介绍ConvNets是计算机视觉的事实上的方法。在许多计算机视觉任务中,更好的ConvNet设计通常会显著提高精度。在以前的工作中,精度的提高是以更高的计算复杂度为代价的,这使得将ConvNets部署到计算能力有限的移动设备上更加最近的工作不仅关注准确性,还旨在优化效率,特别是延迟。然而,由于以下挑战,设计高效和准确的ConvNets是困难的。难以处理的设计空间:Con-vNet的设计空间是组合的。使用VGG16 [18]作为激励示例:VGG16包含16层。 假设对于网络的每一层,我们可以从{1,3,5}中选择不同的内核大小,从{32,64,128,256,512}。即使是这样的简化,标志的选择和浅层次,设计空间包含(3×5)16×6×1018可能的架构。然而,在这方面,搜索空间部署目标设备基准操作员延迟LUT随机超网神经架构…………训练超级网代理数据集采样分布概率运营商…10735神经架构控制器采样…训练控制器性能延迟培训评估精度神经架构手工设计……培训评估性能延迟目标数据集精度(a) 一个典型的手工ConvNet设计流程(b) 基于强化学习的神经架构搜索的典型流程。图2.手动ConvNet设计和基于强化学习的神经架构搜索的图示训练ConvNet非常耗时,通常需要几天甚至几周。因此,以前的ConvNet设计很少探索设计空间。图2(a)说明了人工ConvNet设计的典型流程。设计人员提出初始架构,并在目标数据集上训练它们基于性能,设计师相应地发展架构受训练ConvNets的时间成本限制,设计流程必须在几次迭代后停止,这对于充分探索设计空间来说太少了从 [30] 开 始 , 最 近 的 工 作 采 用 神 经 架 构 搜 索(NAS)来自动探索设计空间。许多以前的作品[30,31,20]使用强化学习(RL)来指导搜索,图2(b)中展示了一个典型的流程。控制器从搜索空间中对要训练的架构进行采样。为了降低训练成本,采样架构在较小的代理数据集(如CIFAR-10)上训练,或者在ImageNet上训练较少的 训练网络的性能然后用于训练和改进控制器。 以前的工作[30,31,20]已经证明了这种方法在寻找准确和有效的ConvNet模型方面的有效性。但是,训练每个架构仍然很耗时,通常需要数千个架构来训练控制器。结果,这种方法的计算成本高得惊人。不可转移的最优性:ConvNet架构取决于许多因素,例如输入分辨率和目标设备。一旦这些因素发生变化,最佳架构可能会有所不同。减少网络的FLOP计数的常见做法是缩小输入分辨率。较小的输入分辨率可能需要较小的网络感受野,因此需要较浅的层。在不同的设备上,相同的操作符可能有不同的延迟,因此我们需要调整ConvNet架构以实现最佳的准确性-效率权衡。理想情况下,我们应该根据具体情况设计不同的ConvNet架构。然而,在实践中,受限于以前手动和自动化方法的计算成本,我们只能现实地设计一个ConvNet并将其用于所有条件。不一致的效率指标:我们关心的大多数效率指标不仅取决于Con- vNet架构,还取决于目标设备上的硬件和软件配置。这些指标包括延迟、功率、能量,在本文中,我们主要关注延迟。为了简化这个问题,大多数相关的工作都采用与硬件无关的指标,如FLOP(更严格地说,乘加运算的数量)来评估ConvNet然而,具有 较 低 FLOP 计 数 的 ConvNet 不 一 定 更 快 。 例 如 ,NasNet-A [31]具有与MobileNetV 1 [6]类似的FLOP计数,但其复杂且碎片化的单元级结构对硬件不友好,因此实际延迟较慢[17]。硬件无关指标和实际效率之间的不一致性使得ConvNet设计更加困难。为了解决上述问题,我们提出使用可区分神经架构搜索(DNAS)来发现硬件感知的高效ConvNets。我们的算法流程如图1所示。DNAS允许我们探索逐层搜索空间,我们可以为网络的每一层在[21]之后,DNAS通过其算子随机执行的超网来表示搜索空间。我们放松的问题,找到最佳的架构,找到一个分布,产生的最佳架构。通过使用Gumbel Softmax技术[9],我们可以使用基于梯度的优化(如SGD)直接训练架构分布。与以前的基于强化学习(RL)的方法相比,搜索过程非常快用于训练随机超网的损失包括导致更好准确性的交叉熵损失和惩罚网络在目标设备上的延迟的延迟损失为了估计架构的延迟,我们测量搜索空间中每个运营商的延迟,并使用查找表模型通过将每个运营商的延迟相加来计算总体延迟。使用这个模型,我们可以快速估计在这个巨大的搜索空间的体系结构的延迟。更重要的是,它使得延迟相对于逐层块选择是可区分的。搜索空间代理数据集搜索空间……10736我们将DNAS发现的模型命名为FBNets(Facebook-Berkeley-Nets)。FBNet超越了手动和自动设计的最先进的高效ConvNet。FBNet-B在三星S8手机上实现了74.1%的top-1准确率,2.95亿FLOPs和23.1 ms的延迟,比MobileNetV 2 -1.3 小2.4倍,快1.5倍 FBNet-B 优于MnasNet,其搜索成本为216 GPU小时,比基于[20]估计的MnasNet成本低421倍。如此低的搜索成本使我们能够逐案重新设计对于不同的分辨率和通道缩放,FBNet实现1.5%至6.4%的绝对增益在前1准确性相比,MobileNetV2 模 型 。 最 小 的 FBNet 在 三 星 上 实 现 了50.2%的准确率和2.9 ms的延迟(每秒345帧),批量大小为1S8.使用DNAS搜索特定于设备的ConvNet,与三星优化的模型相比,iPhone x优化的模型在iPhoneX上实现了1.4倍的加速。2. 相关工作高效的ConvNet模型:设计高效的ConvNet近年来吸引 了 许 多 研 究 关 注 。 SqueezeNet [8]是 专 注 于 减 少ConvNet模型参数大小的早期作品之一它最初是为分类而设计的,但后来扩展到对象检测[22]和LiDAR点云分割[24,26]。在SqueezeNet之后,SqueezeNext [3]和ShiftNet [23]实现了进一步的参数大小减小。最近的作品将焦点从参数大小转移到FLOP。Mo-bileNetV 1和MobileNetV 2 [6,17]使用depth卷积来代替更昂贵的空间卷积。ShuffleNet [29]使用组卷积和shuf- fle操作来进一步减少FLOP计数。更多的研究工作认识到,FLOP计数并不总是反映实际的硬件效率.为了改善实际延迟,ShuffleNetV2 [13]提出了一系列有效ConvNet设计的实用指南。Synetgy [28]结合了ShuffleNetV2和ShiftNet的思想,共同设计了硬件友好的ConvNets和FPGA加速器。神经架构搜索:[30,31]首先提出使用强化学习(RL)来搜索神经架构。以低FLOP实现具有竞争力的精度。早期的NAS方法在计算上是昂贵的。最近的工作试图通过权重共享[16]或使用基于梯度的优化[12]来降低计算成本。[25,1]结合Gumbel Softmax [9]进一步发展了可微神经结构搜索NAS [31,16,12]的早期工作集中在小区级架构搜索,并且相同的小区结构在网络的所有层中重复。然而,这种碎片化和复杂的单元级结构不是硬件友好的,并且实际效率低。最近,[20]探索了一个阶段级的分层搜索空间,允许网络的不同阶段有不同的块,而一个阶段内的块是还是老样子。而不是专注于FLOP,[20]旨在优化目标设备上的延迟。除了寻找新的体系结构之外,[27,5]等作品还专注于调整现有模型以提高效率。3. 方法在 本 文 中 , 我 们 使 用 可 微 分 神 经 架 构 搜 索(DNAS)来解决ConvNet设计的问题我们将神经架构搜索问题表述为min minL(a,wa).(一)a∈Awa给定一个架构空间A,我们试图找到一个最优架构a∈A,使得在训练其权重wa之后,它可以实现最小损失L(a,wa)。在我们的工作中,我们关注问题的三个因素:a)搜索空间A。b) 考虑实际延迟的损失函数L(a,wa)c) 一种高效的搜索算法。3.1. 搜索空间先前的工作[30,31,16,11,12]集中于单元级架构搜索。 一旦搜索到一个单元结构,它将被用于网络中的所有层。然而,许多搜索到的单元结构非常复杂且碎片化,因此在部署到移动CPU时速度很慢[17,13]。此外,在不同的层,相同的单元结构可以对整个网络的准确性和延迟如[20]和我们的实验所示,允许不同的层选择不同的块可以提高准确性和效率。在这项工作中,我们构造了一个分层搜索空间,具有固定的宏结构,每一层可以选择一个不同的块。 表中描述了宏体系结构1. 宏架构定义了层的数量和每层的输入/输出维度。网络的第一层和对于其余图层,需要搜索其块类型。每层的过滤器编号都是根据经验手工挑选的。我们使用相对较小的通道大小的早期层,因为在早期层的输入分辨率是大的,和计算成本(FLOP计数)是输入大小的平方。网络中的每个可搜索层可以从逐层搜索空间中选择不同的块块结构受到MobileNetV2 [17]和ShiftNet [23]的启发,如图3所示它包含一个逐点(1x1)卷积,一个K-by-K dependency卷积,其中K表示内核大小,以及另一个1x 1卷积。“ReLU” ac- tivationfunctions follow the first 1x1 convolution and thedepthwise如果输出维度与输入维度保持相同,则使用跳过连接将输入添加到输出。在[17,23]之后,我们使用超参数,膨胀比e,来控制10737LL高x宽x宽(英寸)高x宽x(exCin)(H/s)x(W/s)x(exCin)(H/s)x(W/s)xC输出+1x1(组)转换K x K DWConv,ReLU1x1(组)Conv,ReLU块类型膨胀内核组k3 e1131k3 e1 g2132k3 e3331k3 e6631k5 e1151k5 e1 g2152K5 E3351k5 e6651skip---表2.在搜索空间中搜索候选块表1.搜索空间的宏观架构。在该表中,列-“块”表示块类型。“TBS”表示需要搜索该阶段中的层。列-f表示块的过滤器编号。列-n表示该阶段中的层数列-s表示阶段中第一个块的步幅。图3.微体系结构搜索空间的块结构。搜索空间中的每个候选块可以选择不同的扩展速率、核大小和组卷积的组数街区。它决定了我们将第一个1x1卷积的输出通道大小与其输入通道大小相比扩展了多少在[20]之后,我们还允许为dependency卷积选择3或5的内核大小。此外,我们可以选择对第一个和最后一个1x1卷积使用组卷积,以降低计算复杂度。当我们使用群卷积时,我们遵循[29]添加频道混洗操作以混合频道组之间的信息。在我们的实验中,我们的逐层搜索空间包含9个候选块,其配置列于表2. 注意,我们还有一个名为“skip”的块这个候选块本质上允许我们减少网络的深度。总而言之,我们的整个搜索空间包含22层,每层可以从表2中的9个候选块中选择,因此它包含922×1021个可能的架构。从如此巨大的搜索空间中找到最优的逐层块分配是一项重要的任务。3.2. 延迟感知损失函数(1)中使用的损失函数不仅要反映给定架构的准确性,还要反映目标硬件上的延迟。为了实现这一目标,我们定义了以下损失函数:L(a,wa)= CE(a,wa)·α log(LAT(a))β。(二)第一项CE(a,wa)表示具有参数wa的架构a的交叉熵损失。第二个术语LAT(a)表示以微秒为单位测量的目标硬件上的架构的延迟。系数α控制损失函数的整体大小。指数系数β调制延迟项的幅度。交叉熵项可以容易地计算。然而,延迟这一项更加困难,因为我们需要在目标设备上测量架构的实际运行时间为了覆盖整个搜索空间,我们需要测量大约1021个架构,这是一个不可能完成的任务。为了解决这个问题,我们使用延迟查找表该模型基于每个运营商的运行时间更正式地说,我们假设XLAT(a)= LAT(b(a)),(3)L其中B(a)表示来自架构A的层-1处的块。这假设在目标处理器上,每个操作符的运行时独立于其他操作符。假设是有效的,许多移动CPU和DSP,其中运营商依次计算一个接一个。这样,通过对搜索空间中使用的几百个运算符的延迟进行基准测试,我们可以很容易地估计整个搜索空间中1021更重要的是,如将在3.3节中解释的,使用查找表模型使得损失函数(2)中的延迟项相对于逐层块选择是可微的,并且这允许我们使用基于梯度的优化来解决问题(1)。输入形状块FnS2242× 33x3转换16121122× 16TBS16111122× 16TBS2442562× 24TBS3242282× 32TBS6442142× 64TBS11241142× 112TBS1844272× 184TBS3521172× 3521x1转换19841172× 15047x7平均池-111504FC10001-10738ll,il我3.3. 搜索算法通过对搜索空间的暴力扩展来解决问题(1)是非常不可行的。优化wa的内部问题涉及训练神经网络。对于ImageNet分类,训练ConvNet通常需要几天甚至几周。OP的外部问题最小化a∈ A具有组合上大的搜索空间。大多数关于NAS的早期作品[30,31,20]都遵循paradigm以上为了降低计算成本,内问题被替换为在更容易的代理数据集上训练候选架构。例如,[30,31]在CIFAR10数据集上训练架构,[20]在ImageNet上训练然后将学习的架构转移到目标数据集。彻底避免达到预期损失最小。形式上,我们将离散优化问题(1)重写为min minEa<$Pθ{L(a,wa)}.(七)θwa显然,(7)中的损失函数相对于架构权重wa是可微的,并且因此可以通过随机梯度下降(SGD)来优化。然而,由于我们不能将梯度通过离散随机变量ml,i传递到θ l,i,因此损失不能直接对采样参数θ微分。为了避开这一点,我们将离散掩码变量ml ,i放宽为通过GumbelSoftmax函数计算的连续随机变量[9,14]ml,i=GumbelSoftma x(θl,i|θl)在搜索空间中迭代,[30,31,20]使用rein-exp[(θl,i+gl,i)/ τ](八)引导学习探索。尽管有这些改进,解决问题(1)仍然是令人望而却步的,=Piexp[(θl我+gl,i)/τ],pensive -我们采用不同的范式解决问题(1)。我们首先用一个随机超网来表示搜索空间超网具有与表1中描述的相同的宏架构在超网的推理过程中,仅对一个候选块进行采样,并以exp(θl,i)其中gl,i∈Gumbel(0,1)是遵循以下的随机噪声:Gumbel分布。Gumbel Softmax函数是一个...由温度参数τ控制。当τ接近0时,它近似于遵循(6)中分布的离散分类抽样。当τ变大时,ml,i变成连续随机变量。不管τ的值如何,掩模ml,i相对于参数θl,i是直接可微的。在[25,1]中也提出了使用Gumbel Softmax进行神经结构搜索的技术。结果,很明显,来自损失函数(2)的交叉熵项相对于掩模ml,i是可微的,因此θl,i是可微的。对于延迟项,由于我们Pθl(bl=bl,i)=softmax(θl,i;θl)=Pexp(θl我.(四))使用基于查找表的模型进行效率估计,等式(3)可以写为θl包含确定采样概率的参数,在层-1的每个块的能力。等效地,XXLAT(a)=ml,i·LAT(bl,i).(九)层-l可以表示为lixl+1= Xml,i·bl,i(xl),(5)我每个运算符LAT(bl,i)的延迟cy是恒定系数,因此架构-a的总延迟相对于掩码ml,i是可预测的,因此θl,i是可预测的。其中m,l,i是{0,1}中的随机变量,并且如果对块b,l,i进行采样,则m,l,i被评估 为 1 。 采样概率由等式(4)确定。b_l,i(x_l)表示给定输入特征图x_l的层l处的块-i的输出。我们让每一层独立采样,因此,对架构a进行采样的概率可以描述为:YPθ(a)= Pθ(bl=b(a)),(6)L其中θ表示a向量由层-1处的每个块-i的所有θl,i组成。B(a)表示在采样的架构A中,在层-1处选择块-1。不是求解最优架构a∈ A,它有一个离散的搜索空间,我们放松的问题,优化随机超网的概率Pθ,我10739因此,损失函数(2)关于权重wa和架构分布参数θ都是完全可微的。这使得我们可以使用SGD来有效地解决问题(1)。我们的搜索过程现在相当于训练随机超网。在训练过程中,我们计算训练每个操作员在超级网中的重量。这与训练一个普通的ConvNet没有什么不同Af-在运算符被训练之后,不同的运算符可以对整个网络的准确性和效率具有不同的贡献因此,我们计算ΔL/ Δθ来更新每个算子的采样概率Pθ这一步,选择具有更好准确性和更低延迟的算子,并抑制相反的算子。在超网训练完成后,我们可以通过从架构分布Pθ中采样来获得最优架构。10740如实验部分所示,所提出的DNAS算法比以前基于RL的NAS快几个数量级,同时生成更好的架构。4. 实验4.1. ImageNet分类为了证明我们提出的方法的有效性,我们使用DNAS在ImageNet 2012分类数据集上搜索ConvNet模型[2],并将发现的模型命名为FBNets。我们的目标是在目标设备上发现具有高准确性和低延迟的模型。在我们的第一个实验中,我们的目标是三星Galaxy S8与高通Snapdragon 835平台。该模型使用Caffe2和int8推理引擎部署在移动设备上。在搜索开始之前,我们首先在目标设备上构建第3.2节中描述的延迟查找表。接下来,我们用3.3节中描述的搜索空间训练一个随机超网。我们将网络的输入分辨率设置为224 × 224。为了减少训练时间,我们从原来的1000个类中随机选择100个类来训练随机超网。我们对随机超网进行了90个epoch的训练。 在每个epoch中,我们首先训练算子权重wa,然后训练架构概率参数θ。wa在80%的ImageNet训练集上使用带有动量的SGD进行训练。架构分布参数θ是使用Adam优化器在ImageNet训练集的其余20%上训练的为了从等式(8)控制Gumbel Softmax的温度,我们使用指数下降温度。搜索完成后,我们从训练好的分布Pθ中抽取几个架构,并从头开始训练它们我们的架构搜索框架是在pytorch中实现的[15],搜索的模型是在Caffe2中训练的。更多的培训细节将在补充材料中提供。我们的实验结果总结在表3中。我们将搜索到的模型与自动和手动设计的最先进的高效模型进行我们关心的如果延迟不可用,我们使用FLOP作为次要效率度量。对于基线模型,我们直接引用原始论文中的参数大小,FLOP计数和top-1精度。由于我们的网络部署了高效的Caffe2 in8实现,因此与其他基线相比,我们具有不公平的延迟因此,我们自己实现基线模型,并在相同的环境下测量它们的延迟,以便进行公平的比较。对于自动设计的模型,我们还比较了搜索方法,搜索空间和搜索成本。表3根据模型的准确性水平将其分为三类。 在第一组中,FBNet-A达到73.0%的准确率,优于1.0-MobileNetV 2( +1.0% ) , 1.5-ShuffleNetV2 ( +0.4% ) 和CondenseNet(+2%),与DARTS和MnasNet-65相当。关于延迟,FBNet-A比MobileNetV 2、ShuffleNetV 2和CondenseNet对比器分别好1.9 ms(相对9.6%)、2.2ms(相对11%)和8.6 ms(相对43%)。虽然我们没有直接优化FLOP计数,但FBNet-A在第二组中,FBNet-B实现了与1.3-MobileNetV 2相当的准确性,但延迟低1.46倍,FLOP计数小1.73倍,甚至小于1.0-MobileNetV2和1.5-ShuffleNet V2。与MnasNet相比,FBNet-B的准确率高0.1%,延迟低0.6ms,FLOP计数少22 M(相对7%)。我们没有NASNet-A和PNASNet的延迟,但精度相当,FLOP计数小1.9倍和2.0倍。在第三组中,FBNet-C达到了74.9%的准确率,与2.0-ShuffleNetV 2相同,优于其他所有人。等待时间28.1 ms ,比MobileNet和Shuf- fleNet快1.33倍和1.19倍。FLOP计数比MobileNet、ShuffleNet和MnasNet-92小1.56倍、1.58倍和1.03倍。在 所 有 自 动 搜 索 的 模 型 中 , FBNet 的 性 能 比DARTS、PNAS和NAS强得多,比MnasNet更好。然而,搜索成本要低几个数量级。MnasNet [20]没有披露确切的搜索成本(以GPU小时计)。然而,它提到控制器在搜索过程中采样了8,000个模型,每个模型都训练了五个时期。根据我们的实验,使用8个GPU,MNAs- Net训练一个epoch需要17分钟. 所以5个时期训练8,000个模型的估计费用大约是17/60×5×8×8,000×91×103GPU小时。相比之下,FBNet搜索需要8个GPU,仅需27小时,因此计算成本仅为216 GPU小时,或比MnasNet快421倍, 比NAS 快222倍, 比 PNAS 快27.8 倍, 比DARTS快1.33倍。我们在图4中可视化了一些搜索到的FBNet、Mo-bileNetV 2和MnasNet。4.2. 不同分辨率和通道大小缩放降 低 ConvNet 计 算 成 本 的 常 用 技 术 是 在 不 改 变ConvNet结构的情况这种方法可能是次优的。我们假设,在不同的输入分辨率和通道大小缩放的情况下,最佳ConvNet结构将不同。为了测试这一点,我们使用DNAS来搜索输入分辨率和通道大小缩放的几种不同组合由于DNAS的优越效率,我们可以非常快速地完成搜索。结果总结在表4中。在相同的输入大小和信道大小的情况下,与Mo-bileNetV 2相比,10741模型搜索方法搜索空间搜索成本(GPU小时/相对)#参数浮点数CPU延迟Top-1累积(%)[17]第十七话手动--3.4M300M21.7毫秒72.01.5-ShuffleNetV2 [13]手动--3.5M299M22.0毫秒72.6CondenseNet(G=C=8)[7]手动--2.9M274M28.4阿姆斯71.0[13]第十三话RL逐段91 K千兆/421 x3.6M270M-73.0DARTS [12]梯度细胞288 /1.33x4.9M595M-73.1FBNet-A(我们的)梯度逐层216 /1.0x4.3M249M19.8毫秒73.0[17]第十七话手动--5.3M509M33.8毫秒74.4CondenseNet(G=C=4)[7]手动--4.8M529M28.7毫米73.8[20]第二十话RL逐段91 K千兆/421 x4.2M317M23.7毫秒74.0NASNet-A [31]RL细胞48K /222x5.3M564M-74.0PNASNet [11]森博细胞6K†/27.8x5.1M588M-74.2FBNet-B(我们的)梯度逐层216 /1.0x4.5M295M23.1毫秒74.11.4-MobileNetV2 [7]手动--6.9M585M37.4毫秒74.72.0-ShuffleNetV2 [13]手动--7.4M591M33.3毫秒74.9[20]第二十话RL逐段91 K千兆/421 x4.4M388M-74.8FBNet-C(我们的)梯度逐层216 /1.0x5.5M375M28.1毫秒74.9表3.ImageNet分类性能与基线相比对于基线模型,我们直接引用参数大小FLOP在ImageNet验证集上的计数和前1名准确率来自他们的原始论文。对于CPU延迟,我们部署和基准测试模型在相同的三星Galaxy S8手机上使用Caffe2 int8实现。MnasNet-{64,92}的细节未从[20]中公开,因此我们无法测量延迟。*MnasNet的搜索成本是根据[20]中的描述估计的。†搜索成本是根据[11]的说法估计的,即PNAS [11]比NAS[31]低8倍推理引擎比其他模型更快FBNet-AFBNet-BFBNet-CFBNet-96-0.35-1FBNet-s8FBNet-iPhoneXMobileNetV2MnasNetK=3E=6K=3E=3K=3E=1K=3E=1G=2K=5E=6K=5E=3K=5E=1K=5E=1G=2Skip尺寸是224。我们推测这是因为随着输入尺寸的减小,解析图像所需的感受野也会变小,因此拥有更多的层不会有效地提高准确性。4.3. 不同目标装置在以前的ConvNet设计实践中,相同的ConvNet模型被部署到许多不同的设备。然而,这是次优的,因为不同的计算平台和软件实现可以具有不同的特性。为了验证这一点,我们针对两个移动设备进行搜索:三星Galaxy S8采用高通Snapdragon 835平台,iPhone X采用A11 Bionic处理器。我们使用相同的架构搜索空间,但从两个目标设备收集不同的所有图4.一些搜索到的体系结构的可视化。我们使用矩形框来表示每个层的块我们使用不同的颜色来表示深度卷积的内核大小,蓝色表示内核大小为3,绿色表示内核大小为5,空表示跳过。我们使用高度来表示块的扩展率:6,3,1和1,具有组2卷积。因此,我们搜索的模型在类似延迟的情况下实现了1.5%至6.4%的更高准确性特别是FBNet-96-0.35-1模型在三星Galaxy S8上实现了50.2%(+4.7%)的准确率和2.9 ms的我们在图4中可视化了FBNet-96-0.35-1的架构,我们可以看到跳过了许多层,并且网络比FBNet-{A,B,C}要浅得多,其输入10742体系结构搜索和训练协议是相同的。在我们搜索和训练了两个模型之后,我们将它们部署到三星Galaxy S8和iPhone X上,以基准测试整体延迟。结果总结见表。五、正如我们所看到的,这两个模型达到了相似的精度(73。20% vs. 73. 27%)。 FBNet-iphoneX模型在其目标设备上的延迟为19.84 ms,但当部署到三星S8时,其延迟增加到23.33 ms。另一方面,FBNet-S8在三星S8上达到22.12 ms的延迟,但当部署到iPhone X时,延迟上升到27.53 ms,比FBNet-iPhoneX高7.69 ms(相对39%)。这证明了为不同的目标设备重新设计ConvNets的必要性。图4显示了两个模型注意FBNet-10743输入大小&信道缩放模型#参数浮点数CPU延迟前1位访问(%)MobileNetV2-224-0.351.7M59M9.3毫秒60.3(2240.35)MNasNet-scale-224-0.351.9M76M10.7毫秒62.4(+2.1)FBNet-224-0.352.0M72M10.7毫秒65.3(+5.0)MobileNetV22.0M71M8.4毫秒63.9(192,0.50)MnasNet-search-192-0.5---65.6(+1.7)FBNet-192-0.5(我们的)2.6M73M9.9毫秒65.9(+2.0)MobileNetV23.5M99M8.4毫秒65.3(128、1.0)MnasNet-scale-128-1.04.2M103M9.2毫秒67.3(+2.0)FBNet-128-1.0(我们的)4.2M92M9.0 Ms67.0(+1.7)(128,0.50)MobileNetV22.0M32M4.8毫秒57.7FBNet-128-0.5(我们的)2.4M32M5.1毫秒60.0(+2.3)MobileNetV21.7M11M3.8毫秒45.5(960.35)FBNet-96-0.35-1(我们的)1.8M12.9M2.9毫秒50.2(+4.7)FBNet-96-0.35-2(我们的)1.9M13.7M3.6毫秒51.9(+6.4)表4. FBNet搜索不同的输入分辨率和通道缩放。MnasNet-scale是具有输入和通道尺寸缩放。MnasNet-search-192-0.5是一个使用192的输入大小和0.5的通道缩放进行搜索的模型。在[20]中没有披露它的细节,所以我们只引用准确性。模型#参数浮点数上的等待时间iPhone X上的等待时间三星S8Top-1访问(%)FBNet-iPhoneX4.47M322M19.84 ms(目标)23.33毫秒73.20FBNet-S84.43M2.93亿27.53毫秒22.12 ms(目标)73.27表5.FBNets搜索不同的设备。操作员权限比较(us)hw14_c384_k3_s1FBNet-iPhoneX采用的Opshw14_c336_k3_s1hw28_c192_k3_s1hw14_c336_k5_s1hw14_c192_k5_s1FBNet-S8采用的Opshw28_c192_k5_s20 200 400 600 800 1000 1200iPhoneX三星S8图5.两种设备上的操作符运行时间比较。运行时间单位为微秒(us)。橙色条表示iPhone X上的运行时,蓝色条表示三星S8上的运行时。上面三个运营商在iPhone X上更快,因此它们自动被FBNet-iPhoneX采用较低的三个运营商在三星S8上更快,它们也自动在FBNet-S8中采用。S8 使 用 了 许 多 具 有 5x 5 深 度 卷 积 的 块 , 而 FBNet-iPhoneX只在最后两个阶段使用它们。我们研究了两种模型中使用的dependency卷积运算符,并比较了它们在两种设备上的运行时间。 如图5所示,上面的三个操作符在iPhone X上更快,因此它们会自动被FBNet-iPhoneX采用。较低的三个运营商在三星S8上的速度明显更快,它们也自动被FBNet-S8采用。注意运行时的巨大差异-10744在两个目标设备上的较低的三个操作者的事件。 这解释了为什么三星S8优化模型在iPhone X上表现不佳。这表明DNAS可以自动优化运营商采用并生成针对不同设备优化的不同ConvNet。5. 结论我们提出了DNAS,一个可区分的神经结构搜索框架。它在一个分层搜索空间上进行优化,并用一个随机超网来表示搜索空间。块的实际目标设备延迟用于计算超网训练的损失FBNets是由DNAS发现的一系列模型,超越了手动和自动设计的最先进的模型:FBNet-B实现了74.1%的top-1精度,2.95亿FLOPs和23.1 ms延迟,比MobileNetV2小2.4倍,快1.5倍-1.3 同样的准确性。它还实现了比MnasNet更好的准确性和更低的延迟,MnasNet是自动设计的最先进的高效模型;我们估计DNAS的搜索成本小420倍这种效率使我们能够针对不同的输入分辨率和通道缩放进行搜索发现的模型实现1.5%至6.4%的准确度增益。最小的FBNet实现了50.2%的准确率,延迟为2.9ms(345帧/秒),批量大小为1。在三星优化的FBNet上,改进后的FBNet在iPhone X上实现了1.4倍的速度,这表明DNAS能够自动适应不同的目标设备。10745引用[1] 匿名的随机神经结构搜索。在提交给国际会议学习代表,2019年。正在审查中。[2] J. Deng,W.东河,巴西-地索赫尔湖J. Li,K. Li和L.飞飞。Imagenet:一个大规模的分层图像数据库。 在计算机视觉和模式识别,2009年。CVPR 2009。IEEE会议,第248-255页。Ieee,2009年。[3] A. Gholami , K. 权 湾 , 澳 - 地 Wu , Z.Tai , X.Yue ,P.Jin,S.Zhao和K.库茨挤压下一个:硬件感知神经网络设计。arXiv预印本arXiv:1803.10615,2018。[4] K.他,X。Zhang,S. Ren和J. Sun.用于图像识别的深度残 差 学 习 。 在 Proceedings of the IEEE conference oncomputer vision and pattern recognition,pages 770[5] Y. He,J. Lin,Z. Liu,H.王湖,澳-地J. Li和S.韩Amc:Automl,用于移动设备上的模型压缩和加速。在欧洲计算机视觉会议(ECCV)的会议记录中,第784-800页[6] A. G. Howard , M.Zhu , B.Chen , 中 国 粘 蝇D.Kalenichenko,W.小王,T. Weyand,M. Andreetto和H. Adam. Mobilenets:用于移动视 觉应用的高效 卷积神经网 络。arXiv预印本arXiv:1704.04861,2017。[7] G. Huang,S.柳湖,加-地van der Maaten和K.Q. 温伯格Condensenet:一个高效的密集网络,使用学习的群卷积。group,3(12):11,2017.[8] F. N.扬多拉,S。汉,M。W.莫斯基维茨K.阿什拉夫,W。J.达利和K.库茨Squeezenet:Alexnet级精度,参
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功