CN110874635B - 一种深度神经网络模型压缩方法及装置 - Google Patents
一种深度神经网络模型压缩方法及装置 Download PDFInfo
- Publication number
- CN110874635B CN110874635B CN201811015359.0A CN201811015359A CN110874635B CN 110874635 B CN110874635 B CN 110874635B CN 201811015359 A CN201811015359 A CN 201811015359A CN 110874635 B CN110874635 B CN 110874635B
- Authority
- CN
- China
- Prior art keywords
- model
- neural network
- compressed
- network model
- network layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请实施例提供了一种深度神经网络模型压缩方法及装置,深度神经网络模型压缩方法包括:获取待压缩深度神经网络模型中网络层的当前计算状态;根据当前计算状态,通过预先训练的计算模型,得到网络层的压缩量;基于压缩量,对网络层进行压缩;确定网络层压缩后的深度神经网络模型。通过本方案,可以保证深度神经网络模型的输出性能。
Description
技术领域
本申请涉及深度学习技术领域,特别是涉及一种深度神经网络模型压缩方法及装置。
背景技术
DNN(Deep Neural Network,深度神经网络)作为机器学习研究中的一个新兴领域,通过模仿人脑的机制来解析数据,是一种通过建立和模拟人脑进行分析学习的智能模型。目前,例如CNN(Convolutional Neural Network,卷积神经网络)、RNN(RecurrentNeural Network,循环神经网络)、LSTM(Long Short Term Memory,长短期记忆网络)等DNN已在目标检测与分割、行为检测与识别、语音识别等方面得到了很好的应用。
随着识别、检测等实际场景越来越复杂,对DNN的功能要求不断提高,DNN的网络结构也越来越复杂、网络层数不断增加,使得计算复杂度、硬盘存储、内存消耗等都随之大幅度增长。这就要求运行DNN的硬件平台需具有大计算量、高内存、高带宽等特点。但是,硬件平台资源通常情况下是有限的,如何降低DNN对硬件平台资源的开销已成为深度学习技术发展亟需解决的问题。
为了降低DNN对硬件平台资源的开销,相应的提出了DNN模型压缩方法,通过人工设置每个网络层的压缩量,基于压缩量对各网络层进行矩阵分解、通道裁剪等结构化压缩处理,这样,可以减少每一个网络层的计算量,从而达到降低DNN对硬件平台资源开销的目的。但是,压缩量的设置易受到人工的主观影响,压缩量设置的不合理,直接影响着DNN模型的输出性能。
发明内容
本申请实施例的目的在于提供一种深度神经网络模型压缩方法及装置,以保证深度神经网络模型的输出性能。具体技术方案如下:
第一方面,本申请实施例提供了一种深度神经网络模型压缩方法,所述方法包括:
获取待压缩深度神经网络模型中网络层的当前计算状态;
根据所述当前计算状态,通过预先训练的计算模型,得到所述网络层的压缩量;
基于所述压缩量,对所述网络层进行压缩;
确定网络层压缩后的深度神经网络模型。
可选的,所述网络层的当前计算状态,包括:所述网络层的当前计算量、已压缩计算量及待压缩计算量;
所述获取待压缩深度神经网络模型中网络层的当前计算状态,包括:
获取待压缩深度神经网络模型的预设目标计算量、所述待压缩深度神经网络模型中网络层的当前计算量及已压缩计算量;
根据所述预设目标计算量、所述当前计算量及所述已压缩计算量,计算所述网络层的待压缩计算量。
可选的,在所述基于所述压缩量,对所述网络层进行压缩之后,所述方法还包括:
针对下一网络层,返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至对所述待压缩深度神经网络模型中的所有网络层均完成压缩。
可选的,在所述确定网络层压缩后的深度神经网络模型之后,所述方法还包括:
获取样本集;
根据所述样本集,按照预设迭代周期,对所述网络层压缩后的深度神经网络模型的网络参数进行调整,得到模型精度;
根据所述模型精度,更新所述预先训练的计算模型的模型参数,并返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
可选的,在所述得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型之后,所述方法还包括:
根据所述样本集,对所述第一目标深度神经网络模型的网络参数进行调整,直至得到模型精度达到所述待压缩深度神经网络模型的初始精度的第二目标深度神经网络模型。
第二方面,本申请实施例提供了一种深度神经网络模型压缩装置,所述装置包括:
获取模块,用于获取待压缩深度神经网络模型中网络层的当前计算状态;
压缩量计算模块,用于根据所述当前计算状态,通过预先训练的计算模型,得到所述网络层的压缩量;
压缩模块,用于基于所述压缩量,对所述网络层进行压缩;确定网络层压缩后的深度神经网络模型。
可选的,所述网络层的当前计算状态,包括:所述网络层的当前计算量、已压缩计算量及待压缩计算量;
所述获取模块,具体用于:
获取待压缩深度神经网络模型的预设目标计算量、所述待压缩深度神经网络模型中网络层的当前计算量及已压缩计算量;
根据所述预设目标计算量、所述当前计算量及所述已压缩计算量,计算所述网络层的待压缩计算量。
可选的,所述获取模块,还用于:
针对下一网络层,获取待压缩深度神经网络模型中网络层的当前计算状态,直至对所述待压缩深度神经网络模型中的所有网络层均完成压缩。
可选的,所述装置还包括:短时精调模块,用于:
获取样本集;
根据所述样本集,按照预设迭代周期,对所述网络层压缩后的深度神经网络模型的网络参数进行调整,得到模型精度;
根据所述模型精度,更新所述预先训练的计算模型的模型参数,并返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
可选的,所述装置还包括:长时精调模块,用于:
根据所述样本集,对所述第一目标深度神经网络模型的网络参数进行调整,直至得到模型精度达到所述待压缩深度神经网络模型的初始精度的第二目标深度神经网络模型。
本申请实施例提供的一种深度神经网络模型压缩方法及装置,通过获取待压缩深度神经网络模型中网络层的当前计算状态,根据当前计算状态,通过预先训练的计算模型,得到网络层的压缩量,基于该压缩量,对网络层进行压缩,确定网络层压缩后的深度神经网络模型。通过对网络层的当前计算状态的获取,并根据当前计算状态,利用预先训练的计算模型可以得到当前计算状态对应的压缩量,进行压缩量计算时所使用的计算模型为预先训练得到的,具有自学习功能,因此,利用预先训练的计算模型可以保证网络层进行压缩所依据的压缩量的合理性,从而保证了深度神经网络模型的输出性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的深度神经网络模型压缩方法的流程示意图;
图2为本申请实施例的深度神经网络模型压缩方法实例的流程示意图;
图3为本申请实施例的深度神经网络模型压缩装置的结构示意图;
图4为本申请实施例的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了保证深度神经网络模型的输出性能,本申请实施例提供了一种深度神经网络模型压缩方法、装置、电子设备及机器可读存储介质。
下面,首先对本申请实施例所提供的深度神经网络模型压缩方法进行介绍。
本申请实施例所提供的一种深度神经网络模型压缩方法的执行主体可以为执行智能算法的电子设备,该电子设备可以为具有目标检测与分割、行为检测与识别或者语音识别等功能的智能设备,例如远程计算机、远程服务器、智能相机、智能语音设备等等,执行主体中应该至少包括搭载有核心处理器的处理器。实现本申请实施例所提供的一种深度神经网络模型压缩方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种方式。
如图1所示,本申请实施例所提供的一种深度神经网络模型压缩方法,可以包括如下步骤:
S101,获取待压缩深度神经网络模型中网络层的当前计算状态。
待压缩深度神经网络模型中的网络层可以包括卷积Conv层、內积Inner Product层等,各网络层中均包含有进行网络运算的参数权值张量。
网络层的当前计算状态为网络层当前进行网络运算,所产生的与计算量相关的信息,可以以向量形式表示,如可以包含网络层当前计算量、已压缩计算量、还需要压缩的计算量等信息。
可选的,网络层的当前计算状态,具体可以包括:网络层的当前计算量、已压缩计算量及待压缩计算量。
S101具体可以为:
获取待压缩深度神经网络模型的预设目标计算量、待压缩深度神经网络模型中网络层的当前计算量及已压缩计算量;
根据预设目标计算量、当前计算量及已压缩计算量,计算网络层的待压缩计算量。
待压缩深度神经网络模型的预设目标计算量为深度神经网络模型压缩后需要达到的计算量,与运行深度神经网络模型的硬件平台的能力相关,即预设目标计算量可以小于或者等于硬件平台所能承受的最大计算量。基于预设目标计算量,根据待压缩深度神经网络的网络层数、网络层规模等,可以确定给每个网络层能够分配的最大计算量。
网络层的当前计算量可以根据待压缩深度神经网络模型的总计算量以及各网络层当前的结构(例如网络层的通道数、卷积核尺寸、权值张量大小等)来确定,待压缩深度神经网络模型的总计算量与预设目标计算量的差值即为待压缩深度神经网络模型需要压缩的计算量,例如,待压缩深度神经网络模型的总计算量为130GB,预设目标计算量为100GB,则该待压缩深度神经网络模型需要压缩的计算量为30GB。根据各网络层当前的结构可以确定每个网络层需要压缩的计算量分别为多少。
网络层的已压缩计算量为网络层中已经完成压缩的计算量,而待压缩计算量为网络层还需要压缩的计算量,例如,第i个网络层总共需要压缩5GB的计算量,并且已压缩了2GB的计算量,则第i个网络层的待压缩计算量为3GB。
S102,根据当前计算状态,通过预先训练的计算模型,得到网络层的压缩量。
预先训练的计算模型可以理解为一个记有计算状态和压缩量之间的对应关系的控制器,这里所说的控制器可以理解为一个硬件计算模块,也可以理解为一个软件计算单元,该计算模型可以为传统的CNN、RNN等神经网络模型,预先依据计算状态样本和压缩量的对应关系训练得到,在计算网络层的压缩量上具有较高的准确性。压缩量为对网络层进行压缩时需要压缩的数据,例如矩阵分解后每个小矩阵的尺寸、需要裁剪的通道数等。进行压缩量计算的网络模型的训练方式与传统的CNN、RNN等神经网络模型的训练方式相似,这里不再赘述。
S103,基于压缩量,对网络层进行压缩。
压缩量给定了对网络层进行压缩时需要压缩的数据,基于该压缩量,即可对网络层进行压缩,例如,第i个网络层包含256个滤波器,通过S101和S102的步骤,可以得到压缩量为56个滤波器,则需要从256个滤波器中裁剪掉56个滤波器。
压缩方式在本实施例中不做具体限定,以如上例以裁剪滤波器的方式进行结构化压缩,可以是随机的裁剪掉56个滤波器,也可以是按照权值绝对值之和从小到大的顺序裁剪掉56个滤波器。压缩方式可以采用当前任意一种合理的压缩方法,这里不再赘述。
可选的,在S103之后,本申请实施例所提供的深度神经网络模型压缩方法还可以包括如下步骤:
针对下一网络层,返回执行S101至S103,直至对待压缩深度神经网络模型中的所有网络层均完成压缩。
对深度神经网络模型的压缩可以是对其中的某一个网络层进行压缩,也可以是对其中的某一些网络层进行压缩,当然,为了保证最大程度的降低深度神经网络模型的计算量,可以对所有网络层进行压缩,针对每一个网络层都执行S101至S103的步骤。
S104,确定网络层压缩后的深度神经网络模型。
在网络层完成压缩后,深度神经网络模型即为压缩后的深度神经网络模型,如上所述,该深度神经网络模型可以为所有网络层均完成压缩后的深度神经网络模型,也可以为一个网络层或者一部分网络层完成压缩后的深度神经网络模型。
可选的,在S104之后,本申请实施例所提供的深度神经网络模型压缩方法还可以包括如下步骤:
获取样本集;
根据样本集,按照预设迭代周期,对网络层压缩后的深度神经网络模型的网络参数进行调整,得到模型精度;
根据模型精度,更新预先训练的计算模型的模型参数,并返回执行S101至S103,直至得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
由于对深度神经网络模型进行了压缩,深度神经网络的实际输出与初始的深度神经网络的输出之间会存在一定的差异,精度会有所下降,因此,为了使得压缩后的深度神经网络模型的精度更接近于初始的深度神经网络模型的初始精度,需要对深度神经网络模型的网络参数进行调整,而如果想要使压缩后的深度神经网络模型的精度达到初始的深度神经网络模型的初始精度,调整迭代的周期会非常长,因此,为了保证调整迭代的快速性,加快调整迭代的时效,调整迭代的周期可以设置的较小,即进行短时的调整迭代过程。
在经过一次调整迭代后,深度神经网络模型的模型精度可以得到一定的提高,能够得到提高后的模型精度,基于该模型精度,可以更新用于计算压缩量的计算模型的模型参数,以对进行网络层压缩的压缩量进行调整,从而达到更进一步提高模型精度的目的,如此往复,可以得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
可选的,在得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型的步骤之后,本申请实施例所提供的深度神经网络模型压缩方法还可以包括如下步骤:
根据样本集,对第一目标深度神经网络模型的网络参数进行调整,直至得到模型精度达到待压缩深度神经网络模型的初始精度的第二目标深度神经网络模型。
在得到第一目标深度神经网络模型之后,第一目标深度神经网络模型的模型精度虽然得到了较大的提高,但是与初始的深度神经网络模型的初始精度之间还存在一定的差距,因此,为了保证深度神经网络模型的模型精度可以达到初始的深度神经网络模型的初始精度,则以第一目标深度神经网络模型,在样本集上继续进行迭代调整,直至模型收敛,模型精度达到初始精度。这个调整迭代的过程可能需要经过的迭代周期较长,故可为长时的调整迭代过程。
应用本实施例,通过获取待压缩深度神经网络模型中网络层的当前计算状态,根据当前计算状态,通过预先训练的计算模型,得到网络层的压缩量,基于该压缩量,对网络层进行压缩,确定网络层压缩后的深度神经网络模型。通过对网络层的当前计算状态的获取,并根据当前计算状态,利用预先训练的计算模型可以得到当前计算状态对应的压缩量,进行压缩量计算时所使用的计算模型为预先训练得到的,具有自学习功能,因此,利用预先训练的计算模型可以保证网络层进行压缩所依据的压缩量的合理性,从而保证了深度神经网络模型的输出性能。
为了便于理解,下面结合具体的实例,对本申请实施例提供的深度神经网络模型压缩方法进行详细介绍,如图2所示,具体步骤可以包括:
步骤一:给定待压缩深度神经网络模型Net以及模型压缩后需要达到的计算量Flopsreq。
步骤二:计算网络第i层当前计算状态si,该状态以向量形式表示,如可以包含当前层计算量、网络已压缩的计算量、网络还需压缩的计算量等信息。
步骤三:将当前计算状态si输入控制器R(控制器R包含模型参数θR),控制器R依据当前计算状态si给出当前i层的压缩量ai,基于该压缩量ai对第i层进行结构化压缩。其中,结构化压缩方法可以采用当前任意一种合理的结构化压缩方法,控制器R为预先训练的计算模型。
步骤四:对i+1层作步骤二、步骤三操作,如此往复,直到深度神经网络模型中所有层都遍历完一遍。
步骤五:在样本集上,对压缩后的深度神经网络模型进行短时精调,并将模型精度反馈给控制器R,控制器R以此反馈信号更新模型参数θR,为下次迭代做准备。
步骤六:跳转至步骤一,重新进行下一轮迭代,如此往复,直到得到满足模型计算量且精度最高的深度神经网络模型。
步骤七:最终以步骤六得到的深度神经网络模型,在样本集上进行长时精调,直至模型收敛,恢复模型精度。
本方案中,通过算法调整深度神经网络模型中每个网络层的压缩量并进行不断迭代进化,避免了人工设置压缩量的不准确性及工作量,能够在满足计算量的前提下,最大程度地提高模型精度。
相应于上述方法实施例,本申请实施例提供了一种深度神经网络模型压缩装置,如图3所示,该深度神经网络模型压缩装置可以包括:
获取模块310,用于获取待压缩深度神经网络模型中网络层的当前计算状态;
压缩量计算模块320,用于根据所述当前计算状态,通过预先训练的计算模型,得到所述网络层的压缩量;
压缩模块330,用于基于所述压缩量,对所述网络层进行压缩;确定网络层压缩后的深度神经网络模型。
可选的,所述网络层的当前计算状态,可以包括:所述网络层的当前计算量、已压缩计算量及待压缩计算量;
所述获取模块310,具体可以用于:
获取待压缩深度神经网络模型的预设目标计算量、所述待压缩深度神经网络模型中网络层的当前计算量及已压缩计算量;
根据所述预设目标计算量、所述当前计算量及所述已压缩计算量,计算所述网络层的待压缩计算量。
可选的,所述获取模块310,还可以用于:
针对下一网络层,获取待压缩深度神经网络模型中网络层的当前计算状态,直至对所述待压缩深度神经网络模型中的所有网络层均完成压缩。
可选的,所述装置还可以包括:短时精调模块,用于:
获取样本集;
根据所述样本集,按照预设迭代周期,对所述网络层压缩后的深度神经网络模型的网络参数进行调整,得到模型精度;
根据所述模型精度,更新所述预先训练的计算模型的模型参数,并返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
可选的,所述装置还可以包括:长时精调模块,用于:
根据所述样本集,对所述第一目标深度神经网络模型的网络参数进行调整,直至得到模型精度达到所述待压缩深度神经网络模型的初始精度的第二目标深度神经网络模型。
应用本实施例,通过获取待压缩深度神经网络模型中网络层的当前计算状态,根据当前计算状态,通过预先训练的计算模型,得到网络层的压缩量,基于该压缩量,对网络层进行压缩,确定网络层压缩后的深度神经网络模型。通过对网络层的当前计算状态的获取,并根据当前计算状态,利用预先训练的计算模型可以得到当前计算状态对应的压缩量,进行压缩量计算时所使用的计算模型为预先训练得到的,具有自学习功能,因此,利用预先训练的计算模型可以保证网络层进行压缩所依据的压缩量的合理性,从而保证了深度神经网络模型的输出性能。
为了保证深度神经网络模型的输出性能,本申请实施例还提供了一种电子设备,如图4所示,包括处理器401和机器可读存储介质402,其中,
机器可读存储介质402,用于存储能够被处理器401执行的机器可执行指令;
处理器401,用于被机器可读存储介质402上所存放的机器可执行指令促使执行本申请实施例提供的深度神经网络模型压缩方法的所有步骤。
机器可读存储介质402与处理器401之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信。
上述机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例中,该电子设备的处理器通过读取机器可读存储介质中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:通过算法调整深度神经网络模型中每个网络层的压缩量并进行不断迭代进化,避免了人工设置压缩量的不准确性及工作量,保证了深度神经网络模型的输出性能,并且能够在满足计算量的前提下,最大程度地提高模型精度。
另外,相应于上述实施例所提供的深度神经网络模型压缩方法,本申请实施例提供了一种机器可读存储介质,用于机器可执行指令,所述机器可执行指令促使处理器执行本申请实施例提供的深度神经网络模型压缩方法的所有步骤。
本实施例中,机器可读存储介质存储有在运行时执行本申请实施例所提供的深度神经网络模型压缩方法的机器可执行指令,因此能够实现:通过算法调整深度神经网络模型中每个网络层的压缩量并进行不断迭代进化,避免了人工设置压缩量的不准确性及工作量,保证了深度神经网络模型的输出性能,并且能够在满足计算量的前提下,最大程度地提高模型精度。
对于电子设备以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (8)
1.一种深度神经网络模型压缩方法,其特征在于,应用于电子设备,所述方法包括:
获取待压缩深度神经网络模型中网络层的当前计算状态;
根据所述当前计算状态,通过预先训练的计算模型,得到所述网络层的压缩量;
基于所述压缩量,对所述网络层进行压缩;
确定网络层压缩后的深度神经网络模型,压缩后的深度神经网络模型在硬件平台上运行;所述压缩后的深度神经网络模型用于目标检测与分割、行为检测与识别、或者语音识别;
其中,预先训练的计算模型为控制器,所述控制器包含模型参数;
所述根据所述当前计算状态,通过预先训练的计算模型,得到所述网络层的压缩量的步骤,包括:将所述当前计算状态输入所述控制器,所述控制器依据所述当前计算状态给出网络层的压缩量;
所述基于所述压缩量,对所述网络层进行压缩的步骤,包括:所述控制器基于所述压缩量对所述网络层进行结构化压缩;
在所述深度神经网络模型中所有网络层均压缩完成,还包括:对压缩后的深度神经网络模型进行短时精调,并将所述模型精度反馈给所述控制器,所述控制器以此反馈信号更新所述模型参数;
所述网络层的当前计算状态,包括:所述网络层的当前计算量、已压缩计算量及待压缩计算量;
所述获取待压缩深度神经网络模型中网络层的当前计算状态,包括:
获取待压缩深度神经网络模型的预设目标计算量、所述待压缩深度神经网络模型中网络层的当前计算量及已压缩计算量,所述预设目标计算量为运行深度神经网络模型的硬件平台所能承受的最大计算量,所述硬件平台包括CPU、NP、DSP、ASIC、FPGA、其他可编程逻辑器件、分立门或者晶体管逻辑器件或分立硬件组件中的至少一种;
根据所述预设目标计算量、所述当前计算量及所述已压缩计算量,计算所述网络层的待压缩计算量。
2.根据权利要求1所述的方法,其特征在于,在所述基于所述压缩量,对所述网络层进行压缩之后,所述方法还包括:
针对下一网络层,返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至对所述待压缩深度神经网络模型中的所有网络层均完成压缩。
3.根据权利要求1所述的方法,其特征在于,在所述确定网络层压缩后的深度神经网络模型之后,所述方法还包括:
获取样本集;
根据所述样本集,按照预设迭代周期,对所述网络层压缩后的深度神经网络模型的网络参数进行调整,得到模型精度;
根据所述模型精度,更新所述预先训练的计算模型的模型参数,并返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
4.根据权利要求3所述的方法,其特征在于,在所述得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型之后,所述方法还包括:
根据所述样本集,对所述第一目标深度神经网络模型的网络参数进行调整,直至得到模型精度达到所述待压缩深度神经网络模型的初始精度的第二目标深度神经网络模型。
5.一种深度神经网络模型压缩装置,其特征在于,应用于电子设备,所述装置包括:
获取模块,用于获取待压缩深度神经网络模型中网络层的当前计算状态;
压缩量计算模块,用于根据所述当前计算状态,通过预先训练的计算模型,得到所述网络层的压缩量;
压缩模块,用于基于所述压缩量,对所述网络层进行压缩;确定网络层压缩后的深度神经网络模型,压缩后的深度神经网络模型在硬件平台上运行;所述压缩后的深度神经网络模型用于目标检测与分割、行为检测与识别、或者语音识别;
其中,预先训练的计算模型为控制器,所述控制器包含模型参数;
所述压缩量计算模块,具体用于:将所述当前计算状态输入所述控制器,所述控制器依据所述当前计算状态给出网络层的压缩量;
所述压缩模块,具体用于:所述控制器基于所述压缩量对所述网络层进行结构化压缩;
所述装置还包括短时精调模块,用于在所述深度神经网络模型中所有网络层均压缩完成,对压缩后的深度神经网络模型进行短时精调,并将所述模型精度反馈给所述控制器,所述控制器以此反馈信号更新所述模型参数;
所述网络层的当前计算状态,包括:所述网络层的当前计算量、已压缩计算量及待压缩计算量;
所述获取模块,具体用于:
获取待压缩深度神经网络模型的预设目标计算量、所述待压缩深度神经网络模型中网络层的当前计算量及已压缩计算量,所述预设目标计算量为运行深度神经网络模型的硬件平台所能承受的最大计算量,所述硬件平台包括CPU、NP、DSP、ASIC、FPGA、其他可编程逻辑器件、分立门或者晶体管逻辑器件或分立硬件组件中的至少一种;
根据所述预设目标计算量、所述当前计算量及所述已压缩计算量,计算所述网络层的待压缩计算量。
6.根据权利要求5所述的装置,其特征在于,所述获取模块,还用于:
针对下一网络层,获取待压缩深度神经网络模型中网络层的当前计算状态,直至对所述待压缩深度神经网络模型中的所有网络层均完成压缩。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:短时精调模块,用于:
获取样本集;
根据所述样本集,按照预设迭代周期,对所述网络层压缩后的深度神经网络模型的网络参数进行调整,得到模型精度;
根据所述模型精度,更新所述预先训练的计算模型的模型参数,并返回执行所述获取待压缩深度神经网络模型中网络层的当前计算状态,直至得到当前计算量达到预设目标计算量、且模型精度大于预设阈值的第一目标深度神经网络模型。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:长时精调模块,用于:
根据所述样本集,对所述第一目标深度神经网络模型的网络参数进行调整,直至得到模型精度达到所述待压缩深度神经网络模型的初始精度的第二目标深度神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015359.0A CN110874635B (zh) | 2018-08-31 | 2018-08-31 | 一种深度神经网络模型压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015359.0A CN110874635B (zh) | 2018-08-31 | 2018-08-31 | 一种深度神经网络模型压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874635A CN110874635A (zh) | 2020-03-10 |
CN110874635B true CN110874635B (zh) | 2023-06-30 |
Family
ID=69715937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811015359.0A Active CN110874635B (zh) | 2018-08-31 | 2018-08-31 | 一种深度神经网络模型压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874635B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111814967B (zh) * | 2020-09-11 | 2021-02-23 | 鹏城实验室 | 神经网络模型的推理运算量计算方法、设备及存储介质 |
CN114692816B (zh) * | 2020-12-31 | 2023-08-25 | 华为技术有限公司 | 神经网络模型的处理方法和设备 |
CN113762510B (zh) * | 2021-09-09 | 2022-12-09 | 北京百度网讯科技有限公司 | 针对目标模型的数据处理方法、装置、电子设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609598A (zh) * | 2017-09-27 | 2018-01-19 | 武汉斗鱼网络科技有限公司 | 图像鉴别模型训练方法、装置及可读存储介质 |
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102457463B1 (ko) * | 2017-01-16 | 2022-10-21 | 한국전자통신연구원 | 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법 |
-
2018
- 2018-08-31 CN CN201811015359.0A patent/CN110874635B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609598A (zh) * | 2017-09-27 | 2018-01-19 | 武汉斗鱼网络科技有限公司 | 图像鉴别模型训练方法、装置及可读存储介质 |
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110874635A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7516482B2 (ja) | ニューラルアーキテクチャ検索 | |
CN110366734B (zh) | 优化神经网络架构 | |
CN111406267B (zh) | 使用性能预测神经网络的神经架构搜索 | |
US10032463B1 (en) | Speech processing with learned representation of user interaction history | |
US20200065689A1 (en) | Neural architecture search for convolutional neural networks | |
TW202004658A (zh) | 深度神經網絡自我調整增量模型壓縮的方法 | |
CN110874635B (zh) | 一种深度神经网络模型压缩方法及装置 | |
EP3686813A1 (en) | Deep neural network-based method and device for quantifying activation amount | |
JP2021501417A (ja) | ニューラルアーキテクチャ検索 | |
CN110874625B (zh) | 一种数据处理方法及装置 | |
CN111079899A (zh) | 神经网络模型压缩方法、***、设备及介质 | |
CN109190754A (zh) | 量化模型生成方法、装置和电子设备 | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN109514553B (zh) | 一种机器人移动控制的方法、***及设备 | |
CN115829024B (zh) | 一种模型训练方法、装置、设备及存储介质 | |
US20240265251A1 (en) | Network Model Training Method and Apparatus, Electronic Apparatus and Computer-readable Storage Medium | |
CN110462638A (zh) | 使用后验锐化训练神经网络 | |
CN110647974A (zh) | 深度神经网络中的网络层运算方法及装置 | |
KR20200089588A (ko) | 전자 장치 및 이의 제어 방법 | |
CN113806993A (zh) | 一种无线传感器结构设计优化方法、装置、设备及介质 | |
WO2023207039A1 (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN112966818A (zh) | 一种定向引导模型剪枝方法、***、设备及存储介质 | |
KR20220048832A (ko) | 인공 신경망 프루닝 방법 및 장치 | |
CN112488306A (zh) | 一种神经网络压缩方法、装置、电子设备和存储介质 | |
CN117077653A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |