神经网络模型压缩方法以及装置制造方法及图纸

技术编号:15447686 阅读:110 留言:0更新日期:2017-05-29 21:58
本发明专利技术公开了一种神经网络模型压缩方法以及装置。其中方法包括:针对神经网络模型中的每一个神经元层,确定每个神经元层的模型参数集合,其中,模型参数集合包含多个模型参数;对多个模型参数进行第一变换以生成多个中间参数;根据预设的量化步长对多个中间参数进行量化,得到多个量化参数;根据预设的量化位数,从多个量化参数中选取多个采样量化点;根据多个量化参数的值和多个采样量化点,生成多个模型参数的量化值;根据量化值对多个模型参数进行压缩存储。该方法可以更好地保持模型效果,大大减少了神经网络模型的大小,减少了计算资源,特别是减少了内存资源的占用。

Neural network model compression method and apparatus

The invention discloses a neural network model compression method and device. The method comprises the following steps: the neural network model in each neuron layer, to determine the model parameters of each neuron layer set, which contains more than one set of model parameters, model parameters; the first transformation of multiple model parameters to generate a plurality of intermediate parameters; according to the preset quantization step to quantify multiple intermediate parameters and get a number of quantitative parameters; according to the number of quantization bits preset, select a number of sampling points from a plurality of quantization parameters; according to a plurality of quantization parameter values and a plurality of sampling points, generating a plurality of quantization values of model parameters; according to the quantization value of multiple model parameters is compressed and stored. This method can better maintain the model effect, greatly reduce the size of the neural network model, reduce the computational resources, especially reduce the memory resource occupation.

【技术实现步骤摘要】
神经网络模型压缩方法以及装置
本专利技术涉及计算机
,尤其涉及一种神经网络模型压缩方法以及装置。
技术介绍
目前,深度神经网络随着训练数据的增加,为了更好学习训练数据的特征以提升效果,相应用于表示模型的参数迅速增长,于是计算资源的消耗也迅速增长,而这样会制约了深度神经网络的应用场景,如手机等计算资源有限的设备。相关技术中,通常是通过对神经网络模型进行量化压缩的方式,来减少模型的大小。目前,神经网络模型压缩方法通常有以下两种:1)基于半精度的压缩方法,其原理是将神经网络模型中利用32bit(位)表示的浮点数,压缩到用16bit表示;2)基于随机采样的量化方法,即通过在神经网络模型中采样寻找量化点,再通过寻找到的量化点进行量化压缩;3)基于线性的量化方法,即对神经网络模型的参数的值域进行平均分割,来寻找量化点,再通过量化点进行量化压缩。但是,目前存在的问题是:上述基于半精度的压缩方法仅是对浮点数压缩到16bit,使得压缩的大小有限;上述基于随机采样的量化方法,由于采样带有随机性,使得随机采样的采样点会落波峰附近,而重要的、数值大的元素采样可能不足;上述基于线性的量化方法中,线性量化将大权值和小权值平均对待,没有在数据分布密集的地方更多地采样,导致模型数据损失较大,压缩效果差。
技术实现思路
本专利技术的目的旨在至少在一定程度上解决上述的技术问题之一。为此,本专利技术的第一个目的在于提出一种神经网络模型压缩方法。该方法可以更好地保持模型效果,大大减少了神经网络模型的大小,减少了计算资源,特别是减少了内存资源的占用。本专利技术的第二个目的在于提出一种神经网络模型压缩装置。本专利技术的第三个目的在于提出一种非临时性计算机可读存储介质。本专利技术的第四个目的在于提出一种计算机程序产品。为达到上述目的,本专利技术第一方面实施例提出的神经网络模型压缩方法,包括:针对神经网络模型中的每一个神经元层,确定所述每个神经元层的模型参数集合,其中,所述模型参数集合包含多个模型参数;对所述多个模型参数进行第一变换以生成多个中间参数;根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数;根据预设的量化位数,从所述多个量化参数中选取多个采样量化点;根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值;根据所述量化值对所述多个模型参数进行压缩存储。本专利技术实施例的神经网络模型压缩方法,针对神经网络模型中的每一个神经元层,确定每个神经元层的模型参数集合,其中,模型参数集合包含多个模型参数,之后,对多个模型参数进行第一变换以生成多个中间参数,并根据预设的量化步长对多个中间参数进行量化,得到多个量化参数,然后,根据预设的量化位数,从多个量化参数中选取多个采样量化点,之后,根据多个量化参数的值和多个采样量化点,生成多个模型参数的量化值,最后,根据量化值对多个模型参数进行压缩存储。即根据需要压缩的数据调节量化步长,并根据预设的量化位数,从排列在多个量化参数的靠前位置开始采取采样量化点,可以更加充分的对压缩数据进行采样,更好地保留重要的权值信息,更好地保持模型效果,大大减少了神经网络模型的大小,减少了计算资源,特别是减少了内存资源的占用。为达到上述目的,本专利技术第二方面实施例提出的神经网络模型压缩装置,包括:确定模块,用于针对神经网络模型中的每一个神经元层,确定所述每个神经元层的模型参数集合,其中,所述模型参数集合包含多个模型参数;第一变换模块,用于对所述多个模型参数进行第一变换以生成多个中间参数;量化模块,用于根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数;采样模块,用于根据预设的量化位数,从所述多个量化参数中选取多个采样量化点;生成模块,用于根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值;压缩模块,用于根据所述量化值对所述多个模型参数进行压缩存储。本专利技术实施例的神经网络模型压缩装置,可通过确定模块针对神经网络模型中的每一个神经元层,确定每个神经元层的模型参数集合,其中,模型参数集合包含多个模型参数,第一变换模块对多个模型参数进行第一变换以生成多个中间参数,量化模块根据预设的量化步长对多个中间参数进行量化,得到多个量化参数,采样模块根据预设的量化位数,从多个量化参数中选取多个采样量化点,生成模块根据多个量化参数的值和多个采样量化点,生成多个模型参数的量化值,压缩模块根据量化值对多个模型参数进行压缩存储。即根据需要压缩的数据调节量化步长,并根据预设的量化位数,从排列在多个量化参数的靠前位置开始采取采样量化点,可以更加充分的对压缩数据进行采样,更好地保留重要的权值信息,更好地保持模型效果,大大减少了神经网络模型的大小,减少了计算资源,特别是减少了内存资源的占用。为达到上述目的,本专利技术第三方面实施例提出的非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器被执行时,使得电子设备能够执行一种神经网络模型压缩方法,所述方法包括:针对神经网络模型中的每一个神经元层,确定所述每个神经元层的模型参数集合,其中,所述模型参数集合包含多个模型参数;对所述多个模型参数进行第一变换以生成多个中间参数;根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数;根据预设的量化位数,从所述多个量化参数中选取多个采样量化点;根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值;根据所述量化值对所述多个模型参数进行压缩存储。为达到上述目的,本专利技术第四方面实施例提出的计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行一种神经网络模型压缩方法,所述方法包括:针对神经网络模型中的每一个神经元层,确定所述每个神经元层的模型参数集合,其中,所述模型参数集合包含多个模型参数;对所述多个模型参数进行第一变换以生成多个中间参数;根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数;根据预设的量化位数,从所述多个量化参数中选取多个采样量化点;根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值;根据所述量化值对所述多个模型参数进行压缩存储。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是根据本专利技术一个实施例的神经网络模型压缩方法的流程图;图2是根据本专利技术一个实施例的神经网络模型压缩方法的流程图;图3是根据本专利技术一个实施例的神经网络模型压缩装置的结构示意图;图4是根据本专利技术一个具体实施例的神经网络模型压缩装置的结构示意图;图5是根据本专利技术另一个具体实施例的神经网络模型压缩装置的结构示意图;图6是根据本专利技术又一个具体实施例的神经网络模型压缩装置的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。下面参考附图描述本专利技术实施例的神经网络模型压缩方法以及装置。图1是根据本专利技术一个实施例的神经网络模型压缩方法的本文档来自技高网...
神经网络模型压缩方法以及装置

【技术保护点】
一种神经网络模型压缩方法,其特征在于,包括以下步骤:针对神经网络模型中的每一个神经元层,确定所述每个神经元层的模型参数集合,其中,所述模型参数集合包含多个模型参数;对所述多个模型参数进行第一变换以生成多个中间参数;根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数;根据预设的量化位数,从所述多个量化参数中选取多个采样量化点;根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值;根据所述量化值对所述多个模型参数进行压缩存储。

【技术特征摘要】
1.一种神经网络模型压缩方法,其特征在于,包括以下步骤:针对神经网络模型中的每一个神经元层,确定所述每个神经元层的模型参数集合,其中,所述模型参数集合包含多个模型参数;对所述多个模型参数进行第一变换以生成多个中间参数;根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数;根据预设的量化位数,从所述多个量化参数中选取多个采样量化点;根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值;根据所述量化值对所述多个模型参数进行压缩存储。2.如权利要求1所述的方法,其特征在于,所述根据预设的量化位数,从所述多个量化参数中选取多个采样量化点,包括:根据所述多个量化参数的值,对所述多个量化参数进行降序排列;根据所述预设的量化位数确定目标个数;从所述降序排列后的多个量化参数中,选取排列在前所述目标个数的量化参数;将所述排列在前所述目标个数的量化参数作为所述多个采样量化点。3.如权利要求1所述的方法,其特征在于,所述根据预设的量化步长对所述多个中间参数进行量化,得到多个量化参数,包括:针对每个中间参数,将所述每个中间参数量化至间隔为所述预设的量化步长的数轴上并取整,得到所述每个中间参数对应的量化参数。4.如权利要求2所述的方法,其特征在于,所述根据所述多个量化参数的值和所述多个采样量化点,生成所述多个模型参数的量化值,包括:针对第i个量化参数,分别计算所述第i个量化参数的值与每个采样量化点之间的差值的平方值;从多个所述平方值中选取最小值,并确定所述多个所述平方值中最小值所对应的采样量化点的标识值;当所述第i模型参数的值为正数时,将所述标识值作为所述第i模型参数的量化值;当所述第i模型参数的值为负数时,计算所述标识值与所述目标个数之间的和值,并将所述和值作为所述第i模型参数的量化值。5.如权利要求1所述的方法,其特征在于,还包括:对所述多个采样量化点的值进行第二变换以生成量化字典,并存储所述量化字典;当检测需要使用所述多个模型参数时,根据所述多个模型参数的量化值和所述存储的量化字典获取所述多个模型参数的原始值。6.如权利要求5所述的方法,其特征在于,其中,所述第一变换为对数LOG变换;所述第二变换为指数变换。7.如权利要求6所述的方法,其特征在于,所述对所述多个采样量化点的值进行第二变换以生成量化字典,包括:根据预设的变换模型对所述多个采样量化点的值进行第二变换,并将经过所述第二变换后的多个采样量化点的值进行组合以形成所述量化字典。8.一种神经网...

【专利技术属性】
技术研发人员:朱志凡冯仕堃周坤胜石磊何径舟
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1