CN108734287A - 深度神经网络模型的压缩方法及装置、终端、存储介质 - Google Patents
深度神经网络模型的压缩方法及装置、终端、存储介质 Download PDFInfo
- Publication number
- CN108734287A CN108734287A CN201710267035.5A CN201710267035A CN108734287A CN 108734287 A CN108734287 A CN 108734287A CN 201710267035 A CN201710267035 A CN 201710267035A CN 108734287 A CN108734287 A CN 108734287A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- deep neural
- quantization
- 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.)
- Pending
Links
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/04—Architecture, e.g. interconnection topology
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
一种深度神经网络模型的压缩方法及装置、终端、存储介质。所述方法包括:获取已训练的深度神经网络模型;逐层对所述深度神经网络模型中的各层参数进行量化,对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求;其中,首次对所述已训练的深度神经网络模型中的第i层参数,进行如下量化处理:对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级;根据所确定的量化等级对第i层的量化范围内的参数进行量化。采用上述方案,可以在对深度神经网络模型压缩时,兼顾深度神经网络模型的精度及有效性。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种深度神经网络模型的压缩方法及装置、终端、存储介质。
背景技术
随着深度神经网络相关技术研究的迅速发展,相关领域内涌现了大批与深度神经网络相关的技术,如应用于视觉领域的卷积神经网络和应用于语音识别或自然语言处理领域的递归神经网络等,这些神经网络技术均极大地提高了相应领域的处理精度。
深度神经网络与浅层学习相比,深度神经网络的开发潜力巨大。通过深度神经网络模型的多层处理结构可以提取和分析样本的表征特征,由浅入深地逐层变换和计算样本特征并计算处理结果。通过对深度神经网络模型进行增宽增长处理,可以使深度神经网络模型获得相对更优的处理结果。
然而,深度神经网络模型的参数通常在百万、千万或上亿数量级,因此对计算和存储设备的要求较高。由于深度神经网络模型存储及计算时深度神经网络模型的参数传输等问题,限制了深度神经网络模型在移动设备上的应用。
目前,通常采用减少深度神经网络模型的参数、节点数目以及改变多样性类方法,达到压缩深度神经网络模型的目的。虽然,这样可以对神经网络模型进行一定的压缩,然而,压缩后的深度神经网络模型的精度及有效性较低。
发明内容
本发明解决的技术问题是在对深度神经网络模型压缩时如何兼顾深度神经网络模型的精度及有效性。
为解决上述技术问题,本发明实施例提供一种深度神经网络模型的压缩方法,包括:获取已训练的深度神经网络模型;逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;其中,首次对所述已训练的深度神经网络模型中的第i层参数,进行如下量化处理:对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级,i为大于1的自然数;根据所确定的量化等级对第i层的量化范围内的参数进行量化。
可选地,所述根据聚类分析结果确定对应的量化范围及量化等级,包括:根据聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围;根据聚类中心数目及对应的量化范围确定量化等级。
可选地,所述对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,包括:采用减法聚类对所述已训练的深度神经网络模型中的第i层参数进行聚类分析。
可选地,在根据所确定的量化等级对第i层的量化范围内的参数进行量化后,还包括:获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
可选地,所述获取第i层对应的补偿系数,包括:根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
可选地,所述根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数,包括:采用如下方式计算得到第i层的补偿系数:其中,αi为第i层的补偿系数,Wi为量化前的参数,Wi T为Wi的转置,Qi为量化后的参数,为Qi的转置。
可选地,所述深度神经网络模型的压缩方法还包括:采用验证集样本对量化后的深度神经网络模型进行测试;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
可选地,所述深度神经网络模型的压缩方法还包括:当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
可选地,所述深度神经网络模型的压缩方法还包括:在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
可选地,所述对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:在完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;当量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化,包括:获取可继续量化层参数;当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;采用调整后的量化等级对第j层参数进行量化;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
可选地,所述采用调整后的量化等级对第j层参数进行量化,包括:采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
可选地,所述采用验证集样本对量化后的深度神经网络模型进行测试,包括:采用如下方式对量化后的深度神经网络模型进行测试:其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
可选地,当量化后的深度神经网络模型满足预设的压缩体积需求之后,还包括:对量化后的深度神经网络模型进行重新训练。
本发明实施例还提供一种深度神经网络模型的压缩装置,包括:第一获取单元,适于获取已训练的深度神经网络模型;压缩单元,适于逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;以及对所述已训练的深度神经网络模型中的第i层参数,进行首次量化处理;所述压缩单元,包括:聚类分析子单元、量化等级确定子单元及量化子单元,其中:所述聚类分析子单元,适于对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,i为大于1的自然数;所述量化等级确定子单元,适于根据所述聚类分析子单元的聚类分析结果确定对应的量化范围及量化等级;所述量化子单元,适于根据所述量化等级确定子单元所确定的量化等级对第i层的量化范围内的参数进行量化。
可选地,所述量化等级确定子单元,适于根据所述聚类分析子单元的聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围;根据聚类中心数目及对应的量化范围确定量化等级。
可选地,所述聚类分析子单元,适于采用减法聚类对所述已训练的深度神经网络模型中的第i层参数进行聚类分析。
可选地,所述深度神经网络模型的压缩装置还包括:第二获取单元及补偿单元,其中:所述第二获取单元,适于获取第i层对应的补偿系数;所述补偿单元,适于根据所述第二获取单元获取到的第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
可选地,所述第二获取单元,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
可选地,所述第二获取单元,适于采用如下方式计算得到第i层的补偿系数:其中,αi为第i层的补偿系数,Wi为量化前的参数,Wi T为Wi的转置,Qi为量化后的参数,为Qi的转置。
可选地,所述压缩单元还包括:测试子单元及恢复子单元,其中:所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;所述恢复子单元,适于当所述测试子单元得到的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层参数恢复为量化前的参数;所述量化子单元,还适于当所述测试子单元得到的测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
可选地,所述压缩单元还包括:标记子单元,适于当所述测试子单元得到的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
可选地,所述深度神经网络模型的压缩装置还包括:停止量化单元,适于在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
可选地,所述压缩单元包括:检测子单元及重新量化子单元,其中:所述检测子单元,适于完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;所述重新量化子单元,适于当所述检测子单元检测到量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化;所述重新量化子单元包括:获取模块、量化等级调整模块及重新量化模块,其中:所述获取模块,适于获取可继续量化层参数;所述量化等级调整模块,适于当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;所述重新量化模块,适于采用调整后的量化等级对第j层参数进行量化;以及对所述深度神经网络中的其他可量化层进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求;所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;所述恢复子单元,适于当所述重新测试模块的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数。
可选地,所述重新量化模块,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
可选地,所述测试子单元,适于采用如下方式对量化后的深度神经网络模型进行测试:其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
可选地,所述深度神经网络模型的压缩装置还包括:训练单元,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一所述的深度神经网络模型的压缩方法的步骤。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一所述的深度神经网络模型的压缩方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在首次对深度神经网络模型进行量化时,根据深度神经网络模型中的第i层参数的聚类分析结果,确定第i层参数的量化范围及量化等级,并依照所确定的量化范围及量化等级对第i层参数进行量化。由于各层参数对应的量化等级是根据对应层参数的聚类分析结果所确定的,故可以避免人为定义量化等级时可能引入的精度损失,且可以兼顾到各层参数对深度神经网络模型的重要性。在确定各层的量化等级后,逐层对所述深度神经网络模型中的各层参数进行量化,无须减少深度神经网络模型中的各层参数以及节点的数量,且可以提高深度神经网络模型压缩的有效性及精度。
进一步地,在对深度神经网络模型的第i层参数量化后,获取第i层对应的补偿系数,通过对量化后的参数进行补偿,可以有效的减小量化过程中深度神经网络模型的精度损失。
进一步地,每完成一次量化之后,采用验证集样本对量化后的深度神经网络模型进行精度测试,当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层参数恢复为量化前的参数。可以全局性地考虑量化对深度神经网络模型的精度所产生的影响,使得量化后的深度神经网络模型可以保留原有的精度。
进一步地,当对第i层参数进行量化后,当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层。标记为不可量化层后,将不参与之后的量化处理过程,从而可以节约系统计算资源,且可以加快压缩过程。
进一步地,在完成一次迭代量化后,深度神经网络模型不满足预设的压缩体积需求,可以调整量化等级继续对深度神经网络模型进行量化,同时采用补偿系数对量化后的参数进行补偿,从而可以在进一步压缩深度神经网络模型的同时,减少量化所产生的精度损失。
进一步地,对量化后的深度神经网络模型进行重新训练,可以提高量化后的深度神经网络模型的性能。
附图说明
图1是本发明实施例中一种深度神经网络模型的压缩方法的流程图;
图2是本发明实施例中一种第i层参数首次量化处理方法的流程图;
图3是本发明实施例中另一种深度神经网络模型的压缩方法的流程图;
图4是本发明实施例中一种深度神经网络模型的压缩装置的结构示意图;
图5是本发明实施例中另一种深度神经网络模型的压缩装置的结构示意图。
具体实施方式
目前,深度神经网络模型的精简压缩方法主要分为两类:改变深度神经网络模型密度类方法及改变深度神经网络模型的参数的多样性类方法。
改变深度神经网络模型密度类方法,通过改变神经网络的稀疏程度达到压缩的目的。在一些算法中,通常给定一个比较小的阈值来删除深度神经网络模型中的小幅值参数,主观性较大,对不同结构的神经网络需要进行过多的参数调整才可能获得理想的精简效果。另一些算法针对输入节点与输出响应间的贡献关系,对输入节点进行筛选,此类算法只针对单隐藏层神经网络且没有对隐藏层参数进行足够的处理,不适合网络结构较深的深度神经网络。
上述方法仅针对单层内或部分网络层间的关系进行精简,没有对深度神经网络进行整体性地考虑,因此难以保证模型精简的有效性。此外,对于较大的深度神经网络或多个深度神经网络组成的模型,难以在有限的时间内获得期望的精简结果。
改变多样性类方法通过量化或编码模型的参数的方式,采用少量码字表示模型参数的方式,达到压缩深度神经网络模型的目的。目前,改变多样性类的方法在对深度神经网络模型中各层参数量化时使用一致的量化标准,然而,不同层的参数对深度神经网络模型的重要性不同。采用一致的量化标准对深度神经网络模型进行量化压缩,这会导致量化后的深度神经网络模型的有效性降低,所得到的处理结果不是最优的处理结果。
为解决上述问题,在本发明实施例中,在首次对深度神经网络模型进行量化时,根据深度神经网络模型中的第i层参数的聚类分析结果,确定第i层参数的量化范围及量化等级,并依照所确定的量化范围及量化等级对第i层参数进行量化。由于各层参数对应的量化等级是根据对应层参数的聚类分析结果所确定的,在确定各层的量化等级后,逐层对所述深度神经网络模型中的各层参数进行量化,无须减少深度神经网络模型中的各层参数以及节点的数量,且可以提高深度神经网络模型压缩的有效性及精度。
为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照图1,给出了本发明实施例中一种深度神经网络模型的压缩方法的流程图。下面结合具体步骤进行说明。
步骤11,获取已训练的深度神经网络模型。
在具体实施中,可以获取已训练的深度神经网络模型作为待压缩的深度神经网络模型。
步骤12,逐层对所述深度神经网络模型中的各层参数进行迭代量化。
在具体实施中,逐层对所述深度神经网络模型中的各层参数进行迭代量化,对所述深度神经网络模型中的所有层均进行一次量化作为一次迭代量化。
步骤13,对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
在具体实施中,将深度神经网络模型应用于移动设备上时,由于移动设备的存储及计算能力的限制,需要对深度神经网络模型进行压缩,以减小深度神经网络模型的体积,也即是减小深度神经网络模型所占用的存储空间,以及降低运算时对移动设备的计算能力要求。
在具体实施中,检测完成一次迭代量化后的深度神经网络模型是否满足预设的压缩体积需求。当满足预设的压缩体积需求时,即完成了对深度神经网络模型的压缩。当不满足预设的压缩体积需求时,则在上次迭代量化的深度神经网络模型的基础上,继续对量化后的深度神经网络模型进行一次或多次的迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
其中,首次对所述已训练的深度神经网络模型进行迭代量化时,采用如下方式进行量化处理。下面以已训练的深度神经网络模型中的第i层参数为例,结合图2对第i层参数首次量化处理过程进行说明。对第i层参数的首次量化处理过程可以包括如下步骤:
步骤21,对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
在具体实施中,对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,可以根据聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围,i为大于1的自然数。
例如,在本发明一实施例中,采用减法聚类对第i层参数进行聚类分析。对于一个M层的深度神经网络模型,第i层节点数目为Ni,第i层的第n个节点可采用公式(1)计算得到:
其中,σ(*)为激活函数,为第i层第n个节点和第i-1层第j个节点的权连接,为第i层的第n个偏置,1≤n≤Ni,1≤j≤Ni-1,Ni-1为第i-1层的节点数目。
在具体实施中,减法聚类将每一个参数都作为一个潜在的聚类中心,之后减去已完成的聚类中心的影响,再次寻找新的聚类中心。在具体实施中,所述参数可以为权连接,也可以为偏置,还可以同时包括权连接及偏置。下面以参数为权连接为例对量化范围及量化等级的确定流程进行举例说明:
例如,可以采用公式(2)计算聚类中心w为时的聚类中心值:
其中,β为影响范围调节系数,为第i层第n个节点与第i-1层第m个节点的权连接。
计算得到的聚类中心值越大,表征当前权连接比其余权连接更可能是聚类中心。选择聚类中心值最大的权连接为聚类中心后,为发现其他聚类中心,需要去除已选择过的聚类中心的影响,可以采用如下公式(3)及公式(4)来发现新的聚类中心:
其中,β为影响范围调节系数;Mk为第k次迭代时计算聚类中心的函数;w*为第k次迭代时发现的新的聚类中心;Mk-1为第k-1次迭代时计算聚类中心的函数;Mk-1为第k-1次迭代时的最大值。
在具体实施中,迭代执行公式(2)、(3)及(4)至满足减法聚类预设的停止条件。由于量化等级通常对应于偶数,如32bit、8bit等,故当计算得到的聚类中心的数目为奇数时,可以向上取偶数。例如,采用减法聚类得到的聚类中心的数目为3,则取聚类中心的数目为4。
在得到聚类中心数目之后,可以根据各聚类中心对应的聚类中心值,确定第i层参数对应的量化范围。根据所确定的聚类中心数目及对应的量化范围,确定量化等级,其中,量化等级的数目可以与聚类中心数目相同。在实际应用中,可以将量化范围均分为与聚类中心数目相同的量化等级,也可以根据各聚类中心对应的聚类中心值,结合聚类中心数目确定量化等级的数目。
在具体实施中,当采用其他的聚类算法对第i层参数进行聚类分析时,可以基于聚类中心的数目初始化所采用其他的聚类算法,根据聚类分析结果确定量化范围及量化等级。例如,采用无监督聚类对第i层参数进行聚类分析。
步骤22,根据所确定的量化等级对第i层的量化范围内的参数进行量化。
在具体实施中,得到第i层对应的量化等级后,根据所得到的量化等级对第i层的量化范围内的参数进行量化。
例如,所确定的第i层的量化范围为(-1,1),量化等级为2bit,采用平均分配的原则,第i层量化后参数对应的数值为以下4个中的任意一个:-0.75、-0.25、0.25及0.75。可以理解的是,也可以采用非平均分配的原则,如根据实际应用需要确定4个在-1至1范围内的其他数值。
采用上述方案,在首次对深度神经网络模型进行量化时,根据深度神经网络模型中的第i层参数的聚类分析结果,可以快速地得到与第i层参数的匹配度较高的量化范围及量化等级,并依照所确定的量化范围及量化等级对第i层参数进行量化。由于各层参数对应的量化等级是根据对应层参数的聚类分析结果所确定的,故可以避免人为定义量化等级时可能引入的精度损失,且可以兼顾到各层参数对深度神经网络模型的重要性。在确定各层的量化等级后,逐层对所述深度神经网络模型中的各层参数进行量化,无须减少深度神经网络模型中的各层参数以及节点的数量,且可以提高深度神经网络模型压缩的有效性及精度。
同时,根据聚类分析结果所确定的量化等级,由于各层对应的量化等级与对应层的参数相关,因此得到的量化等级与对应层参数的匹配度较佳,可以提高对深度神经网络模型的压缩速度,减少迭代次数,从而实现快速的对深度神经网络模型的量化压缩。
在具体实施中,当对深度神经网络模型中的一层或多层参数进行量化后,将会对深度神经网络模型的精度产生影响,为降低量化对深度神经网络模型的精度的影响,在本发明一实施例中,在根据所确定的量化等级对第i层的量化范围内的参数进行量化后,还可以获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
在具体实施中,可以根据第i层量化前的参数及量化后的参数计算得到第i层对应的补偿系数。
在本发明一实施例中,可以采用公式(5)得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,Wi T为Wi的转置,Qi为量化后的参数,为Qi的转置。
可以理解的是,在实际应用中,还可以根据第i层量化前的参数及量化后的参数,采用其他的计算方式得到第i层的补偿系数,此处不再赘述。
采用上述方案,在采用补偿系数对量化后的深度神经网络模型的精度损失进行补偿,可以合理的平衡深度神经网络模型的压缩度及精度,提高压缩后的深度神经网络模型的有效性。
在具体实施中,为减少量化过程中深度神经网络模型的精度损失,使得量化后的深度神经网络模型的精度仍能保有原有的精度,在本发明一实施例中,采用验证集样本对量化后的深度神经网络模型进行测试。根据测试结果判断量化后的深度神经网络模型的精度是否满足预设的精度阈值。当量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层参数恢复为量化前的参数。当量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
在具体实施中,可以采用公式(6)对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
在具体实施中,可以根据需实际需要选择使用L1范数或L2范数。L1范数可以避免溢出及截断造成的精度损失,L2范数对计算设备的精度要求较高。
在具体实施中,为提高深度神经网络模型的压缩速度,并减小深度神经网络模型压缩过程中的计算量,在本发明一实施例中,当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
在具体实施中,在首次对深度神经网络模型进行迭代量化时,当完成所述深度神经网络模型中的所有层参数量化后,各层参数量化后的深度神经网络模型的精度均不满足预设的精度阈值,则将各层参数均恢复为量化前的参数。此时,虽然对深度神经网络模型中的各层参数执行量化操作,但随后也执行恢复操作,故最终得到的深度神经网络模型与量化之前的深度神经网络模型相同,也即未对所述深度神经网络模型进行实质化的量化,此时N取为0。
在具体实施中,在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
在具体实施中,步骤13中对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,可以包括如下步骤:
每完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求。当量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化,具体可以包括如下子步骤:
获取可继续量化层参数,当第j层参数可继续量化时,调整量化等级,其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同,其中,j为非0自然数,j与i的取值可以相同,也可以不同。
在本发明一实施例中,在对深度神经网络模型进行量化压缩过程时,基于首次迭代量化过程中,通过聚类分析确定的量化等级,在之后的迭代量化过程中,可以降低量化等级,可以减少深度神经网络模型压缩过程中的迭代次数,实现快速压缩。
例如,首次迭代量化过程中,第j层的量化等级为8bit,第2次迭代的量化等级可以调整为6bit。通过首次迭代量化可以将第j层参数的范围缩减为256个不同的数值。经过第2次迭代量化,可以将第j层参数进一步缩减为64个不同的数值。通过多次迭代可以有效的减小第j层参数所占用的存储空间。
在具体实施中,可以采用调整后的量化等级对第j层参数进行量化。例如,可以采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
采用验证集样本对量化后的深度神经网络模型进行测试。当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,恢复第j层量化前的参数。当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
在具体实施中,可以采用上述公式(6)检测量化后的深度神经网络模型是否满足预设的精度阈值,这里不做赘述。
在具体实施中,为提高量化后的深度神经网络模型的性能,在本发明一实施例中,可以对量化后的深度神经网络模型进行重新训练。
在具体实施中,对量化后的深度神经网络模型进行重新训练的过程中,可以采用批均衡化的方法来缩放、平移规范化网络,以提高训练得到的深度神经网络模型的性能。
采用上述方案对深度神经网络模型进行量化压缩,可以在精简深度神经网络模型的体积的同时,兼顾深度神经网络模型原有的精度,提高深度神经网络模型的有效性,从而可以实现在移动设备上的应用。
为了便于本领域技术人员更好的理解和实现本发明实施例,下面通过举例对本发明实施例提供的一种深度神经网络模型的压缩方法进行说明。
参照图3给出的本发明实施例中另一种深度神经网络模型的压缩方法的流程图。所述方法可以包括如下步骤:
步骤301,获取已训练的深度神经网络模型。
步骤302,聚类分析第i层参数的量化范围及量化等级。
步骤303,采用所确定的量化等级对第i层进行量化。
在具体实施中,可以采用最近邻搜索算法,并结合所确定的量化等级对第i层进行量化。
步骤304,计算第i层的补偿系数。
在具体实施中,可以采用上述公式(5)计算第i层的补偿系数,此处不做赘述。
步骤305,计算第i层补偿后的量化参数。
在具体实施中,在计算得到第i层量化后的参数后,可以将第i层的补偿系数分别与第i层量化后的参数进行乘积运算,得到补偿后的量化参数。
在具体实施中,当计算得到第i层补偿后的量化参数后,为避免量化后的深度神经网络模型的精度损失,可以采用验证集样本并通过上述公式(6)对量化后的深度神经网络模型的精度进行测试。当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,可以恢复量化前的参数,从而可以避免量化对深度网络模型带来的精度损失。在恢复量化前的参数后,还可以将第i层标记为不可继续量化层,标记为不可继续量化层之后,第i层将不参与后续的量化过程,从而可以节约计算资源,加快对深度神经网络模型的压缩速度。
步骤306,判断是否已分析深度神经网络模型中的所有层。当已分析所有层时,执行步骤308。当未完成对所有层的分析时,执行步骤307。
在具体实施中,每完成对一层参数的聚类分析后,可以对聚类分析过的层进行标记。
步骤307,i++,并执行步骤302。
i++,即执行i自增1的步骤,也即获取第i+1层参数。
在具体实施中,获取到第i+1层参数后,继续执行步骤302,对第i+1层参数进行量化。可以理解的是,在获取下一待量化层参数时,可以采用顺序获取的方式,依次对各层参数进行量化,也可以根据预设的获取条件,获取下一待量化层参数。例如,采用随机的方式确定下一待量化层参数,这里不再赘述。
步骤308,判断量化后的深度神经网络模型是否满足预设的压缩体积需求。
在具体实施中,当判断结果为是时,也即量化后的深度神经网络模型满足预设的压缩体积需求时,执行步骤309。当判断结果为否时,也即是量化后的深度神经网络模型不满足预设的压缩体积需求时,执行步骤310。
其中,步骤301至步骤308所包括的内容是首次对所述深度神经网络模型进行量化处理的过程。步骤301至308的具体内容可以参见步骤12、步骤21及步骤22中的描述,此处不做赘述。
步骤309,对量化后的深度神经网络模型进行重新训练。
步骤310,判断第j层是否可继续量化。
在具体实施中,当判断结果为是时,执行步骤312;当判断结果为否时,执行步骤311。
在具体实施中,可以通过检测第j层是否被标记为不可继续量化层,来获知第j层是否可继续量化。当第j层被标记为不可继续量化层时,则表征不可继续量化,执行步骤311。当第j层没有被标记为不可继续量化层时,则表征可继续量化,执行步骤312。
步骤311,j++,并执行步骤310。
j++,即执行j自增1的步骤,也即获取第j+1层参数。
在具体实施中,当第j层为不可继续量化层时,获取第j+1层参数,并继续执行步骤310,判断第j+1层参数是否可继续量化。
可以理解的是,在获取下一待量化层参数时,可以依次获取下一层参数,也可以按照预设的获取规则,获取下一待量化层参数,例如,采用随机方式获取下一待量化层参数,直至所有层均完成量化,这里不再赘述。
步骤312,量化第j层参数。
在具体实施中,可以在上次迭代量化所采用的量化等级的基础上调整量化等级,并采用调整后的量化等级对第j层参数进行量化。例如,调整前的量化等级为16bit,调整后的量化等级为8bit。采用16bit的量化等级对深度神经网络模型的精度影响程度大于8bit的量化等级对深度神经网络模型的精度影响。
在具体实施中,可以采用最近邻搜索算法,并结合调整后的量化等级对第j层参数进行量化,这样可以避免固定量化区间可能引入的精度损失,提高对深度神经网络模型量化的有效性。
步骤313,采用验证集样本对量化后的深度神经网络模型进行测试。
在具体实施中,可以采用有标签的验证集样本{(x1,y1),(x2,y2),……,(xv,yv)},采用上述公式(6)对量化后的深度神经网络模型进行测试。
步骤314,根据测试结果判断量化后的深度神经网络模型的精度改变是否超过预设的精度阈值。
在具体实施中,当判断结果为是时,执行步骤315。当判断结果为否时,执行步骤317。
步骤315,恢复第j层量化前的参数。
步骤316,将第j层标记为不可继续量化层。
步骤317,判断是否已分析所有层。当判断结果为是,重新执行步骤308。当判断结果为否时,执行步骤318。
步骤318,j++,并执行步骤310。
j++,即执行j自增1的步骤,也即获取第j+1层参数。
可以理解的是,在获取下一待量化层参数时,可以依次获取下一层参数,也可以按照预设的获取规则,获取下一待量化层参数,例如,采用随机方式获取下一待量化层参数,直至所有层均完成量化,这里不再赘述。
在具体实施中,步骤310至步骤318也即时在完成一次迭代量化后,当量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化的过程,也即是步骤13中的一种实施方式。
本发明实施例还提供一种深度神经网络模型的压缩装置。参照图4,给出了本发明实施例中一种深度神经网络模型的压缩装置的结构示意图。所述深度神经网络模型的压缩装置40可以包括:第一获取单元41及压缩单元42,其中:
所述第一获取单元41,适于获取已训练的深度神经网络模型;
所述压缩单元42,适于逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;以及对所述已训练的深度神经网络模型中的第i层参数,进行首次量化处理;所述压缩单元42可以包括:聚类分析子单元421、量化等级确定子单元422及量化子单元423,其中:
所述聚类分析子单元421,适于对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,i为大于1的自然数;
所述量化等级确定子单元422,适于根据所述聚类分析子单元421的聚类分析结果确定对应的量化范围及量化等级;
所述量化子单元423,适于根据所述量化等级确定子单元422所确定的量化等级对第i层的量化范围内的参数进行量化。
由上可知,在首次对深度神经网络模型进行量化时,根据深度神经网络模型中的第i层参数的聚类分析结果,确定第i层参数的量化范围及量化等级,并依照所确定的量化范围及量化等级对第i层参数进行量化。由于各层参数对应的量化等级是根据对应层参数的聚类分析结果所确定的,故可以避免人为定义量化等级时可能引入的精度损失,且可以兼顾到各层参数对深度神经网络模型的重要性。在确定各层的量化等级后,对所述深度神经网络模型中的各层参数进行量化,无须减少深度神经网络模型中的各层参数以及节点的数量,且可以提高深度神经网络模型压缩的有效性及精度。
在具体实施中,所述量化等级确定子单元422,适于根据所述聚类分析子单元421的聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围;根据聚类中心数目及对应的量化范围确定量化等级。
在具体实施中,所述聚类分析子单元421,适于采用减法聚类对所述已训练的深度神经网络模型中的第i层参数进行聚类分析。
参照图5,给出的本发明实施例中另一种深度神经网络模型的压缩装置的结构示意图。在具体实施中,在图4的基础上,所述深度神经网络模型的压缩装置40还可以包括:第二获取单元43及补偿单元44,其中:
所述第二获取单元43,适于获取第i层对应的补偿系数;
所述补偿单元44,适于根据所述第二获取单元43获取到的第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
在具体实施中,所述第二获取单元43,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
在具体实施中,所述第二获取单元43,适于采用如下方式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,Wi T为Wi的转置,Qi为量化后的参数,为Qi的转置。
在具体实施中,所述压缩单元42还可以包括:测试子单元424及恢复子单元425,其中:
所述测试子单元424,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元425,适于当所述测试子单元424得到的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层参数恢复为量化前的参数;
所述量化子单元423,还适于当所述测试子单元424得到的测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
在具体实施中,所述压缩单元42还可以包括:标记子单元426,适于当所述测试子单元424得到的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
在具体实施中,所述深度神经网络模型的压缩装置40还可以包括:停止量化单元(未示出),适于在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
在具体实施中,所述压缩单元42可以包括:检测子单元427及重新量化子单元428,其中:
所述检测子单元427,适于在完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;
所述重新量化子单元428,适于当所述检测子单元427检测到量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化;所述重新量化子单元428可以包括:获取模块、量化等级调整模块及重新量化模块,其中:
所述获取模块,适于获取可继续量化层参数;
所述量化等级调整模块,适于当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
所述重新量化模块,适于采用调整后的量化等级对第j层参数进行量化;以及对所述深度神经网络中的其他可量化层进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求;
所述测试子单元424,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元425,适于当所述重新测试模块的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数。
在具体实施中,所述重新量化模块,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
在具体实施中,所述测试子单元424,适于采用如下方式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
在具体实施中,所述深度神经网络模型的压缩装置40还可以包括:训练单元(未示出),适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
在具体实施中,所述深度神经网络模型的压缩装置的工作原理及工作流程,可以参见本发明上述实施例提供的深度神经网络模型的压缩方法中的描述,此处不做赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令。所述计算机指令运行时执行本发明上述实施例中提供的任一种深度神经网络模型的压缩方法的步骤。
本发明实施例还提供一种终端,可以包括存储器及处理器。所述存储器上存储有能够在所述处理器上运行的计算机指令。所述处理器运行所述计算机指令时执行本发明上述实施例中提供的任一种深度神经网络模型的压缩方法的步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (28)
1.一种深度神经网络模型的压缩方法,其特征在于,包括:
获取已训练的深度神经网络模型;
逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;
对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;其中,首次对所述已训练的深度神经网络模型中的第i层参数,进行如下量化处理:
对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级,i为大于1的自然数;
根据所确定的量化等级对第i层的量化范围内的参数进行量化。
2.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,所述根据聚类分析结果确定对应的量化范围及量化等级,包括:
根据聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围;
根据聚类中心数目及对应的量化范围确定量化等级。
3.根据权利要求2所述的深度神经网络模型的压缩方法,其特征在于,所述对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,包括:采用减法聚类对所述已训练的深度神经网络模型中的第i层参数进行聚类分析。
4.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,在根据所确定的量化等级对第i层的量化范围内的参数进行量化后,还包括:
获取第i层对应的补偿系数;
根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
5.根据权利要求4所述的深度神经网络模型的压缩方法,其特征在于,所述获取第i层对应的补偿系数,包括:
根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
6.根据权利要求5所述的深度神经网络模型的压缩方法,其特征在于,所述根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数,包括:
采用如下方式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,Wi T为Wi的转置,Qi为量化后的参数,为Qi的转置。
7.根据权利要求1-6任一项所述的深度神经网络模型的压缩方法,其特征在于,还包括:
采用验证集样本对量化后的深度神经网络模型进行测试;
当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层参数恢复为量化前的参数;
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
8.根据权利要求7所述的深度神经网络模型的压缩方法,其特征在于,还包括:
当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
9.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,还包括:
在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
10.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,所述对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:
在完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;
当量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化,包括:
获取可继续量化层参数;
当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
采用调整后的量化等级对第j层参数进行量化;
采用验证集样本对量化后的深度神经网络模型进行测试;
当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
11.根据权利要求10所述的深度神经网络模型的压缩方法,其特征在于,所述采用调整后的量化等级对第j层参数进行量化,包括:
采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
12.根据权利要求10所述的深度神经网络模型的压缩方法,其特征在于,所述采用验证集样本对量化后的深度神经网络模型进行测试,包括:
采用如下方式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
13.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,当量化后的深度神经网络模型满足预设的压缩体积需求之后,还包括:
对量化后的深度神经网络模型进行重新训练。
14.一种深度神经网络模型的压缩装置,其特征在于,包括:
第一获取单元,适于获取已训练的深度神经网络模型;
压缩单元,适于逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;以及对所述已训练的深度神经网络模型中的第i层参数,进行首次量化处理;所述压缩单元,包括:聚类分析子单元、量化等级确定子单元及量化子单元,其中:
所述聚类分析子单元,适于对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,i为大于1的自然数;
所述量化等级确定子单元,适于根据所述聚类分析子单元的聚类分析结果确定对应的量化范围及量化等级;
所述量化子单元,适于根据所述量化等级确定子单元所确定的量化等级对第i层的量化范围内的参数进行量化。
15.根据权利要求14所述的深度神经网络模型的压缩装置,其特征在于,所述量化等级确定子单元,适于根据所述聚类分析子单元的聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围;根据聚类中心数目及对应的量化范围确定量化等级。
16.根据权利要求14所述的深度神经网络模型的压缩装置,其特征在于,所述聚类分析子单元,适于采用减法聚类对所述已训练的深度神经网络模型中的第i层参数进行聚类分析。
17.根据权利要求14所述的深度神经网络模型的压缩装置,其特征在于,还包括:第二获取单元及补偿单元,其中:
所述第二获取单元,适于获取第i层对应的补偿系数;
所述补偿单元,适于根据所述第二获取单元获取到的第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
18.根据权利要求17所述的深度神经网络模型的压缩装置,其特征在于,所述第二获取单元,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
19.根据权利要求18所述的深度神经网络模型的压缩装置,其特征在于,所述第二获取单元,适于采用如下方式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,Wi T为Wi的转置,Qi为量化后的参数,为Qi的转置。
20.根据权利要求14至19任一项所述的深度神经网络模型的压缩装置,其特征在于,所述压缩单元还包括:测试子单元及恢复子单元,其中:
所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元,适于当所述测试子单元得到的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层参数恢复为量化前的参数;
所述量化子单元,还适于当所述测试子单元得到的测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
21.根据权利要求20所述的深度神经网络模型的压缩装置,其特征在于,所述压缩单元还包括:标记子单元,适于当所述测试子单元得到的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
22.根据权利要求21所述的深度神经网络模型的压缩装置,其特征在于,还包括:停止量化单元,适于在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
23.根据权利要求21所述的深度神经网络模型的压缩装置,其特征在于,所述压缩单元包括:检测子单元及重新量化子单元,其中:
所述检测子单元,适于在完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;
所述重新量化子单元,适于当所述检测子单元检测到量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化;所述重新量化子单元包括:获取模块、量化等级调整模块及重新量化模块,其中:
所述获取模块,适于获取可继续量化层参数;
所述量化等级调整模块,适于当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
所述重新量化模块,适于采用调整后的量化等级对第j层参数进行量化;以及对所述深度神经网络中的其他可量化层进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求;
所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元,适于当所述重新测试模块的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数。
24.根据权利要求23所述的深度神经网络模型的压缩装置,其特征在于,所述重新量化模块,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
25.根据权利要求23所述的深度神经网络模型的压缩装置,其特征在于,所述测试子单元,适于采用如下方式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
26.根据权利要求14所述的深度神经网络模型的压缩装置,其特征在于,还包括:训练单元,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
27.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至13任一项所述的深度神经网络模型的压缩方法的步骤。
28.一种终端,其特征在于,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行权利要求1至13任一项所述的深度神经网络模型的压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710267035.5A CN108734287A (zh) | 2017-04-21 | 2017-04-21 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710267035.5A CN108734287A (zh) | 2017-04-21 | 2017-04-21 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108734287A true CN108734287A (zh) | 2018-11-02 |
Family
ID=63933592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710267035.5A Pending CN108734287A (zh) | 2017-04-21 | 2017-04-21 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108734287A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322008A (zh) * | 2019-07-10 | 2019-10-11 | 杭州嘉楠耘智信息科技有限公司 | 一种基于残差卷积神经网络的量化处理方法及装置 |
CN110569967A (zh) * | 2019-09-11 | 2019-12-13 | 山东浪潮人工智能研究院有限公司 | 一种基于算术编码的神经网络模型压缩加密方法及系统 |
CN110991649A (zh) * | 2019-10-28 | 2020-04-10 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 深度学习模型搭建方法、装置、设备和存储介质 |
CN111400491A (zh) * | 2018-12-27 | 2020-07-10 | 北大方正集团有限公司 | 公式主体定位方法、装置、设备及计算机可读存储介质 |
CN109523016B (zh) * | 2018-11-21 | 2020-09-01 | 济南大学 | 面向嵌入式系统的多值量化深度神经网络压缩方法及系统 |
CN111738419A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 神经网络模型的量化方法和装置 |
CN112085188A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
WO2024082196A1 (zh) * | 2022-10-19 | 2024-04-25 | 北京小米移动软件有限公司 | 一种基于ai模型的终端定位方法及装置 |
-
2017
- 2017-04-21 CN CN201710267035.5A patent/CN108734287A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523016B (zh) * | 2018-11-21 | 2020-09-01 | 济南大学 | 面向嵌入式系统的多值量化深度神经网络压缩方法及系统 |
CN111400491A (zh) * | 2018-12-27 | 2020-07-10 | 北大方正集团有限公司 | 公式主体定位方法、装置、设备及计算机可读存储介质 |
CN112085188A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112085188B (zh) * | 2019-06-12 | 2024-04-02 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN110322008A (zh) * | 2019-07-10 | 2019-10-11 | 杭州嘉楠耘智信息科技有限公司 | 一种基于残差卷积神经网络的量化处理方法及装置 |
CN110569967A (zh) * | 2019-09-11 | 2019-12-13 | 山东浪潮人工智能研究院有限公司 | 一种基于算术编码的神经网络模型压缩加密方法及系统 |
CN110991649A (zh) * | 2019-10-28 | 2020-04-10 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 深度学习模型搭建方法、装置、设备和存储介质 |
CN111738419A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 神经网络模型的量化方法和装置 |
CN111738419B (zh) * | 2020-06-19 | 2024-01-12 | 北京百度网讯科技有限公司 | 神经网络模型的量化方法和装置 |
WO2024082196A1 (zh) * | 2022-10-19 | 2024-04-25 | 北京小米移动软件有限公司 | 一种基于ai模型的终端定位方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108734287A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN108734268A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN108734266A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN108734264A (zh) | 深度神经网络模型压缩方法及装置、存储介质、终端 | |
CN109000930B (zh) | 一种基于堆叠去噪自编码器的涡轮发动机性能退化评估方法 | |
CN106485316A (zh) | 神经网络模型压缩方法以及装置 | |
CN107087161B (zh) | 视频业务中基于多层神经网络的用户体验质量的预测方法 | |
CN109388779A (zh) | 一种神经网络权重量化方法和神经网络权重量化装置 | |
WO2020237904A1 (zh) | 一种基于幂指数量化的神经网络压缩方法 | |
CN111325342A (zh) | 模型的压缩方法、装置、目标检测设备和存储介质 | |
CN113065653B (zh) | 面向移动端图像分类的轻量级卷积神经网络的设计方法 | |
CN112161815A (zh) | 一种车辆路噪主观评价值预测方法 | |
CN111290967A (zh) | 一种软件缺陷预测方法、装置、设备及存储介质 | |
CN115600650A (zh) | 基于强化学习的自动化卷积神经网络量化剪枝方法、设备和存储介质 | |
CN110010153A (zh) | 一种基于神经网络的静音检测方法、终端设备及介质 | |
CN108197545A (zh) | 干扰类型的识别方法和系统 | |
CN115062668A (zh) | 基于RAdam优化宽度学习的谐波参数检测方法和系统 | |
CN114742211B (zh) | 一种面向微控制器的卷积神经网络部署和优化方法 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN114925728A (zh) | 滚动轴承故障诊断方法、装置、电子设备以及存储介质 | |
CN112101487A (zh) | 一种细粒度识别模型的压缩方法和设备 | |
CN114861880A (zh) | 基于空洞卷积神经网络的工业设备故障预测方法及装置 | |
CN113313682B (zh) | 基于时空多尺度分析的无参考视频质量评价方法 | |
CN114547795A (zh) | 一种基于数据驱动的滚动轴承剩余寿命预测方法 | |
CN110533109A (zh) | 一种喷涂生产监测数据的存储及特征分析方法及其装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181102 |