CN108334945B - 深度神经网络的加速与压缩方法及装置 - Google Patents

深度神经网络的加速与压缩方法及装置 Download PDF

Info

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
Application number
CN201810088723.XA
Other languages
English (en)
Other versions
CN108334945A (zh
Inventor
程健
胡庆浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201810088723.XA priority Critical patent/CN108334945B/zh
Publication of CN108334945A publication Critical patent/CN108334945A/zh
Application granted granted Critical
Publication of CN108334945B publication Critical patent/CN108334945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning 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,重复执行如下步骤;
步骤S232:根据公式
Figure BDA0001563110980000021
以及S=XTW更新所述浮点系数,其中,X表示所述输入数据,W表示所述参数矩阵,B表示所述二值矩阵,
Figure BDA0001563110980000022
表示XTBi的范数,Λii表示所述浮点系数;
步骤S233:设定Z=Λii·X,q=Λii·XSi,b为所述二值矩阵对应向量Bi的第j个元素,
Figure BDA0001563110980000023
为所述二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,
Figure BDA0001563110980000031
为矩阵Z去掉第j行之后的矩阵;
令j从0到N,根据公式
Figure BDA0001563110980000032
更新Bi的第j个元素,其中,N表示向量Bi的长度。
在上述方法的优选技术方案中,所述步骤S3还包括:
步骤S31:基于所述二值矩阵对所述参数矩阵进行初始化;
步骤S32:在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
步骤S33:使用梯度G对所述参数矩阵进行更新。
本发明的另一方面还提供一种深度神经网络的加速与压缩装置,所述装置包括:
获取模块,所述获取装置被配置为获取原始深度神经网络中各层的输入数据与参数矩阵;
计算模块,所述计算模块被配置为基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
替换模块,所述替换模块被配置为将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络。
在上述方法的优选技术方案中,所述计算模块具体包括:
第一设定模块,所述设定模块被配置为随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立运行下述模块;
初始化模块,所述初始化模块被配置为使用符号函数初始化所述二值矩阵,通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
第一更新模块,所述更新模块被配置为对初始化后的二值矩阵和浮点系数进行迭代更新。
在上述方法的优选技术方案中,所述第一更新模块还包括:
第二设定模块,所述第二设定模块被配置为设定迭代次数为M,重复运行下述模块;
第二更新模块:所述第二更新模块被配置为根据公式
Figure BDA0001563110980000041
以及S=XTW更新所述浮点系数,其中,X表示所述输入数据,W表示所述参数矩阵,B表示所述二值矩阵,
Figure BDA0001563110980000042
表示XTBi的范数,Λii表示所述浮点系数;
第三更新模块,所述第三更新模块被配置为设定Z=Λii·X,q=Λii·XSi,b为所述二值矩阵对应向量Bi的第j个元素,
Figure BDA0001563110980000043
为所述二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,
Figure BDA0001563110980000044
为矩阵Z去掉第j行之后的矩阵;
令j从0到N,根据公式
Figure BDA0001563110980000045
更新Bi的第j个元素,其中,N表示向量Bi的长度。
在上述方法的优选技术方案中,所述替换模块还包括:
代理模块,所述代理模块被配置为基于所述二值矩阵对所述参数矩阵进行初始化;
赋值模块,所述赋值模块被配置为在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
第四更新模块,所述第四更新模块被配置为使用梯度G对所述参数矩阵进行更新。
本发明的第三方面提供一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行如上述任一项所述的深度神经网络的加速与压缩方法。
本发明的第四方面提供一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;所述程序适于由处理器加载并执行如上述任一项所述的深度神经网络的加速与压缩方法。
与最接近的现有技术相比,本发明提供一种深度神经网络的加速与压缩方法,包括获取原始深度神经网络中各层的输入数据与参数矩阵;基于输入数据与参数矩阵,计算原始深度神经网络中各层的二值矩阵与浮点系数;将二值矩阵替换原始深度神经网络各层的参数矩阵,并在原始深度神经网络中构建尺度因子层,基于浮点系数初始化尺度因子层的参数,得到新的深度神经网络。
上述技术方案至少具有如下有益效果:
本发明的技术方案可以针对多种类型的神经网络框架,适用范围广;通过将神经网络的网络参数二值化,并且在其二值编码的基础上结合浮点系数,增强了二值编码的表示能力,将网络参数二值化后可以实现神经网络的高位宽压缩,将神经网络的乘法运算简化为加法运算,从而实现对大型深度神经网络的加速与压缩,用二值编码替换原始深度神经网络各层的对应系数,能够占用更少的内存,并且二值编码能够用于加法运算,提升深度神经网络的计算能力,在实现对大型深度神经网络的加速与压缩的同时,保证深度神经网络的精度。
附图说明
图1为本发明一种实施例深度神经网络的加速与压缩方法的流程示意图;
图2为本发明一种实施例深度神经网络图像分类的过程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
参阅附图1,图1示例性的给出了本实施例中深度神经网络的加速与压缩方法的流程示意图。如图1所示,本实施例中深度神经网络的加速与压缩方法包括下述步骤:
步骤S1:获取原始深度神经网络中各层的输入数据与参数矩阵;
本发明将神经网络参数的二值化问题转化为保持内积哈希编码的求解问题,在二值编码上乘以尺度因子Λ来增强二值编码的表示能力,通过交替迭代优化求解尺度因子Λ和二值编码B,其中,尺度因子为浮点系数。具体地,对于深度神经网络中的某一层,使用X表示该层的输入,W表示该层预训练之后的高位宽(大于4bit,比如32位浮点)的参数矩阵,令S=XTW,则参数二值化的优化目标函数为:
Figure BDA0001563110980000061
其中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的数值可以根据深度神经网络的精度进行设置,在此不做限定;
步骤S2134:根据公式
Figure BDA0001563110980000071
更新Λii,其中,X表示输入数据,W表示参数矩阵,B表示二值矩阵,
Figure BDA0001563110980000072
表示XTBi的范数,Λii表示浮点系数;
步骤S2135:令Z=Λii·X,q=Λii·XSi,令j从0到N,执行N次步骤S21351,其中,N的数值可以根据深度神经网络的精度进行设置,在此不做限定;
步骤S21351:令b为向量Bi的第j个元素,
Figure BDA0001563110980000073
为向量Bi去掉b的向量,qj为向量q的第j个元素,令v表示矩阵Z的第j行,
Figure BDA0001563110980000074
为矩阵Z去掉第j行之后的矩阵。使用
Figure BDA0001563110980000075
更新Bi的第j个元素b;
步骤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),二值化之后的参数空间复杂度为:
Figure BDA0001563110980000081
字节,时间复杂度为S×T×H×W×Ta。这里的H和W分别是该层的输出特征图的高和宽。可以看出经过参数二值化之后可以显著地减低神经网络权值的存储开销和神经网络时间复杂度,进而提高了运行速度。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本发明的另一方面提供一种深度神经网络的加速与压缩装置,装置包括:
获取模块,获取装置被配置为获取原始深度神经网络中各层的输入数据与参数矩阵;
计算模块,计算模块被配置为基于输入数据与参数矩阵,计算原始深度神经网络中各层的二值矩阵与浮点系数;
替换模块,替换模块被配置为将二值矩阵替换原始深度神经网络各层的参数矩阵,并在原始深度神经网络中构建尺度因子层,基于浮点系数初始化尺度因子层的参数,得到新的深度神经网络。
在本发明实施例中,计算模块具体包括:
第一设定模块,设定模块被配置为随机初始化二值矩阵与浮点系数,设定原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立运行下述模块;
初始化模块,初始化模块被配置为使用符号函数初始化二值矩阵,通过求解参数矩阵对应向量的范数,并用参数矩阵对应向量的范数除以参数矩阵对应向量的长度,初始化浮点系数;
第一更新模块,更新模块被配置为对初始化后的二值矩阵和浮点系数进行迭代更新。
在本发明实施例中,第一更新模块还包括:
第二设定模块,第二设定模块被配置为设定迭代次数为M,重复运行下述模块;
第二更新模块:第二更新模块被配置为根据公式
Figure BDA0001563110980000091
以及S=XTW更新浮点系数,其中,X表示输入数据,W表示参数矩阵,B表示二值矩阵,
Figure BDA0001563110980000092
表示XTBi的范数,Λii表示浮点系数;
第三更新模块,第三更新模块被配置为设定Z=Λii·X,q=Λii·XSi,b为二值矩阵对应向量Bi的第j个元素,
Figure BDA0001563110980000093
为二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,
Figure BDA0001563110980000094
为矩阵Z去掉第j行之后的矩阵;
令j从0到N,根据公式
Figure BDA0001563110980000095
更新Bi的第j个元素,其中,N表示向量Bi的长度。
在本发明实施例中,替换模块还包括:
代理模块,代理模块被配置为基于二值矩阵对参数矩阵进行初始化;
赋值模块,赋值模块被配置为在原始深度神经网络的前馈过程中,对参数矩阵进行符号二值化并赋值给二值矩阵,对赋值后的二值矩阵进行原始深度神经网络的前馈运算和后馈运算,得到原始深度神经网络各层的梯度G;
第四更新模块,第四更新模块被配置为使用梯度G对参数矩阵进行更新。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的深度神经网络的加速与压缩装置的具体工作过程以及相关说明,可以参考前述深度神经网络的加速与压缩方法实施例中的对应过程,且与上述深度神经网络的加速与压缩方法具有相同的有益效果,在此不再赘述。
本发明还提供一种存储装置,其中存储有多条程序,程序适于由处理器加载并执行如上述的深度神经网络的加速与压缩方法。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的存储装置的具体工作过程以及相关说明,可以参考前述深度神经网络的加速与压缩方法实施例中的对应过程,且与上述深度神经网络的加速与压缩方法具有相同的有益效果,在此不再赘述。
一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;程序适于由处理器加载并执行如上述的深度神经网络的加速与压缩方法。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的处理装置的具体工作过程以及相关说明,可以参考前述深度神经网络的加速与压缩方法实施例中的对应过程,且与上述深度神经网络的加速与压缩方法具有相同的有益效果,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

Claims (6)

1.一种深度神经网络的加速与压缩方法,其特征在于,所述方法包括:
步骤S1:从数据库中采样图片并将图片输入到原始深度神经网络后,获取所述原始深度神经网络中各层的输入数据与参数矩阵;
步骤S2:基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
步骤S3:将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络;
所述步骤S2具体包括:
步骤S21:随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立执行下述步骤;
步骤S22:使用符号函数初始化所述二值矩阵;通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
步骤S23:对初始化后的二值矩阵和浮点系数进行迭代更新;所述步骤S23具体包括:
步骤S231:设定迭代次数为M,重复执行M次如下步骤S232-步骤S233;
步骤S232:根据公式
Figure FDA0002758490120000011
以及S=XTW更新所述浮点系数,其中,X表示所述输入数据,W表示所述参数矩阵,B表示所述二值矩阵,
Figure FDA0002758490120000012
表示XTBi的范数,Λii表示所述浮点系数;
步骤S233:设定Z=Λii·X,q=Λii·XSi,令j从0到N,执行N次以下步骤:令b为所述二值矩阵对应向量Bi的第j个元素,
Figure FDA0002758490120000013
为所述二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,
Figure FDA0002758490120000014
为矩阵Z去掉第j行之后的矩阵;根据公式
Figure FDA0002758490120000015
更新Bi的第j个元素,其中,N表示向量Bi的长度。
2.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:
步骤S31:基于所述二值矩阵对所述参数矩阵进行初始化;
步骤S32:在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
步骤S33:使用梯度G对所述参数矩阵进行更新。
3.一种深度神经网络的加速与压缩装置,其特征在于,所述装置包括:
获取模块,所述获取模块被配置为从数据库中采样图片并将图片输入到原始深度神经网络后,获取所述原始深度神经网络中各层的输入数据与参数矩阵;
计算模块,所述计算模块被配置为基于所述输入数据与参数矩阵,计算所述原始深度神经网络中各层的二值矩阵与浮点系数;
替换模块,所述替换模块被配置为将所述二值矩阵替换所述原始深度神经网络各层的参数矩阵,并在所述原始深度神经网络中构建尺度因子层,基于所述浮点系数初始化所述尺度因子层的参数,得到新的深度神经网络;
所述计算模块具体包括:
第一设定模块,所述设定模块被配置为随机初始化所述二值矩阵与浮点系数,设定所述原始深度神经网络的卷积核个数为T,令i从0到T-1并行独立运行下述模块;
初始化模块,所述初始化模块被配置为使用符号函数初始化所述二值矩阵,通过求解所述参数矩阵对应向量的范数,并用所述参数矩阵对应向量的范数除以所述参数矩阵对应向量的长度,初始化所述浮点系数;
第一更新模块,所述更新模块被配置为对初始化后的二值矩阵和浮点系数进行迭代更新;所述第一更新模块还包括:
第二设定模块,所述第二设定模块被配置为设定迭代次数为M,重复运行M次下述第二更新模块和第三更新模块;
第二更新模块:所述第二更新模块被配置为根据公式
Figure FDA0002758490120000021
以及S=XTW更新所述浮点系数,其中,X表示所述输入数据,W表示所述参数矩阵,B表示所述二值矩阵,
Figure FDA0002758490120000031
表示XTBi的范数,Λii表示所述浮点系数;
第三更新模块,所述第三更新模块被配置为设定Z=Λii·X,q=Λii·XSi,令j从0到N,执行N次以下操作:令b为所述二值矩阵对应向量Bi的第j个元素,
Figure FDA0002758490120000032
为所述二值矩阵对应向量Bi去掉b后的向量,qj为向量q的第j个元素,v表示矩阵Z的第j行,
Figure FDA0002758490120000033
为矩阵Z去掉第j行之后的矩阵;根据公式
Figure FDA0002758490120000034
更新Bi的第j个元素,其中,N表示向量Bi的长度。
4.根据权利要求3所述的装置,其特征在于,所述替换模块还包括:
代理模块,所述代理模块被配置为基于所述二值矩阵对所述参数矩阵进行初始化;
赋值模块,所述赋值模块被配置为在所述原始深度神经网络的前馈过程中,对所述参数矩阵进行符号二值化并赋值给所述二值矩阵,对赋值后的二值矩阵进行所述原始深度神经网络的前馈运算和后馈运算,得到所述原始深度神经网络各层的梯度G;
第四更新模块,所述第四更新模块被配置为使用梯度G对所述参数矩阵进行更新。
5.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行如权利要求1或2所述的深度神经网络的加速与压缩方法。
6.一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;其特征在于,所述程序适于由处理器加载并执行如权利要求1或2所述的深度神经网络的加速与压缩方法。
CN201810088723.XA 2018-01-30 2018-01-30 深度神经网络的加速与压缩方法及装置 Active CN108334945B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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