CN114358281A - 一种模型压缩方法、装置、设备及介质 - Google Patents
一种模型压缩方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114358281A CN114358281A CN202111643121.4A CN202111643121A CN114358281A CN 114358281 A CN114358281 A CN 114358281A CN 202111643121 A CN202111643121 A CN 202111643121A CN 114358281 A CN114358281 A CN 114358281A
- Authority
- CN
- China
- Prior art keywords
- model
- sparsification
- strategy
- parameters
- parameter
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种模型压缩方法、装置、设备及介质,用以保证模型压缩精度的同时提高模型压缩的通用性。由于在本申请中,电子设备可以对训练完成的模型进行模型压缩,无需在训练过程中对模型进行压缩,保证了训练过程中模型的收敛速度和训练效率,并且该模型压缩方法在保证模型精度的同时通用性更高。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种模型压缩方法、装置、设备及介质。
背景技术
深度学习模型压缩的目的是通过删除原始模型中的部分参数,或降低参数的计算精度,在尽可能保证准确度的同时尽量多的压缩模型大小。对深度学习模型进行压缩,可以有效降低模型对计算设备的依赖,使得在同样的设备尽可能提高模型的运行效率。
传统的深度学习模型压缩方法是在模型训练过程中完成模型压缩,使用不同的模型训练方法会导致模型压缩结果出现明显的差异,由于模型参数较多,在训练时完成模型压缩会导致模型收敛速度较慢,影响模型的训练效率,针对使用该模型的电子设备来说,无法适应电子设备的使用需求,通用性较差。
发明内容
本申请提供了一种模型压缩方法、装置、设备及介质,用以保证模型压缩精度的同时提高模型压缩的通用性。
本申请提供了一种模型压缩方法,所述方法包括:
对待压缩的第一模型进行解析,确定模型解析结果,所述模型解析结果包括所述第一模型中的网络层和所述网络层对应的参数;
采用稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度;
在所述第二模型的精度满足预设条件时,保存所述第二模型以及所述第二模型中的参数。
进一步地,所述采用稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度包括:
针对每个稀疏化策略,将所述稀疏化策略作为当前稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度;判断稀疏化后得到的第二模型的精度是否满足预设条件;如果否,将下一个稀疏化策略作为当前稀疏化策略,继续对所述参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足所述预设条件。
进一步地,所述对所述参数进行稀疏化处理包括以下至少一种方式:
对所述当前稀疏化策略中包括的参数进行稀疏化处理;或
对所述当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理;或
根据所述当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数,对所述当前稀疏化策略对应的参数进行稀疏化处理。
进一步地,所述根据所述当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数包括:
对上一个稀疏化策略对应的参数进行随机化处理,得到所述当前稀疏化策略对应的参数;或者
根据所述第一模型的参数分布规律,确定参数范围,将位于所述参数范围内的参数确定为所述当前稀疏化策略对应的参数。
进一步地,所述根据所述第一模型的参数分布规律,确定参数范围,将位于所述参数范围内的参数确定为所述当前稀疏化策略对应的参数包括:
统计所述第一模型中的参数分布规律;
如果所述参数分布规律符合正态分布,确定参数阈值;
将大于所述参数阈值的参数确定为所述当前稀疏化策略对应的参数。
进一步地,所述根据所述当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数包括:
根据所述当前稀疏化策略中的权重因子,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数。
进一步地,所述方法还包括:
在每次稀疏化后得到的第二模型的精度均不满足所述预设条件时,保存稀疏化后得到的精度最高的第二模型以及所述第二模型中的参数。
进一步地,所述稀疏化后得到的第二模型的精度满足预设条件包括:
根据所述第一模型输出的第一推理结果和所述第二模型输出的第二推理结果,计算所述第一模型和所述第二模型之间的散度;
如果所述散度小于设定散度阈值,确定所述第二模型的精度满足预设条件。
另一方面,本申请实施例提供了一种模型压缩装置,所述装置包括:
确定单元,用于对待压缩的第一模型进行解析,确定模型解析结果,所述模型解析结果包括所述第一模型中的网络层和所述网络层对应的参数;
处理单元,用于采用稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度;
保存单元,用于在所述第二模型的精度满足预设条件时,保存所述第二模型以及所述第二模型中的参数。
另一方面,本申请提供了一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现上述任一所述模型压缩方法的步骤。
另一方面,本申请提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述模型压缩方法的步骤。
由于在本申请中,电子设备可以对训练完成的模型进行模型压缩,无需在训练过程中对模型进行压缩,保证了训练过程中模型的收敛速度和训练效率,并且该模型压缩方法在保证模型精度的同时通用性更高。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一些实施例提供的一种模型压缩过程示意图;
图2为本申请一些实施例提供的一种模型解析结果示意图;
图3为本申请一些实施例提供的一种稀疏化策略示意图;
图4为本申请一些实施例提供的一种模型压缩过程示意图;
图5为本申请一些实施例提供的一种模型压缩过程示意图;
图6为本申请一些实施例提供的一种模型压缩过程示意图;
图7为本申请一些实施例提供的一种模型压缩装置的结构示意图;
图8为本申请一些实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了保证模型压缩精度的同时提高模型压缩的通用性,本申请实施例提供了一种模型压缩方法、装置、设备及介质。
实施例1:
图1为本申请实施例提供的一种模型压缩的过程示意图,该过程包括如下步骤:
S101:对待压缩的第一模型进行解析,确定模型解析结果。
本申请实施例提供的模型压缩方法应用于电子设备,该电子设备可以是训练模型的电子设备,或者可以是使用模型的电子设备。其中待压缩的第一模型可以为训练完成的模型。示例的,第一模型可以为深度学习模型。
第一模型的模型解析结果包括第一模型中的网络层、网络层对应的参数、模型输入/输出信息中的一项或多项。第一模型可以用如图2所示的有向无环图表示,网络层结构中各层(即网络层)之间的关系可以用函数表示,其中网络层结构中的网络层与参数有对应关系。
电子设备对第一模型解析后,还可以确定各网络层(或网络层对应的参数)是否支持稀疏化,和/或各网络层(或网络层对应的参数)是否有必要稀疏化。例如电子设备对支持稀疏化的网络层(或网络层对应的参数)执行相应的稀疏化策略,稀疏化策略的相关描述见后续内容。
在该S101中,电子设备通过模型解析获得模型中的网络层和对应的参数,即可对参数进行后续稀疏化处理,不依赖具体的网络训练框架,可以提高模型压缩过程的通用性。
S102:采用稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度。
该S102所示的对模型中参数进行稀疏化的过程即对模型进行压缩的过程。
稀疏化指将稠密参数(指未被压缩的参数)稀疏化,如将部分参数(即进行稀疏化处理的参数)置为0,实现模型压缩的目的。例如在卷积层中,可以将卷积核的部分值置为0,并在计算时跳过该部分参数,以此实现对模型进行压缩,降低模型大小,同时减少使用计算量。
电子设备中可以保存有一个或多个稀疏化策略。电子设备可以选取部分或全部稀疏化策略,分别进行稀疏化处理。稀疏化策略指将稠密参数转换稀疏参数的具体方案,不同的稀疏化策略可能对应不同的参数,相应的,也可能得到不同的稀疏化结果。稀疏化的参数占所有参数的比例越高,模型的压缩程度越高,模型的精度可能越低,稀疏化的参数占所有参数的比例越低,模型的压缩程度越低,模型的精度可能越高。
在一个示例中,稀疏化策略保存有参数的信息,不同稀疏化策略保存的参数可以完全不同,或者可以部分相同。例如图3所示,针对第一模型的参数电子设备保存有N个稀疏化策略,其中稀疏化策略1对应稀疏参数1,即稀疏化策略1用于对参数1进行稀疏化处理,稀疏化策略2对应稀疏参数2,…,稀疏化策略N对应稀疏参数N。在该示例中,电子设备选择一个稀疏化策略,即表示电子设备将要对该稀疏化策略中保存的参数进行稀疏化处理。
在另一个示例中,稀疏化策略保存有网络层的信息,网络层对应有参数,不同稀疏化策略保存的网络层可以完全不同,或者可以部分相同。在该示例中,电子设备选择一个稀疏化策略,即表示电子设备将要对该稀疏化策略中保存的网络层对应的参数进行稀疏化处理。
在又一个示例中,不同稀疏化策略中保存有不同的参数更新策略。在该示例中,电子设备选择一个稀疏化策略,即表示电子设备将要采用该稀疏化策略中的参数更新策略更新得到的参数,进行稀疏化处理。例如参数更新策略包括随机化处理更新参数,又如参数更新策略包括根据模型的参数分布规律更新参数,又如参数更新策略包括根据权重因子更新参数等。
在对参数进行稀疏化处理时,一种可能的实现方式中,电子设备可以对网络层结构中支持稀疏化的网络层中的参数进行稀疏化处理,而对不支持稀疏化的网络层不做调整。例如图4所示,稠密网络(如第一模型)中包括网络层1、网络层2和网络层3,其中网络层1和网络层3支持稀疏化,电子设备对网络层1和网络层3中的参数执行稀疏化策略,得到稀疏化网络层1和稀疏化网络层3,网络层2不支持稀疏化,电子设备对网络层2不做调整。因此稀疏化后得到的稀疏网络(如第二网络)包括稀疏化网络层1、网络层2和稀疏化网络层3。
在该实现方式中,电子设备也可以对支持稀疏化的参数进行稀疏化处理,而对不支持稀疏化的参数不做调整。
在对参数进行稀疏化处理时,另一种可能的实现方式中,电子设备可以对网络层结构中支持稀疏化的网络层中的参数进行稀疏化处理,而对不支持稀疏化的网络层中保留的参数进行调整,以在模型压缩的同时进一步提高压缩后的模型的精度。
在该实现方式中,电子设备也可以对支持稀疏化的参数进行稀疏化处理,而对不支持稀疏化的参数进行调整。
电子设备在采用稀疏化策略,每次对参数进行稀疏化处理后,可以得到第二模型。另外,电子设备可以根据第二模型输出的推理结果,确定第二模型的精度,示例的,电子设备可以根据第一模型输出的第一推理结果,和第二模型输出的第二推理结果,确定第二模型的精度。
S103:在第二模型的精度满足预设条件时,保存第二模型以及第二模型中的参数。
预设条件可以是稀疏化后得到的第二模型的精度高于设定精度阈值,或者可以是第一模型和第二模型之间的精度损失不超过设定精度损失阈值,或者可以是稀疏化后的第二模型的精度最高,或者可以是第一模型和第二之间的精度损失最低。
可选地,如果精度满足预设条件的第二模型有多个,电子设备可以从该多个第二模型中选择精度最高的第二模型以及参数进行保存,或者可以从该多个第二模型中选择精度损失最小的第二模型以及参数进行保存,或者可以从该多个第二模型中选择任一第二模型以及参数进行保存。
在保存第二模型以及第二模型中的参数后,电子设备可以后续直接使用保存的该第二模型以及参数,在保证模型精度的同时可以减少电子设备使用模型过程中的计算量。
在该S103中通过对压缩后的模型的精度进行比较,可以保证压缩后的模型具有较高的精度。
由于在本申请中,电子设备可以对训练完成的模型进行模型压缩,无需在训练过程中对模型进行压缩,保证了训练过程中模型的收敛速度和训练效率,并且该模型压缩方法在保证模型精度的同时通用性更高。
实施例2:
为了进一步提高压缩后的模型的精度,在上述实施例的基础上,本申请实施例中,采用稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度包括:
依次采用每个稀疏化策略,对参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足预设条件。
具体地,针对每个稀疏化策略,将该稀疏化策略作为当前稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及该第二模型的精度;判断稀疏化后得到的第二模型的精度是否满足预设条件;如果否,将下一个稀疏化策略作为当前稀疏化策略,继续对参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足预设条件。
不同的稀疏化策略对应不同的参数,可能得到不同的稀疏化结果,因此电子设备可以依次采用每个稀疏化策略进行稀疏化处理。
在一个可能的实现中,电子设备可以从初始稀疏化策略开始,依次采用每个稀疏化策略,对参数进行稀疏化处理。
如果该稀疏化处理后得到的第二模型的精度满足预设条件,电子设备执行S103。
如果该稀疏化处理后得到的第二精度的精度不满足预设条件,电子设备可以更新稀疏化策略,按照稀疏化策略的排序,采用下一个稀疏化策略,对下一个稀疏化策略对应的参数进行稀疏化处理,并判断该稀疏化处理后得到的第二模型的精度是否满足预设条件,电子设备根据执行的结果选择执行S103,或者采用下一个稀疏化策略继续进行稀疏化处理。
稀疏化策略对应的参数,可以是稀疏化策略中保存的参数,或者可以是稀疏化策略中保存的网络层对应的参数,或者可以是根据稀疏化策略中的参数更新策略更新得到的参数。
更新稀疏化策略指根据精度比较结果对稀疏化策略进行调整的过程。
在该实施例中,考虑到不同的稀疏化策略对应不同的参数,可能得到不同的稀疏化结果,电子设备可以依次采用每个稀疏化策略进行稀疏化处理,直至压缩后的第二模型的精度满足预设条件,因此可以进一步提高压缩后的模型的精度。
实施例3:
在上述各实施例的基础上,在本申请实施例中,对参数进行稀疏化处理包括以下至少一种方式:
对当前稀疏化策略中包括的参数进行稀疏化处理;或
对当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理;或
根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数,对当前稀疏化策略对应的参数进行稀疏化处理。
在一个示例中,稀疏化策略保存有参数的信息。电子设备可以对当前稀疏化策略中包括的参数进行稀疏化处理。
在另一个示例中,稀疏化策略保存有网络层的信息,网络层对应有参数。电子设备可以对当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理。
在又一个示例中,稀疏化策略中保存有参数更新策略。电子设备可以根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数,对当前稀疏化策略对应的参数进行稀疏化处理。
实施例4:
在上述各实施例的基础上,在本申请实施例中,根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数包括:
对上一个稀疏化策略对应的参数进行随机化处理,得到当前稀疏化策略对应的参数;或者
根据第一模型的参数分布规律,确定参数范围,将位于参数范围内的参数确定为当前稀疏化策略对应的参数。
在该实施例中,稀疏化策略中保存的参数更新策略可以为随机化处理,或者可以为根据第一模型的参数分布规律更新。
在根据随机化处理更新参数时,稀疏化策略中的参数更新策略可以为随机化算法,从而对上一个稀疏化策略对应的参数进行随机化处理,随机化处理后得到的参数为当前稀疏化策略对应的参数。可选地,如果第一模型的参数不具有分布规律或分布规律不明显时,电子设备可以采用随机化算法,对上一个稀疏化策略对应的参数进行更新。
在根据第一模型的参数分布规律更新参数时,例如图5所示,电子设备获取第一模型中的参数,统计参数分布规律,从而确定参数范围,将位于参数范围内的参数更新为当前稀疏化策略对应的参数。可选地,如果第一模型的参数具有一定的分布规律时,电子设备采用该方式对上一个稀疏化策略对应的参数进行更新。可以理解的是,本申请实施例对参数可能具有的分布规律不做限定。
示例的,电子设备统计第一模型中的参数分布规律;如果参数分布规律符合正态分布,确定参数阈值,电子设备可以将大于(或小于)参数阈值的参数确定为当前稀疏化策略对应的参数,即参数范围为大于(或小于)参数阈值。例如正态分布可以满足方差σ2越小参数分布越集中,因此可以设置合适的设定参数阈值,对大于或等于该设定参数阈值的参数置为0,进行稀疏化处理。其中π和μ为常数。
如果电子设备从初始稀疏化策略开始进行稀疏化处理,初始化稀疏化策略可以为随机初始化得到的初始稀疏化策略,或者可以为根据第一模型的参数分布规律确定的初始稀疏化策略。
初始化稀疏化策略是指对稀疏化策略的参数进行初始化。在此可以根据模型参数的分布特性,自动选择稀疏化策略,也可以手动指定稀疏化策略。
一种可能的方式中,如果第一模型的参数具有一定的分布规律,电子设备可以根据第一模型的参数分布规律确定初始稀疏化策略。示例的,电子设备统计第一模型中的参数分布规律;如果参数分布规律符合正态分布,电子设备可以确定初始稀疏化策略对应大于(或小于)设定参数阈值的参数。
另一种可能的方式,如果第一模型的参数不具有分布规律或分布规律不明显时,电子设备可以采用随机初始化得到的初始稀疏化策略。
在该实施例中,电子设备可以通过随机化处理更新参数,或者根据第一模型的参数分布规律更新参数,因此可以提高模型压缩的灵活性,进一步提高模型的精度。并且电子设备可以根据模型参数和参数的特点自动化完成模型的压缩,可以减少人工干预过程。
实施例5:
在上述各实施例的基础上,在本申请实施例中,根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数包括:
根据当前稀疏化策略中的权重因子,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数。
在该实施例中,稀疏化策略中保存的参数更新策略可以为根据权重因子更新参数,通过对参数自动调优,可以进一步提高模型的性能。
不同稀疏化策略中保存的权重因子可以相同,或者可以不同。稀疏化策略中保存的权重因子可以是固定不变的,或者可以是可调的,例如电子设备中还可以保存有权重因子的更新算法,此处对权重因子的更新算法不做限定。
例如,根据当前稀疏化策略中的权重因子,对上一个稀疏化策略对应的参数进行更新时可以满足以下公式:ΔP=weight*parm*diff(R,S),其中ΔP表示参数变化量,weight表示当前稀疏化策略中的权重因子,parm表示上一个稀疏化策略对应的参数,diff(R,S)表示第一模型和第二模型之间的精度误差。这样,电子设备可以根据参数变化量ΔP和上一个稀疏化策略对应的参数parm,确定当前稀疏化策略对应的参数。
实施例6:
为了进一步提高压缩后的模型的精度,在上述各实施例的基础上,在本申请实施例中,还包括:
在每次稀疏化后得到的第二模型的精度均不满足预设条件时,保存稀疏化后得到的精度最高的第二模型以及第二模型中的参数。
或者在每次稀疏化后得到的第二模型的精度均不满足预设条件时,保存稀疏化后得到的精度损失最低的第二模型以及第二模型中的参数。
在实际压缩过程中,可能在遍历所有稀疏化策略后,每次根据稀疏化策略后得到的第二模型均不满足预设条件,电子设备可以保存最后一次稀疏化后得到的第二模型。但是为了进一步提高压缩后的模型的精度,电子设备可以对精度最高或精度损失最低的第二模型进行保存。
或者在每次稀疏化后得到的第二模型的精度均不满足预设条件,电子还可以输出每次第二模型的精度,由人工选择最终保存的第二模型。
实施例7:
在上述各实施例的基础上,本申请实施例中,稀疏化后得到的第二模型的精度满足预设条件包括:
根据第一模型输出的第一推理结果和第二模型输出的第二推理结果,计算第一模型和第二模型之间的散度;
如果散度小于设定散度阈值,确定第二模型的精度满足预设条件。
第一模型输出的第一推理结果可以作为第二模型的精度比较的参考结果,指没有经过稀疏化的稠密模型输出的前向推理结果。该第一推理结果可以认为没有信息损失,因此可以作为后续第二模型的精度比较的标准值。电子设备将数据集输入第一模型,第一模型即可输出第一推理结果。
将第一模型的第一推理结果和第二模型的第二推理结果进行比较,可以计算出第一模型和第二模型之间的精度损失情况。可选地,该精度损失情况可以作为上述实施例中稀疏化策略的调整依据。
可选地,第一模型和第二模型之间的精度损失情况可以采用散度表示。可选的,散度可以为KL散度,KL散度又称为相对熵。其中散度越大表示模型的精度损失越大,散度越小表示模型的精度损失越小。
一种可能的实现方式中,假设第一模型的第一推理结果为R,第二模型的第二推理结果为S,精度损失情况其中Pr表示第一推理结果对应的概率分布,Ps表示第二推理结果对应的概率分布,x表示第一推理结果和第二推理结果对应的元素矩阵,xi表示第一推理结果和第二推理结果中对应的元素值,i表示元素矩阵中的第i个元素,且i小于或等于N。
可见本申请实施例中,通过散度计算精度损失情况,可以保证压缩后的模型具有较高的精度。
下面以一个具体的实施例对本申请各实施例进行说明,如图6所示,包括以下步骤:
电子设备获取模型文件(即输入的数据集)以及待压缩的第一模型中包括的参数。
电子设备对第一模型进行模型解析,得到模型解析结果。
电子设备根据将模型文件输入第一模型中,获取参考结果(即上述第一推理结果)。
以及电子设备根据参数初始化稀疏化策略,完成稀疏化,得到第二模型,第二模型可以根据模型文件输出第二推理结果。
电子设备将第一推理结果和第二推理结果,计算第二模型的精度是否满足预设条件,如果是,电子设备保存该第二模型以及第二模型中的参数。
如果第二模型的精度不满足预设条件,电子设备判断是否已遍历所有稀疏化策略,如果是,电子设备输出该第二模型的精度,以及保存该第二模型和第二模型中的参数。
如果未遍历所有稀疏化策略,电子设备更新稀疏化策略进行稀疏化得到第二模型的步骤。
值得注意的是,本申请实施例中涉及的“设定…阈值”均不限定具体的取值。
为了保证模型压缩精度的同时提高模型压缩的通用性,在上述各实施例的基础上,基于与方法实施例相同的技术构思,本申请还提供了一种模型压缩装置。图7为本申请提供的一种模型压缩装置700的结构示意图,如图7所示,该模型压缩装置700包括:
确定单元701,用于对待压缩的第一模型进行解析,确定模型解析结果,模型解析结果包括第一模型中的网络层和网络层对应的参数;
处理单元702,用于采用稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度;
保存单元703,用于在第二模型的精度满足预设条件时,保存第二模型以及第二模型中的参数。
在一种可能的实施方式中,处理单元702,具体用于针对每个稀疏化策略,将稀疏化策略作为当前稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度;判断稀疏化后得到的第二模型的精度是否满足预设条件;如果否,将下一个稀疏化策略作为当前稀疏化策略,继续对参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足预设条件。
在一种可能的实施方式中,处理单元702,具体用于采用以下至少一种方式对参数进行稀疏化处理:对当前稀疏化策略中包括的参数进行稀疏化处理;或对当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理;或根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数,对当前稀疏化策略对应的参数进行稀疏化处理。
在一种可能的实施方式中,处理单元702,具体用于对上一个稀疏化策略对应的参数进行随机化处理,得到当前稀疏化策略对应的参数;或者根据第一模型的参数分布规律,确定参数范围,将位于参数范围内的参数确定为当前稀疏化策略对应的参数。
在一种可能的实施方式中,处理单元702,具体用于统计第一模型中的参数分布规律;如果参数分布规律符合正态分布,确定参数阈值;将大于参数阈值的参数确定为当前稀疏化策略对应的参数。
在一种可能的实施方式中,处理单元702,具体用于根据当前稀疏化策略中的权重因子,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数。
在一种可能的实施方式中,保存单元,还用于在每次稀疏化后得到的第二模型的精度均不满足预设条件时,保存稀疏化后得到的精度最高的第二模型以及第二模型中的参数。
在一种可能的实施方式中,处理单元,还用于根据第一模型输出的第一推理结果和第二模型输出的第二推理结果,计算第一模型和第二模型之间的散度;如果散度小于设定散度阈值,确定第二模型的精度满足预设条件。
图8为本申请提供的一种电子设备结构示意图,在上述各实施例的基础上,本申请实施例还提供了一种电子设备,如图8所示,包括:处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信;
存储器803中存储有计算机程序,当程序被处理器801执行时,使得处理器801执行如下步骤:
对待压缩的第一模型进行解析,确定模型解析结果,模型解析结果包括第一模型中的网络层和网络层对应的参数;
采用稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度;
在第二模型的精度满足预设条件时,保存第二模型以及第二模型中的参数。
进一步的,处理器801,具体用于针对每个稀疏化策略,将稀疏化策略作为当前稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度;判断稀疏化后得到的第二模型的精度是否满足预设条件;如果否,将下一个稀疏化策略作为当前稀疏化策略,继续对参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足预设条件。
进一步的,处理器801,具体用于采用以下至少一种方式对参数进行稀疏化处理:对当前稀疏化策略中包括的参数进行稀疏化处理;或对当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理;或根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数,对当前稀疏化策略对应的参数进行稀疏化处理。
进一步的,处理器801,具体用于对上一个稀疏化策略对应的参数进行随机化处理,得到当前稀疏化策略对应的参数;或者根据第一模型的参数分布规律,确定参数范围,将位于参数范围内的参数确定为当前稀疏化策略对应的参数。
进一步的,处理器801,具体用于统计第一模型中的参数分布规律;如果参数分布规律符合正态分布,确定参数阈值;将大于参数阈值的参数确定为当前稀疏化策略对应的参数。
进一步的,处理器801,还用于在每次稀疏化后得到的第二模型的精度均不满足预设条件时,保存稀疏化后得到的精度最高的第二模型以及第二模型中的参数。
进一步的,处理器801,还用于根据第一模型输出的第一推理结果和第二模型输出的第二推理结果,计算第一模型和第二模型之间的散度;如果散度小于设定散度阈值,确定第二模型的精度满足预设条件。
通信接口802用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由处理器执行的计算机程序,当程序在处理器上运行时,使得处理器执行时实现如下步骤:
对待压缩的第一模型进行解析,确定模型解析结果,模型解析结果包括第一模型中的网络层和网络层对应的参数;
采用稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度;
在第二模型的精度满足预设条件时,保存第二模型以及第二模型中的参数。
在一种可能的实施方式中,采用稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度包括:
针对每个稀疏化策略,将稀疏化策略作为当前稀疏化策略,对参数进行稀疏化处理,确定稀疏化后得到的第二模型以及第二模型的精度;判断稀疏化后得到的第二模型的精度是否满足预设条件;如果否,将下一个稀疏化策略作为当前稀疏化策略,继续对参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足预设条件。
在一种可能的实施方式中,对参数进行稀疏化处理包括以下至少一种方式:
对当前稀疏化策略中包括的参数进行稀疏化处理;或
对当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理;或
根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数,对当前稀疏化策略对应的参数进行稀疏化处理。
在一种可能的实施方式中,根据当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定当前稀疏化策略对应的参数包括:
对上一个稀疏化策略对应的参数进行随机化处理,得到当前稀疏化策略对应的参数;或者
根据第一模型的参数分布规律,确定参数范围,将位于参数范围内的参数确定为当前稀疏化策略对应的参数。
在一种可能的实施方式中,根据第一模型的参数分布规律,确定参数范围,将位于参数范围内的参数确定为当前稀疏化策略对应的参数包括:
统计第一模型中的参数分布规律;
如果参数分布规律符合正态分布,确定参数阈值;
将大于参数阈值的参数确定为当前稀疏化策略对应的参数。
在一种可能的实施方式中,方法还包括:
在每次稀疏化后得到的第二模型的精度均不满足预设条件时,保存稀疏化后得到的精度最高的第二模型以及第二模型中的参数。
在一种可能的实施方式中,稀疏化后得到的第二模型的精度满足预设条件包括:
根据第一模型输出的第一推理结果和第二模型输出的第二推理结果,计算第一模型和第二模型之间的散度;
如果散度小于设定散度阈值,确定第二模型的精度满足预设条件。
由于上述提供的计算机可读取介质解决问题的原理与模型压缩方法相似,因此处理器执行上述计算机可读取介质中的计算机程序后,实现的步骤可以参见上述其他实施例,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种模型压缩方法,其特征在于,所述方法包括:
对待压缩的第一模型进行解析,确定模型解析结果,所述模型解析结果包括所述第一模型中的网络层和所述网络层对应的参数;
采用稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度;
在所述第二模型的精度满足预设条件时,保存所述第二模型以及所述第二模型中的参数。
2.如权利要求1所述的方法,其特征在于,所述采用稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度包括:
针对每个稀疏化策略,将所述稀疏化策略作为当前稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度;判断稀疏化后得到的第二模型的精度是否满足预设条件;如果否,将下一个稀疏化策略作为当前稀疏化策略,继续对所述参数进行稀疏化处理,直至稀疏化后得到的第二模型的精度满足所述预设条件。
3.如权利要求2所述的方法,其特征在于,所述对所述参数进行稀疏化处理包括以下至少一种方式:
对所述当前稀疏化策略中包括的参数进行稀疏化处理;或
对所述当前稀疏化策略中包括的网络层对应的参数进行稀疏化处理;或
根据所述当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数,对所述当前稀疏化策略对应的参数进行稀疏化处理。
4.如权利要求3所述的方法,其特征在于,所述根据所述当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数包括:
对上一个稀疏化策略对应的参数进行随机化处理,得到所述当前稀疏化策略对应的参数;或者
根据所述第一模型的参数分布规律,确定参数范围,将位于所述参数范围内的参数确定为所述当前稀疏化策略对应的参数。
5.如权利要求4所述的方法,其特征在于,所述根据所述第一模型的参数分布规律,确定参数范围,将位于所述参数范围内的参数确定为所述当前稀疏化策略对应的参数包括:
统计所述第一模型中的参数分布规律;
如果所述参数分布规律符合正态分布,确定参数阈值;
将大于所述参数阈值的参数确定为所述当前稀疏化策略对应的参数。
6.如权利要求3所述的方法,其特征在于,所述根据所述当前稀疏化策略,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数包括:
根据所述当前稀疏化策略中的权重因子,对上一个稀疏化策略对应的参数进行更新,确定所述当前稀疏化策略对应的参数。
7.如权利要求2所述的方法,其特征在于,所述方法还包括:
在每次稀疏化后得到的第二模型的精度均不满足所述预设条件时,保存稀疏化后得到的精度最高的第二模型以及所述第二模型中的参数。
8.如权利要求1-7任一项所述的方法,其特征在于,所述稀疏化后得到的第二模型的精度满足预设条件包括:
根据所述第一模型输出的第一推理结果和所述第二模型输出的第二推理结果,计算所述第一模型和所述第二模型之间的散度;
如果所述散度小于设定散度阈值,确定所述第二模型的精度满足预设条件。
9.一种模型压缩装置,其特征在于,所述装置包括:
确定单元,用于对待压缩的第一模型进行解析,确定模型解析结果,所述模型解析结果包括所述第一模型中的网络层和所述网络层对应的参数;
处理单元,用于采用稀疏化策略,对所述参数进行稀疏化处理,确定稀疏化后得到的第二模型以及所述第二模型的精度;
保存单元,用于在所述第二模型的精度满足预设条件时,保存所述第二模型以及所述第二模型中的参数。
10.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-8任一所述模型压缩方法的步骤。
11.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-8中任一所述模型压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643121.4A CN114358281A (zh) | 2021-12-29 | 2021-12-29 | 一种模型压缩方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643121.4A CN114358281A (zh) | 2021-12-29 | 2021-12-29 | 一种模型压缩方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114358281A true CN114358281A (zh) | 2022-04-15 |
Family
ID=81102602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111643121.4A Pending CN114358281A (zh) | 2021-12-29 | 2021-12-29 | 一种模型压缩方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114358281A (zh) |
-
2021
- 2021-12-29 CN CN202111643121.4A patent/CN114358281A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220210028A1 (en) | Cloud software service resource allocation method based on qos model self-correctio | |
JP6528893B1 (ja) | 学習プログラム、学習方法、情報処理装置 | |
CN112101530A (zh) | 神经网络训练方法、装置、设备及存储介质 | |
CN110008952B (zh) | 一种目标识别方法及设备 | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN111758104B (zh) | 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置 | |
CN111222629A (zh) | 一种基于自适应批规范化的神经网络模型剪枝方法及系统 | |
CN112733863B (zh) | 一种图像特征提取方法、装置、设备及存储介质 | |
CN112818588B (zh) | 一种电力系统的最优潮流计算方法、装置及存储介质 | |
CN112990420A (zh) | 一种用于卷积神经网络模型的剪枝方法 | |
US20180293486A1 (en) | Conditional graph execution based on prior simplified graph execution | |
CN111695624A (zh) | 数据增强策略的更新方法、装置、设备及存储介质 | |
CN115952832A (zh) | 自适应模型量化方法及装置、存储介质及电子装置 | |
CN115952855A (zh) | 神经网络量化方法、装置及设备 | |
CN110874635A (zh) | 一种深度神经网络模型压缩方法及装置 | |
CN108463813B (zh) | 一种进行数据处理的方法和装置 | |
CN114358281A (zh) | 一种模型压缩方法、装置、设备及介质 | |
US20210271932A1 (en) | Method, device, and program product for determining model compression rate | |
CN115170902B (zh) | 图像处理模型的训练方法 | |
JP2023123636A (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
US20230087774A1 (en) | Parameter optimization method, electronic device, and storage medium | |
CN114830137A (zh) | 用于生成预测模型的方法和系统 | |
CN114969148A (zh) | 一种基于深度学习的系统访问量预测方法、介质和设备 | |
CN113673532B (zh) | 基于量化模型的目标检测方法及装置 | |
CN110580523B (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 |