CN108334945B - 深度神经网络的加速与压缩方法及装置 - Google Patents
深度神经网络的加速与压缩方法及装置 Download PDFInfo
- Publication number
- CN108334945B CN108334945B CN201810088723.XA CN201810088723A CN108334945B CN 108334945 B CN108334945 B CN 108334945B CN 201810088723 A CN201810088723 A CN 201810088723A CN 108334945 B CN108334945 B CN 108334945B
- Authority
- CN
- China
- Prior art keywords
- neural network
- deep neural
- matrix
- parameter
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000006835 compression Effects 0.000 title claims abstract description 31
- 238000007906 compression Methods 0.000 title claims abstract description 31
- 230000001133 acceleration Effects 0.000 title claims abstract description 30
- 239000011159 matrix material Substances 0.000 claims abstract description 163
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明属于神经网络技术领域,具体涉及一种深度神经网络的加速与压缩方法及装置。旨在解决现有技术对深度神经网络进行压缩和加速占用大量内存并且精度下降的问题。本发明提供深度神经网络的加速与压缩方法,包括获取原始深度神经网络中各层的输入数据与参数矩阵;基于输入数据与参数矩阵,计算原始深度神经网络中各层的二值矩阵与浮点系数;将二值矩阵替换原始深度神经网络各层的参数矩阵,并在原始深度神经网络中构建尺度因子层,基于浮点系数初始化尺度因子层的参数,得到新的深度神经网络。本发明的方案能够将神经网络的网络参数二值化,占用更少的内存且提升精度。
Description
技术领域
本发明属于神经网络技术领域,具体涉及一种深度神经网络的加速与压缩方法及装置。
背景技术
近年来随着深度学习的发展,深度神经网络在计算机视觉、语音、文本等领域中都取得了巨大的成功,这也推动着深度学习在无人驾驶、智能家居、视频监控等任务中的应用。
随着深度网络的发展,深度神经网络变得更深,同时参数量和计算量也变得更大。深度神经网络巨大的参数量和计算复杂度在提升网络性能的同时也使得部署深度网络变得更加困难,特别地,由于移动手机和嵌入式设备的计算性能较低,其内存和电量有限,将深度神经网络部署到这些设备上会面临着两方面的挑战:一方面,深度神经网络巨大的计算复杂度使得网络前馈运行缓慢,这一点对于很多实时的应用往往是不能接受的;另一方面,深度网络巨大的参数量也给深度网络的部署带来了困难:首先,大量的参数使得网络模型存储变大,占用更多的硬盘存储;其次,深度网络需要更多的运行内存;最后,大量的内存访问会消耗大量的电量,给移动设备和嵌入式设备的续航带来很大的挑战。
针对深度神经网络在参数多、运算量大的情况下进行压缩和加速的问题,专利CN106127297A公开了一种基于张量分解的深度卷积神经网络的加速与压缩方法,具体涉及:获取原始深度卷积神经网络;对原始深度卷积神经网络中各层的权值张量进行张量分解,得到多个低秩子张量,用多个低秩子张量替换原始深度卷积神经网络中各层的权值张量,获得新的深度卷积神经网络。现有技术的方法是对深度卷积神经网络各层进行浮点量运算,而浮点参数会占用大量的存储和内存,往往会更多地消耗移动设备和嵌入式设备上的电量,同时在一些硬件平台下,例如FPGA,浮点计算会慢很多,此外,现有技术提出的某些方法只针对全连接神经网络框架,并且进行压缩或加速后神经网络的精度将会下降。
因此,如何提出一种解决上述问题的方案是本领域技术人员目前需要解决的问题。
发明内容
为了解决现有技术中的上述问题,即为了解决现有技术对深度神经网络进行压缩和加速占用大量内存并且精度下降的问题,本发明提供了一种深度神经网络的加速与压缩方法,所述方法包括:
步骤S1:获取原始深度神经网络中各层的输入数据与参数矩阵;
步骤S2:基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
步骤S3:将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络。
在上述方法的优选技术方案中,所述步骤S2具体包括:
步骤S21:随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立执行下述步骤;
步骤S22:使用符号函数初始化所述二值矩阵;通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
步骤S23:对初始化后的二值矩阵和浮点系数进行迭代更新。
在上述方法的优选技术方案中,所述步骤S23具体包括:
步骤S231:设定迭代次数为M,重复执行如下步骤;
步骤S233:设定Z=Λii·X,q=Λii·XSi,b为所述二值矩阵对应向量Bi的第j个元素,为所述二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,为矩阵Z去掉第j行之后的矩阵;
在上述方法的优选技术方案中,所述步骤S3还包括:
步骤S31:基于所述二值矩阵对所述参数矩阵进行初始化;
步骤S32:在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
步骤S33:使用梯度G对所述参数矩阵进行更新。
本发明的另一方面还提供一种深度神经网络的加速与压缩装置,所述装置包括:
获取模块,所述获取装置被配置为获取原始深度神经网络中各层的输入数据与参数矩阵;
计算模块,所述计算模块被配置为基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
替换模块,所述替换模块被配置为将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络。
在上述方法的优选技术方案中,所述计算模块具体包括:
第一设定模块,所述设定模块被配置为随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立运行下述模块;
初始化模块,所述初始化模块被配置为使用符号函数初始化所述二值矩阵,通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
第一更新模块,所述更新模块被配置为对初始化后的二值矩阵和浮点系数进行迭代更新。
在上述方法的优选技术方案中,所述第一更新模块还包括:
第二设定模块,所述第二设定模块被配置为设定迭代次数为M,重复运行下述模块;
第三更新模块,所述第三更新模块被配置为设定Z=Λii·X,q=Λii·XSi,b为所述二值矩阵对应向量Bi的第j个元素,为所述二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,为矩阵Z去掉第j行之后的矩阵;
在上述方法的优选技术方案中,所述替换模块还包括:
代理模块,所述代理模块被配置为基于所述二值矩阵对所述参数矩阵进行初始化;
赋值模块,所述赋值模块被配置为在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
第四更新模块,所述第四更新模块被配置为使用梯度G对所述参数矩阵进行更新。
本发明的第三方面提供一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行如上述任一项所述的深度神经网络的加速与压缩方法。
本发明的第四方面提供一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;所述程序适于由处理器加载并执行如上述任一项所述的深度神经网络的加速与压缩方法。
与最接近的现有技术相比,本发明提供一种深度神经网络的加速与压缩方法,包括获取原始深度神经网络中各层的输入数据与参数矩阵;基于输入数据与参数矩阵,计算原始深度神经网络中各层的二值矩阵与浮点系数;将二值矩阵替换原始深度神经网络各层的参数矩阵,并在原始深度神经网络中构建尺度因子层,基于浮点系数初始化尺度因子层的参数,得到新的深度神经网络。
上述技术方案至少具有如下有益效果:
本发明的技术方案可以针对多种类型的神经网络框架,适用范围广;通过将神经网络的网络参数二值化,并且在其二值编码的基础上结合浮点系数,增强了二值编码的表示能力,将网络参数二值化后可以实现神经网络的高位宽压缩,将神经网络的乘法运算简化为加法运算,从而实现对大型深度神经网络的加速与压缩,用二值编码替换原始深度神经网络各层的对应系数,能够占用更少的内存,并且二值编码能够用于加法运算,提升深度神经网络的计算能力,在实现对大型深度神经网络的加速与压缩的同时,保证深度神经网络的精度。
附图说明
图1为本发明一种实施例深度神经网络的加速与压缩方法的流程示意图;
图2为本发明一种实施例深度神经网络图像分类的过程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
参阅附图1,图1示例性的给出了本实施例中深度神经网络的加速与压缩方法的流程示意图。如图1所示,本实施例中深度神经网络的加速与压缩方法包括下述步骤:
步骤S1:获取原始深度神经网络中各层的输入数据与参数矩阵;
本发明将神经网络参数的二值化问题转化为保持内积哈希编码的求解问题,在二值编码上乘以尺度因子Λ来增强二值编码的表示能力,通过交替迭代优化求解尺度因子Λ和二值编码B,其中,尺度因子为浮点系数。具体地,对于深度神经网络中的某一层,使用X表示该层的输入,W表示该层预训练之后的高位宽(大于4bit,比如32位浮点)的参数矩阵,令S=XTW,则参数二值化的优化目标函数为:其中B是一个二值矩阵,Λ是一个对角矩阵,只有对角线元素有值,其余皆为0,基于该目标函数,本发明可以基于保持内积的哈希在保持深度神经网络参数的二值约束的同时,对二值参数进行求解,实现深度神经网络加速和压缩的目的;
假定原始深度神经网络有L层,从数据库中采样一部分图片,将其输入原始深度神经网络,即可得到第l层的输入数据和参数矩阵。
步骤S2:基于输入数据与参数矩阵,计算原始深度神经网络中各层的二值矩阵与浮点系数;
利用保持内积相似性的哈希方法对原始深度神经网络中各层的参数进行二值化,直至所有卷积层或全连接层都被遍历,得到二值化的网络参数;
在实施例的一个优选实施方案中,步骤S2具体包括下述步骤:
如图2所示,图2示例性地给出了将深度神经网络用于图像分类的过程。其中,深度神经网络包含多个卷积层和多个全连接层,输入图像经过卷积层和全连接层的处理后得到分类结果;
一般地,卷积层的参数表示为一个大小为c×w×h×T的四位张量,T表示卷积核的个数,c表示通道数,w和h分别表示卷积核的宽和高,而全连接层的参数则可以表示为c×T的矩阵。将卷积层和全连接层的参数统一表示为S×T的矩阵W,对于卷积层,可以表示为S=c×w×h,而对于全连接层,则可以表示为S=c。
步骤S21:对于一个L层的深度神经网络,另l从1到L依次取值并执行以下步骤:
步骤S211:从数据库中采样一部分图片,输入深度神经网络,得到第l层的输入数据X;
步骤S212:用W表示原始深度网络第l层的参数矩阵,通过S=XTW计算输入数据X和原始深度网络的参数矩阵W的内积相似性S;
步骤S213:通过保持内积相似性的哈希方法InnerHash(S,X)计算二值矩阵B和浮点系数Λ,其中,Λ是一个对角矩阵,只有对角线元素有值,其余皆为0。具体包括如下计算步骤:
步骤S2131:随机初始化二值矩阵与浮点系数,令i从0到T-1并行地执行步骤S2132-S2135;
步骤S2132:使用符号函数初始化二值矩阵,通过求解参数矩阵对应向量的范数,并用参数矩阵对应向量的范数除以参数矩阵对应向量的长度,初始化浮点系数;
步骤S2133:重复执行M次步骤S2134-S2135,其中,M的数值可以根据深度神经网络的精度进行设置,在此不做限定;
步骤S2135:令Z=Λii·X,q=Λii·XSi,令j从0到N,执行N次步骤S21351,其中,N的数值可以根据深度神经网络的精度进行设置,在此不做限定;
步骤S214:用二值矩阵B替换第l层高位宽参数矩阵W;
步骤S3:将二值矩阵替换原始深度神经网络各层的参数矩阵,并在原始深度神经网络中构建尺度因子层,基于浮点系数初始化尺度因子层的参数,得到新的深度神经网络;
对得到的二值深度神经网络,进行进一步微调训练,对于得到的二值深度神经网络,在其每一层均通过一个参数矩阵W代理二值矩阵B,即,在深度神经网络训练过程中,使用参数矩阵表示二值矩阵积累的梯度更新,参数矩阵W用二值矩阵B进行初始化。具体地,步骤S3包括以下步骤:
步骤S31:给定输入图片,二值深度神经网络进行前馈运算,在每一层前馈时,参数矩阵W直接根据符号进行二值化,将二值化结果赋值给二值矩阵B,然后和输入进行卷积或者矩阵运算,得到分类损失;
步骤S32:得到分类损失之后,网络进行反向传播,在每一层反向传播时,根据上层传播的梯度和二值矩阵B计算下层的梯度,根据输入和上层传播的梯度计算分类损失对于二值矩阵B的梯度G;
步骤S33:将步骤S32中得到的分类损失对于二值矩阵B的梯度G累加到参数矩阵W;将浮点系数Λ融入到第l层全连接层或者卷积层之后的BatchNorm层,具体为将BatchNorm层的矩阵和方差都除以对应通道的浮点系数Λ,其中,BatchNorm层即为构建的尺度因子层;
步骤S34:重复迭代步骤S31-S33直至收敛。
本发明提供的方法可以实现对深度神经网络的加速与压缩,通过对本发明提供的方法应用前后的时间和空间复杂度进行了分析,具体分析如下:
假设一次乘法操作的时间复杂度为Tm,一次加法操作的时间复杂度为Ta,一般情况下Tm>Ta,一般情况下Tm>Ta。原始深度神经网络中的卷积层或全连接层参数的空间复杂度为4×S×T字节,时间复杂度为S×T×H×W×(Tm+Ta),二值化之后的参数空间复杂度为:字节,时间复杂度为S×T×H×W×Ta。这里的H和W分别是该层的输出特征图的高和宽。可以看出经过参数二值化之后可以显著地减低神经网络权值的存储开销和神经网络时间复杂度,进而提高了运行速度。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本发明的另一方面提供一种深度神经网络的加速与压缩装置,装置包括:
获取模块,获取装置被配置为获取原始深度神经网络中各层的输入数据与参数矩阵;
计算模块,计算模块被配置为基于输入数据与参数矩阵,计算原始深度神经网络中各层的二值矩阵与浮点系数;
替换模块,替换模块被配置为将二值矩阵替换原始深度神经网络各层的参数矩阵,并在原始深度神经网络中构建尺度因子层,基于浮点系数初始化尺度因子层的参数,得到新的深度神经网络。
在本发明实施例中,计算模块具体包括:
第一设定模块,设定模块被配置为随机初始化二值矩阵与浮点系数,设定原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立运行下述模块;
初始化模块,初始化模块被配置为使用符号函数初始化二值矩阵,通过求解参数矩阵对应向量的范数,并用参数矩阵对应向量的范数除以参数矩阵对应向量的长度,初始化浮点系数;
第一更新模块,更新模块被配置为对初始化后的二值矩阵和浮点系数进行迭代更新。
在本发明实施例中,第一更新模块还包括:
第二设定模块,第二设定模块被配置为设定迭代次数为M,重复运行下述模块;
第三更新模块,第三更新模块被配置为设定Z=Λii·X,q=Λii·XSi,b为二值矩阵对应向量Bi的第j个元素,为二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,为矩阵Z去掉第j行之后的矩阵;
在本发明实施例中,替换模块还包括:
代理模块,代理模块被配置为基于二值矩阵对参数矩阵进行初始化;
赋值模块,赋值模块被配置为在原始深度神经网络的前馈过程中,对参数矩阵进行符号二值化并赋值给二值矩阵,对赋值后的二值矩阵进行原始深度神经网络的前馈运算和后馈运算,得到原始深度神经网络各层的梯度G;
第四更新模块,第四更新模块被配置为使用梯度G对参数矩阵进行更新。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的深度神经网络的加速与压缩装置的具体工作过程以及相关说明,可以参考前述深度神经网络的加速与压缩方法实施例中的对应过程,且与上述深度神经网络的加速与压缩方法具有相同的有益效果,在此不再赘述。
本发明还提供一种存储装置,其中存储有多条程序,程序适于由处理器加载并执行如上述的深度神经网络的加速与压缩方法。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的存储装置的具体工作过程以及相关说明,可以参考前述深度神经网络的加速与压缩方法实施例中的对应过程,且与上述深度神经网络的加速与压缩方法具有相同的有益效果,在此不再赘述。
一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;程序适于由处理器加载并执行如上述的深度神经网络的加速与压缩方法。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的处理装置的具体工作过程以及相关说明,可以参考前述深度神经网络的加速与压缩方法实施例中的对应过程,且与上述深度神经网络的加速与压缩方法具有相同的有益效果,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (6)
1.一种深度神经网络的加速与压缩方法,其特征在于,所述方法包括:
步骤S1:从数据库中采样图片并将图片输入到原始深度神经网络后,获取所述原始深度神经网络中各层的输入数据与参数矩阵;
步骤S2:基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
步骤S3:将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络;
所述步骤S2具体包括:
步骤S21:随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立执行下述步骤;
步骤S22:使用符号函数初始化所述二值矩阵;通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
步骤S23:对初始化后的二值矩阵和浮点系数进行迭代更新;所述步骤S23具体包括:
步骤S231:设定迭代次数为M,重复执行M次如下步骤S232-步骤S233;
2.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:
步骤S31:基于所述二值矩阵对所述参数矩阵进行初始化;
步骤S32:在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
步骤S33:使用梯度G对所述参数矩阵进行更新。
3.一种深度神经网络的加速与压缩装置,其特征在于,所述装置包括:
获取模块,所述获取模块被配置为从数据库中采样图片并将图片输入到原始深度神经网络后,获取所述原始深度神经网络中各层的输入数据与参数矩阵;
计算模块,所述计算模块被配置为基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
替换模块,所述替换模块被配置为将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络;
所述计算模块具体包括:
第一设定模块,所述设定模块被配置为随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立运行下述模块;
初始化模块,所述初始化模块被配置为使用符号函数初始化所述二值矩阵,通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
第一更新模块,所述更新模块被配置为对初始化后的二值矩阵和浮点系数进行迭代更新;所述第一更新模块还包括:
第二设定模块,所述第二设定模块被配置为设定迭代次数为M,重复运行M次下述第二更新模块和第三更新模块;
4.根据权利要求3所述的装置,其特征在于,所述替换模块还包括:
代理模块,所述代理模块被配置为基于所述二值矩阵对所述参数矩阵进行初始化;
赋值模块,所述赋值模块被配置为在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
第四更新模块,所述第四更新模块被配置为使用梯度G对所述参数矩阵进行更新。
5.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行如权利要求1或2所述的深度神经网络的加速与压缩方法。
6.一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;其特征在于,所述程序适于由处理器加载并执行如权利要求1或2所述的深度神经网络的加速与压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810088723.XA CN108334945B (zh) | 2018-01-30 | 2018-01-30 | 深度神经网络的加速与压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810088723.XA CN108334945B (zh) | 2018-01-30 | 2018-01-30 | 深度神经网络的加速与压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334945A CN108334945A (zh) | 2018-07-27 |
CN108334945B true CN108334945B (zh) | 2020-12-25 |
Family
ID=62926133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810088723.XA Active CN108334945B (zh) | 2018-01-30 | 2018-01-30 | 深度神经网络的加速与压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334945B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020041934A1 (zh) * | 2018-08-27 | 2020-03-05 | 华为技术有限公司 | 一种数据处理设备以及一种数据处理方法 |
CN109212960B (zh) * | 2018-08-30 | 2020-08-14 | 周军 | 基于权值敏感度的二值神经网络硬件压缩方法 |
WO2020061884A1 (en) * | 2018-09-27 | 2020-04-02 | Intel Corporation | Composite binary decomposition network |
CN110032374B (zh) * | 2019-03-21 | 2023-04-07 | 深兰科技(上海)有限公司 | 一种参数提取方法、装置、设备及介质 |
CN110659725B (zh) * | 2019-09-20 | 2023-03-31 | 字节跳动有限公司 | 神经网络模型的压缩与加速方法、数据处理方法及装置 |
CN110705696B (zh) * | 2019-10-11 | 2022-06-28 | 阿波罗智能技术(北京)有限公司 | 神经网络的量化与定点化融合方法及装置 |
CN111291317B (zh) * | 2020-02-26 | 2023-03-24 | 上海海事大学 | 一种近似矩阵的卷积神经网络二值化贪心递归方法 |
CN111831354B (zh) * | 2020-07-09 | 2023-05-16 | 北京灵汐科技有限公司 | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 |
CN111783961A (zh) * | 2020-07-10 | 2020-10-16 | 中国科学院自动化研究所 | 基于激活定点拟合的卷积神经网络训练后量化方法及系统 |
US20230106213A1 (en) * | 2021-10-05 | 2023-04-06 | Samsung Electronics Co., Ltd. | Machine learning model compression using weighted low-rank factorization |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
-
2018
- 2018-01-30 CN CN201810088723.XA patent/CN108334945B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529670A (zh) * | 2016-10-27 | 2017-03-22 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
Non-Patent Citations (2)
Title |
---|
Scalable and Sustainable Deep Learning;Ryan Spring等;《KDD 2017 Research Paper》;20170817;全文 * |
XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks;Mohammad Rastegari等;《arXiv》;20160831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108334945A (zh) | 2018-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334945B (zh) | 深度神经网络的加速与压缩方法及装置 | |
CN107977704B (zh) | 权重数据存储方法和基于该方法的神经网络处理器 | |
CN110288030B (zh) | 基于轻量化网络模型的图像识别方法、装置及设备 | |
US10552737B2 (en) | Artificial neural network class-based pruning | |
CN108846445B (zh) | 一种图像处理方法 | |
WO2022006919A1 (zh) | 基于激活定点拟合的卷积神经网络训练后量化方法及系统 | |
Wang et al. | IK-SVD: dictionary learning for spatial big data via incremental atom update | |
CN113011581B (zh) | 神经网络模型压缩方法、装置、电子设备及可读存储介质 | |
CN111105017B (zh) | 神经网络量化方法、装置及电子设备 | |
CN111882040A (zh) | 基于通道数量搜索的卷积神经网络压缩方法 | |
US20220036167A1 (en) | Sorting method, operation method and operation apparatus for convolutional neural network | |
WO2021042857A1 (zh) | 图像分割模型的处理方法和处理装置 | |
CN108509422B (zh) | 一种词向量的增量学习方法、装置和电子设备 | |
CN110929637A (zh) | 一种图像识别方法、装置、电子设备及存储介质 | |
CN109146061A (zh) | 神经网络模型的处理方法和装置 | |
CN111160191A (zh) | 一种视频关键帧提取方法、装置及存储介质 | |
CN109523016B (zh) | 面向嵌入式系统的多值量化深度神经网络压缩方法及系统 | |
CN113595993A (zh) | 边缘计算下模型结构优化的车载感知设备联合学习方法 | |
Idelbayev et al. | More general and effective model compression via an additive combination of compressions | |
CN108805844B (zh) | 一种基于先验滤波的轻量化回归网络构建方法 | |
CN111382837B (zh) | 一种基于深度乘积量化的对抗样本生成方法 | |
CN115564043B (zh) | 一种图像分类模型剪枝方法、装置、电子设备及存储介质 | |
CN115021759B (zh) | 一种基于二值最小二乘法的二值稀疏信号恢复方法及系统 | |
CN114372539B (zh) | 基于机器学习框架的分类方法及相关设备 | |
WO2020177863A1 (en) | Training of algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |