原文链接:模型优化-NPAS:A Compiler-aware Framework of Unified Network Pruning and Architecture Search for Beyond Real-Time Mobile Acceleration · 语雀

Abstract

随着在移动边缘设备上有效部署 DNN 的需求不断增加,减少不必要的计算并提高执行速度变得更加重要。实现这一目标的先前方法,包括模型压缩和网络架构搜索(NAS),在很大程度上是独立执行的,并且没有充分考虑移动加速必须做的编译器级别的优化。

在这项工作中,我们首先提出(i)适用于各种 DNN 层的细粒度结构化剪枝(fine-grained structured pruning)的一般类别,以及(ii)支持不同 DNN 和不同剪枝方案的综合编译器自动代码生成框架,这一框架桥接了模型压缩和NAS的差距。我们进一步提出了 NPAS,一种编译器感知的统一网络修剪和架构搜索。 为了处理大搜索空间,我们提出了一种基于强化学习的元建模程序,具有快速评估和贝叶斯优化,确保训练周期的总数与代表性的 NAS 框架相当。

框架在现成的移动设备上实现了6.7ms、5.9ms、3.9ms的ImageNet推理时间,分别具有78.2%、75%(MobileNet-V3)、71%(MobileNet-V2)的最高准确度

Introduction

移动 AI 应用程序的日益普及以及对实时深度神经网络 (DNN) 执行的需求对 DNN 加速提出了重大挑战。 然而,不断增长的 DNN 模型规模会导致大量计算和内存成本,这阻碍了在资源有限的移动设备上的部署。

DNN 权重修剪 [71, 21, 54, 27, 28] 已被证明是一种有效的模型压缩技术,可以去除 DNN 模型的冗余权重,从而同时降低存储和计算成本。 现有的工作主要集中在可以去除任意权重的非结构化剪枝方案 [24, 21, 46] 和(粗粒度)结构化剪枝方案 [54, 85, 84, 50, 82, 45] 以消除整个过滤器/通道 . 前者导致高精度但有限的硬件并行性(和加速),而后者则相反。 另一个活跃的研究领域是神经架构搜索(NAS)[86],它使用自动搜索算法设计更高效的 DNN 架构。 EfficientNet [69] 和 MobileNetV3 [30] 是使用 NAS 方法获得的具有代表性的轻量级网络。 最近,硬件感知 NAS [68, 73, 8, 33] 已经针对实际硬件平台上的加速进行了研究。

粗粒度剪枝和NAS可以发现更小但更规则的DNN结构,与之不同的现有工作[48,58,16]提出以更细粒度的方式修剪权重,例如:为内核分配可能不同的模式。由于内核内的灵活性可以实现更高的准确性,而在编译器级代码生成技术的帮助下可以实现高硬件并行性(和移动推理加速)[58]。 这项工作揭示了优化的一个新维度:借助高级编译器优化,通过在权重修剪中注入适当程度的细粒度,可以同时实现高精度和高加速。 尽管取得了可喜的成果,但基于模式的修剪 [48, 58] 仅适用于 3×3 卷积(CONV)层,这限制了适用性。

作为第一个贡献,我们提出了一种通用的细粒度结构化剪枝方案,可以应用于各种 DNN 层,对具有不同内核大小的 CONV 层进行块穿孔剪枝(block-punched pruning),对 FC 层进行基于块的剪枝。

我们开发了一个全面的、基于编译器的自动代码生成框架,以统一的方式支持所提出的修剪方案,支持其他类型的修剪方案以及不同层的不同方案。我们展示了(i)所提出的细粒度结构化修剪在准确性和移动加速方面的优势,以及(ii)我们的编译器框架在密集(修剪前)和稀疏 DNN 模型上的卓越端到端加速性能 .

虽然我们的编译器优化提供了显着的移动加速和对各种稀疏方案的支持,但它引入了更大的模型优化空间:不同的内核大小(1×1、3×3等)在编译器优化下会导致不同的加速性能,不同的稀疏方案也是如此。因此,需要执行编译器感知、联合网络修剪和架构搜索,确定每个层的filter类型和大小以及剪枝方案和剪枝率。目标是在目标移动设备上满足DNN延迟约束的条件下最大化精度。DNN 延迟将在目标移动设备上实际测量,这要归功于我们编译器的快速自动调整功能,可在不同移动设备上进行有效推理。

我们开发了编译器感知的 NPAS 框架来实现上述目标。 它包括三个阶段:(1)移动不友好操作的替换,(2)核心搜索过程,以及(3)剪枝算法搜索。通过以下协同努力来满足整体延迟约束:(i) 将整体 DNN 延迟约束合并到阶段 (2) 的自动搜索中, (ii) 修剪算法的有效搜索并相应地执行权重训练/修剪。 由于第 (2) 阶段比之前的 NAS 工作表现出更大的搜索空间,为了执行有效的搜索,我们提出了一种基于强化学习 (RL) 的元建模程序,具有快速评估和贝叶斯优化。 这将确保训练 epoch 的总数与代表性的 NAS 框架相当。

contributions

我们提出了适用于各种 DNN 层的细粒度结构化修剪的一般类别,以及支持不同修剪方案的综合编译器代码生成框架。 我们弥合了模型压缩和 NAS 之间的差距。

我们开发了一个联合网络修剪和架构搜索的编译器感知框架,在满足推理延迟约束的同时最大化准确性

我们设计了一个系统的搜索加速策略,集成了预训练的起点、准确度和延迟快速评估以及贝叶斯优化。

框架在现成的移动设备上实现了6.7ms、5.9ms、3.9ms的ImageNet推理时间,分别具有78.2%、75%(MobileNet-V3)、71%(MobileNet-V2)的最高准确度

Related Work

Network Pruning

现有的权重剪枝研究可以根据剪枝方案和剪枝算法进行分类。

Pruning Scheme

以前的权重剪枝工作可以根据剪枝方案分为多个主要组:非结构化剪枝[24,21,51],粗粒度结构化剪枝[71,29,47,79,46,26,81,39,17 ],以及基于模式的剪枝[48, 58, 49]。

非结构化剪枝(图 1 (a) 和 (b))移除任意位置的权重。 虽然它可以作为细粒度修剪方案显着减少 DNN 模型中的权重数量,但生成的带有索引的稀疏和不规则权重矩阵会破坏并行实现,并导致硬件加速受限

为了克服非结构化、不规则权重修剪的局限性,许多工作[71、29、46、26、81、39、17、47、79、44]研究了过滤器和通道级别的粗粒度结构化修剪,如图 1 (c) 和 (d) 中。 随着过滤器或通道的消除,剪枝后的模型仍然保持网络结构的高规律性,可以在硬件上并行化。 粗粒度结构化剪枝的缺点是通过移除整个过滤器/通道会明显降低精度,这会限制模型压缩率

图 1 (e) 显示了基于模式的剪枝, [48, 58, 49] 作为具有代表性的细粒度结构化剪枝方案。 它为每个 卷积核分配一个模式(来自预定义的库),在每个卷积核中保持固定数量的权重。 如图所示,每个卷积核在原始的 3×3 核中保留 4 个非零权重(在一个模式上)。 除了分配模式外,还可以完全删除卷积核以实现更高的压缩率。 借助基于编译器的可执行代码生成,基于模式的剪枝可以同时实现高精度(由于结构灵活性)和高推理加速。 请注意,编译器支持 [58] 对于基于模式的修剪来实现其对移动加速的承诺是必要的。一个限制是,在当前工作中,基于模式的剪枝仅限于 3×3 CONV 层:5×5 或更大的卷积核大小会导致大量模式类型,这会在编译器生成的可执行代码中产生显着的计算开销。 1×1 CONV 层和 FC 层没有为kernel设计不同模式的空间。

【将所有weight matrix分成block,block内具有相同的修剪方式,从而可以利用硬件并行性,block间可以有不同的修剪方式。】

Pruning Algorithm

存在两个主要类别:启发式剪枝算法 [23, 21, 17, 47, 79] 和基于正则化的剪枝算法 [80, 71, 46, 29, 26, 81, 39, 28]。

启发式剪枝首先在非结构化剪枝[23]上以迭代的、基于大小的方式进行,并在后来的工作中得到改进[21]。 启发式修剪也被纳入粗粒度结构化修剪[47,79,17]。

基于正则化的算法使用面向数学的方法来处理剪枝问题。 早期的工作 [71, 29] 在损失函数中结合了 l1 或 l2 正则化来解决过滤器/通道修剪问题。 后来的工作[26]使正则化惩罚“softer”,这允许在训练过程中更新修剪过的过滤器。 在 [81, 39] 中,利用先进的优化解决方案框架 ADMM(Alternating Direction Methods of Multipliers )来实现动态正则化惩罚,从而显着降低精度损失。 在[28]中,提出了几何中值来进行过滤器修剪。

Neural Architecture Search (NAS)

一般来说,NAS可以根据其搜索策略分为以下几类。 强化学习 (RL) 方法 [86, 83, 87, 3, 41, 7, 59] 采用递归神经网络 (RNN) 作为预测器,其参数根据代理数据集上验证的子网络的准确性进行更新。 进化方法 [62, 18, 61, 53, 74, 42, 74] 开发了父初始化、种群更新、后代的生成和消除的管道。 One-shot NAS [6, 4, 78, 22, 12] 训练一个包含所有操作的大型 one-shot 模型,并将权重参数共享给所有候选模型。 基于梯度的方法[43, 8, 10, 76, 73, 13, 19] 提出了一种不同于先前离散搜索的可微分算法,在降低搜索成本的同时仍然获得可比较的结果。 贝叶斯优化 [5, 15, 52, 34, 63, 72] 使用最优传输程序来计算网络架构的距离。

最近的一些工作意识到硬件协同设计的重要性,并将推理延迟纳入 NAS,这比Multiply-Accumulate操作 (MAC) [68, 73, 8] 等直观的体积估计更准确。 MnasNet [68] 利用移动设备上的延迟作为执行 RL 搜索的奖励,其中基于梯度的 NAS 工作 FBNet [73] 和 ProxylessNAS [8] 在损失函数中添加了延迟项。 然而,这些硬件目标工作都没有充分利用编译器优化的潜力或满足整体延迟要求,更不用说考虑编译器支持的稀疏模型了。 这促使我们研究模型优化的另一个维度,即编译器感知、延迟约束、架构和修剪协同搜索

Compliler-assisted DNN Frameworks on Mobile

最近,基于移动的、编译器辅助的 DNN 执行框架 [37、38、75、32、77、25] 引起了工业界和学术界的广泛关注。 TensorFlow-Lite (TFLite) [1]、阿里巴巴移动神经网络 (MNN) [2] 和 TVM [9] 是具有代表性的最先进的 DNN 推理框架。 各种优化技术,例如各种计算图优化和半浮点支持,已被用于加速移动设备(移动 CPU 和 GPU)上的 DNN 推理。

最近的工作 PatDNN [58] 和 PCONV [48] 采用了一组基于编译器的优化来支持特定的基于模式的稀疏 DNN 模型,以加速移动设备上的端到端推理。 然而,缺乏对不同类型层(例如,1×1 CONV、5×5 CONV 和 FC)的支持限制了这种框架的多功能性。

Proposed Fine-Grained Structured Pruning

如 2.1 节所述,基于模式的剪枝方案 [48, 58, 49] 揭示了细粒度结构化剪枝的新优化维度,可以在编译器优化的帮助下同时实现高精度和高推理加速。由于基于模式的剪枝仅适用于 3 × 3 CONV 层,我们提出了一种通用的细粒度结构化剪枝方案,可应用于各种 DNN 层FC层的基于块的剪枝和具有不同内核大小的Conv层的block-punched剪枝。

Block-based Pruning

图 1 (g) 显示了 FC 层的 2D 权重矩阵格式的基于块的剪枝方案。 整个权重矩阵被分成许多大小相等的块,然后在每个块内修剪整列和/或整行权重。 与粗粒度结构化剪枝相比,基于块的剪枝提供了更精细的剪枝粒度,以更好地保持 DNN 模型的准确性。 选择适当的块大小后,块内的剩余计算仍然可以在编译器的帮助下在移动设备上并行化。 因此,在相同的整体剪枝率下,基于块的剪枝可以实现与粗粒度结构化剪枝相当的硬件(推理)性能。

Block-punched Pruning

Conv层更倾向于基于张量的计算,而不是用于FC层的基于矩阵的计算。受基于块的修剪的启发,我们开发了为 CONV 层量身定制的block-punched pruning方案,可以使用相同的编译器优化来加速。如图 1 (f) 所示,block-punched pruning需要在块内所有过滤器和所有通道的相同位置修剪一组权重,从而在内存和计算的角度利用硬件并行性。

Compiler Optimizations

我们开发了一个全面的、基于编译器的自动代码生成框架,以统一的方式支持所提出的(块穿孔/基于块的 (block-punched/block-based) )修剪方案。它还支持其他修剪方案,例如非结构化、粗粒度、基于模式的修剪。 事实上,非结构化和粗粒度结构化剪枝方案只是块穿孔剪枝的特例,前者的块大小为 1×1,后者的块大小为整个权重张量/矩阵的块大小。开发了一种新颖的层融合技术,这对于高效实现超深度网络至关重要。 结合了快速自动调整功能,可在不同的移动 CPU/GPU 上进行高效的端到端推理。

Sample Results and Block Size Determination

图 2 显示了在具有不同块大小的 ResNet-50 上应用块穿孔剪枝时准确度与延迟的示例结果。 所有层都采用统一的剪枝率(即 6 倍)和块大小。 在相同的剪枝率下,非结构化剪枝(即 1×1 块大小)保持最高的准确度,但延迟性能最差。 相反,粗粒度结构化剪枝(即,将整个权重矩阵作为一个块)实现了最低延迟,但精度严重下降。 块穿孔剪枝的结果同时显示出高精度和高推理速度(低延迟)。

原因是最大硬件并行度受到计算资源的限制。 因此,即使将权重划分为块,每个块的剩余权重仍然足以实现设备上的硬件并行性,尤其是在资源有限的移动设备上。 一种合理的块大小确定策略是让每个块中包含的通道数与目标移动 CPU/GPU 上向量寄存器的长度(例如 4 个)相匹配,以确保高并行度。 然后通过考虑给定的设计目标来确定要包含的过滤器数量(例如 8 个)

Motivation of Compiler-Aware Unified Optimization Framework

我们的编译器优化提供了不同过滤器类型的显着加速,并支持各种稀疏方案。 一个关键的观察结果是,不同的过滤器类型和稀疏方案在编译器优化下(当计算 (MAC) 相同时)具有不同的加速性能。 以下是在三星 Galaxy S10 手机的移动 CPU(Qualcomm Kryo 485)上测得的。

Different Filter Types(Kernel Sizes)

图 3 (a) 显示了具有不同kernel大小的 CONV 层的延迟与计算 (MAC)。 我们将输入特征图固定为 56×56 并更改过滤器的数量。 在相同的计算下,3×3 的kernel性能最好,其中 1×1 的kernel次之。 因为3x3kernel可以使用 Winograd 算法加速,并使其对编译器最友好;而 1×1 内核在 GEMM 计算中没有输入冗余,这也减轻了编译器优化的负担。

Different Pruning Schemes

图 3 (b) 显示了具有不同剪枝方案的 3×3 CONV 层的计算加速与剪枝率的关系。我们选择 56×56 的输入特征图大小和 256 个输入和输出通道。可以观察到,通过编译器优化,细粒度剪枝方案(即基于模式和块穿孔的剪枝)始终优于非结构化剪枝,并且与低于 5 倍剪枝的粗粒度结构化剪枝相比,实现了相当的加速。 因为,在细粒度结构化剪枝方案的合理剪枝率下,每一层的剩余权重仍然足以充分利用硬件并行性。

Impact of Number of Layers

计算层数是影响推理延迟的另一个关键因素。 为了显示影响,我们通过将层数加倍来制作更窄但更深的 ResNet-50 版本,同时保持计算 MAC 与原始 ResNet-50 相同。 更窄但更深版本的推理速度比使用移动 GPU 的原始版本慢 1.22 倍(44 毫秒对 36 毫秒)。 主要原因是更多的层数会引入更多的中间结果,从而更频繁地访问主内存。 并且由于大量的内存密集层,无法充分利用移动 CPU/GPU。

【相同MAC情况下,更窄更深的网络会降低速度】

基于上述观察,需要执行编译器感知的网络修剪和架构搜索,确定过滤器类型和大小,以及每个单独层的修剪方案和速率。 目的是在目标移动设备上实际执行时最大化 DNN 精度,满足推理延迟约束,同时考虑编译器优化

Proposed Unified Network Pruning and Architecture Search(NPAS)Algorithm

Overview of NPAS Framework

图 4 展示了提出的 NPAS 框架。 为了利用最近的 NAS 结果并加速 NPAS 过程,我们从一个预训练的 DNN 模型开始,并经历了如图所示的三个阶段。

【1. 替换在移动设备上执行效率低的操作,2. 结合延迟约束,确定每层filter类型、剪枝方案和剪枝率,3. 寻找适当的剪枝算法实施剪枝并训练剩余权重。】

Phase 1:Replacement of Mobile-Unfriendly Operations

某些算子在移动设备(移动 CPU 和 GPU)上执行效率低下。例如,某些激活函数,如 sigmoid、swish,需要指数计算,并且可能成为移动推理的延迟瓶颈。 这些不友好的操作将被编译器友好的替代方案所取代,例如 hard-sigmoid 和 hard-swish,对准确性的影响可以忽略不计。

Phase 2:NPAS Scheme Search

此阶段生成和评估候选 NPAS 方案,由每层filter类型、每层剪枝方案和剪枝率的集合定义,最后选择最适合的方案。随着逐层剪枝方案和速率的搜索,第 2 阶段的搜索空间比之前的 NAS 大得多,这使得具有代表性的 NAS 算法(如基于 RL 的算法)无效。 为了加速这种搜索,我们提出了一个基于 RL 和贝叶斯优化 (BO) 的元建模过程,详细信息在第 5.2 节中。 针对 NPAS 框架开发了一种快速准确度评估方法。

此外,我们将整体 DNN 延迟约束有效地结合到 NPAS 方案搜索的奖励函数中,确保在搜索结果中可以满足这种约束。总体 DNN 延迟实际上是基于当前正在评估的候选 NPAS 方案在目标移动 CPU/GPU 上测量的。 我们依赖实际测量而不是像许多先前的 NAS 工作那样对每层延迟建模。 这是因为我们的高级编译器优化在先前的编译器工作之外包含了强大的层融合,这对于高效实现超深度网络至关重要,并且会降低每层延迟建模的准确性。

Phase 3:Pruning Algorithm Search

前一阶段已经确定了每层剪枝方案和剪枝率,因此编译器生成的代码可以满足整体延迟约束。这个阶段的剩余任务是寻找最理想的剪枝算法来执行实际的剪枝并训练剩余的权重(上述过程无法通过阶段 2 中的快速准确度评估来完成,因为我们需要限制训练 epoch 的数量。由于每层剪枝率已经确定,可供选择的候选剪枝算法仅限于具有预定义每层剪枝率的算法,包括基于幅度的剪枝算法[23、20]、基于ADMM的算法[ 81, 39] 等。作为对先前工作的扩展,我们在group-Lasso正则化[35, 71]的帮助下推广这些算法以实现不同的稀疏方案 。在第 3 阶段,我们在几个 epoch 中比较候选剪枝算法得到的 DNN 准确度,选择准确度最高的那个,并继续尽力执行算法以推导出最终的 DNN 模型和编译代码。

Details of Phase 2:NPAS Scheme Search

Search Space of NPAS in Phase 2

Per-layer filter types: 由于不同的过滤器类型(kernel size)在编译器优化下具有不同的加速性能,NAPS 搜索空间包括用1x1,3x3,3×3 depth-wise (DW) 和 1×1 卷积的级联,1×1 和 3×3 DW 和 1×1 卷积的级联,或者直接跳过整个层来替换原始filter。前两个最适合编译器优化(请参阅第 4 节),级联连接在先前的工作 [31, 64] 中被证明可以提供相同的精度和更少的计算。

Per-layer filter schemes: NPAS 代理可以从过滤器(通道)剪枝 [85]、基于模式的剪枝 [58] 和每层的block-punched/based pruning中进行选择。由于不同的层可能有不同的兼容剪枝方案,我们允许 NPAS 灵活地为不同的层选择不同的剪枝方案。 我们的编译器代码生成很好地支持了这一点。

Per-layer filter rate: 我们可以从列表中选择{1×, 2×, 2.5×, 3×, 5×, 7×, 10×}(1×表示不剪枝)。

Q-Learning Training Procedure

由于在 NPAS 方案搜索中集成了逐层剪枝方案和剪枝率,因此搜索空间超出了传统 NAS 的范围。为了确保快速搜索,我们采用 RL 算法 Q-learning 通过 Q-learning 深入理解强化学习 | 机器之心作为基础技术,辅以快速评估(第 5.2.3 节)和贝叶斯优化(BO)(第 5.2.4 节)以加快搜索速度。 Q-learning算法由一个 NPAS 代理、状态和一组动作组成。

对于给定 DNN 中第 i 层的状态,定义为过滤器类型、剪枝方案和剪枝率的元组,即{filter_typei,pruning_schemei,pruning_ratei}。并且每个都可以从相应的搜索空间中选择。 我们将层深度添加到状态空间以压缩动作空间,从而使状态-动作图是有向无环 (DAG)。

对于动作空间,我们允许层深度为 i 的状态转换为层深度为 i+1 的状态,确保图中没有循环。此约束确保状态-动作图始终是 DAG。当层深度达到最大层深度时,过渡终止。

基于上述定义的状态 s ∈ S 和动作 a ∈ A,我们采用 Q-learning过程 [70] 来更新 Q-value。 我们指定最终和中间奖励如下:

其中 V 是模型的验证精度,h 是模型推理速度或延迟(实际在移动设备上测量),H 是延迟要求的阈值。

通常,当模型满足实时性要求(h < H)且评估精度较高时,rT 较高。

否则最终奖励很小,尤其是在违反延迟要求时。 对于由于无法明确测量而通常通过将其设置为零来忽略的中间奖励 rt [3],如上所示采用rewarding shaping [57] 来加速收敛。 设置 rt = 0 可以使 sT 在训练的早期阶段的 Q-value远大于其他值,导致提前停止搜索代理。

我们采用 ǫ-greedy 策略 [55] 来选择动作。 此外,由于探索空间大,采用经验回放技术以加快收敛速度[40]。

Fast Evaluation Methods

我们开发并采用了多种量身定制的加速策略,以促进 NPAS 方案搜索中的快速评估。

Unidirectional Filter Type Replacement:NPAS 方案搜索需要满足预定义的 DNN 延迟约束。 因此,我们遵循不增加kernel size的原则来搜索每层过滤器类型,这可以有效地减少搜索空间。 例如,我们将不再在原始模型中搜索 1×1 层的过滤器类型。

Weight Initialization for Filter Type Candidates:每一层的filter类型候选操作的权重可以在 NPAS 方案搜索(阶段 2)之前使用重构误差非常快速地进行预训练,这可以使它们的行为类似于原始操作。 因此,可以显着加快精度评估过程。【?】

One-shot Pruning and Early Stopping for Fast Accuracy Evaluation:在准确度评估过程中,我们遵循候选 NPAS 方案中的剪枝方案和剪枝率(针对特定层),并根据权重大小进行一次剪枝(在目标层上)。 这种直接的剪枝会导致精度下降。 但是经过几个 epochs 的再训练,它可以区分不同 NPAS 方案的相对准确性。

Overlapping Compiler Optimization and Accuracy Evaluation:我们使用编译器生成代码、在实际设备上测量延迟,因为(i)由于层融合机制使得每层延迟建模具有更高的准确性,(ii)编译器对于不同的移动设备具有快速自动调整能力。请注意,编译器代码生成和延迟测量不需要绝对权重值。 编译器代码生成比 DNN 训练(甚至单个 epoch)快得多,并且可以与准确度评估并行执行(因为不需要准确的权重值)。 因此,它不会对 NPAS 产生额外的时间消耗

Bayesian Predictor for Reducing Evaluations

由于对大量采样的 NPAS 方案进行评估非常耗时,因此我们使用 BO [67、36、11] 构建了一个预测器。 NPAS 代理生成一个 NPAS 方案池。 我们首先使用 BO 从池中选择少量具有潜在高回报的 NPAS 方案。 然后对选定的 NPAS 方案进行评估,以获得更准确的奖励。 我们减少了对性能可能较弱的 NPAS 方案的评估,从而减少了整体方案的评估工作。

我们构建了一个将高斯过程 (GP) 与 Weisfeiler-Lehman subtree (WL) graph kernel [56, 66] 相结合的预测器,以处理类似图的 NPAS 方案。WL kernel在迭代中比较两个有向图。在第m次WL迭代中,它首先获得两个图的图特征φm (s) 和 φm (s' )的直方图,然后将这两个图与kbase(φm (s) 和 φm (s' ))进行比较,其中kbase是base kernel,在这里使用点乘。

迭代过程停止,直到 m = M 并且结果 WL 内核为

其中wm包含每个WL迭代m的权重,我们沿用[66]将所有m设为相等。The Expected Improvement[60]被用作工作中的采集功能。 算法 1 提供了一个总结。

Results and Evaluation

模型优化-NPAS:A Compiler-aware Framework of Unified Network Pruning and Architecture Search for Beyond Real-Time Mobile Acceleration · 语雀

NPAS:A Compiler-aware Framework of Unified Network Pruning and Architecture Search相关推荐

  1. 模型裁剪--Rethinking the Value of Network Pruning

    Rethinking the Value of Network Pruning https://github.com/Eric-mingjie/rethinking-network-pruning 网 ...

  2. 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)

    文章目录 论文信息 摘要 论文贡献 问题定义 动态网络 动态网络链接预测 E-LSTM-D 框架 Encoder–Decoder结构 1. 编码器(Encoder) 2. 解码器(Decoder) 堆 ...

  3. 【综述】闲话模型压缩之网络剪枝(Network Pruning)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自 | CSDN 地址 | https://blog.csdn.net/jinz ...

  4. 网络压缩《network pruning 浅析》

    一:背景介绍 众所周知的是,神经网络有个很大特点就是参数太多了,计算量太大了,可能是几百兆的规模,这么大的存储量和计算量在小型设备上是运行不起来的,我们 必须要做对网络进行精简. 精简后有很多好处,比 ...

  5. 【李宏毅2020 ML/DL】P52 Network Compression - Network Pruning

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  6. 【论文】模型剪枝(Network Pruning)论文详细翻译

    前言: 这是关于模型剪枝(Network Pruning)的一篇论文,论文题目是:Learning both weights and connections for efficient neural ...

  7. 李宏毅作业七其三 Network Compression (Network Pruning)

    Network Compression --Network Pruning 前言 一.Network Pruning是什么? Weight & Neuron Pruning 对于修剪网络并不简 ...

  8. GDP: Network Pruning

    GDP: Stabilized Neural Network Pruning via Gates with Differentiable Polarization https://arxiv.org/ ...

  9. 网络结构搜索 (NAS: Network Architecture Search)

    NAS Definition 基于搜索策略,并结合约束条件 (如accuracy.latency),在搜索空间内 (set of candidate operations or blocks)探索最优 ...

最新文章

  1. Twitter团队最新研究:快速高效的可扩展图神经网络SIGN
  2. 【PHP】多线程请求 curl_multi_init()
  3. NBA部署SAP HANA内存数据库
  4. html所有页面根的对象,在django中显示来自所有用户的对象,无需登录到html页面...
  5. 最常用计算机信息呼唤标准代码,计算机考试题
  6. Qt程序等待/睡眠的正确方法
  7. Python语言学习系列------基础语法(一)
  8. 【实践】数据科学在搜索、广告、推荐系统的应用实践.pdf(附下载链接)
  9. Picasso(毕加索)加载圆形图片、圆角图片
  10. 文献挖掘:SATI文献题录信息统计分析工具初试
  11. React-Redux 中文文档
  12. 野人岛4四季神器java,十一天,四季的感受,顶风冒雪美国中西部自驾旅游之五-黄石:梦想之地(1)...
  13. IIC总线协议---以存储芯片at24c64为例
  14. Android背光系统实现
  15. RK3326 8.1 otg和host切换
  16. 高斯分布数学性质及推导(一):如何证明高斯分布的积分为1
  17. elasticsearch2.1部署
  18. 懂得拥有也要学会放弃
  19. 通过事例重温一下常见的 JS 中 15 种数组操作(备忘清单)
  20. nboot和eboot

热门文章

  1. 《Python Web开发实战》踩地雷记17/3/22
  2. humann3的安装与使用:解决metaphlan3无法下载数据库的问题。
  3. JZ36. 二叉搜索树与双向链表
  4. 蚂蚁金服六轮面试,从一个中游的公司跳槽的阿里P7,我是怎么撑过来的?
  5. 2021年全球企业级区块链应用有哪些?主要使用哪些技术平台?
  6. 游戏陪玩源码开发,仿某看书app首页Banner轮播+背景渐变
  7. 我请ChatGPT帮我创建一些漫画,大家一起来看看
  8. android手机底噪,[RK3399][Android7.1] 调试笔记 --- Codec播放音乐会有底噪
  9. Eui基于vue开箱即用的免费后台开源框架
  10. STA-11. 芯片中的偏差和风控机制