深度神经网络模型压缩与加速研究综述

知识蒸馏学习 大模型在部署到资源有限的设备上(手机、嵌入式设备等)会遇到体积和速度问题,知识蒸馏作为有代表性的模型压缩和加速的技术之一(其他还有:参数裁剪和共享、低秩分解和Transferred compact convolutional filters等),近年来受到了学术界和工业界的广泛关注。为了在资源有限的设备上部署深度模型,Bucilua 等人在2006年首次提出了模型压缩技术来迁移大模型或集成模型里的信息去训练小模型而精度不会有显著的下降。 阅读详情

深度神经网络模型压缩与加速研究综述


前言

深度卷积神经网络(CNNs)近年来在许多视觉识别领域取得了巨大的成功。然而,现有的深度神经网络模型在计算上是昂贵的且内存是密集型的。这限制了他们在低配置的硬件上的运行。因此,在不显著降低模型性能的情况下,在深度网络中进行模型压缩和加速是一种自然的思路,在这篇博客里讲会大致的想你介绍这个领域内的技术,综述了近年来发展起来的压缩和加速CNNs模型的先进技术。这些技术大致分为四种方案。参数剪枝与共享(parameter pruning and sharing,)、低秩因子分解( low-rank factorization)、传输/紧凑卷积滤波器(transferred/compact convolutional filters)和知识蒸馏(knowledge distillation)。 ,在接下来叙述中我会用英文描述这些单词,中文翻译过来总有种晦涩难懂的感觉,没有英文来的干脆。

介绍

近年来,深度神经网络得到了广泛的关注,在不同的应用领域得到了广泛的应用,并在许多任务中取得了显著的精度提高。这些工作依赖于具有数百万甚至数十亿参数的深度网络,而具有极高计算能力的gpu的可用性是这些工作成功的关键。 比为我就以为又没钱又想用到好的GPU而烦恼。一些网络的参数量可以达到数十亿个。

考虑到具有更多层和节点的更大的神经网络,减少它们的存储和计算成本变得至关重要,特别是对于一些实时应用,如在线学习和增量学习。此外,近年来在虚拟现实、增强现实和智能可穿戴设备方面取得了重大进展,为研究人员提供了前所未有的机会,以应对将深度学习系统部署到资源有限(如内存、CPU、能源、带宽)的便携设备的根本性挑战。高效的深度学习方法。例如,ResNet-50的50个卷积层需要超过95MB的内存来存储,处理一张图像需要超过38亿的浮点数乘法。在丢弃了一些冗余的权值之后,网络仍然可以正常工作,但是节省了更多75%的参数和50%的计算时间。对于像手机和fpga这样只有几兆内存的设备来说,如何压缩它们所使用的模型也很重要。

实现这些目标需要来自许多学科的联合解决方案,包括但不限于机器学习优化、计算机架构、数据压缩、索引和硬件设计。

  • parameter pruning and sharing 探索了模型参数的冗余性,并尝试去除冗余性和非临界性。
  • 基于Low-rank factorization的技术利用矩阵/张量分解来估计深层神经网络的信息参数。
  • 基于transferred/compact convolutional filters方法设计了特殊结构的卷积滤波器,减少了参数空间,节省了存储/计算量。
  • knowledge distillation知识精馏方法学习一个精馏模型并训练一个更紧凑的神经网络来重现一个更大的神经网络的输出

下面用一张表很好的总结这四种方法,也有提出四个方法的论文
在这里插入图片描述
适用于具有全连接层和卷积层的DNN模型,具有可比较的性能

另一方面,

  • 使用transferred/compact filters 的方法只适用于具有卷积层的模型。
  • 基于Low-rank factorization and transfered/compact filters的方法提供了端到端的管道,可以在CPU/GPU环境中轻松实现,这很直接
  • 而parameter pruning & sharing 则使用不同的方法,如矢量量化,二进制编码和稀疏约束来执行任务。

在训练协议方面,基于parameter pruning & sharing low-rank factorization的模型可以从预先训练的模型中提取,也可以从零开始训练。而transfered/compact filters和knowledge distillation模型只能支持从无到有的训练。

这些方法都是独立的研发出来的,但是他们之间的使用并没有互相的限制,你可以同时使用这四种方法里面的多种。

PARAMETER PRUNING AND SHARING


在早期时paramerter pruning and sharing 在减小模型的复杂度和处理模型过拟合的工作中取得了不错的效果。在这之后就有很多人来都研究paramerter pruning and sharing。现在这个技术大致被分成了3类

  • quantization and binarization(量化和二值化)
  • parameter sharing (参数共享)
  • structural matrix (构造矩阵)

下面我们一个个来说

A. quantization and binarization


Network quantization(网络量化)通过减少表示每个权值所需的比特数来压缩原始网络。下面列出这方面相关研究的论文。

缺点:
当处理像GoogleNet这样的大型cnn网络时,二进制网的精度会显著降低。这种二值化网络的另一个缺点是,现有的二值化方案基于简单的矩阵逼近,忽略了二值化对精度损失的影响。

B. parameter sharingww


网络权值共享的方法以及被运用到了减小网络复杂度和解决网络过拟合的问题上。

早期的的思路有这些

  • 基础的有偏置权重的衰减
  • The Optimal Brain Damage and The Optimal Brain Surgeon 这种模型在Hessian损失函数的基础上减少了很多的连接数量。同时这样的剪枝方式比基于量级的剪枝,如权值衰减法的准确度要高很多

这些方法的训练程序遵循从无到有的训练方式。

在这个方向上,最近的一个趋势是在一个预先训练好的CNN模型中删除冗余的、非信息性的权重。

当然了相关的论文还有好多好多,我这里不一一列举了

缺点: 剪枝和分享可能有一些潜在的问题。

  • 与一般方法相比,用l1或l2正则化进行剪枝需要更多的迭代来收敛
  • 所有的修剪标准都需要为层手动设置灵敏度,这需要对参数进行微调,对于某些应用程序可能很麻烦。

C. structural matrix


在包含全连接层的架构中,探索全连接层中参数的冗余是非常有必要的。这往往是内存消耗的瓶颈. 一个m x n的矩阵可以用参数量小于mn 的矩阵去描述,用来描述的矩阵就叫做structural matrix(结构化矩阵)。该结构通过快速的矩阵向量乘法和梯度运算**,不仅降低了内存开销,而且大大加快了推理和训练的速度。**

  • 沿着这个方向在论文Fast neural networks with circulant projections和An exploration of parameter redundancy in deep networks with circulant projections 提出了一种建立在循环检测基础上的一种简单有效的办法同时保持了不错的准确率。给你一个向量 r = (r0; r1; … ; rd-1) , 他对应的循环矩阵就这样给定义:
    在这里插入图片描述
    这样memory cost 就从O(d^2) 变成了 O(d) ,循环结构矩阵同样可以使用FFT(Fast Fourier Transoform) 去提高计算的速度 给定d维向量r的情况下,Eq. 1中的上述1层循环神经网络的时间复杂度为O(d log d)。

  • 在Deep fried convnets,” in International Conference on Computer Vision中提出了一种新的变换方法来重新参数化全连通层的矩阵向量乘法。 这篇论文提到的The Adapitive Fastfood 的转换矩阵被定义为:
    R = S H G Π H B R = SHGΠHB R=SHGΠHB
    S、G和B是任意的对角矩阵。Π ∈ { 0 , 1 } d × d \{0,1\}^{d \times d} {0,1}d×d 是一个任意的置换矩阵。H表示Walsh-Hadamard矩阵,这种方法使用自适应方法对具有d个输入和n个输出的全连接层重新参数化从O(nd)到O(n),从O(nd)到O(n log d),分别减少了存储和计算成本。

缺点:

  • 这类方法的一个问题是结构约束会影响性能,因为结构约束可能会给模型带来偏差。这也是模型压缩和加速的方法的一个通病了,想要获得速度的性能就必然会牺牲一些精度。
  • 另一个问题就是想要找到合适的结构矩阵的很困难的,因为没有理论的方法可以让你直接找到他

LOW-RANK FACTORIZATION AND SPARSITY


在卷积神经网络中,卷积操作占据了大部分的运算,因此减少卷积层将会有助于改变模型的压缩率和提升模型的速度。 对于卷积核你可以把他看作一个4维的tensor。基于张量分解的思想是由四维张量中存在大量冗余的直觉得到的,这是一种特别有希望消除冗余的方法。对于全连通层,它可以被看作是一个2D矩阵,低秩性也有帮助。
在这里插入图片描述

人们已经开始使用 low-rank filters去提升软件网络的精度很长时间了。例如DCT (discrete cosine transform)和wavelet系统分别用一维DCT变换和一维小波构造张量积。

The low-rank approximation 是逐层进行的。其中一层的参数确定后,根据重构误差准则对上述各层进行微调。 这些是典型的低秩压缩方法2D卷积层,在上图中已经描述了出来。

  • 跟随着上述的思路,2014-Speeding-up Convolutional Neural Networks Using Fine-tuned CP-Decomposition中提出了核张量的正则并矢(CP)分解的方法。他们的工作是用非线性最小二乘法来计算CP分解。

  • 在[40]中,提出了一种计算低秩张量分解的新算法,用于训练低秩约束的CNNs。利用批处理归一化(BN)对内部隐藏单元的激活进行转换。 一般来说,在[40] (BN)中CP和BN的分解方案都是一样的低级别)可以用来从零开始训练CNNs。然后,他们之间还是有微小的区别。例如,在CP分解中寻找最佳低秩近似是一个伪问题,最佳 rank-K (K是秩数)近似有时还可能不存在。而对于BN方案,分解总是存在的。我们对这两种方法进行了简单的比较,如下图所示。
    在这里插入图片描述

The actual speedup and the compression ratess是用来衡量他们的性能的,如前所述,全连通层可以看作是一个二维矩阵,因此上述方法也可以应用于此。关于在全连通层中开发低秩性的经典作品有好几个。例如

  • Misha在【2013-Predicting parameters in deep learning】 利用low-rank的方法减少了深层模型中动态参数的数量
  • 【2013-Low-rank matrix factorization for deep neural network training with high-dimensional output targets】中探讨了DNN中final weigth layer的低秩矩阵分解方法,用于声学建模。

缺点:low-rank 对于模型压缩和加速是直接的,这一想法补充了最近在深度学习方面的进展,如dropout、矫正单元和maxout。 然而,实现并不容易,因为它涉及分解操作,这在计算上是昂贵的。另一个问题是,当前的方法是逐层执行低秩近似,因此不能执行全局参数压缩,这是很重要的,因为不同的层包含不同的信息。最后,与原始模型相比,因式分解需要大量的模型再训练来达到收敛性。

TRANSFERRED/COMPACT CONVOLUTIONAL FILTERS


CNNs是parameter efficient 的,这都要归功于它对输入图像的表示的平移不变性,而这点正是训练深层的网络模型不产生过分的过拟合所必须的。虽然目前缺乏一个强有力的理论,但大量的经验证据支持这样的观点,即平移不变性和卷积权值共享对良好的预测性能都很重要。使用TRANSFERRED CONVOLUTIONAL FILTERS来压缩CNN模型的想法是由[43]最近的工作所激发的,该工作引入了等变群理论(the equivariant group theory)。
让 x \mathrm{x} x作为输入, Φ ( ⋅ ) \Phi(\cdot) Φ(⋅) 作为一个网络或者一个网络层 and T ( ⋅ ) \mathcal{T}(\cdot) T(⋅) 作为transform matrix. 等价的概念被定义为:
T ′ Φ ( x ) = Φ ( T x ) \mathcal{T}^{\prime} \Phi(\mathbf{x})=\Phi(\mathcal{T} \mathbf{x}) T′Φ(x)=Φ(Tx)
这表明通过:
indicating that transforming the input x by the transform T ( ⋅ ) \mathcal{T}(\cdot) T(⋅) and then passing it through the network or layer Φ ( ⋅ ) \Phi(\cdot) Φ(⋅) should give the same result as first mapping x through the network and then transforming the representation. (这句话不翻译了,翻译过来反而更难懂了) 变换 T ( ⋅ ) \mathcal{T}(\cdot) T(⋅)和 T ′ ( ⋅ ) \mathcal{T}^{\prime}(\cdot) T′(⋅)不一定是相同的,因为它们作用于不同的对象。根据这个理论,根据这一理论,合理应用变换层或flters Φ(·)压缩整个网络模型。从实证观察中我们可以发现 deep CNNs 同样受益于使用作为模型的正则化器的使用一组很小的基频的特定的变换 T ( ⋅ ) \mathcal{T}(\cdot) T(⋅)。
按照这个方向,最近有许多研究建议从一组基本filter构建一个卷积层

  • 【Group equivariant convolutional networks】
  • 【Doubly convolutional neural networks】
  • 【Understanding and improving convolutional neural networks via concatenated rectifed linear units】
  • 【Multi-bias non-linear activation in deep neural networks】

它们的共同点是,变换T(·)属于只在卷积flter的空间域内操作的一类函数,例如在【Understanding and improving convolutional neural networks via concatenated rectifed linear units】中的工作发现CNNs的下卷积层通过学习冗余flters来提取输入信号的正负相位信息,将T(·)定义为简单的否定函数:
T ( W x ) = W x − \mathcal{T}\left(\mathbf{W}_{x}\right)=\mathbf{W}_{x}^{-} T(Wx​)=Wx−​

这里 W x \mathbf{W}_{x} Wx​是基础的卷积核, W x − \mathbf{W}_{x}^{-} Wx−​是由激活与Wx相反的 shift 组成的flter x,这些shilt 是在max-pooling操作后选择的。通过这个操作可以简单的实现在所有的卷积层上都有2倍的压缩率。结果表明,否定变换是一种强正则化方法,提高了分类精度。直观的理解是,使用pair-wise positive-negative constraint的学习算法可以得到有用的卷积filter,而不是冗余的filter。

在【Multi-bias non-linear activation in deep neural networks】中发现,卷积核的响应幅度在网络中具有广泛的模式表示多样性,仅用一个阈值来舍弃较弱的信号是不合适的. 为此,提出了一种多偏置非线性激活函数,以较低的计算代价在特征空间中生成更多的模式,转换 T ( ⋅ ) \mathcal{T}(\cdot) T(⋅)被定义为:

T ′ Φ ( x ) = W x + δ \mathcal{T}^{\prime} \Phi(\mathbf{x})=\mathbf{W}_{x}+\delta T′Φ(x)=Wx​+δ
δ \delta δ是multi-bias 特征。在【Understanding and improving convolutional neural networks via concatenated rectifed linear units】中考虑一个多90◦和水平/垂直配置的旋转组合:

T ∗ Φ ( x ) = W T θ \mathcal{T}^{*} \Phi(\mathbf{x})=\mathbf{W}^{T_{\theta}} T∗Φ(x)=WTθ​

where W T θ \mathbf{W}^{T_{\theta}} WTθ​ was the transformation matrix which rotated the original filters with angle θ ∈ { 90 , 180 , 270 } . \theta \in\{90,180,270\} . θ∈{90,180,270}. 在【Group equivariant convolutional networks】中变换推广到任何从数据中获取到的角度数据,θ也是直接从数据获得。

在【Doubly convolutional neural networks】中定义 T ( ⋅ ) \mathcal{T}(\cdot) T(⋅)作为应用在2D filters上的translation function。
T ‘ Φ ( x ) = T ( ⋅ , x , y ) x , y ∈ { − k , … , k } , ( x , y ) ≠ ( 0 , 0 ) \mathcal{T}^{‘} \Phi(\mathbf{x})=T(\cdot, x, y)_{x, y \in\{-k, \ldots, k\},(x, y) \neq(0,0)} T‘Φ(x)=T(⋅,x,y)x,y∈{−k,…,k},(x,y)​=(0,0)​

T ( ⋅ , x , y ) T(\cdot, x, y) T(⋅,x,y)表示将第一个操作数沿其空间维数(x, y)平移,并在边界上加上适当的补零以保持形状。提出的框架可用于 R = circ ⁡ ( r ) : = [ r 0 r d − 1 … r 2 r 1 r 1 r 0 r d − 1 r 2 ⋮ r 1 r 0 ⋱ ⋮ r d − 2 ⋱ ⋱ r d − 1 r d − 1 r d − 2 … r 1 r 0 ] \mathbf{R}=\operatorname{circ}(\mathbf{r}):=\left[\begin{array}{ccccc}r_{0} & r_{d-1} & \dots & r_{2} & r_{1} \\ r_{1} & r_{0} & r_{d-1} & & r_{2} \\ \vdots & r_{1} & r_{0} & \ddots & \vdots \\ r_{d-2} & & \ddots & \ddots & r_{d-1} \\ r_{d-1} & r_{d-2} & \dots & r_{1} & r_{0}\end{array}\right] R=circ(r):=⎣⎢⎢⎢⎢⎢⎡​r0​r1​⋮rd−2​rd−1​​rd−1​r0​r1​rd−2​​…rd−1​r0​⋱…​r2​⋱⋱r1​​r1​r2​⋮rd−1​r0​​⎦⎥⎥⎥⎥⎥⎤​改善分类精度的问题作为maxout网络的正则化版本,帮助 R = S H G I I H B \mathbf{R}=\mathbf{S H G I I H B} R=SHGIIHB通过灵活地改变它们的体系结构来压缩网络来实现参数效率。

在这里插入图片描述
TABLE Ⅲ 中简要的概述了transferred convolutional filter在使用VGGNet作为基本框架不同的网络模型取得的效果。结果表明,它们可以在分类精度几乎没有下降的情况下实现参数的减少。

缺点: 对于将transform constraints to couvolutional filter的方法,需要解决的问题很少.

  • 首先,这些方法可以在宽/胖的架构(如VGGNet)上获得有竞争力的性能,而在窄/深的架构(如GoogleNet、残余网)上却没有竞争力。其次,迁移假设有时过于强大,无法指导学习,导致结果在某些情况下不稳定。
  • 使用紧凑的filter进行卷积可以直接降低计算成本。关键的想法是用紧凑的块代替松散的和过度参数化的filters来提高速度,这将显著地加速CNNs在几个基准上的运行。

KNOWLEDGE DISTILLATION(知识蒸馏)


据我们所知,Caruana等人首先提出利用知识转移(KT)来压缩模型。他们训练了一个带有伪数据标记的强分类器的压缩/集成模型,并复制了原始大网络的输出,但这项工作仅限于浅层模型。该思想最近被论文【Do deep nets really need to be deep?】采用作为知识蒸馏(KD),将深度和广度的网络压缩为较浅的网络,其中压缩模型模仿复杂模型学习的功能。KD方法的主要思想是通过softmax学习课堂分布输出,将知识从大型teacher model转化为小型teacher model

【Distilling the knowledge in a neural network】的工作引入了KD压缩框架,该框架通过遵循学生-教师的范式简化了深层网络的训练,在这种范式中,学生根据教师输出的软化版本受到”惩罚“。该框架将一个教师网络集合压缩成一个具有类似深度的学生网络。学生被训练去预测输出和分类标签。尽管KD算法简单,但它在各种图像分类任务中显示出了良好的效果。听起来是不是很像自编码器呢?

【Fitnets: Hints for thin deep nets】中的工作旨在利用深度神经网络来解决网络压缩问题,它提出了一种训练细而深的网络的方法,称为FitNets,来压缩宽而浅的(但仍然深的)网络。该方法扩展了该思想,允许更薄和更深的学生模型。为了学习教师网络的中间表示,FitNet让学生模仿教师的全部特征图。然而,这样的假设过于严格,因为教师和学生的能力可能会有很大的不同。以上方法均在MNIST、CIFAR10、CIFAR-100、SVHN和AFLW基准数据集上得到验证同时这些方法能较好地匹配或优于教师的教学效果,但所需的参数和乘法明显减少。

沿着这个方向有几个延伸的蒸馏知识。

-【Bayesian dark knowledge】中的工作训练了一个参数化的学生模型来近似蒙特卡罗老师。该框架采用在线训练,学生模型采用深度神经网络。

  • 与以往用软化标记概率表示知识的工作不同,【Face model compression by distilling knowledge from neurons】利用隐藏层的神经元来表示知识,该隐藏层保留的信息与标签概率相同,但更紧凑。
  • 【Net2net: Accelerating learning via knowledge transfer】的工作通过瞬间将知识从以前的网络转移到每个更深或更广的新网络,加速了实验过程。这些技术是基于神经网络之间的功能保持转换的概念
  • Zagoruyko等人【Paying more attention to attention: Improving the performance of convolutional neural networks via attention transfer】提出了注意转移(AT)放松FitNet的假设。他们转移了注意力地图,那是全部激活的总结。

缺点:
基于KD的方法可以使模型的深度更小,大大降低计算成本,然而,也有一些缺点。

  • KD只能应用于具有softmax损失函数的分类任务,这阻碍了它的使用
  • 模型假设有时过于严格,使得性能无法与其他类型的方法竞争
    在这里插入图片描述

讨论与挑战


深度模型的压缩和加速技术还处在早期阶段,目前还存在以下挑战:

  • 大多数目前的顶尖方法都建立在设计完善的 CNN 模型的基础上,这限制了改变配置的自由度(例如,网络结构和超参数)。为了处理更加复杂的任务,还需要更加可靠的模型压缩方法。
  • 剪枝是一种压缩和加速 CNN 的有效方式。目前大多数的剪枝技术都是以减少神经元之间的连接设计的。另一方面,对通道进行剪枝可以直接减小特征映射的宽度并压缩模型。这很有效,但也存在挑战,因为减少通道会显著地改变下一层的输入。确定这类问题的解决方式同样很重要。
  • 正如之前所提到的,结构化矩阵和迁移卷积滤波器方法必须使模型具有人类先验知识,这对模型的性能和稳定性有显著的影响。研究如何控制强加先验知识的影响是很重要的。
  • 知识精炼(knowledge distillation/KD)方法有很多益处比如不需要特定的硬件或实现就能直接加速模型。开发基于 KD 的方法并探索如何提升性能仍然值得一试。
  • 多种小型平台(例如,移动设备、机器人、自动驾驶汽车)的硬件限制仍然是阻碍深层 CNN 扩展的主要问题。如何全面利用有限的可用计算资源以及如何为这些平台设计特定的压缩方法仍然是个挑战。

到这里最经典的四种神经网络模型压缩与加速的方法总算介绍完了,陆陆续续写了三个星期,喜欢的请给赞鼓励一下哈。

深度学习视频压缩1—DVC: An End-to-end Deep Video Compression Framework 本文是第一篇端到端使用神经网络来进行视频压缩的论文, github地址:https://github.com/GuoLusjtu/DVC 论文地址:https://arxiv.org/pdf/1812.00101.pdf 各个领域的第一篇,还是值得精读的~ 摘要 传统的视频压缩方法使用预测的编码结构,并对相应的运动信息和残差信息进行编码。本文,利用了传统视频压缩方案的经典架构和神经网络的非线性表示能力,提出了第一个端到端的视频压缩深度模型 并且同时对视频压缩的所有模块网络进行统... 阅读详情

相关推荐

模型压缩和加速方法总结和文献综述

本文集中了一些针对模型压缩和技巧,用于加快计算速度的论文。 如下所示,模型压缩具有不同的技术,在这里我将主要列出深度学习网络部分。 1. Review papers,综述文章 以下是推荐用于模型压缩和加速的几篇论文。 Cheng Yu et al., A survey of model compression and acceleration for deep neural networks, 2017. Cheng Jian et al., Recent advances in efficie

senbinyu的博客 4889

论文笔记24 -- (视频压缩)【CVPR2019】DVC: An End-to-end Deep Video Compression Framework

DVC确实是个优秀的算法,在深度学习视频压缩领域也常被视为基准算法,在其后也有多篇对它进行优化改进的paper,并且代码也开源了,值得学习一下。

对角巷 1万+

模型压缩算法国内外研究现状综述

剪枝类型参考文章评估指标简介参数驱动[99][100][101][102]基于权值的L1/L2范数[103][104][105]基于BN层的γ参数[106][107]基于BN层的γ参数衍生的缩放因子[108]基于卷积核的谱聚类[109]基于卷积核的几何中位数[110]基于卷积核的相似度数据驱动[111]基于后一层的统计信息[112][113][114]基于激活值最小重构误差[115]基于剪枝前后特征图熵值大小[116]

Joejwu的博客 3425

视频压缩技术学习(不高明版本)

​,包括空间冗余(相邻像素相关性)、时间冗余(连续帧相似性)以及视觉冗余(人眼感知特性)。通过算法优化,在保持可接受画质的前提下,显著减少文件体积和传输带宽需求。A:比特率是内容编码后的数据量(如 500kbps),决定文件大小和画质;传输速率是网络带宽(如 100Mbps),影响播放流畅性。A:硬件解码器成本高,部分老旧设备不支持,需权衡兼容性与压缩效率。视频压缩的核心在于​。

2403_86977424的博客 593

模型压缩(Model compression)

网络剪枝(Network Pruning) 前言 深度神经网络(DNN)有个很大的缺点就是计算量太大。为克服这类问题,研究人员在两方面做了工作。第一,使用高性能硬件加速;第二,使用模型压缩(Model compression)。 网络剪枝就是模型压缩其中的一个方法,除此之外,还有量化(Quantization)、低秩分解(Low-rank factorization)、知识蒸馏(Knowledge distillation)。 网络剪枝研究的核心问题就是:如何有效地裁剪模型参数且最小化精度的损失。 网络剪枝

This is Yu SI's blog. Kenny(司宇SIYU) 1万+

DNN模型压缩:综述

DNN-ompression模型压缩:Deep Compression剪枝Pruning资料论文应用量化Quantification资料论文应用 模型压缩:Deep Compression 以剪枝和量化为主要压缩方式减小模型大小和计算量,使得模型可以应用在计算和存储资源有限的嵌入式等设备上。 剪枝Pruning 资料 博客:深度学习模型压缩方法(3)-----模型剪枝(Pruning) 博客:深...

努力努力再努力丶的博客 858

阅读笔记:深度神经网络模型压缩与加速

目前的深层卷积神经网络模型非常耗费计算资源和内存,面临着在终端部署和低延迟需求场景下难以应用的问题。因此,一种很自然的解决方案就是在保证分类准确率不显著下降的前提下对深层卷积神经网络进行压缩和加速。

hukai7190的博客 5298

提高深度神经网络推理速度-模型压缩与加速的最新进展

模型压缩与加速技术是深度神经网络应用中不可或缺的一部分,尤其是在资源受限的环境中。通过合理运用剪枝、量化、知识蒸馏等技术,并结合硬件加速与计算图优化,可以显著提升模型的性能和效率。随着技术的不断进步,未来的深度学习应用将在嵌入式设备、移动端、实时计算等领域发挥更大的潜力。模型压缩与加速技术为深度神经网络在资源受限环境中的部署提供了有效的解决方案。剪枝、量化、知识蒸馏等技术能够有效减小模型的计算量和存储需求,在保证精度的同时提升推理速度。然而,这些技术仍然面临一些挑战,如精度损失、复杂度增加等。

一键难忘的博客 4531

【论文阅读笔记】---《A Survey of Model Compression and Acceleration for Deep Neural Networks》

  论文:A Survey of Model Compression and Acceleration for Deep Neural Networks               深度神经网络模型压缩与加速综述       摘要--深度卷积神经网络(CNN)目前在很多视觉识别任务中有非常良好的表现。然而,目前的深度卷积神经网络模型非常耗费计算资源和内存,面临着在终端部署和低延迟需求场景下难...

u012101561的博客 6347

Deep-Image-Compression-Video-Coding:与基于深度学习深度神经网络的图像压缩和视频编码框架有关的最新论文和代码

深度图像压缩视频编码 与基于深度学习/深度神经网络的图像压缩和视频编码框架有关的最新论文和代码。 2016年 [Google] George Toderici,Sean M. O'Malley,Sung Jin Hwang,Damien Vincent,David Minnen,Shumeet Baluja,Michele Covell和Rahul Sukthankar:使用递归神经网络进行可变速率图像压缩。 ICLR2016。 [DeepMind] Karol Gregor,Frederic Besse,Danilo Jimenez Rezende,Ivo Danihelka和Daan Wierstra:迈向概念压缩。 NIPS2016。 2017年 影像压缩 [Google] George Toderici,Damien Vincent,Nick Johnston,Sung Jin

深度神经网络模型压缩综述

近年来,随着深度学习的飞速发展,深度神经网络受到了越来越多的关注,在许多应用领域取得了显著效果。通常,在较高的计算量下,深度神经网络的学习能力随着网络层深度的增加而不断提高,因此深度神经网络在大型数据集上的表现非常卓越。

DNN深度神经网络:结构、训练与优化全指南

深度神经网络(DNN)作为深度学习的核心基础,是图像分类、自然语言处理、时序预测等众多AI任务的核心驱动力。从基础的层结构设计到复杂的训练调参,再到工程化的优化部署,每个环节都直接决定模型的性能与落地效果。本文将结合实战案例,全面拆解DNN的结构设计要点、训练关键技术与优化核心方案,助力开发者快速掌握DNN从搭建到落地的全流程技巧。

2401_85083137的博客 1762

FileZilla Server目录显示失败的处理方法

这两天河南大暴雨挺严重导致多处停电,我远在郑州机房的服务器也断网连不上了。一直到今天下午才恢复,影响较大,有些客户要数据,可是数据因为断网拿不到。于是我想,要是能把服务器的数据备份到其他地方,比如我的本机或者另外一台电脑该多好。 于是今天一整天我都在找远程备份数据的方法,把一台服务器上的数据实时同步到另外一台上。或者两台服务器互相同步。 找了半天发现了FreeFileSync这个宝藏软件,它的原理很简单是通过ftp传输数据。 我得先在服务器上安装个ftp服务,首选filezilla server,安..

两天打鱼三天晒网 4453

深度神经网络的压缩与加速综述

引用本文: [如本文对读者朋友们的研究有所帮助,请添加如下参考文献] 纪荣嵘,林绍辉,晁飞,吴永坚,黄飞跃. 深度神经网络压缩与加速综述[J]. 计算机研究与发展, 2018, 55(9): 1871-1888. Ji Rongrong,Lin Shaohui,Chao Fei,Wu Yongjian,Huang Feiyue. Deep Neural Network Compression ...

AliceLeeHX的博客 7618

【2026-Spark实验一-Windows中安装Spark环境】

本文详细介绍了在Windows系统中配置Spark 3.5.8开发环境的完整流程。主要内容包括:安装JDK 8并配置环境变量,下载并解压Spark 3.5.8预编译版,设置SPARK_HOME系统变量,配置Hadoop的winutils工具解决Windows兼容性问题。通过spark-shell和SparkPi示例程序验证环境配置成功,确保Spark能够正常运行分布式计算任务。文中特别强调了路径命名规范、环境变量设置顺序等关键细节,提供了完整的配置截图和验证方法,帮助开发者快速搭建稳定的Spark学习环境。

pblh123的专栏 1587

STM32 RTC_WaitForSynchro()死循环问题分析与LSI时钟优化实践

本文深入分析了STM32使用LSI时钟源时,调用RTC_WaitForSynchro()函数陷入死循环的根本原因。问题核心在于RTC时钟域未正确使能,导致硬件同步标志RSF无法置位。文章提供了通过显式调用RCC_RTCCLKCmd(ENABLE)函数启用RTC时钟总开关的解决方案,并分享了编写健壮RTC/BKP初始化代码、增加超时机制等最佳实践,确保系统稳定运行。

weixin_29185493的博客 510

深度神经网络压缩与加速总结

深度神经网络压缩与加速综述1. 深度神经网络压缩与加速的任务2. 模型压缩与加速方法(1) 参数剪枝(2) 参数共享(3) 低秩分解(4) 紧性滤波设计(5) 知识蒸馏3. 深度神经网络压缩与加速算法相关工作(1) 基于参数剪枝的深度神经网络压缩与加速(2) 基于参数共享的深度神经网络压缩与加速 参考文献:纪荣嵘, 林绍辉, 晁飞,等. 深度神经网络压缩与加速综述[J]. 计算机研究与发展, 2018, 55(09):1871-1888. 1. 深度神经网络压缩与加速的任务 (1)加速——卷积层 (2)压缩

LLL_mg的博客 2649

Matlab信号处理——基于BP神经网络的调制信号分类与识别

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!对信号进行采样和处理,得到了一系列特征参数,包括幅度均值、频率峰值、频率平方均值以及相位标准差、修正后的相位标准差。

小嘤熊的博客 1308

深度神经网络压缩与加速关键技术的研究

文章针对深度神经网络参数存在大量冗余性问题,从压缩与加速深度神经网络两种不同任务出发,对深度神经网络的低秩分解(low-rank decomposition)和参数剪枝(parameter pruning)通用性方法展开深入研究,特别对于卷积神经网络的压缩与加速。具体研究内容和创新点包括:(1)提出了一种基于闭式低秩分解和知识迁移的全局卷积神经网络压缩方法。传统方法分开考虑卷积层加速和全连接层压缩,无法统一联合处理不同类型层任务,且利用逐层方式进行内局部压缩,无法显性对齐最终网络分类准确率。

weixin_43238909的博客 1723

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果,国防版凭借其卓越的安全性和可靠性,已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求,而麒麟V10国防版在安全防护等级上又达到了更高的级别。本文将主要演示离线部署,因为军工项目基本不会出现联网场景。即使在线,也可以按离线方式部署,且离线部署由于有私有仓库,不会存在镜像获取不到和丢失情况。

jiaworld的博客 730

Python爬虫实战:如何爬取12306列车信息

本文介绍了如何使用Python编写爬虫,抓取12306列车信息。我们讲解了如何分析12306的列车数据接口,如何发送HTTP请求,解析返回的JSON数据,并将数据保存到本地文件中。我们还讨论了如何绕过反爬虫机制,如使用随机User-Agent和设置请求延时。通过这个实战项目,你应该掌握了如何爬取并解析来自公共API的数据,同时提高了你的爬虫技能。这些技能不仅适用于12306列车信息抓取,也可以广泛应用于其他需要抓取JSON数据的网站。

2201_76125261的博客 1922

在AIoT设备上加速深度神经网络推理的进展:一项综述

此外,混合并行性,通过结合不同并行化技术的优势,以提高复杂计算任务的推理效率和可扩展性,已成为提高AIoT设备上DNN推理效率的有前途的解决方案。例如,通过结合数据并行性和模型并行性,优化了在卷积层中的数据并行性,并在全连接层中应用模型并行性。早期退出策略可以是静态的或动态的,它们通过在模型的适当层添加退出点,减少不必要的计算,从而提高推理速度。在AIoT设备上加速DNN推理的过程中,这些并行化技术的发展和应用至关重要,它们共同提高了计算效率,满足了AIoT设备上资源受限环境中对高性能计算的需求。

研究兴趣:智能物联网、嵌入式系统、人工智能 1443

2025华为OD机试真题目录汇总 B+C+D+E卷(570道)(Python语言)

本文是华为OD机试真题(Python 语言)专栏的目录贴(持续更新中…)华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 18万+

模型压缩技术综述

当今,随着深度学习技术的不断进步,越来越多的大型多模态模型被应用于自然语言处理、计算机视觉等领域。然而,这些模型往往需要数十亿甚至上百亿的参数,不仅训练时间长、计算资源消耗大,而且在实际应用中也会受到硬件、网络等因素的限制。因此,如何对这些大型模型进行压缩,成为了一个备受关注的研究方向。模型压缩不仅可以缩短训练时间、降低计算资源消耗,还可以提高模型在移动设备等资源有限的场景下的应用性能。本文将介绍一些常用的模型压缩方法,以及它们在大型多模态模型上的应用。

weixin_42010722的博客 3093

Nacos 从困惑到蒙圈(9)Nacos 适配 达梦数据库【最新版】

介绍Nacos适配达梦数据库的详细步骤,包括对最新版本的支持改造。

甘蓝的专栏 1378

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

深度神经网络(DNN)

每个神经元接收来自前一层的所有神经元的连接(称为权重),加上一个偏置项,然后通过一个非线性激活函数(如sigmoid、ReLU、tanh等)产生自身的输出。其中,( w_i ) 是与第 ( i ) 个输入 ( x_i ) 相关联的权重,( n ) 是输入的数量,( b ) 是偏置项,( f ) 是激活函数。总之,深度神经网络作为一种强大的机器学习模型,以其多层次的非线性表达能力和自动特征学习的优势,在诸多领域取得了显著成果,并不断推动着人工智能技术的发展。此过程用于预测给定输入的输出。

易之阴阳,量子纠缠,道之一体,缘起性空 2664

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Detectron2篇之测试框架效果
下一篇: Colab常用操作合集
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值