CN108734266A - 深度神经网络模型的压缩方法及装置、终端、存储介质 - Google Patents

深度神经网络模型的压缩方法及装置、终端、存储介质 Download PDF

Info

Publication number
CN108734266A
CN108734266A CN201710266304.6A CN201710266304A CN108734266A CN 108734266 A CN108734266 A CN 108734266A CN 201710266304 A CN201710266304 A CN 201710266304A CN 108734266 A CN108734266 A CN 108734266A
Authority
CN
China
Prior art keywords
neural network
deep neural
network model
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
Application number
CN201710266304.6A
Other languages
English (en)
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai Co Ltd
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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201710266304.6A priority Critical patent/CN108734266A/zh
Publication of CN108734266A publication Critical patent/CN108734266A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations 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

一种深度神经网络模型的压缩方法及装置、终端、存储介质,所述方法包括:基于所获取的深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,直至精简后的深度神经网络模型满足预设的精度需求;对所述精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型;当确定重新训练后的深度神经网络模型不满足预设的压缩体积需求时,对重新训练后的深度神经网络模型中的各层参数进行迭代量化;对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。上述的方案,可以是在对深度神经网络模型压缩时,兼顾深度神经网络模型的精度及有效性。

Description

深度神经网络模型的压缩方法及装置、终端、存储介质
技术领域
本发明涉及信息处理技术领域,尤其涉及一种深度神经网络模型的压缩方法及装置、终端、存储介质。
背景技术
随着深度神经网络相关技术研究的迅速发展,相关领域内涌现了大批与深度神经网络相关的技术,如应用于视觉领域的卷积神经网络和应用于语音识别或自然语言处理领域的递归神经网络等,这些神经网络技术均极大地提高了相应领域的处理精度。
深度神经网络与浅层学习相比,深度神经网络的开发潜力巨大。通过深度神经网络模型的多层处理结构可以提取和分析样本的表征特征,由浅入深地逐层变换和计算样本特征并计算处理结果。通过对深度神经网络模型进行增宽增长处理,可以使深度神经网络模型获得相对更优的处理结果。
然而,深度神经网络模型的参数通常在百万、千万或上亿数量级,因此对计算和存储设备的要求较高。由于深度神经网络模型存储及计算时深度神经网络模型的参数传输等问题,限制了深度神经网络模型在移动设备上的应用。
目前,通常采用减少深度神经网络模型的参数、节点数目以及改变多样性类方法,达到压缩深度神经网络模型的目的。虽然,这样可以对神经网络模型进行一定的压缩,然而,精简后的深度神经网络模型的精度及有效性较低。
发明内容
本发明解决的技术问题是在对深度神经网络模型压缩时如何兼顾深度神经网络模型的精度及有效性。
为解决上述技术问题,本发明实施例提供一种深度神经网络模型的压缩方法,包括:获取已训练的深度神经网络模型;基于所获取的所述深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,直至精简后的深度神经网络模型满足预设的精度需求;对所述精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型;当确定重新训练后的深度神经网络模型不满足预设的压缩体积需求时,分别采用各层对应的预设量化等级,对重新训练后的深度神经网络模型中的各层参数进行迭代量化;所述迭代量化为对所述重新训练的所有层均进行一次量化;对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
可选地,所述基于所获取的所述深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,包括:采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值;将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序;从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型;判断当前次精简后的深度神经网络模型是否满足所述精度需求;当确定当前次精简后的深度神经网络模型满足所述精度需求时,停止精简操作;当确定所述当前次精简后的深度神经网络模型不满足所述精度需求时,对当前次精简后的深度神经网络模型执行下一次精简操作,直至精简后的深度神经网络模型满足所述精度需求。
可选地,所述采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值,包括:
Sm,n=||c(t)||f-||c(t)'||f;且f={1,2};其中,Sm,n为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前后对应的精度改变数值,为第t次精简深度神经网络模型前的精度,为第t次压缩深度神经网络模型前的精度,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
可选地,当深度神经网络的输出经过softmax激活函数并使用交叉熵计算损失时,c(t)采用如下的公式计算得到:
且:其中,V为验证集样本的个数,xv表示验证集样本中的第ν个样本,表示验证集样本中的第ν个样本k位置的标签,为第t次精简前的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为第t次精简后的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为t次精简后深度神经网络第M层的第k个输出响应。
可选地,所述精度需求满足预设的精度需求包括以下至少一种:精简后的深度神经网络模型满足预设的精度阈值;精简后的深度神经网络模型满足预设的压缩体积阈值。
可选地,所述精度单元包括深度神经网络模型中的权连接、节点、层、模块和子网络。
可选地,当量化后的深度神经网络模型满足预设的压缩体积需求之后,所述方法还包括:对量化后的深度神经网络模型进行重新训练。
可选地,所述对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:获取重新训练后的深度神经网络模型的第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第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次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
可选地,所述简化单元,适于采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值;将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序;从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型;当确定当前次精简后的深度神经网络模型满足所述精度需求时,停止精简操作;当确定所述当前次精简后的深度神经网络模型不满足所述精度需求时,对当前次精简后的深度神经网络模型执行下一次精简操作,直至精简后的深度神经网络模型满足所述精度需求。
可选地,所述简化单元,适于采用如下的公式对当前次精简前的深度神经网络模型进行测试:
Sm,n=||c(t)||f-||c(t)'||f;且f={1,2};其中,Sm,n为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前后对应的精度改变数值,为第t次精简深度神经网络模型前的精度,为第t次压缩深度神经网络模型前的精度,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
可选地,所述简化单元,适于当深度神经网络的输出经过softmax激活函数并使用交叉熵计算损失时,采用如下的公式计算得到c(t)
且:其中,V为验证集样本的个数,xv表示验证集样本中的第ν个样本,表示验证集样本中的第ν个样本k位置的标签,为第t次精简前的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为第t次精简后的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为t次精简后深度神经网络第M层的第k个输出响应。
可选地,所述精度需求满足预设的精度需求包括以下至少一种:精简后的深度神经网络模型满足预设的精度阈值;精简后的深度神经网络模型满足预设的压缩体积阈值。
可选地,所述精度单元包括深度神经网络模型中的权连接、节点、层、模块和子网络。
可选地,所述装置还包括:第二训练单元,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
可选地,所量化单元,适于获取重新训练后的深度神经网络模型的第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
可选地,所述装置还包括:补偿单元,适于在按照所述第i层对应的预设量化等级对所述已训练的深度神经网络模型中的第i层参数进行量化后,获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
可选地,所述补偿单元,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
可选地,所述补偿单元,适于采用如下的公式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
可选地,所述装置还包括:标记单元,适于当测试结果显示量化后的深度神经网络模型不满足预设精度改变阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,以使得所述第i层不参与之后的量化处理过程。
可选地,所述量化单元,适于当完成一次迭代量化后,且量化后的深度神经网络模型不满足所述预设的压缩体积需求时,对所述深度神经网络模型中的各层参数执行下一次迭代量化,包括:获取可继续量化的第j层参数;调整量化等级;其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;采用调整后的量化等级对第j层参数进行量化;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
可选地,所述量化单元,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
可选地,所述量化单元,适于采用如下的公式对量化后的深度神经网络模型进行测试,包括:
其中,为第t次量化第m层前的验证结果,为第t次量化第m层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
可选地,所述量化单元,适于在首次迭代量化时,对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
可选地,所述量化单元,适于当确定量化后的深度神经网络模型不满足所述压缩体积需求,且量化后的深度神经网络模型不具有可继续量化的层时,停止所述迭代量化操作。
可选地,所述装置还包括:
存储单元,当完成所述迭代量化操作时,将所述迭代量化后的深度神经网络模型进行存储。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一种的深度神经网络模型的压缩方法的步骤。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一种的深度神经网络模型的压缩方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
上述的方案,基于所有精简单元在所述深度神经网络模型中的整体贡献度,对深度网络模型进行精简,全局性地衡量各个精简单元在深度神经网络模型中的整体贡献度,通过改变参数密度对深度神经网络模型进行精简,可以提高精简后的深度神经网络模型的精度;同时,对于重新训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
进一步地,在对深度神经网络模型的第i层量化后,获取第i层对应的补偿系数,通过对量化后的参数进行补偿,可以有效的减小量化过程中深度神经网络模型的精度损失。
进一步地,当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,所述第i层被标记为不可继续量化层后,将不参与之后的量化处理过程,从而可以节约计算资源。
进一步地,采用聚类分析的方法确定第i层对应的预设量化等级,从而可以快速的得到第i层参数的量化层级且得到的量化等级与第i层参数的实际情况分布情况的匹配度更好,进一步提高量化后的深度神经网络模型的有效性。
进一步地,对量化后的深度神经网络模型进行重新训练,可以提高量化后的深度神经网络模型的性能。
附图说明
图1是本发明实施例中一种深度神经网络模型的压缩方法的流程图;
图2是本发明实施例中一种对深度神经网络模型进行精简的流程图;
图3是本发明实施例中一种对重新训练后的深度神经网络模型进行迭代量化的方法的流程图;
图4是本发明实施例中一种第i层参数量化处理方法的流程图;
图5是本发明实施例中另一种深度神经网络模型的压缩方法的流程图;
图6是本发明实施例中另一种深度神经网络模型的压缩装置的结构示意图。
具体实施方式
目前,深度神经网络模型的精简压缩方法主要分为两类:改变深度神经网络模型密度类方法及改变深度神经网络模型的参数的多样性类方法。
改变深度神经网络模型密度类方法,通过改变神经网络的稀疏程度达到压缩的目的。在一些算法中,通常给定一个比较小的阈值来删除深度神经网络模型中的小幅值参数,主观性较大,对不同结构的神经网络需要进行过多的参数调整才可能获得理想的精简效果。另一些算法针对输入节点与输出响应间的贡献关系,对输入节点进行筛选,此类算法只针对单隐藏层神经网络且没有对隐藏层参数进行足够的处理,不适合网络结构较深的深度神经网络。
上述方法仅针对单层内或部分网络层间的关系进行精简,没有对深度神经网络进行整体性地考虑,因此难以保证模型精简的有效性。此外,对于较大的深度神经网络或多个深度神经网络组成的模型,难以在有限的时间内获得期望的精简结果。
改变多样性类方法通过量化或编码模型的参数的方式,采用少量码字表示模型参数的方式,达到压缩深度神经网络模型的目的。目前,改变多样性类的方法在对深度神经网络模型中各层参数量化时使用一致的量化标准,然而,不同层的参数对深度神经网络模型的重要性不同。采用一致的量化标准对深度神经网络模型进行量化压缩,这会导致量化后的深度神经网络模型的有效性降低,所得到的处理结果不是最优的处理结果。
为解决上述问题,在本发明实施例中基于所有精简单元在所述深度神经网络模型中的整体贡献度,对深度网络模型进行精简,全局性地衡量各个精简单元在深度神经网络模型中的整体贡献度,通过改变参数密度对深度神经网络模型进行精简,可以提高精简后的深度神经网络模型的精度;同时,对于重新训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1示出了本发明实施例中的深度神经网络模型的压缩方法的流程图。请参见图1,本实施例的深度神经网络模型的压缩方法可以包括如下步骤:
步骤S101:获取已训练的深度神经网络模型。
在具体实施中,所获取的已训练的深度神经网络模型为待进行压缩的深度神经网络模型。
步骤S102:基于所获取的所述深度神经网络模型中精简单元的贡献度的信息,对所述深度神经网络模型进行精简,直至精简后的深度神经网络模型满足预设的精度需求。
在具体实施中,所述精度需求可以根据实际的需要进行设置。
步骤S103:对精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型。
在具体实施中,为了进一步提高精简后的深度神经网络模型的性能,可以采用批均衡化的方法来缩放、平移规范化网络,以提高训练得到的深度神经网络模型的性能。
步骤S104:当确定重新训练后的深度神经网络模型不满足预设的压缩体积需求时,对所述重新训练后的深度神经网络模型执行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
在具体实施中,基于所有精简单元在所述深度神经网络模型中的整体贡献度,对深度网络模型进行精简,可以全局性地衡量各个精简单元在深度神经网络模型中的整体贡献度,故可以提高精简后的深度神经网络模型的精度和有效性。
下面将结合图2对本发明实施例中的深度神经网络的压缩方法进行进一步详细的描述。
步骤S201:获取已训练完成的深度神经网络模型。
步骤S202:采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值。
在具体实施中,可以将当前次精简前的深度神经网络模型中的各个权连接、各个节点、各个层、各个子网络分别作为一个单独的精简单元。在采用验证集样本对当前次精简前的深度神经网络模型进行测试时,可以逐个权连接、逐个节点、逐个网络层、逐个子网络的方式遍历深度神经网络模型中的所有精简单元,并采用验证集样本对深度神经网络模型进行测试,通过将对应的精简单元删除前的深度神经网络模型的验证结果,与该精简单元删除后深度神经网络模型的验证结果进行比较,得到该精简单元对应的验证结果。
在本发明一实施例中,对于有标签的验证样本集{(x(1),y(1)),…,(x(V),y(V))},对于深度神经网络模型中第m层的第n个节点,采用如下的公式对该节点对深度神经网络模型的贡献进行衡量,也即计算得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值:
Sm,n=||c(t)||f-||c(t)'||f;f={1,2} (1)
其中,Sm,n为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前后对应的精度改变数值,为第t次精简深度神经网络模型前的精度,为第t次压缩深度神经网络模型前的精度,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
在本发明一实施例中,当深度神经网络的输出经过softmax激活函数并使用交叉熵计算损失时,公式(1)中的c(t)采用如下的公式计算得到:
且:
其中,V为验证集样本的个数,xv表示验证集样本中的第ν个样本,表示验证集样本中的第ν个样本k位置的标签,为第t次精简前的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为第t次精简后的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为t次精简后深度神经网络第M层的第k个输出响应。
上述仅仅给出了采用验证集样本对当前次精简前的深度神经网络模型进行测试的一个特例,本领域的技术人员人员可以理解的是,也可以采用其他的方式采用验证集样本对当前次精简前的深度神经网络模型进行测试。
在本发明一实施例中,采用如下的公式对精简后的深度神经网络模型进行测试:
其中,为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前对应的精度数值,为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除后对应的精度数值,γ为精度改变的判断阈值,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
步骤S203:将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序。
在具体实施中,因当前次精简前的深度神经网络模型中的各个权连接、各个节点、各个层、各个子网络均作为一个单独的精简单元。当计算得到当前次精简前深度神经网络模型中所有精简单元的精度改变数值时,可以按照精度改变数值对同一类型的精简单元的精度改变数值进行排序。其中,当前次精简前的深度神经网络模型中的所有权连接的精度改变数值形成一个排序列表,当前次精简前的深度神经网络模型中的所有节点的精度改变数值形成一个排序列表,当前次精简前的深度神经网络模型中的所有网络层的精度改变数值形成一个排序列表,当前次精简前的深度神经网络模型中的各个节点的精度改变数值形成一个排序列表,也即总计形成4个,或者4种类型的精度改变数值排序列表。其中,排序的方式可以为升序,也可以为降序。
步骤S204:从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型。
在具体实施中,当精简单元对应的精度改变数值越大时,表明该精简单元在深度神经网络模型中的贡献度越大;反之,则该精简单元在深度神经网络模型中的贡献度越小,通过删除在深度神经网络模型中的贡献度小的精简单元,可以确保深度神经网络模型的精度。
在本发明一实施例中,当获取到上述的4个精度改变数值列表时,可以按照预设的规则从上述的4个精度改变数值列表删除预设数量的精度改变数值最小的精简单元,从而对当前次精简前的深度神经网络模型进行一次精简,得到当前次精简后的深度神经网络模型。
本领域的技术人员可以理解的是,一次删除的精简单元对于深度神经网络模型的贡献度最小的精简单元,也即精度改变数值最小的精简单元的数量可以根据实际的需要进行设置。例如,一次删除一个即精度改变数值最小的精简单元,以确保精简后的深度神经网络模型的精度。当然,为了提高精简的效率,也可以一次性删除多个精度改变数值最小的精简单元,以提高精简的效率。
步骤S205:判断当前次精简后的深度神经网络模型是否满足预设的精度需求;当判断结果为是时,可以停止精简操作,并执行步骤S207;反之,可以执行步骤S206。
在本发明一实施例中,当前次精简后的深度神经网络模型满足的精度需求为满足预设的精度阈值;在本发明另一实施例中,当前次精简后的深度神经网络模型满足的精度需求为满足预设的压缩体积阈值;在本发明又一实施例中,当前次精简后的深度神经网络模型满足的精度需求,为满足预设的压缩体积阈值或预设的压缩体积阈值;在本发明其他的实例中,当前次精简后的深度神经网络模型满足的精度需求,为满足预设的压缩体积阈值和预设的压缩体积阈值。
在具体实施中,当确定所述当前次精简后的深度神经网络模型满足所述精度需求时,可以停止对前次精简后的深度神经网络模型进行精简的操作,并将当前次精简后的深度神经网络模型,作为精简后的深度神经网络模型。
步骤S206:将当前次精简后的深度神经网络模型作为下一次精简前的深度神经网络模型,并从步骤S202重新开始执行下一次的精简操作。
在具体实施中,当确定所述当前次精简后的深度神经网络模型不满足所述精度需求时,可以继续对当前次精简后的深度神经网络模型进行执行下一次的精简的操作,直至精简后的深度神经网络模型不满足所述精度需求。
在本发明一实施例中,为了提高深度神经网络模型的性能,本发明实施例中的深度神经网络模型的压缩方法还可以包括:
步骤S207:对精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型。
在具体实施中,对当精简后的深度神经网络模型满足预设的精度需求是,可以对精简后的深度神经网络模型进行重新训练,如采用批均衡化的方法来缩放、平移规范化网络,以提高训练得到的深度神经网络模型的性能。
在具体实施中,当对精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型之后,可以对重新训练后的深度神经网络模型进行量化,
参照图3,给出了本发明实施例重新训练后的深度神经网络模型进行量化的方法,具体可以包括如下的步骤:
步骤S301:获取重新训练后的深度神经网络模型。
步骤S302:判断重新训练后的深度神经网络模型是否满足预设的压缩体积需求;当判断结果为是时,可以结束操作;反之,则可以执行步骤S303。
步骤S303:分别采用各层对应的预设量化等级,逐层对所述重新训练后的深度神经网络模型中的各层参数进行量化。
在具体实施中,分别采用各层对应的预设量化等级,逐层对所述深度神经网络模型中的各层参数进行迭代量化,对所述深度神经网络模型中的所有层均进行一次量化作为一次迭代量化。
在具体实施中,各层参数分别对应的预设量化等级可以相同,也可以不同。可以根据各层参数的数量、对量化后的精度的需求以及压缩体积需求进行设定。
步骤S304:对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
在具体实施中,将深度神经网络模型应用于移动设备上时,由于移动设备的存储及计算能力的限制,需要对深度神经网络模型进行压缩,以减小深度神经网络模型的体积,也即是减小所占用的存储空间,以及降低运算时对移动设备的计算能力要求。
在具体实施中,N≥0。检测完成一次迭代量化后的深度神经网络模型是否满足预设的压缩体积需求。当满足预设的压缩体积需求时,即完成了对深度神经网络模型的压缩。当不满足预设的压缩体积需求时,则在上次迭代量化的深度神经网络模型的基础上,继续对量化后的深度神经网络模型进行下一次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
为了便于本领域技术人员更好的理解和实现本发明实施例,下面以已训练的深度神经网络模型中的第i层参数为例,结合图4对量化处理过程进行说明。对第i层参数的量化处理过程可以包括如下步骤:
步骤401:获取第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层的节点数目。
步骤402:按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化。
在本发明一实施中,可以采用近似最近邻搜索算法,根据第i层对应的预算量化等级对第i层参数进行量化。
步骤403:采用验证集样本对量化后的深度神经网络模型进行测试。
在具体实施中,可以采用验证集样本对深度神经网络模型进行测试,可以根据量化前的验证结果,量化后的验证结果以及精度改变的判断阈值,来判别量化后的深度神经网络模型的精度是否满足精度需求。
在本发明一实施例中,可以采用公式(2)对量化后的深度神经网络模型进行测试:
其中,为第t次量化第i层前的验证结果,为第t次量化第i层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
在具体实施中,可以根据需实际需要选择使用L1范数或L2范数。L1范数可以避免溢出及截断造成的精度损失,L2范数对计算设备的精度要求较高。
步骤404:判断测试结果是否满足预设的精度改变阈值;当判断结果为是时,可以执行步骤405;反之,则可以执行步骤406。
步骤405:继续执行对其他层的参数进行量化处理。
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层的参数进行量化处理。
步骤406:将第i层参数恢复为量化前的参数。
当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。
在具体实施中,对于步骤S406中,当完成所述深度神经网络模型中的所有层参数量化后,各层参数量化后的深度神经网络模型均不满足预设的精度改变阈值,则将各层参数均恢复为量化前的参数。此时,虽然对深度神经网络模型中的各层参数执行量化操作,但随后也执行恢复操作,故最终得到的深度神经网络模型与量化之前的深度神经网络模型相同,也即未对所述深度神经网络模型进行实质化的量化,故N取为0。
由上述内容可知,对于已训练的深度神经网络模型,采用第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型不满足预设精度改变阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。
由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
在具体实施中,当对深度神经网络模型中的一层或多层参数进行量化后,将会对深度神经网络模型的精度产生影响,为降低量化对深度神经网络模型的精度的影响,在本发明一实施例中,在根据所确定的量化等级对第i层的各量化范围内的参数进行量化后,还可以获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。例如,将第i层的补偿系数分别与第i层量化后的参数做乘积运算,并将运算结果作为补偿后的量化参数。
在具体实施中,可以根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
在本发明一实施例中,可以如下的公式得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
采用上述方案,在采用补偿系数对量化后的深度神经网络模型的精度损失进行补偿,可以合理的平衡深度神经网络模型的压缩度及精度,提高压缩后的深度神经网络模型的有效性。
在具体实施中,为提高深度神经网络模型的压缩速度,并减小深度神经网络模型压缩过程中的计算量,在本发明一实施例中,当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,检测当前量化所采用的量化等级是否已经达到预设的等级阈值,当达到预设的等级阈值时,将第i层标记为不可继续量化层,这样,在执行后续的迭代量化时,当通过标记确定第i层为不可继续量化层时,可以无需再重新判断第i层是否可继续量化,并可以在后续的量化过程中,将第i层排除在后续的量化处理过程之外。
在具体实施中,步骤S304中对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,可以包括如下步骤:
获取可继续量化层参数,当第j层参数可继续量化时,调整量化等级,其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同。
在本发明一实施例中,在对深度神经网络模型进行量化压缩过程时,可以先采用较低的量化等级对深度神经网络模型进行压缩,然后根据实际需要逐渐提高量化等级,可以减少深度神经网络模型压缩过程中的迭代次数,实现快速压缩。其中,量化等级越低对量化后的深度神经网络模型的精度影响越大。例如,量化等级为2bit对深度神经网络模型的精度影响大于量化等级为4bit对深度神经网络模型的精度影响。
在具体实施中,可以采用调整后的量化等级对第j层参数进行量化。例如,可以采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
在具体实施中,可以采用验证集样本对量化后的深度神经网络模型进行测试。当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值时,恢复第j层量化前的参数。当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
在具体实施中,可以采用上述公式(6)检测量化后的深度神经网络模型是否满足预设的精度阈值,这里不做赘述。
在具体实施中,为提高量化后的深度神经网络模型的性能,在本发明一实施例中,可以对量化后的深度神经网络模型进行重新训练。
在具体实施中,对量化后的深度神经网络模型进行重新训练的过程中,可以采用批均衡化的方法来缩放、平移规范化网络,以提高训练得到的深度神经网络模型的性能。
采用上述方案对深度神经网络模型进行量化压缩,可以在精简深度神经网络模型的体积的同时,兼顾深度神经网络模型原有的精度,提高深度神经网络模型的有效性,从而可以实现在移动设备上的应用。
在具体实施中,为提高各层的预设量化等级与对应层参数的匹配度,在本发明一实施例中,在首次迭代量化时,采用如下方式得到第i层对应的预设量化等级:对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
在具体实施中,可以根据聚类分析结果中的聚类中心数目及聚类中心值,确定对应的量化范围。根据聚类中心数目及对应的量化范围确定量化等级。
在本发明一实施例中,采用减法聚类对第i层参数进行聚类分析。减法聚类将每一个参数都作为一个潜在的聚类中心,之后减去已完成的聚类中心的影响,再次寻找新的聚类中心。在具体实施中,所述参数可以为权连接,也可以为偏置,还可以同时包括权连接及偏置。下面以参数为权连接为例对量化范围及量化等级的确定流程进行举例说明:
例如,可以采用公式(4)计算聚类中心w为时的聚类中心值:
其中,β为影响范围调节系数,为第i层第n个节点与第i-1层第m个节点的权连接。
计算得到的聚类中心值越大,表征当前权连接比其余权连接更可能是聚类中心。选择聚类中心值最大的权连接为聚类中心后,为发现其他聚类中心,需要去除已选择过的聚类中心的影响,可以采用如下公式来发现新的聚类中心:
其中,β为影响范围调节系数;Mk为第k次迭代时计算聚类中心的函数;w*为第k次迭代时发现的新的聚类中心;Mk-1为第k-1次迭代时计算聚类中心的函数;Mk-1为第k-1次迭代时的最大值。
在具体实施中,迭代执行公式(4)、(5)及(6)直至满足减法聚类预设的停止条件。由于量化等级通常对应于偶数,如32bit、8bit等,故当计算得到的聚类中心的数目为奇数时,可以向上取偶数。例如,采用减法聚类得到的聚类中心的数目为3,则取聚类中心的数目为4。
在得到聚类中心数目之后,可以根据各聚类中心对应的聚类中心值,确定第i层参数对应的量化范围。根据所确定的聚类中心数目及对应的量化范围,确定量化等级,其中,量化等级的数目可以与聚类中心数目相同。在实际应用中,可以将量化范围均分为与聚类中心数目相同的量化等级,也可以根据各聚类中心对应的聚类中心值,结合聚类中心数目确定量化等级的数目。
在具体实施中,当采用其他的聚类算法对第i层参数进行聚类分析时,可以基于聚类中心的数目初始化所采用其他的聚类算法,根据聚类分析结果确定量化范围及量化等级。例如,采用无监督聚类对第i层参数进行聚类分析。
在对深度神经网络模型进行首次迭代量化时,采用聚类分析方式确定各层对应的量化等级,可以避免人为定义量化等级时可能引入的精度损失,且可以兼顾到各层参数对深度神经网络模型的重要性。从而可以提高深度神经网络模型压缩的有效性及精度。同时,根据聚类分析结果所确定的量化等级,由于各层对应的量化等级与对应层的参数相关,因此得到的量化等级与对应层参数的匹配度较佳,可以快速的确定各层对应的合适的预设量化等级,从而提高对深度神经网络模型的压缩速度,减少迭代次数,实现快速的对深度神经网络模型的量化压缩。
参照图5给出的本发明实施例中另一种深度神经网络模型的压缩方法的流程图。所述方法可以包括如下步骤:
步骤S501:获取已训练的深度神经网络模型。
步骤S502:采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值。
步骤S503:将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序。
步骤S504:从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型。
步骤S505:判断当前次精简后的深度神经网络模型是否满足预设的精度需求;当判断结果为是时,可以停止精简操作,并执行步骤S509;反之,可以执行步骤S506。
步骤S506:将当前次精简后的深度神经网络模型作为下一次精简前的深度神经网络模型,并从步骤S502重新开始执行下一次的精简操作。
步骤S507:对精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型。
步骤S508:判断所述重新训练后的深度神经网络模型是否满足预设的压缩体积需求;当判断结果为是,可以执行步骤S509;反之,则可以执行步骤S510。
步骤S509:对所述重新训练后的深度神经网络模型进行训练。
步骤S510:判断第i层是否可以继续量化。当判断结果为是时,执行步骤S512,当判断结果为否时,执行步骤S511。
在具体实施中,为减少深度神经网络模型压缩过程中的计算量,缩短压缩时间,在压缩过程中,当发现某层参数不可继续量化时,可以将该层标记为不可继续量化层。当第i层参数没有被标记为不可继续量化层时,第i层可继续量化,相应地,当第i层被标记为不可继续量化层时,第i层不可继续量化。
步骤S511:i++,并执行步骤S510。
i++,即执行i自增1的步骤,也即获取第i+1层参数。
在具体实施中,获取到第i+1层参数后,继续执行步骤S510,对第i+1层参数进行量化。可以理解的是,在获取下一待量化层参数时,可以采用顺序获取的方式,依次对各层参数进行量化,也可以根据预设的获取条件,获取下一待量化层参数。例如,采用随机的方式确定下一待量化层参数,这里不再赘述。
步骤S512:量化第i层参数。
在具体实施中,获取第i层参数对应的预设量化等级,可以采用近似最近邻搜索算法,结合预设量化等级对第i层参数进行量化。
在具体实施中,为了降低量化后的深度神经网络模型的精度损失,可以获取第i层对应的补偿系数。将获取到的补偿系数分别与第i层量化后的参数做乘法运算,得到补偿后的量化参数。将补偿后的量化参数作为第i层的量化参数。
步骤S513:采用验证集样本对量化后的深度神经网络模型进行测试。
在具体实施中,可以采用有标签的验证集样本{(x1,y1),(x2,y2),……,(xv,yv)},分别对量化前及量化后的深度神经网络模型进行验证,得到量化前及量化后的验证结果。根据量化前及量化后的验证结果,可以采用上述公式(6对量化后的深度神经网络模型进行测试。
步骤S514:判断量化后的深度神经网络模型的精度改变是否超过预设的精度改变阈值;当判断结果为是时,可以执行步骤S515;反之,则可有执行步骤S516。
步骤S515:恢复第i层量化前的参数。
在具体实施中,当量化后的深度神经网络模型的精度改变超过预设精度阈值时,量化后的深度神经网络模型的精度损失较大,会影响深度神经网络模型的有效性。在对深度神经网络模型压缩过程中,为使得量化后的深度神经网络模型能保有原精度,恢复第i层量化前的参数。
步骤S516:判断当前采用的量化等级是否已达到预设的等级阈值;当判断结果为是时,执行步骤S517;反之,则可以执行步骤S518。
步骤S517,将第i层参数标记为不可继续量化层。
在具体实施中,为提高压缩速度,可以预先设定一个较低的量化等级对深度神经网络模型中的各层参数进行量化。然而这可能会出现这样一种情况,当采用较低的量化等级量化后的深度神经网络模型的精度可能不满足预设的精度阈值,而将量化等级提高之后,得到的量化后的深度神经网络模型的精度满足预设的精度阈值。故为了节约计算资源,提高压缩速度,且能使得量化后的深度神经网络模型有一个较好的压缩性。可以预设定量化等级的等级阈值。当对第i层量化后得到的量化后的深度神经网络模型的精度不满足预设的精度阈值,且当前所采用的量化等级已经达到预设的等级阈值时,将第i层标记为不可继续量化层。第i层被标记为不可继续量化层后,将不再参与之后的量化处理过程,从而可以节约计算资源,降低计算复杂度。
步骤S518,判断是否已量化所有层;当判断结果为是时,可以执行步骤S508;反之,则可以执行步骤S510。
步骤S519,i++,并执行步骤S510。
i++,即执行i自增1的步骤,也即获取第i+1层参数。
在具体实施中,获取到第i+1层参数后,继续执行步骤S510,对第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。在对所述深度神经网络模型压缩过程中,先采用较低量化等级对深度神经网络模型进行量化,然后根据量化后的深度神经网络模型的精度或者压缩体积需求,调整量化等级,可以加快量化速度。
在本发明一实施例中,当完成上述的精简操作和迭代量化操作时,可以将最终得到的量化后的深度神经网络模型进行存储,以在压缩体积需求和精度需求变化时,可以在所存储的深度神经网络模型的基础上,执行后续的精简操作,以满足新的压缩体积需求和精度需求。
下面将结合图6将对上述本发明实施例中的方法对应的装置做进一步详细的介绍。
图6示出了本发明实施例还提供了一种深度神经网络模型的压缩装置的结构示意图。参见图6,本发明实施例中的一种深度神经网络模型的压缩装置600可以包括获取单元601、简化单元602、第一训练单元603和量化单元604,其中:
获取单元601,适于获取已训练的深度神经网络模型;
简化单元602,适于基于所获取的所述深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,直至精简后的深度神经网络模型满足预设的精度需求;其中,所述精度单元包括深度神经网络模型中的权连接、节点、层、模块和子网络;在具体实施中,所述精度需求满足预设的精度需求包括以下至少一种:精简后的深度神经网络模型满足预设的精度阈值;精简后的深度神经网络模型满足预设的压缩体积阈值。
第一训练单元603,适于对所述精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型;
量化单元604,适于当确定重新训练后的深度神经网络模型不满足预设的压缩体积需求时,分别采用各层对应的预设量化等级,对重新训练后的深度神经网络模型中的各层参数进行迭代量化;所述迭代量化为对所述重新训练的所有层均进行一次量化;对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
在本发明一实施例中,所述简化单元602,适于采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值;将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序;从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型;当确定当前次精简后的深度神经网络模型满足所述精度需求时,停止精简操作;当确定所述当前次精简后的深度神经网络模型不满足所述精度需求时,对当前次精简后的深度神经网络模型执行下一次精简操作,直至精简后的深度神经网络模型满足所述精度需求。
在本发明一实施例中,所述简化单元602,适于采用如下的公式对当前次精简前的深度神经网络模型进行测试:
Sm,n=||c(t)||f-||c(t)'||f;且f={1,2};其中,Sm,n为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前后对应的精度改变数值,为第t次精简深度神经网络模型前的精度,为第t次压缩深度神经网络模型前的精度,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
在本发明一实施例中,所述简化单元602,适于当深度神经网络的输出经过softmax激活函数并使用交叉熵计算损失时,采用如下的公式计算得到c(t)
且:其中,V为验证集样本的个数,xv表示验证集样本中的第ν个样本,表示验证集样本中的第ν个样本k位置的标签,为第t次精简前的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为第t次精简后的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为t次精简后深度神经网络第M层的第k个输出响应。
在具体实施中,所量化单元604,适于获取重新训练后的深度神经网络模型的第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
在具体实施中,所述装置600还可以包括第二训练单元605,其中:
第二训练单元605,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
在具体实施中,所述装置600还可以包括补偿单元606,其中:
补偿单元606,适于在按照所述第i层对应的预设量化等级对所述已训练的深度神经网络模型中的第i层参数进行量化后,获取第i层对应的补偿系数;根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
在本发明一实施例中,所述补偿单元606,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
在本发明一实施例中,所述补偿单元606,适于采用如下的公式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
在具体实施中,所述装置600还可以包括标记单元607,其中:
标记单元607,适于当测试结果显示量化后的深度神经网络模型不满足预设精度改变阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,以使得所述第i层不参与之后的量化处理过程。
在具体实施中,所述量化单元604,适于当完成一次迭代量化后,且量化后的深度神经网络模型不满足所述预设的压缩体积需求时,对所述深度神经网络模型中的各层参数执行下一次迭代量化,包括:获取可继续量化的第j层参数;调整量化等级;其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;采用调整后的量化等级对第j层参数进行量化;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
在本发明一实施例中,所述量化单元604,适于采用如下的公式对量化后的深度神经网络模型进行测试:
其中,为第t次量化第m层前的验证结果,为第t次量化第m层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
在具体实施中,所述量化单元604,适于在首次迭代量化时,对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
在具体实施中,所述量化单元604,适于当确定量化后的深度神经网络模型不满足所述压缩体积需求,且量化后的深度神经网络模型不具有可继续量化的层时,停止所述迭代量化操作。
在具体实施中,所述装置600还可以包括存储单元608,其中:
存储单元608,当完成所述迭代量化操作时,将所述迭代量化后的深度神经网络模型进行存储。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述实施例中的深度神经网络模型的压缩方法的步骤,不再赘述。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述实施例中的深度神经网络模型的压缩方法的步骤,不再赘述。
采用本发明实施例中的上述方案,基于所有精简单元在所述深度神经网络模型中的整体贡献度,对深度网络模型进行精简,全局性地衡量各个精简单元在深度神经网络模型中的整体贡献度,通过改变参数密度对深度神经网络模型进行精简,可以提高精简后的深度神经网络模型的精度;同时,对于重新训练的深度神经网络模型,采用第i层对应的预设量化等级。对所述已训练的深度神经网络模型中的第i层参数进行量化。采用验证集样本对量化后的深度神经网络模型进行测试,当量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数。逐层对所述深度神经网络模型中的各层参数进行量化,完成一次或多次迭代训练,直至量化后的所述深度神经网络模型满足预设的压缩体积需求。由于在对所述深度神经网络模型压缩过程中,采用每层对应的量化等级对所述深度神经网络模型进行量化,并对量化后的所述深度神经网络模型的精度进行检测,全局性的考虑量化对深度神经网络模型所产生的影响,无须减少深度神经网络模型中的各层参数以及节点的数量,从而在对所述深度神经网络模型量化压缩过程中,可以兼顾所述深度神经网络模型的精度及有效性。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (38)

1.一种深度神经网络模型的压缩方法,其特征在于,包括:
获取已训练的深度神经网络模型;
基于所获取的所述深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,直至精简后的深度神经网络模型满足预设的精度需求;
对所述精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型;
当确定重新训练后的深度神经网络模型不满足预设的压缩体积需求时,分别采用各层对应的预设量化等级,对重新训练后的深度神经网络模型中的各层参数进行迭代量化;所述迭代量化为对所述重新训练的所有层均进行一次量化;
对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
2.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,所述基于所获取的所述深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,包括:
采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值;
将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序;
从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型;
判断当前次精简后的深度神经网络模型是否满足所述精度需求;
当确定当前次精简后的深度神经网络模型满足所述精度需求时,停止精简操作;
当确定所述当前次精简后的深度神经网络模型不满足所述精度需求时,对当前次精简后的深度神经网络模型执行下一次精简操作,直至精简后的深度神经网络模型满足所述精度需求。
3.根据权利要求2所述的深度神经网络模型的压缩方法,其特征在于,所述采用验证集样本对当前次精简前的深度神经网络模型进行测试,包括:Sm,n=||c(t)||f-||c(t)'||f;且f={1,2};其中,Sm,n为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前后对应的精度改变数值,为第t次精简深度神经网络模型前的精度,为第t次压缩深度神经网络模型前的精度,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
4.根据权利要求3所述的深度神经网络模型的压缩方法,其特征在于,当深度神经网络的输出经过softmax激活函数并使用交叉熵计算损失时,c(t)采用如下的公式计算得到:
且:
其中,V为验证集样本的个数,xv表示验证集样本中的第ν个样本,表示验证集样本中的第ν个样本k位置的标签,为第t次精简前的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为第t次精简后的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为t次精简后深度神经网络第M层的第k个输出响应。
5.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,所述精度需求满足预设的精度需求包括以下至少一种:
精简后的深度神经网络模型满足预设的精度阈值;
精简后的深度神经网络模型满足预设的压缩体积阈值。
6.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,所述精度单元包括深度神经网络模型中的权连接、节点、层、模块和子网络。
7.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,当量化后的深度神经网络模型满足预设的压缩体积需求之后,还包括:
对量化后的深度神经网络模型进行重新训练。
8.根据权利要求1所述的深度神经网络模型的压缩方法,其特征在于,所述对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:
获取重新训练后的深度神经网络模型的第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;
采用验证集样本对量化后的深度神经网络模型进行测试;
当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
9.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,在按照所述第i层对应的预设量化等级对所述已训练的深度神经网络模型中的第i层参数进行量化后,还包括:
获取第i层对应的补偿系数;
根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
10.根据权利要求9所述的深度神经网络模型的压缩方法,其特征在于,所述获取第i层对应的补偿系数,包括:根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
11.根据权利要求10所述的深度神经网络模型的压缩方法,其特征在于,所述根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数,包括:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
12.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,还包括:
当测试结果显示量化后的深度神经网络模型不满足预设精度改变阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,以使得所述第i层不参与之后的量化处理过程。
13.根据权利要求12所述的深度神经网络模型的压缩方法,其特征在于,当完成一次迭代量化后,且量化后的深度神经网络模型不满足所述预设的压缩体积需求时,所述对所述深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求,包括:
对所述深度神经网络模型中的各层参数执行下一次迭代量化,包括:
获取可继续量化的第j层参数;
调整量化等级;其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;
采用调整后的量化等级对第j层参数进行量化;
采用验证集样本对量化后的深度神经网络模型进行测试;
当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;
当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
14.根据权利要求13所述的深度神经网络模型的压缩方法,其特征在于,所述采用调整后的量化等级对第j层参数进行量化,包括:
采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
15.根据权利要求13所述的深度神经网络模型的压缩方法,其特征在于,所述采用验证集样本对量化后的深度神经网络模型进行测试,包括:
其中,为第t次量化第m层前的验证结果,为第t次量化第m层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
16.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,在首次迭代量化时,采用如下方式得到第i层对应的预设量化等级:
对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
17.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,当确定量化后的深度神经网络模型不满足所述压缩体积需求,且量化后的深度神经网络模型不具有可继续量化的层时,停止所述迭代量化操作。
18.根据权利要求8所述的深度神经网络模型的压缩方法,其特征在于,当完成所述迭代量化操作时,还包括:
将所述迭代量化后的深度神经网络模型进行存储。
19.一种深度神经网络模型的压缩装置,其特征在于,包括:
获取单元,适于获取已训练的深度神经网络模型;
简化单元,适于基于所获取的所述深度神经网络模型中各层的精简单元的贡献度的信息,对所述深度神经网络模型进行精简,直至精简后的深度神经网络模型满足预设的精度需求;
第一训练单元,适于对所述精简后的深度神经网络模型进行重新训练,得到重新训练后的深度神经网络模型;
量化单元,适于当确定重新训练后的深度神经网络模型不满足预设的压缩体积需求时,分别采用各层对应的预设量化等级,对重新训练后的深度神经网络模型中的各层参数进行迭代量化;所述迭代量化为对所述重新训练的所有层均进行一次量化;对重新训练后的深度神经网络模型进行N次迭代量化,直至量化后的深度神经网络模型满足预设的压缩体积需求。
20.根据权利要求19所述的深度神经网络模型的压缩装置,其特征在于,所述简化单元,适于采用验证集样本对当前次精简前的深度神经网络模型进行测试,得到当前次精简前的深度神经网络模型中各个精简单元删除前后对应的深度神经网络模型的精度改变数值;将当前次精简前的深度神经网络模型中所有精简单元按照精度改变数值进行排序;从当前次精简前的深度神经网络模型中删除预设数量的精度改变数值最小的精简单元,得到当前次精简后的深度神经网络模型;当确定当前次精简后的深度神经网络模型满足所述精度需求时,停止精简操作;当确定所述当前次精简后的深度神经网络模型不满足所述精度需求时,对当前次精简后的深度神经网络模型执行下一次精简操作,直至精简后的深度神经网络模型满足所述精度需求。
21.根据权利要求19所述的深度神经网络模型的压缩装置,其特征在于,所述简化单元,适于采用如下的公式对当前次精简前的深度神经网络模型进行测试:
Sm,n=||c(t)||f-||c(t)'||f;且f={1,2};其中,Sm,n为第t次精简前的深度神经网络模型中第m层的第n个精简单元删除前后对应的精度改变数值,为第t次精简深度神经网络模型前的精度,为第t次压缩深度神经网络模型前的精度,f分别对应L1范数和L2范数,1指代L1范数,2指代L2范数。
22.根据权利要求21所述的深度神经网络模型的压缩装置,其特征在于,所述简化单元,适于当深度神经网络的输出经过softmax激活函数并使用交叉熵计算损失时,采用如下的公式计算得到c(t)
且:
其中,V为验证集样本的个数,xv表示验证集样本中的第ν个样本,表示验证集样本中的第ν个样本k位置的标签,为第t次精简前的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为第t次精简后的深度神经网络模型中第k个输出响应相连的深度神经网络子图,为t次精简后深度神经网络第M层的第k个输出响应。
23.根据权利要求19所述的深度神经网络模型的压缩装置,其特征在于,所述精度需求满足预设的精度需求包括以下至少一种:
精简后的深度神经网络模型满足预设的精度阈值;
精简后的深度神经网络模型满足预设的压缩体积阈值。
24.根据权利要求19所述的深度神经网络模型的压缩装置,其特征在于,所述精度单元包括深度神经网络模型中的权连接、节点、层、模块和子网络。
25.根据权利要求19所述的深度神经网络模型的压缩装置,其特征在于,还包括:
第二训练单元,适于当量化后的深度神经网络模型满足预设的压缩体积需求之后,对量化后的深度神经网络模型进行重新训练。
26.根据权利要求19所述的深度神经网络模型的压缩装置,其特征在于,所量化单元,适于获取重新训练后的深度神经网络模型的第i层对应的预设量化等级,按照所述第i层对应的预设量化等级,对所述已训练的深度神经网络模型中的第i层参数进行量化,i为大于1的自然数;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设精度阈值时,将第i层参数恢复为量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,继续执行对其他层参数进行量化处理。
27.根据权利要求26所述的深度神经网络模型的压缩装置,其特征在于,还包括:
补偿单元,适于在按照所述第i层对应的预设量化等级对所述已训练的深度神经网络模型中的第i层参数进行量化后,获取第i层对应的补偿系数;
根据第i层的补偿系数及量化后的参数,得到第i层补偿后的量化参数,并将补偿后的量化参数作为第i层的量化参数。
28.根据权利要求27所述的深度神经网络模型的压缩装置,其特征在于,所述补偿单元,适于根据第i层量化前的参数及量化后的参数,计算得到第i层的补偿系数。
29.根据权利要求28所述的深度神经网络模型的压缩装置,其特征在于,所述补偿单元,适于采用如下的公式计算得到第i层的补偿系数:
其中,αi为第i层的补偿系数,Wi为量化前的参数,为Wi的转置,Qi为量化后的参数,为Qi的转置。
30.根据权利要求26所述的深度神经网络模型的压缩装置,其特征在于,还包括:
标记单元,适于当测试结果显示量化后的深度神经网络模型不满足预设精度改变阈值,且当前所采用的量化等级达到预设的等级阈值时,将第i层标记为不可继续量化层,以使得所述第i层不参与之后的量化处理过程。
31.根据权利要求30所述的深度神经网络模型的压缩装置,其特征在于,所述量化单元,适于当完成一次迭代量化后,且量化后的深度神经网络模型不满足所述预设的压缩体积需求时,对所述深度神经网络模型中的各层参数执行下一次迭代量化,包括:获取可继续量化的第j层参数;调整量化等级;其中,调整后的量化等级对所述深度神经网络模型的精度影响与调整前的量化等级对所述深度神经网络模型的精度影响不同;采用调整后的量化等级对第j层参数进行量化;采用验证集样本对量化后的深度神经网络模型进行测试;当测试结果显示量化后的深度神经网络模型的精度不满足预设的精度阈值,恢复第j层量化前的参数;当测试结果显示量化后的深度神经网络模型的精度满足预设的精度阈值时,对所述深度神经网络中的其他可量化层参数进行量化,直至量化后的深度神经网络模型满足所述预设的压缩体积需求。
32.根据权利要求31所述的深度神经网络模型的压缩装置,其特征在于,所述量化单元,适于采用近似最近邻搜索算法,结合调整后的量化等级对第j层参数进行量化。
33.根据权利要求31所述的深度神经网络模型的压缩装置,其特征在于,所述量化单元,适于采用如下的公式对量化后的深度神经网络模型进行测试,包括:
其中,为第t次量化第m层前的验证结果,为第t次量化第m层后的验证结果,γ为精度改变的判断阈值,f分别对应L1范数和L2范数。
34.根据权利要求26所述的深度神经网络模型的压缩装置,其特征在于,所述量化单元,适于在首次迭代量化时,对所述已训练的深度神经网络模型中的第i层参数进行聚类分析,根据聚类分析结果确定对应的量化范围及量化等级。
35.根据权利要求26所述的深度神经网络模型的压缩装置,其特征在于,所述量化单元,适于当确定量化后的深度神经网络模型不满足所述压缩体积需求,且量化后的深度神经网络模型不具有可继续量化的层时,停止所述迭代量化操作。
36.根据权利要求26所述的深度神经网络模型的压缩装置,其特征在于,还包括:
存储单元,当完成所述迭代量化操作时,将所述迭代量化后的深度神经网络模型进行存储。
37.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至18任一项所述的深度神经网络模型的压缩方法的步骤。
38.一种终端,其特征在于,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行权利要求1至18任一项所述的深度神经网络模型的压缩方法的步骤。
CN201710266304.6A 2017-04-21 2017-04-21 深度神经网络模型的压缩方法及装置、终端、存储介质 Pending CN108734266A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710266304.6A CN108734266A (zh) 2017-04-21 2017-04-21 深度神经网络模型的压缩方法及装置、终端、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710266304.6A CN108734266A (zh) 2017-04-21 2017-04-21 深度神经网络模型的压缩方法及装置、终端、存储介质

Publications (1)

Publication Number Publication Date
CN108734266A true CN108734266A (zh) 2018-11-02

Family

ID=63933491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710266304.6A Pending CN108734266A (zh) 2017-04-21 2017-04-21 深度神经网络模型的压缩方法及装置、终端、存储介质

Country Status (1)

Country Link
CN (1) CN108734266A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163368A (zh) * 2019-04-18 2019-08-23 腾讯科技(深圳)有限公司 基于混合精度的深度学习模型训练方法、装置及系统
WO2020155091A1 (zh) * 2019-02-01 2020-08-06 华为技术有限公司 深度神经网络的量化方法、装置、设备及介质
CN111653261A (zh) * 2020-06-29 2020-09-11 北京字节跳动网络技术有限公司 语音合成方法、装置、可读存储介质及电子设备
WO2021017546A1 (zh) * 2019-07-31 2021-02-04 中科寒武纪科技股份有限公司 神经网络量化方法、装置、芯片、电子设备及板卡
WO2021135707A1 (zh) * 2019-12-31 2021-07-08 华为技术有限公司 机器学习模型的搜索方法及相关装置、设备
CN113269320A (zh) * 2020-02-14 2021-08-17 阿里巴巴集团控股有限公司 处理单元、计算装置、片上系统、数据中心和相关方法
WO2022030054A1 (ja) * 2020-08-06 2022-02-10 コニカミノルタ株式会社 ディープラーニングモデルの値域決定プログラム、値域決定システム、および値域決定方法
CN114118384A (zh) * 2021-12-09 2022-03-01 安谋科技(中国)有限公司 神经网络模型的量化方法、可读介质和电子设备
CN114418098A (zh) * 2022-03-16 2022-04-29 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种神经网络差量压缩方法、装置、电子设备及存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020155091A1 (zh) * 2019-02-01 2020-08-06 华为技术有限公司 深度神经网络的量化方法、装置、设备及介质
CN110163368A (zh) * 2019-04-18 2019-08-23 腾讯科技(深圳)有限公司 基于混合精度的深度学习模型训练方法、装置及系统
CN110163368B (zh) * 2019-04-18 2023-10-20 腾讯科技(深圳)有限公司 基于混合精度的深度学习模型训练方法、装置及系统
WO2021017546A1 (zh) * 2019-07-31 2021-02-04 中科寒武纪科技股份有限公司 神经网络量化方法、装置、芯片、电子设备及板卡
WO2021135707A1 (zh) * 2019-12-31 2021-07-08 华为技术有限公司 机器学习模型的搜索方法及相关装置、设备
CN113269320A (zh) * 2020-02-14 2021-08-17 阿里巴巴集团控股有限公司 处理单元、计算装置、片上系统、数据中心和相关方法
CN111653261A (zh) * 2020-06-29 2020-09-11 北京字节跳动网络技术有限公司 语音合成方法、装置、可读存储介质及电子设备
WO2022030054A1 (ja) * 2020-08-06 2022-02-10 コニカミノルタ株式会社 ディープラーニングモデルの値域決定プログラム、値域決定システム、および値域決定方法
CN114118384A (zh) * 2021-12-09 2022-03-01 安谋科技(中国)有限公司 神经网络模型的量化方法、可读介质和电子设备
CN114118384B (zh) * 2021-12-09 2024-06-04 安谋科技(中国)有限公司 神经网络模型的量化方法、可读介质和电子设备
CN114418098A (zh) * 2022-03-16 2022-04-29 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种神经网络差量压缩方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108734266A (zh) 深度神经网络模型的压缩方法及装置、终端、存储介质
CN108734268A (zh) 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107636690B (zh) 基于卷积神经网络的全参考图像质量评估
CN108734287A (zh) 深度神经网络模型的压缩方法及装置、终端、存储介质
CN110378052A (zh) 基于循环神经网络考虑未来工况的设备剩余寿命预测方法
CN106485316A (zh) 神经网络模型压缩方法以及装置
CN108734264A (zh) 深度神经网络模型压缩方法及装置、存储介质、终端
CN109002889A (zh) 自适应迭代式卷积神经网络模型压缩方法
CN109388779A (zh) 一种神经网络权重量化方法和神经网络权重量化装置
CN106295682A (zh) 一种判断图片质量因子的方法、装置和计算设备
CN107067341B (zh) 一种基于多级熵权的rbfnn配电自动化系统状态操作评价方法
CN110969251A (zh) 基于无标签数据的神经网络模型量化方法及装置
CN111325342A (zh) 模型的压缩方法、装置、目标检测设备和存储介质
CN109543818A (zh) 一种基于深度学习模型的链路评估方法和系统
CN113988441A (zh) 电力无线网络链路质量预测、模型训练方法及装置
CN110309904A (zh) 一种神经网络压缩方法
CN116362325A (zh) 一种基于模型压缩的电力图像识别模型轻量化应用方法
CN115963420A (zh) 一种电池soh影响因素分析方法
CN110533109A (zh) 一种喷涂生产监测数据的存储及特征分析方法及其装置
CN111711816B (zh) 基于可察知编码效应强度的视频客观质量评价方法
CN108537322A (zh) 神经网络层间激活值量化方法及装置
CN111832748A (zh) 一种对混合气体浓度进行回归预测的电子鼻宽度学习方法
CN110825583A (zh) 一种针对云数据中心多指标融合的能效定性评估技术
CN115860263A (zh) 电网基建规划项目工期预测方法及预测系统
CN115766475A (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