CN108734268A - 深度神经网络模型的压缩方法及装置、终端、存储介质 - Google Patents
深度神经网络模型的压缩方法及装置、终端、存储介质 Download PDFInfo
- Publication number
- CN108734268A CN108734268A CN201710267090.4A CN201710267090A CN108734268A CN 108734268 A CN108734268 A CN 108734268A CN 201710267090 A CN201710267090 A CN 201710267090A CN 108734268 A CN108734268 A CN 108734268A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- quantization
- deep neural
- 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
- G06N3/045—Combinations of networks
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
一种深度神经网络模型的压缩方法及装置、终端、存储介质。所述方法包括:获取已训练的深度神经网络模型;分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求;其中,对第i层参数进行如下量化处理:按照所述第i层对应的预设量化等级,对第i层参数进行量化;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;当满足预设的精度阈值时,继续执行对其他层参数进行量化处理。采用上述方案,可以在对深度神经网络模型压缩时,兼顾深度神经网络模型的精度及有效性。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种深度神经网络模型的压缩方法及装置、终端、存储介质。
背景技术
随着深度神经网络相关技术研究的迅速发展,相关领域内涌现了大批与深度神经网络相关的技术,如应用于视觉领域的卷积神经网络和应用于语音识别或自然语言处理领域的递归神经网络等,这些神经网络技术均极大地提高了相应领域的处理精度。
深度神经网络与浅层学习相比,深度神经网络的开发潜力巨大。通过深度神经网络模型的多层处理结构可以提取和分析样本的表征特征,由浅入深地逐层变换和计算样本特征并计算处理结果。通过对深度神经网络模型进行增宽增长处理,可以使深度神经网络模型获得相对更优的处理结果。
然而,深度神经网络模型的参数通常在百万、千万或上亿数量级,因此对计算和存储设备的要求较高。由于深度神经网络模型存储及计算时深度神经网络模型的参数传输等问题,限制了深度神经网络模型在移动设备上的应用。
目前,通常采用减少深度神经网络模型的参数、节点数目以及改变多样性类方法,达到压缩深度神经网络模型的目的。虽然,这样可以对神经网络模型进行一定的压缩,然而,压缩后的深度神经网络模型的精度及有效性较低。
发明内容
本发明解决的技术问题是在对深度神经网络模型压缩时如何兼顾深度神经网络模型的精度及有效性。
为解决上述技术问题,本发明实施例提供一种深度神经网络模型的压缩方法,包括:获取已训练的深度神经网络模型;分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;其中,对所述已训练的深度神经网络模型中的第i层参数,进行如下量化处理:获取第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
可选地,在按照所述第i层对应的预设量化等级对所述已训练的深度神经网络模型中的第i层参数进行量化后,还包括:获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
可选地,所述获取第i层对应的补偿系数,包括:根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
可选地,所述根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数,包括:采用如下方式计算得到第i层的补偿系数:其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
可选地,所述方法还包括:当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
可选地,所述方法还包括:在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
可选地,所述对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;当量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化,包括:获取可继续量化层参数;当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;采用调整后的量化等级对第j层参数进行量化;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
可选地,所述采用调整后的量化等级对第j层参数进行量化,包括:采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
可选地,所述采用验证集样本对量化后的深度神经网络模型进行测试,包括:采用如下方式对量化后的深度神经网络模型进行测试:其中,为第t次量化第m层前的验证结果,为第t次量化第m层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
可选地,所述方法还包括:在首次迭代量化时,采用如下方式得到第i层对应的预设量化等级:对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
可选地,当量化后的深度神经网络模型满足预设的压缩体积需求之后,还包括:对量化后的深度神经网络模型进行重新训练。
本发明实施例还提供一种深度神经网络模型的压缩装置,包括:第一获取单元,适于获取已训练的深度神经网络模型;压缩单元,适于分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;所述压缩单元,包括:获取子单元、量化子单元、测试子单元及恢复子单元,其中:所述获取子单元,适于获取第i层对应的预设量化等级;所述量化子单元,适于按照所述获取子单元获取到的第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;以及当所述测试子单元的测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理;所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;所述恢复子单元,适于当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。
可选地,所述装置还包括:第二获取单元及补偿单元,其中:所述第二获取单元,适于获取第i层对应的补偿系数;所述补偿单元,适于根据第二获取单元获取到第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
可选地,所述第二获取单元,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
可选地,所述补偿单元,适于采用如下方式得到第i层的补偿系数:其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
可选地,所述压缩单元还包括:标记子单元,适于当所述测试子单元的测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
可选地,所述装置还包括:停止量化单元,适于在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
可选地,所述压缩单元还包括:检测子单元及重新量化子单元,其中:所述检测子单元,适于完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;所述重新量化子单元,适于当所述检测子单元检测到量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化;所述重新量化子单元包括:获取模块、量化等级调整模块及重新量化模块,其中:所述获取模块,适于获取可继续量化层参数;所述量化等级调整模块,适于当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;所述重新量化模块,适于采用调整后的量化等级对第j层参数进行量化;以及对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求;所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;所述恢复子单元,适于当所述重新测试模块的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数。
可选地,所述重新量化模块,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
可选地,所述测试子单元,适于采用如下方式对量化后的深度神经网络模型进行测试:其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
可选地,所述装置还包括:训练单元,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述的任一种深度神经网络模型的压缩方法的步骤。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述的任一种深度神经网络模型的压缩方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
对于已训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
进一步地,在对深度神经网络模型的第i层量化后,获取第i层对应的补偿系数,通过对量化后的参数进行补偿,可以有效的减小量化过程中深度神经网络模型的精度损失。
进一步地,当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,所述第i层被标记为不可继续量化层后,将不参与之后的量化处理过程,从而可以节约计算资源。
进一步地,采用聚类分析的方法确定第i层对应的预设量化等级,从而可以快速的得到第i层参数的量化层级且得到的量化等级与第i层参数的实际情况分布情况的匹配度更好,进一步提高量化后的深度神经网络模型的有效性。
进一步地,对量化后的深度神经网络模型进行重新训练,可以提高量化后的深度神经网络模型的性能。
附图说明
图1是本发明实施例中一种深度神经网络模型的压缩方法的流程图;
图2是本发明实施例中一种第i层参数量化处理方法的流程图;
图3是本发明实施例中另一种深度神经网络模型的压缩方法的流程图;
图4是本发明实施例中一种深度神经网络模型的压缩装置的结构示意图;
图5是本发明实施例中另一种深度神经网络模型的压缩装置的结构示意图。
具体实施方式
目前,深度神经网络模型的精简压缩方法主要分为两类:改变深度神经网络模型密度类方法及改变深度神经网络模型的参数的多样性类方法。
改变深度神经网络模型密度类方法,通过改变神经网络的稀疏程度达到压缩的目的。在一些算法中,通常给定一个比较小的阈值来删除深度神经网络模型中的小幅值参数,主观性较大,对不同结构的神经网络需要进行过多的参数调整才可能获得理想的精简效果。另一些算法针对输入节点与输出响应间的贡献关系,对输入节点进行筛选,此类算法只针对单隐藏层神经网络且没有对隐藏层参数进行足够的处理,不适合网络结构较深的深度神经网络。
上述方法仅针对单层内或部分网络层间的关系进行精简,没有对深度神经网络进行整体性地考虑,因此难以保证模型精简的有效性。此外,对于较大的深度神经网络或多个深度神经网络组成的模型,难以在有限的时间内获得期望的精简结果。
改变多样性类方法通过量化或编码模型的参数的方式,采用少量码字表示模型参数的方式,达到压缩深度神经网络模型的目的。目前,改变多样性类的方法在对深度神经网络模型中各层参数量化时使用一致的量化标准,然而,不同层的参数对深度神经网络模型的重要性不同。采用一致的量化标准对深度神经网络模型进行量化压缩,这会导致量化后的深度神经网络模型的有效性降低,所得到的处理结果不是最优的处理结果。
为解决上述问题,在本发明实施例中,对于已训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
参照图1,给出了本发明实施例中一种深度神经网络模型的压缩方法的流程图。下面结合具体步骤进行说明。
步骤11,获取已训练的深度神经网络模型。
在具体实施中,可以获取已训练的深度神经网络模型作为待压缩的深度神经网络模型。
步骤12,分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行量化。
在具体实施中,分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,对所述深度神经网络模型中的所有层均进行一次量化作为一次迭代量化。
在具体实施中,各层参数分别对应的预设量化等级可以相同,也可以不同。可以根据各层参数的数量、对量化后的精度的需求以及压缩体积需求进行设定。
步骤13,对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
在具体实施中,将深度神经网络模型应用于移动设备上时,由于移动设备的存储及计算能力的限制,需要对深度神经网络模型进行压缩,以减小深度神经网络模型的体积,也即是减小所占用的存储空间,以及降低运算时对移动设备的计算能力要求。
在具体实施中,N≥0。检测完成一次迭代量化后的深度神经网络模型是否满足预设的压缩体积需求。当满足预设的压缩体积需求时,即完成了对深度神经网络模型的压缩。当不满足预设的压缩体积需求时,则在上次迭代量化的深度神经网络模型的基础上,继续对量化后的深度神经网络模型进行迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
为了便于本领域技术人员更好的理解和实现本发明实施例,下面以已训练的深度神经网络模型中的第i层参数为例,结合图2对量化处理过程进行说明。对第i层参数的量化处理过程可以包括如下步骤:
步骤21,获取第i层对应的预设量化等级。
在具体实施中,可以根据经验法或第i层参数的数目确定第i层对应的预设量化等级,也可以根据对量化后的深度神经网络模型的精度需求确定对应的量化等级,还可以根据量化后的深度神经网络模型压缩体积需求确定第i层对应的量化等级。可以理解的是,可以综合经验、第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层的节点数目。
步骤22,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化。
在本发明一实施中,可以采用近似最近邻搜索算法,根据第i层对应的预算量化等级对第i层参数进行量化。
步骤23,采用验证集样本对量化后的深度神经网络模型进行测试。
在具体实施中,可以采用验证集样本对深度神经网络模型进行测试,可以根据量化前的验证结果,量化后的验证结果以及精度改变的判断阈值,来判别量化后的深度神经网络模型的精度是否满足精度需求。
在本发明一实施例中,可以采用公式(2)对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
在具体实施中,可以根据需实际需要选择使用L1范数或L2范数。L1范数可以避免溢出及截断造成的精度损失,L2范数对计算设备的精度要求较高。
步骤24,判断测试结果是否满足预设的精度阈值。当判断结果为是时,执行步骤25。当判断结果为否时,执行步骤26。
步骤25,继续执行对其他层的参数进行量化处理。
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
步骤26,将第i层参数恢复为量化前的参数。
当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。
在具体实施中,对于步骤13中,当存在如下情况时,N=0。当首次完成所述深度神经网络模型中的所有层参数量化后,各层参数量化后的深度神经网络模型的精度均不满足预设的精度阈值,则将各层参数均恢复为量化前的参数。此时,虽然对深度神经网络模型中的各层参数执行量化操作,但随后也执行恢复操作,故最终得到的深度神经网络模型与量化之前的深度神经网络模型相同,也即未对所述深度神经网络模型进行实质化的量化,故N取为0。
由上述内容可知,对于已训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
在具体实施中,当对深度神经网络模型中的一层或多层参数进行量化后,将会对深度神经网络模型的精度产生影响,为降低量化对深度神经网络模型的精度的影响,在本发明一实施例中,在根据所确定的量化等级对第i层的各量化范围内的参数进行量化后,还可以获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。例如,将第i层的补偿系数分别与第i层量化后的参数做乘积运算,并将运算结果作为补偿后的量化参数。
在具体实施中,可以根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
在本发明一实施例中,可以采用公式(3)得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
采用上述方案,在采用补偿系数对量化后的深度神经网络模型的精度损失进行补偿,可以合理的平衡深度神经网络模型的压缩度及精度,提高压缩后的深度神经网络模型的有效性。
在具体实施中,为提高深度神经网络模型的压缩速度,并减小深度神经网络模型压缩过程中的计算量,在本发明一实施例中,当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,检测当前量化所采用的量化等级是否已经达到预设的等级阈值,当达到预设的等级阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
在具体实施中,在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
在具体实施中,步骤13中对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,可以包括如下步骤:
获取可继续量化层参数,当第j层参数可继续量化时,调整量化等级,其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同,j为非0自然数,j与i的取值可以相同,也可以不同。
在本发明一实施例中,在对深度神经网络模型进行量化压缩过程时,可以先采用较低的量化等级对深度神经网络模型进行压缩,然后根据实际需要逐渐提高量化等级,可以减少深度神经网络模型压缩过程中的迭代次数,实现快速压缩。其中,量化等级越低对量化后的深度神经网络模型的精度影响越大。例如,量化等级为2bit对深度神经网络模型的精度影响大于量化等级为4bit对深度神经网络模型的精度影响。
在具体实施中,可以采用调整后的量化等级对第j层参数进行量化。例如,可以采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
在具体实施中,可以采用验证集样本对量化后的深度神经网络模型进行测试。当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,恢复第j层量化前的参数。当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
在具体实施中,可以采用上述公式(2)检测量化后的深度神经网络模型是否满足预设的精度阈值,这里不做赘述。
在具体实施中,为提高量化后的深度神经网络模型的性能,在本发明一实施例中,可以对量化后的深度神经网络模型进行重新训练。
在具体实施中,对量化后的深度神经网络模型进行重新训练的过程中,可以采用批均衡化的方法来缩放、平移规范化网络,以提高训练得到的深度神经网络模型的性能。
采用上述方案对深度神经网络模型进行量化压缩,可以在精简深度神经网络模型的体积的同时,兼顾深度神经网络模型原有的精度,提高深度神经网络模型的有效性,从而可以实现在移动设备上的应用。
在具体实施中,为提高各层的预设量化等级与对应层参数的匹配度,在本发明一实施例中,在首次迭代量化时,采用如下方式得到第i层对应的预设量化等级:对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
在具体实施中,可以根据聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围。根据聚类中心数目及对应的量化范围确定量化等级。
在本发明一实施例中,采用减法聚类对第i层参数进行聚类分析。减法聚类将每一个参数都作为一个潜在的聚类中心,之后减去已完成的聚类中心的影响,再次寻找新的聚类中心。在具体实施中,所述参数可以为权连接,也可以为偏置,还可以同时包括权连接及偏置。下面以参数为权连接为例对量化范围及量化等级的确定流程进行举例说明:
例如,可以采用公式(4)计算聚类中心w为时的聚类中心值:
其中,β为影响范围调节系数,为第i层第n个节点与第i-1层第m个节点的权连接。
计算得到的聚类中心值越大,表征当前权连接比其余权连接更可能是聚类中心。选择聚类中心值最大的权连接为聚类中心后,为发现其他聚类中心,需要去除已选择过的聚类中心的影响,可以采用如下公式(5)及公式(6)来发现新的聚类中心:
其中,β为影响范围调节系数;Mk为第k次迭代时计算聚类中心的函数;w*为第k次迭代时发现的新的聚类中心;Mk-1为第k-1次迭代时计算聚类中心的函数;Mk-1为第k-1次迭代时的最大值。
在具体实施中,迭代执行公式(4)、(5)及(6)直至满足减法聚类预设的停止条件。由于量化等级通常对应于偶数,如32bit、8bit等,故当计算得到的聚类中心的数目为奇数时,可以向上取偶数。例如,采用减法聚类得到的聚类中心的数目为3,则取聚类中心的数目为4。
在得到聚类中心数目之后,可以根据各聚类中心对应的聚类中心值,确定第i层参数对应的量化范围。根据所确定的聚类中心数目及对应的量化范围,确定量化等级,其中,量化等级的数目可以与聚类中心数目相同。在实际应用中,可以将量化范围均分为与聚类中心数目相同的量化等级,也可以根据各聚类中心对应的聚类中心值,结合聚类中心数目确定量化等级的数目。
在具体实施中,当采用其他的聚类算法对第i层参数进行聚类分析时,可以基于聚类中心的数目初始化所采用其他的聚类算法,根据聚类分析结果确定量化范围及量化等级。例如,采用无监督聚类对第i层参数进行聚类分析。
在对深度神经网络模型进行首次迭代量化时,采用聚类分析方式确定各层对应的量化等级,可以避免人为定义量化等级时可能引入的精度损失,且可以兼顾到各层参数对深度神经网络模型的重要性。从而可以提高深度神经网络模型压缩的有效性及精度。同时,根据聚类分析结果所确定的量化等级,由于各层对应的量化等级与对应层的参数相关,因此得到的量化等级与对应层参数的匹配度较佳,可以快速的确定各层对应的合适的预设量化等级,从而提高对深度神经网络模型的压缩速度,减少迭代次数,实现快速的对深度神经网络模型的量化压缩。
参照图3给出的本发明实施例中另一种深度神经网络模型的压缩方法的流程图。所述方法可以包括如下步骤:
步骤301,获取已训练的深度神经网络模型。
步骤302,判断所述已训练的深度神经网络模型是否满足预设的压缩体积需求。当判断结果为是,执行步骤303。当判断结果为否,执行步骤304。
步骤303,对量化后的深度神经网络模型进行重新训练。
步骤304,判断第i层是否可以继续量化。当判断结果为是时,执行步骤306,当判断结果为否时,执行步骤305。
在具体实施中,为减少深度神经网络模型压缩过程中的计算量,缩短压缩时间,在压缩过程中,当发现某层参数不可继续量化时,可以将该层标记为不可继续量化层。当第i层参数没有被标记为不可继续量化层时,第i层可继续量化,相应地,当第i层被标记为不可继续量化层时,第i层不可继续量化。
步骤305,i++,并执行步骤304。
i++,即执行i自增1的步骤,也即获取第i+1层参数。
在具体实施中,获取到第i+1层参数后,继续执行步骤304,对第i+1层参数进行量化。可以理解的是,在获取下一待量化层参数时,可以采用顺序获取的方式,依次对各层参数进行量化,也可以根据预设的获取条件,获取下一待量化层参数。例如,采用随机的方式确定下一待量化层参数,这里不再赘述。
步骤306,量化第i层参数。
在具体实施中,获取第i层参数对应的预设量化等级,可以采用近似最近邻搜索算法,结合预设量化等级对第i层参数进行量化。
在具体实施中,为了降低量化后的深度神经网络模型的精度损失,可以获取第i层对应的补偿系数。将获取到的补偿系数分别与第i层量化后的参数做乘法运算,得到补偿后的量化参数。将补偿后的量化参数作为第i层的量化参数。
步骤307,采用验证集样本对量化后的深度神经网络模型进行测试。
在具体实施中,可以采用有标签的验证集样本{(x1,y1),(x2,y2),……,(xv,yv)},分别对量化前及量化后的深度神经网络模型进行验证,得到量化前及量化后的验证结果。根据量化前及量化后的验证结果,可以采用上述公式(2)对量化后的深度神经网络模型进行测试。
步骤308,判断量化后的深度神经网络模型的精度改变是否超过预设精度阈值。当判断结果为是时,执行步骤309,当判断结果为否时,执行步骤311。
步骤309,恢复第i层量化前的参数。
在具体实施中,当量化后的深度神经网络模型的精度改变超过预设精度阈值时,量化后的深度神经网络模型的精度损失较大,会影响深度神经网络模型的有效性。在对深度神经网络模型压缩过程中,为使得量化后的深度神经网络模型能保有原精度,恢复第i层量化前的参数。
步骤310,判断当前采用的量化等级是否已达到预设的等级阈值。当判断结果为是时,执行步骤311。当判断结果为否时,执行步骤312。
步骤311,将第i层参数标记为不可继续量化层。
在具体实施中,为提高压缩速度,可以预先设定一个较低的量化等级对深度神经网络模型中的各层参数进行量化。然而这可能会出现这样一种情况,当采用较低的量化等级量化后的深度神经网络模型的精度可能不满足预设的精度阈值,而将量化等级提高之后,得到的量化后的深度神经网络模型的精度满足预设的精度阈值。故为了节约计算资源,提高压缩速度,且能使得量化后的深度神经网络模型有一个较好的压缩性。可以预设定量化等级的等级阈值。当对第i层量化后得到的量化后的深度神经网络模型的精度不满足预设的精度阈值,且当前所采用的量化等级已经达到预设的等级阈值时,将第i层标记为不可继续量化层。第i层被标记为不可继续量化层后,将不再参与之后的量化处理过程,从而可以节约计算资源,降低计算复杂度。
步骤312,判断是否已量化所有层。当判断结果为是时,执行步骤302,当判断结果为否时,执行步骤313。
步骤313,i++,并执行步骤304。
i++,即执行i自增1的步骤,也即获取第i+1层参数。
在具体实施中,获取到第i+1层参数后,继续执行步骤304,对第i+1层参数进行量化。可以理解的是,在获取下一待量化层参数时,可以采用顺序获取的方式,依次对各层参数进行量化,也可以根据预设的获取条件,获取下一待量化层参数。例如,采用随机的方式确定下一待量化层参数,这里不再赘述。
在具体实施中,当完成一次迭代量化后,当量化后的深度神经网络模型不满足预设的压缩体积需求时,基于量化后的深度神经网络模型,调整量化等级继续进行迭代量化。例如,在基于量化后的深度神经网络模型进行第t次迭代量化过程中,调整各层对应的量化等级,可以提高量化等级,也可以降低量化等级。当第i层可继续量化时,采用调整后的量化等级继续对第i层参数进行第t次迭代过程中的量化。
在本发明一实施中,在对深度神经网络模型压缩过程中,可以逐渐降低第i层对应的量化等级。例如,第t次对第i层参数进行量化时,采用的量化等级为8bit,将第i层参数量化后可以得到28=256个不同的数值,对量化后的深度神经网络模型进行测试后,测试结果显示精度改变满足预设精度阈值。在t+1次迭代量化过程中,可以将量化等级调整为6bit,第i层参数可以从256各数值压缩到26=64个不同的数值,对量化后的深度神经网络模型进行测试后,测试结果显示精度改变满足预设精度阈值。在t+2次迭代量化过程中,可以将量化等级调整为2bit。
在本发明另一实施中,在对深度神经网络模型压缩过程中,可以逐渐提高第i层对应的量化等级。例如,第t次对第i层参数进行量化时,采用的量化等级为2bit,对量化后的深度神经网络模型进行测试后,测试结果显示精度改变不满足预设精度阈值。在t+1次迭代量化过程中,可以将量化等级调整为6bit,对量化后的深度神经网络模型进行测试后,测试结果显示精度改变不满足预设精度阈值。在t+2次迭代量化过程中,可以将量化等级调整为8bit。在对所述深度神经网络模型压缩过程中,先采用较低量化等级对深度神经网络模型进行量化,然后根据量化后的深度神经网络模型的精度或者压缩体积需求,调整量化等级,可以加快量化速度。
本发明实施例还提供一种深度神经网络模型的压缩装置。参照图4,给出了本发明实施例中一种深度神经网络模型的压缩装置的结构示意图。所述深度神经网络模型的压缩装置40可以包括:第一获取单元41及压缩单元42,其中:
所述第一获取单元41,适于获取已训练的深度神经网络模型;
所述压缩单元42,适于分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;所述压缩单元42,包括:获取子单元421、量化子单元422、测试子单元423及恢复子单元424,其中:
所述获取子单元421,适于获取第i层对应的预设量化等级;
所述量化子单元422,适于按照所述获取子单元421获取到的第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;以及当所述测试子单元423的测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理;
所述测试子单元423,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元424,适于当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。
由上述内容可知,对于已训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
在具体实施中,所述量化子单元422,可以采用近似最近邻搜索算法,结合预设的量化等级对第i层参数进行量化。可以理解的是,在实际应用中,可以根据实际应用场景选用其他的算法,对第i层参数进行量化,此处不再赘述。
在具体实施中,所述深度神经网络模型的压缩装置40还可以包括:第二获取单元43及补偿单元44,其中:
所述第二获取单元43,适于获取第i层对应的补偿系数;
所述补偿单元44,适于根据第二获取单元43获取到第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
在具体实施中,当获取到第i层对应的补偿系数后,可以将所得到的补偿系数与第i层量化后的参数分别相乘,得到的各乘积即为补偿后的补偿参数。
在具体实施中,所述第二获取单元43,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
在本发明一实施例中,所述补偿单元44,适于采用如下方式得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
可以理解的是,在实际应用中,也可以根据第i层量化前的参数及量化后的参数,采用其他的计算方式得到第i层的补偿系数,此处不再赘述。根据量化前的参数及量化后的参数通过变换计算方式来计算得到各层对应的补偿系数,也处于本发明的保护范围内。
采用上述方案,通过补偿系数对量化后的各层参数进行补偿,可以有效的降低量化对深度神经网络模型的精度损失,使得量化后的深度神经网络模型能够维持原有的精度。
在具体实施中,所述压缩单元42还可以包括:标记子单元425,适于当所述测试子单元的测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。这样可以节约计算资源,缩短对所述深度神经网络模型压缩所需的时间。
在具体实施中,所述深度神经网络模型的压缩装置40还可以包括:停止量化单元(未示出),适于在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
在具体实施中,所述压缩单元42还可以包括:检测子单元426及重新量化子单元427,其中:
所述检测子单元426,适于完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;
所述重新量化子单元427,适于当所述检测子单元426检测到量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化;所述重新量化子单元427可以包括:获取模块、量化等级调整模块及重新量化模块,其中:
所述获取模块,适于获取可继续量化层参数;
所述量化等级调整模块,适于当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
所述重新量化模块,适于采用调整后的量化等级对第j层参数进行量化;以及对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求;
所述测试子单元423,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元424,适于当所述重新测试模块的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数。
在具体实施中,所述重新量化模块,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
在具体实施中,所述测试子单元423,适于采用如下方式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
在具体实施中,所述深度神经网络模型的压缩装置40还可以包括:训练单元(未示出),适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
在具体实施中,所述深度神经网络模型的压缩装置的工作原理及工作流程,可以参见本发明上述实施例提供的深度神经网络模型的压缩方法中的描述,此处不做赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行本发明上述实施例中提供的任一种深度神经网络模型的压缩方法的步骤。
本发明实施例还提供一种终端,所述终端可以包括存储器及处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行本发明上述实施例中提供的任一种深度神经网络模型的压缩方法的步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (23)
1.一种深度神经网络模型的压缩方法,其特征在于,包括:
获取已训练的深度神经网络模型;
分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;
对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;其中,对所述已训练的深度神经网络模型中的第i层参数,进行如下量化处理:
获取第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;
采用验证集样本对量化后的深度神经网络模型进行测试;
当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
2.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,在按照所述第i层对应的预设量化等级对所述已训练的深度神经网络模型中的第i层参数进行量化后,还包括:
获取第i层对应的补偿系数;
根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
3.根据权利要求2所述的深度神经网络模型的压缩方法,其特征在于,所述获取第i层对应的补偿系数,包括:
根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
4.根据权利要求3所述的深度神经网络模型的压缩方法,其特征在于,所述根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数,包括:
采用如下方式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
5.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,还包括:
当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
6.根据权利要求5所述的深度神经网络模型的压缩方法,其特征在于,还包括:
在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
7.根据权利要求5所述的深度神经网络模型的压缩方法,其特征在于,所述对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:
完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;
当量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化,包括:
获取可继续量化层参数;
当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
采用调整后的量化等级对第j层参数进行量化;
采用验证集样本对量化后的深度神经网络模型进行测试;
当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
8.根据权利要求7所述的深度神经网络模型的压缩方法,其特征在于,所述采用调整后的量化等级对第j层参数进行量化,包括:
采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
9.根据权利要求7所述的深度神经网络模型的压缩方法,其特征在于,所述采用验证集样本对量化后的深度神经网络模型进行测试,包括:
采用如下方式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第m层前的验证结果,为第t次量化第m层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
10.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,还包括:
在首次迭代量化时,采用如下方式得到第i层对应的预设量化等级:
对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
11.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,当量化后的深度神经网络模型满足预设的压缩体积需求之后,还包括:
对量化后的深度神经网络模型进行重新训练。
12.一种深度神经网络模型的压缩装置,其特征在于,包括:
第一获取单元,适于获取已训练的深度神经网络模型;
压缩单元,适于分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,所述迭代量化为对所述深度神经网络模型中的所有层均进行一次量化;对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,N≥0;所述压缩单元,包括:获取子单元、量化子单元、测试子单元及恢复子单元,其中:
所述获取子单元,适于获取第i层对应的预设量化等级;
所述量化子单元,适于按照所述获取子单元获取到的第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;以及当所述测试子单元的测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理;
所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元,适于当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。
13.根据权利要求12所述的深度神经网络模型的压缩装置,其特征在于,还包括:第二获取单元及补偿单元,其中:
所述第二获取单元,适于获取第i层对应的补偿系数;
所述补偿单元,适于根据第二获取单元获取到第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
14.根据权利要求13所述的深度神经网络模型的压缩装置,其特征在于,所述第二获取单元,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
15.根据权利要求14所述的深度神经网络模型的压缩装置,其特征在于,所述补偿单元,适于采用如下方式得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
16.根据权利要求12所述的深度神经网络模型的压缩装置,其特征在于,所述压缩单元还包括:标记子单元,适于当所述测试子单元的测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,使得所述第i层不参与之后的量化处理过程。
17.根据权利要求16所述的深度神经网络模型的压缩装置,其特征在于,还包括:停止量化单元,适于在对所述深度神经网络模型进行迭代量化过程中,当检测到所述深度神经网络模型中的所有层均被标记为不可继续量化层,且量化后的深度神经网络模型不满足预设的压缩体积需求时,停止对所述深度神经网络模型的量化。
18.根据权利要求16所述的深度神经网络模型的压缩装置,其特征在于,所述压缩单元还包括:检测子单元及重新量化子单元,其中:
所述检测子单元,适于完成一次迭代量化后,检测量化后的深度神经网络模型是否满足所述预设的压缩体积需求;
所述重新量化子单元,适于当所述检测子单元检测到量化后的深度神经网络模型不满足所述预设的压缩体积需求时,重新对所述深度神经网络模型中的各层参数进行量化;所述重新量化子单元包括:获取模块、量化等级调整模块及重新量化模块,其中:
所述获取模块,适于获取可继续量化层参数;
所述量化等级调整模块,适于当第j层参数可继续量化时,调整量化等级,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
所述重新量化模块,适于采用调整后的量化等级对第j层参数进行量化;
以及对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求;
所述测试子单元,适于采用验证集样本对量化后的深度神经网络模型进行测试;
所述恢复子单元,适于当所述重新测试模块的测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数。
19.根据权利要求18所述的深度神经网络模型的压缩装置,其特征在于,所述重新量化模块,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
20.根据权利要求18所述的深度神经网络模型的压缩装置,其特征在于,所述测试子单元,适于采用如下方式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
21.根据权利要求12所述的深度神经网络模型的压缩装置,其特征在于,还包括:训练单元,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
22.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至11任一项所述的深度神经网络模型的压缩方法的步骤。
23.一种终端,其特征在于,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行权利要求1至11任一项所述的深度神经网络模型的压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710267090.4A CN108734268A (zh) | 2017-04-21 | 2017-04-21 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710267090.4A CN108734268A (zh) | 2017-04-21 | 2017-04-21 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108734268A true CN108734268A (zh) | 2018-11-02 |
Family
ID=63933596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710267090.4A Pending CN108734268A (zh) | 2017-04-21 | 2017-04-21 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108734268A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348562A (zh) * | 2019-06-19 | 2019-10-18 | 北京迈格威科技有限公司 | 神经网络的量化策略确定方法、图像识别方法和装置 |
CN110766131A (zh) * | 2019-05-14 | 2020-02-07 | 北京嘀嘀无限科技发展有限公司 | 数据处理装置、方法和电子设备 |
CN111260052A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 图像处理方法、装置、设备 |
WO2020134829A1 (zh) * | 2018-12-25 | 2020-07-02 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
CN111738419A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 神经网络模型的量化方法和装置 |
CN113139650A (zh) * | 2020-01-20 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 深度学习模型的调优方法和计算装置 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上***、数据中心和相关方法 |
-
2017
- 2017-04-21 CN CN201710267090.4A patent/CN108734268A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260052A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 图像处理方法、装置、设备 |
WO2020134829A1 (zh) * | 2018-12-25 | 2020-07-02 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
US11270208B2 (en) | 2018-12-25 | 2022-03-08 | Shenzhen Intellifusion Technologies Co., Ltd. | Neural network batch normalization optimization method and apparatus |
CN110766131A (zh) * | 2019-05-14 | 2020-02-07 | 北京嘀嘀无限科技发展有限公司 | 数据处理装置、方法和电子设备 |
CN110348562A (zh) * | 2019-06-19 | 2019-10-18 | 北京迈格威科技有限公司 | 神经网络的量化策略确定方法、图像识别方法和装置 |
CN113139650A (zh) * | 2020-01-20 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 深度学习模型的调优方法和计算装置 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上***、数据中心和相关方法 |
CN111738419A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 神经网络模型的量化方法和装置 |
CN111738419B (zh) * | 2020-06-19 | 2024-01-12 | 北京百度网讯科技有限公司 | 神经网络模型的量化方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108734287A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN108734266A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN108734268A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN111709522B (zh) | 一种基于服务器-嵌入式协同的深度学习目标检测*** | |
CN107636690B (zh) | 基于卷积神经网络的全参考图像质量评估 | |
CN110378052A (zh) | 基于循环神经网络考虑未来工况的设备剩余寿命预测方法 | |
CN108734264A (zh) | 深度神经网络模型压缩方法及装置、存储介质、终端 | |
CN111860982A (zh) | 一种基于vmd-fcm-gru的风电场短期风电功率预测方法 | |
CN106485316A (zh) | 神经网络模型压缩方法以及装置 | |
CN108876021B (zh) | 一种中长期径流预报方法及*** | |
CN109002889A (zh) | 自适应迭代式卷积神经网络模型压缩方法 | |
CN110363337B (zh) | 一种基于数据驱动的抽油机量油方法及*** | |
CN111325342A (zh) | 模型的压缩方法、装置、目标检测设备和存储介质 | |
CN109388779A (zh) | 一种神经网络权重量化方法和神经网络权重量化装置 | |
CN112101487B (zh) | 一种细粒度识别模型的压缩方法和设备 | |
CN115600650A (zh) | 基于强化学习的自动化卷积神经网络量化剪枝方法、设备和存储介质 | |
CN115062668A (zh) | 基于RAdam优化宽度学习的谐波参数检测方法和*** | |
CN110309904A (zh) | 一种神经网络压缩方法 | |
CN114861880A (zh) | 基于空洞卷积神经网络的工业设备故障预测方法及装置 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类***及方法 | |
CN101399708B (zh) | 一种建立网络性能模型的方法和设备 | |
CN111611654A (zh) | 一种铆接结构的疲劳预测方法、装置及设备、存储介质 | |
CN110208702B (zh) | 一种基于神经网络的锂电池超声信息特性提取方法 | |
CN113313682B (zh) | 基于时空多尺度分析的无参考视频质量评价方法 | |
CN112947080B (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 |
Application publication date: 20181102 |
|
RJ01 | Rejection of invention patent application after publication |