CN110008880A - 一种模型压缩方法及装置 - Google Patents
一种模型压缩方法及装置 Download PDFInfo
- Publication number
- CN110008880A CN110008880A CN201910239985.6A CN201910239985A CN110008880A CN 110008880 A CN110008880 A CN 110008880A CN 201910239985 A CN201910239985 A CN 201910239985A CN 110008880 A CN110008880 A CN 110008880A
- Authority
- CN
- China
- Prior art keywords
- model
- network layer
- output
- node
- relative
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种模型压缩方法及装置,其中方法包括:使用第一模型对预测数据进行预测,得到第一模型在N个网络层中的输出以及预测数据对应的预测结果,使用预测数据和预测数据对应的预测结果训练第二模型,得到第二模型在N个网络层中的输出,根据i个网络层中第二模型相对于第一模型的输出损失调整第二模型的参数,得到对第一模型进行压缩之后的目标模型。本发明实施例中,通过采用第一模型的预测结果训练第二模型,并基于预设网络层中第二模型相对于第一模型的输出损失调整第二模型的参数,可以使得压缩之后的目标模型更好地复现第一模型的内容,从而可以提高目标模型的预测效果。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种模型压缩方法及装置。
背景技术
在深度学习技术领域中,用户可以通过训练模型得到预测效果较好的深度学习网络模型,然而,预测效果较好的深度学习网络模型通常具有较为复杂的网络结构,从而占据较大的存储空间。相应地,在使用深度学习网络模型对待预测数据进行预测时,由于深度学习网络模型的结构较为复杂,可能会造成计算资源的浪费,使得预测的效率较差。
为了解决这个问题,通常可以对结构较为复杂的深度网络模型进行压缩,得到网络结构相对简单、预测性能较好的深度学习网络模型。知识萃取为一种常用的模型压缩方式,在该方式中,用户可以分别设计多个教师模型和一个学生模型,教师模型的网络结构较为复杂,学生模型的网络结构较为简单,通过使用多个教师模型的输出结果训练学生模型,可以使得学生模型萃取到多个教师模型的知识,提高学生模型的预测效果。然而,在该方式中,多个教师模型对学生模型的指导过程局限于训练数据(即教师模型的输出结果),而多个教师模型本身的结构特征并未被学生模型所萃取。因此,采用该种方式压缩得到的学生模型的预测效果无法满足要求。
综上,目前亟需一种模型压缩方法,用以提高压缩得到的模型(比如学生模型)的预测效果。
发明内容
本发明实施例提供一种模型压缩方法及装置,用以提高压缩得到的模型(比如学生模型)的预测效果。
第一方面,本发明实施例提供的一种模型压缩方法,所述方法包括:
使用第一模型对预测数据进行预测,得到所述第一模型分别在所述第一模型的N个网络层中的输出以及所述预测数据对应的预测结果,并使用所述预测数据和预测数据对应的预测结果训练第二模型,得到所述第二模型分别在所述第二模型的N个网络层中的输出;所述第二模型是通过对所述第一模型进行剪枝得到的,所述第二模型的N个网络层与所述第一模型的N个网络层一一对应;进一步地,根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,得到对所述第一模型进行压缩之后的目标模型。
上述技术方案中,一方面,通过采用第一模型的预测结果训练第二模型,可以使得第二模型更好地学习到第一模型的输出数据特征,提高第二模型对预测数据的预测能力;另一方面,通过基于预设网络层中第二模型相对于第一模型的输出损失调整第二模型的参数,可以使得第二模型更好地学习到第一模型的预设网络层上的特征,从而使得第二模型在预设网络层上复现第一模型的能力。也就是说,上述技术方案可以使得压缩之后的目标模型更好地复现第一模型的内容,相对于现有技术的方式来说,可以提高目标模型的预测效果。
可选地,所述第一模型的N个网络层包括第x网络层和第y网络层,所述第x网络层的N个节点与所述第y网络层的M个节点连接;所述第二模型是通过对所述第一模型进行剪枝得到的,包括:对所述第x网络层的T个节点与所述第y网络层的R个节点的连接关系进行剪枝,得到第二模型;所述第二模型的第x网络层中包括N个节点,所述第二模型的第y网络层中包括M个节点。
上述技术方案中,通过对第一模型所包括的节点的连接关系进行剪枝得到第二模型,可以使得第二模型的网络层中所包括的节点与第一模型的对应网络层中所包括的节点相同,即可以保证第二模型在每一个网络层的特征表示维度与第一模型的每一个网络层的特征表示维度相同,使得第二模型更好地萃取到第一模型的知识。
可选地,所述根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,包括:根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出,确定i个网络层中所述第二模型相对于所述第一模型的输出损失;所述i个网络层中包括第t网络层,若所述t小于所述N,则根据所述第t网络层中所述第二模型相对于所述第一模型的输出损失调整所述第二模型的第1~第t网络层的参数;若所述t等于所述N,则根据第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失调整所述第二模型的第1~第N网络层的参数。
上述技术方案中,通过使用第t网络层中的第二模型相对于第一模型的输出损失调整第二模型的第1~第t网络层的参数,可以使得第二模型可以根据第一模型的预测过程逐步调整第二模型的参数,使得第二模型更好地萃取第一模型的内容;也就是说,采用上述技术方案,可以使得第二模型中每个网络层的特征表示和输出信息与第一模型中每个网络层的特征表示和输出信息实现一致,从而可以提高第二模型的预测效果。
可选地,所述第t网络层中所述第二模型相对于所述第一模型的输出损失满足如下条件:L为所述第t网络层中所述第二模型相对于所述第一模型的输出损失,u为所述第t网络层中的节点的数量,hi为所述第一模型在所述第一模型的第t网络层中包括的第i节点的输出,pi为所述第二模型在所述第二模型的第t网络层中包括的第i节点的输出;所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失满足如下条件:其中,L为所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失,α为第一校正值,β为第二校正值,LN为所述第N网络层中所述第二模型相对于所述第一模型的输出损失,Lj为所述第j网络层中所述第二模型相对于所述第一模型的输出损失。
第二方面,本发明实施例提供的一种模型压缩装置,所述装置包括:
预测模块,用于使用第一模型对预测数据进行预测,得到所述第一模型分别在所述第一模型的N个网络层中的输出以及所述预测数据对应的预测结果;
训练模块,用于使用所述预测数据和预测数据对应的预测结果训练第二模型,得到所述第二模型分别在所述第二模型的N个网络层中的输出;所述第二模型是通过对所述第一模型进行剪枝得到的,所述第二模型的N个网络层与所述第一模型的N个网络层一一对应;
处理模块,用于根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,得到对所述第一模型进行压缩之后的目标模型。
可选地,所述第一模型的N个网络层包括第x网络层和第y网络层,所述第x网络层的N个节点与所述第y网络层的M个节点连接;所述训练模块用于:对所述第x网络层的T个节点与所述第y网络层的R个节点的连接关系进行剪枝,得到第二模型;所述第二模型的第x网络层中包括N个节点,所述第二模型的第y网络层中包括M个节点。
可选地,所述处理模块用于:根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出,确定i个网络层中所述第二模型相对于所述第一模型的输出损失;所述i个网络层中包括第t网络层,若所述t小于所述N,则根据所述第t网络层中所述第二模型相对于所述第一模型的输出损失调整所述第二模型的第1~第t网络层的参数;若所述t等于所述N,则根据第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失调整所述第二模型的第1~第N网络层的参数。
可选地,所述第t网络层中所述第二模型相对于所述第一模型的输出损失满足如下条件:L为所述第t网络层中所述第二模型相对于所述第一模型的输出损失,u为所述第t网络层中的节点的数量,hi为所述第一模型在所述第一模型的第t网络层中包括的第i节点的输出,pi为所述第二模型在所述第二模型的第t网络层中包括的第i节点的输出;所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失满足如下条件:其中,L为所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失,α为第一校正值,β为第二校正值,LN为所述第N网络层中所述第二模型相对于所述第一模型的输出损失,Lj为所述第j网络层中所述第二模型相对于所述第一模型的输出损失。
第三方面,本发明实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述第一方面或第二方面所述的模型压缩方法。
第四方面,本发明实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述第一方面或第二方面所述的模型压缩方法。
本申请的这些方面(即第一~第四方面)或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种模型压缩方法对应的流程示意图;
图2为本发明实施例提供的一种对第一模型进行压缩的示意图;
图3为本发明实施例提供的一种模型压缩装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种模型压缩方法对应的流程示意图,该方法包括:
步骤101,使用第一模型对预测数据进行预测,得到第一模型分别在第一模型的N个网络层中的输出以及预测数据对应的预测结果。
具体实施中,可以预先获取训练数据,并使用训练数据对模型进行训练,得到第一模型。其中,训练数据可以为图像数据,或者也可以为文字数据,或者还可以为日志数据,具体不作限定。
以图像数据为例,训练数据可以包括多个图像和多个图像分别对应的标签,在具体实施中,可以将多个图像和多个图像分别对应的标签同时输入模型训练***,通过对每个标签所包括的一个或多个图像进行分析,可以确定每个标签对应的图像的特征,从而可以基于多个标签对应的图像的特征确定第一模型的参数。
在一个示例中,训练数据可以存储在预设表格中,表1为一种预设表格存储的训练数据的示意表。
表1:一种预设表格存储的训练数据的示意
如表1所示,预设表格中可以存储有5条训练数据,每条训练数据均可以包括一幅图像和该幅图像对应的标签。第一条训练数据可以包括图像a1,图像a1对应的标签(即类别)可以为羊;第二条训练数据可以包括图像a2,图像a2对应的标签(即类别)可以为猪;第三条训练数据可以包括图像a3,图像a3对应的标签(即类别)可以为猪;第四条训练数据可以包括图像a4,图像a4对应的标签(即类别)可以为羊;第五条训练数据可以包括图像a5,图像a5对应的标签(即类别)可以为羊。
需要说明的是,表1仅是一种示例性的简单说明,其所列举的5条训练数据仅是为了便于说明方案,并不构成对方案的限定。在具体实施中,预设表格中的训练数据也可以包括其它类型,比如可以同时包括图像数据和文字数据,或者可以同时包括文字数据和日志数据,或者还可以同时包括图像数据、文字数据和日志数据,具体不作限定。
具体实施中,在将5个图像和5个图像分别对应的标签输入模型训练***后,可以根据5个图像分别对应的标签将5个图像划分为两类训练数据,第一类训练数据可以包括图像a1、图像a3和图像a5,第二类训练数据可以包括图像a2和图像a4。通过对第一类训练数据进行训练,可以得到标签羊对应的特征,通过对第二类训练数据进行训练,可以得到标签猪对应的特征,通过对第一类训练数据和第二类训练数据进行训练,可以得到标签羊和标签猪的区别特征。
相应地,使用训练数据训练得到的第一模型中可以包括标签羊的特征对应的参数和标签猪的特征对应的参数,若使用第一模型对待预测图像进行预测,则可以得到待预测图像分别对应为标签羊和标签猪的概率,即第一模型的输出可以包括两个子部分,第一个子部分可以为待预测图像对应的标签为羊的预测分值,第二个子部分可以为待预测图像对应的标签为猪的预测分值。其中,预测分值可以由本领域技术人员根据实际需要进行设置,比如可以为概率,具体不作限定。
本发明实施例中,预测数据可以为训练数据,或者也可以为待预测数据,若预测数据为训练数据,则可以根据训练数据的预测结果对第一模型进行压缩,若预测数据为待预测数据,则可以根据待预测数据的预测结果对第一模型进行压缩。本发明的下列实施例中以预测数据为训练数据为例进行描述。
具体实施中,在使用训练数据(比如表1所示的图像a1~图像a5)训练得到第一模型后,可以使用第一模型对图像a1~图像a5进行预测,分别得到图像a1~图像a5对应为标签羊和标签猪的预测分值。在一个示例中,表2为使用第一模型对图像a1~图像a5进行预测得到的预测结果示意表。
表2:一种使用第一模型预测训练数据得到的预测结果示意
如表2所示,每个训练数据的预测结果可以包括每个训练数据对应为每个标签的预测分值,此处,预测分值可以为概率。举例来说,第一条训练数据为图像a1,图像a1对应的标签为羊的概率可以为60%,图像a1对应的标签为猪的概率可以为40%;第三条训练数据为图像a2,图像a2对应的标签为羊的概率可以为20%,图像a2对应的标签为猪的概率可以为80%。
本发明实施例中,使用第一模型对训练数据进行预测时,还可以得到第一模型分别在第一模型的N个网络层中的输出。具体地说,第一模型的模型结构中可以包括N个网络层,N个网络层的结构可以相同,或者也可以不同;若N个网络层的结构相同,则N个网络层可以均为卷积层,或者也可以均为池化层,或者还可以均为激活层;若N个网络层的结构不同,则N个网络层可以包括卷积层和池化层,或者也可以包括池化层和激活层,或者还可以包括卷积层、层和激活层,具体不作限定。
举例说明,图2为本发明实施例提供的一种对第一模型进行压缩的示意图。如图2所示,第一模型100中可以包括第一网络层、第二网络层和第三网络层(图2中未进行示意),第一网络层中可以包括节点111、节点112、节点113和节点114,第二网络层中可以包括节点121、节点122、节点123、节点124和节点125,第三网络层中可以包括节点131、节点132、节点133和节点134。基于图2所示意的第一模型的结构,在使用第一模型100对训练数据进行预测时,可以分别得到第一模型100在第一网络层中的输出、第一模型100在第二网络层中的输出、第一模型100在第三网络层中的输出;其中,第一模型100在网络层中的输出可以包括网络层中的各个节点的输出。以第一网络层为例,第一模型100在第一网络层中的输出可以包括节点111的输出、节点112的输出、节点113的输出和节点114的输出。
步骤102,使用预测数据和预测数据对应的预测结果训练第二模型,得到第二模型分别在第二模型的N个网络层中的输出。
在一种可能的实现方式中,第二模型可以为通过对第一模型进行剪枝得到的模型,第二模型的N个网络层与第一模型的N个网络层可以一一对应,其中,剪枝可以是指对第一模型包括的N个网络层的节点连接关系进行剪枝。节点连接关系可以是指不同网络层的节点之间的连接关系,如图2所示,第一模型100的第一网络层与第二网络层之间可以包括如下多条节点连接关系:节点111与节点121可以通过连接关系v11连接,节点111与节点122可以通过连接关系v12连接,节点111与节点123可以通过连接关系v13连接,节点111与节点125可以通过连接关系v14连接,节点112与节点122可以通过连接关系v15连接,节点112与节点124可以通过连接关系v16连接,节点113与节点123可以通过连接关系v17连接,节点113与节点124可以通过连接关系v18连接,节点114与节点125可以通过连接关系v19连接。相应地,第一模型100的第二网络层与第三网络层之间可以包括如下多条节点连接关系:节点121与节点132可以通过连接关系v21连接,节点122与节点131可以通过连接关系v22连接,节点122与节点132可以通过连接关系v23连接,节点123与节点132可以通过连接关系v24连接,节点123与节点133可以通过连接关系v25连接,节点123与节点134可以通过连接关系v26连接,节点124与节点133可以通过连接关系v27连接,节点125与节点134可以通过连接关系v28连接。
如图2所示,具体实施中,针对于第一网络层和第二网络层之间的节点,可以对节点111与节点122之间的连接关系v12、节点111与节点123之间的连接关系v13和节点112与节点124之间的连接关系v16进行剪枝;针对于第二网络层和第三网络层之间的节点,可以将节点123与节点132之间的连接关系v24和节点123与节点133之间的连接关系v25进行剪枝,得到第二模型200。其中,第二模型200中可以包括第一网络层、第二网络层和第三网络层,第一网络层可以包括节点111、节点112、节点113和节点114,第二网络层中可以包括节点121、节点122、节点123、节点124和节点125,第三网络层中可以包括节点131、节点132、节点133和节点134。第二模型200的第一网络层与第二网络层之间可以包括如下多条节点连接关系:节点111与节点121可以通过连接关系v11连接,节点111与节点125可以通过连接关系v14连接,节点112与节点122可以通过连接关系v15连接,节点113与节点123可以通过连接关系v17连接,节点113与节点124可以通过连接关系v18连接,节点114与节点125可以通过连接关系v19连接;相应地,第二模型100的第二网络层与第三网络层之间可以包括如下多条节点连接关系:节点121与节点132可以通过连接关系v21连接,节点122与节点131可以通过连接关系v22连接,节点122与节点132可以通过连接关系v23连接,节点123与节点134可以通过连接关系v26连接,节点124与节点133可以通过连接关系v27连接,节点125与节点134可以通过连接关系v28连接。
本发明实施例中,通过对第一模型所包括的节点的连接关系进行剪枝得到第二模型,可以使得第二模型的网络层中所包括的节点与第一模型的对应网络层中所包括的节点相同,即可以保证第二模型在每一个网络层的特征表示维度与第一模型的每一个网络层的特征表示维度相同,使得第二模型更好地萃取到第一模型的知识。
进一步地,可以使用训练数据和第一模型预测训练数据得到的预测结果训练第二模型,比如,可以将表2所包括的图像a1~图像a5、图像a1~图像a5分别对应为标签羊和标签猪的预测分值作为第二模型的输入,对第二模型中的参数进行训练。同时,在对第二模型训练的过程中,还可以获取第二模型所包括的多个应用层的输出。基于图2所示意的第二模型的结构,在对第二模型200进行训练时,可以分别得到第二模型200在第一网络层中的输出、第二模型200在第二网络层中的输出、第二模型200在第三网络层中的输出;其中,第二模型100在网络层中的输出可以包括网络层中的各个节点的输出。以第一网络层为例,第一模型100在第一网络层中的输出可以包括节点111的输出、节点112的输出、节点113的输出和节点114的输出。由于第二模型200中每个网络层的节点与第一模型100中每个网络层的节点相同,因此,第二模型200得到的每个网络层的输出数量与第一模型100中每个网络层的输出数量相同。
步骤103,根据第一模型中至少一个网络层的输出与第二模型中至少一个网络层的输出调整第二模型的参数,得到对第一模型进行压缩之后的目标模型。
具体实施中,可以根据第一模型中至少一个网络层的输出与第二模型中至少一个网络层的输出确定至少一个网络层中第二模型相对于第一模型的输出损失,并可以根据该输出损失调整第二模型的参数。其中,至少一个网络层可以为一个网络层,比如第一网络层,或者也可以为多个网络层,比如第一网络层和第二网络层,具体不作限定。
每个网络层中第二模型相对于第一模型的输出损失可以为:
其中,L可以为第t网络层中第二模型相对于第一模型的输出损失,u可以为第t网络层中的节点的数量,hi可以为第一模型在第t网络层中包括的第i节点的输出,pi可以为第二模型在第t网络层中包括的第i节点的输出。
在一种可能的实现方式中,可以采用逐层指导的方式调整第二模型的每一个网络层的参数。具体地说,若t小于N,则可以根据第t网络层中第二模型相对于第一模型的输出损失调整第二模型的第1~第t网络层的参数;若t等于N,则可以根据第1~第N网络层中第二模型相对于第一模型的总输出损失调整第二模型的第1~第N网络层的参数。
本发明实施例中,通过使用第二模型相对于第一模型的输出损失调整第二模型的第1~第N网络层的参数,可以使得第二模型可以根据第一模型的预测过程逐步调整第二模型的参数,使得第二模型更好地萃取第一模型的内容;也就是说,采用本发明实施例中的方案,可以使得第二模型中每个网络层的特征表示和输出信息与第一模型中每个网络层的特征表示和输出信息实现一致,从而可以提高第二模型的预测效果。
举例说明,基于图2所示意的第一模型100和第二模型200,第一模型100在第一网络层中的输出可以包括节点111在第一模型100的第一网络层中的输出h111、节点112在第一模型100的第一网络层中的输出h112、节点113在第一模型100的第一网络层中的输出h113和节点114在第一模型100的第一网络层中的输出h114,第二模型200在第一网络层中的输出可以包括节点111在第二模型200的第一网络层中的输出p111、节点112在第二模型200的第一网络层中的输出p112、节点113在第二模型200的第一网络层中的输出p113和节点114在第二模型200的第一网络层中的输出p114;因此,第一网络层中第二模型相对于第一模型的输出损失L1可以为:
L1=(h111-p111)2+(h112-p112)2+(h113-p113)2+(h114-p114)2
在确定第一网络层中第二模型200相对于第一模型100的输出损失L1后,可以根据输出损失L1调整第二模型200的第一网络层的参数。
相应地,第二网络层中第二模型200相对于第一模型100的输出损失L2可以为:
L1=(h121-p121)2+(h122-p122)2+(h123-p123)2+(h124-p124)2+(h125-p125)2
在确定第二网络层中第二模型200相对于第一模型100的输出损失L2后,可以根据输出损失L2调整第二模型200的第二网络层的参数。
相应地,第三网络层中第二模型200相对于第一模型100的输出损失L3可以为:
L1=(h131-p131)2+(h132-p132)2+(h133-p133)2+(h134-p134)2
在一个示例中,在确定第三网络层中第二模型200相对于第一模型100的输出损失L3后,可以根据输出损失L3调整第二模型的第一网络层、第二网络层和第三网络层的参数。
在另一个示例中,可以在确定第一网络层、第二网络层和第三网络层中第二模型200分别相对于第一模型100的输出损失L1、输出损失L2和输出损失L3后,确定第二模型相对于第一模型的总输出损失L,并可以根据总输出损失L调整第二模型200的第一网络层、第二网络层和第三网络层的参数。其中,总输出损失L可以满足如下条件:
其中,α可以为第一校正值,β可以为第二校正值。第一校正值和第二校正值可以由本领域技术人员根据经验进行设置,或者也可以由实验确定,具体不作限定。
本发明的上述实施例中,使用第一模型对预测数据进行预测,得到第一模型分别在第一模型的N个网络层中的输出以及预测数据对应的预测结果,并使用预测数据和预测数据对应的预测结果训练第二模型,得到第二模型分别在第二模型的N个网络层中的输出;进一步地,根据第二模型在第二模型的i个网络层中的输出和第一模型在第一模型的i个网络层中的输出,确定第二模型的i个网络层中第二模型相对于第一模型的输出损失,并根据第二模型的i个网络层中第二模型在相对于第一模型的输出损失调整第二模型的参数,得到对第一模型进行压缩之后的目标模型。本发明实施例中,通过采用第一模型的预测结果训练第二模型,可以使得第二模型更好地学习到第一模型的输出数据特征,提高第二模型对预测数据的预测能力;且,通过基于预设网络层中第二模型相对于第一模型的输出损失调整第二模型的参数,可以使得第二模型更好地学习到第一模型的预设网络层上的特征,使得第二模型在预设网络层上复现第一模型的能力;也就是说,本发明实施例可以使得压缩之后的目标模型更好地复现第一模型的内容,相对于现有技术的方式来说,可以提高目标模型的预测效果。
针对上述方法流程,本发明实施例还提供一种模型压缩装置,该装置的具体内容可以参照上述方法实施。
图3为本发明实施例提供的一种模型压缩装置的结构示意图,包括:
预测模块301,用于使用第一模型对预测数据进行预测,得到所述第一模型分别在所述第一模型的N个网络层中的输出以及所述预测数据对应的预测结果;
训练模块302,用于使用所述预测数据和预测数据对应的预测结果训练第二模型,得到所述第二模型分别在所述第二模型的N个网络层中的输出;所述第二模型是通过对所述第一模型进行剪枝得到的,所述第二模型的N个网络层与所述第一模型的N个网络层一一对应;
处理模块303,用于根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,得到对所述第一模型进行压缩之后的目标模型。
可选地,所述第一模型的N个网络层包括第x网络层和第y网络层,所述第x网络层的N个节点与所述第y网络层的M个节点连接;
所述训练模块302用于:
对所述第x网络层的T个节点与所述第y网络层的R个节点的连接关系进行剪枝,得到第二模型;所述第二模型的第x网络层中包括N个节点,所述第二模型的第y网络层中包括M个节点。
可选地,所述处理模块303用于:
根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出,确定i个网络层中所述第二模型相对于所述第一模型的输出损失;
所述i个网络层中包括第t网络层,若所述t小于所述N,则根据所述第t网络层中所述第二模型相对于所述第一模型的输出损失调整所述第二模型的第1~第t网络层的参数;若所述t等于所述N,则根据第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失调整所述第二模型的第1~第N网络层的参数。
可选地,所述第t网络层中所述第二模型相对于所述第一模型的输出损失满足如下条件:
L为所述第t网络层中所述第二模型相对于所述第一模型的输出损失,u为所述第t网络层中的节点的数量,hi为所述第一模型在所述第一模型的第t网络层中包括的第i节点的输出,pi为所述第二模型在所述第二模型的第t网络层中包括的第i节点的输出;
所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失满足如下条件:
其中,L为所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失,α为第一校正值,β为第二校正值,LN为所述第N网络层中所述第二模型相对于所述第一模型的输出损失,Lj为所述第j网络层中所述第二模型相对于所述第一模型的输出损失。
从上述内容可以看出:本发明的上述实施例中,使用第一模型对预测数据进行预测,得到第一模型分别在第一模型的N个网络层中的输出以及预测数据对应的预测结果,并使用预测数据和预测数据对应的预测结果训练第二模型,得到第二模型分别在第二模型的N个网络层中的输出;进一步地,根据第二模型在第二模型的i个网络层中的输出和第一模型在第一模型的i个网络层中的输出,确定第二模型的i个网络层中第二模型相对于第一模型的输出损失,并根据第二模型的i个网络层中第二模型在相对于第一模型的输出损失调整第二模型的参数,得到对第一模型进行压缩之后的目标模型。本发明实施例中,通过采用第一模型的预测结果训练第二模型,可以使得第二模型更好地学习到第一模型的输出数据特征,提高第二模型对预测数据的预测能力;且,通过基于预设网络层中第二模型相对于第一模型的输出损失调整第二模型的参数,可以使得第二模型更好地学习到第一模型的预设网络层上的特征,使得第二模型在预设网络层上复现第一模型的能力;也就是说,本发明实施例可以使得压缩之后的目标模型更好地复现第一模型的内容,相对于现有技术的方式来说,可以提高目标模型的预测效果。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如图1所述的模型压缩方法。
基于同一发明构思,本发明实施例还提供了一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如图1所述的模型压缩方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种模型压缩方法,其特征在于,所述方法包括:
使用第一模型对预测数据进行预测,得到所述第一模型分别在所述第一模型的N个网络层中的输出以及所述预测数据对应的预测结果;
使用所述预测数据和预测数据对应的预测结果训练第二模型,得到所述第二模型分别在所述第二模型的N个网络层中的输出;所述第二模型是通过对所述第一模型进行剪枝得到的,所述第二模型的N个网络层与所述第一模型的N个网络层一一对应;
根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,得到对所述第一模型进行压缩之后的目标模型。
2.根据权利要求1所述的方法,其特征在于,所述第一模型的N个网络层包括第x网络层和第y网络层,所述第x网络层的N个节点与所述第y网络层的M个节点连接;
所述第二模型是通过对所述第一模型进行剪枝得到的,包括:
对所述第x网络层的T个节点与所述第y网络层的R个节点的连接关系进行剪枝,得到第二模型;所述第二模型的第x网络层中包括N个节点,所述第二模型的第y网络层中包括M个节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,包括:
根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出,确定i个网络层中所述第二模型相对于所述第一模型的输出损失;
所述i个网络层中包括第t网络层,若所述t小于所述N,则根据所述第t网络层中所述第二模型相对于所述第一模型的输出损失调整所述第二模型的第1~第t网络层的参数;若所述t等于所述N,则根据第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失调整所述第二模型的第1~第N网络层的参数。
4.根据权利要求3所述的方法,其特征在于,所述第t网络层中所述第二模型相对于所述第一模型的输出损失满足如下条件:
L为所述第t网络层中所述第二模型相对于所述第一模型的输出损失,u为所述第t网络层中的节点的数量,hi为所述第一模型在所述第一模型的第t网络层中包括的第i节点的输出,pi为所述第二模型在所述第二模型的第t网络层中包括的第i节点的输出;
所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失满足如下条件:
其中,L为所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失,α为第一校正值,β为第二校正值,LN为所述第N网络层中所述第二模型相对于所述第一模型的输出损失,Lj为所述第j网络层中所述第二模型相对于所述第一模型的输出损失。
5.一种模型压缩装置,其特征在于,所述装置包括:
预测模块,用于使用第一模型对预测数据进行预测,得到所述第一模型分别在所述第一模型的N个网络层中的输出以及所述预测数据对应的预测结果;
训练模块,用于使用所述预测数据和预测数据对应的预测结果训练第二模型,得到所述第二模型分别在所述第二模型的N个网络层中的输出;所述第二模型是通过对所述第一模型进行剪枝得到的,所述第二模型的N个网络层与所述第一模型的N个网络层一一对应;
处理模块,用于根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出调整所述第二模型的参数,得到对所述第一模型进行压缩之后的目标模型。
6.根据权利要求5所述的装置,其特征在于,所述第一模型的N个网络层包括第x网络层和第y网络层,所述第x网络层的N个节点与所述第y网络层的M个节点连接;
所述训练模块用于:
对所述第x网络层的T个节点与所述第y网络层的R个节点的连接关系进行剪枝,得到第二模型;所述第二模型的第x网络层中包括N个节点,所述第二模型的第y网络层中包括M个节点。
7.根据权利要求6所述的装置,其特征在于,所述处理模块用于:
根据所述第二模型在第二模型的i个网络层中的输出和所述第一模型在所述第一模型的i个网络层中的输出,确定i个网络层中所述第二模型相对于所述第一模型的输出损失;
所述i个网络层中包括第t网络层,若所述t小于所述N,则根据所述第t网络层中所述第二模型相对于所述第一模型的输出损失调整所述第二模型的第1~第t网络层的参数;若所述t等于所述N,则根据第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失调整所述第二模型的第1~第N网络层的参数。
8.根据权利要求7所述的装置,其特征在于,所述第t网络层中所述第二模型相对于所述第一模型的输出损失满足如下条件:
L为所述第t网络层中所述第二模型相对于所述第一模型的输出损失,u为所述第t网络层中的节点的数量,hi为所述第一模型在所述第一模型的第t网络层中包括的第i节点的输出,pi为所述第二模型在所述第二模型的第t网络层中包括的第i节点的输出;
所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失满足如下条件:
其中,L为所述第1~第N网络层中所述第二模型相对于所述第一模型的总输出损失,α为第一校正值,β为第二校正值,LN为所述第N网络层中所述第二模型相对于所述第一模型的输出损失,Lj为所述第j网络层中所述第二模型相对于所述第一模型的输出损失。
9.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至4任一项所述的方法。
10.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910239985.6A CN110008880B (zh) | 2019-03-27 | 2019-03-27 | 一种模型压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910239985.6A CN110008880B (zh) | 2019-03-27 | 2019-03-27 | 一种模型压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008880A true CN110008880A (zh) | 2019-07-12 |
CN110008880B CN110008880B (zh) | 2023-09-29 |
Family
ID=67168470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910239985.6A Active CN110008880B (zh) | 2019-03-27 | 2019-03-27 | 一种模型压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008880B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144456A (zh) * | 2019-12-13 | 2020-05-12 | 东南大学 | 一种基于本征特征迁移的深度模型压缩方法 |
CN116139464A (zh) * | 2023-03-28 | 2023-05-23 | 浙江大学 | 基于量化指标下的呼吸训练数据采集方法和采集*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096748A (zh) * | 2016-04-28 | 2016-11-09 | 武汉宝钢华中贸易有限公司 | 基于聚类分析和决策树算法的装车工时预测模型 |
CN106355248A (zh) * | 2016-08-26 | 2017-01-25 | 深圳先进技术研究院 | 一种深度卷积神经网络训练方法及装置 |
CN108510083A (zh) * | 2018-03-29 | 2018-09-07 | 国信优易数据有限公司 | 一种神经网络模型压缩方法以及装置 |
US20180288182A1 (en) * | 2017-03-30 | 2018-10-04 | Xevo Inc. | Method and system for providing predictions via artificial intelligence (ai) models using a distributed system |
CN109523017A (zh) * | 2018-11-27 | 2019-03-26 | 广州市百果园信息技术有限公司 | 深度神经网络的压缩方法、装置、设备及存储介质 |
-
2019
- 2019-03-27 CN CN201910239985.6A patent/CN110008880B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096748A (zh) * | 2016-04-28 | 2016-11-09 | 武汉宝钢华中贸易有限公司 | 基于聚类分析和决策树算法的装车工时预测模型 |
CN106355248A (zh) * | 2016-08-26 | 2017-01-25 | 深圳先进技术研究院 | 一种深度卷积神经网络训练方法及装置 |
US20180288182A1 (en) * | 2017-03-30 | 2018-10-04 | Xevo Inc. | Method and system for providing predictions via artificial intelligence (ai) models using a distributed system |
CN108510083A (zh) * | 2018-03-29 | 2018-09-07 | 国信优易数据有限公司 | 一种神经网络模型压缩方法以及装置 |
CN109523017A (zh) * | 2018-11-27 | 2019-03-26 | 广州市百果园信息技术有限公司 | 深度神经网络的压缩方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144456A (zh) * | 2019-12-13 | 2020-05-12 | 东南大学 | 一种基于本征特征迁移的深度模型压缩方法 |
CN116139464A (zh) * | 2023-03-28 | 2023-05-23 | 浙江大学 | 基于量化指标下的呼吸训练数据采集方法和采集*** |
Also Published As
Publication number | Publication date |
---|---|
CN110008880B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509411A (zh) | 语义分析方法和装置 | |
CN110147456A (zh) | 一种图像分类方法、装置、可读存储介质及终端设备 | |
EP4037256A1 (en) | Bandwidth prediction method and apparatus, electronic device and storage medium | |
CN109376844A (zh) | 基于云平台和模型推荐的神经网络自动训练方法和装置 | |
CN109711544A (zh) | 模型压缩的方法、装置、电子设备及计算机存储介质 | |
CN106095834A (zh) | 基于话题的智能对话方法及*** | |
CN106097043B (zh) | 一种信用数据的处理方法及服务器 | |
CN110059672A (zh) | 一种利用增量学习对显微镜细胞图像检测模型进行增类学习的方法 | |
CN107239443A (zh) | 一种词向量学习模型的训练方法及服务器 | |
CN109977029A (zh) | 一种页面跳转模型的训练方法及装置 | |
CN109101624A (zh) | 对话处理方法、装置、电子设备及存储介质 | |
CN111898020A (zh) | 基于bert和lstm的知识学习体系推荐方法、设备及介质 | |
CN110047512A (zh) | 一种环境声音分类方法、***及相关装置 | |
CN105022754A (zh) | 基于社交网络的对象分类方法及装置 | |
CN109978074A (zh) | 基于深度多任务学习的图像美感和情感联合分类方法及*** | |
CN108320044A (zh) | 学生学习时长预测方法和装置 | |
CN110531849A (zh) | 一种基于5g通信的增强现实的智能教学*** | |
CN108304376A (zh) | 文本向量的确定方法、装置、存储介质及电子装置 | |
CN110032684A (zh) | 基于共享账户的信息跨域并行序列推荐方法、介质及设备 | |
CN110008880A (zh) | 一种模型压缩方法及装置 | |
CN107977676A (zh) | 文本相似度计算方法及装置 | |
CN110069781A (zh) | 一种实体标签的识别方法及相关设备 | |
CN108304387A (zh) | 文本中噪音词的识别方法、装置、服务器组及存储介质 | |
CN110222838A (zh) | 深度神经网络及其训练方法、装置、电子设备及存储介质 | |
CN109300069A (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 |