卷积神经网络模型压缩方法和装置、存储介质及电子装置与流程

文档序号:18217470发布日期:2019-07-19 22:45阅读:168来源:国知局
卷积神经网络模型压缩方法和装置、存储介质及电子装置与流程

本发明涉及计算机领域,具体而言,涉及一种卷积神经网络模型压缩方法和装置、存储介质及电子装置。



背景技术:

相关技术中,神经网络模型参数量巨大,难以直接应用到终端产品中。

此外,由于神经网络模型的参数量巨大,内存消耗高,造成神经网络模型的使用效率低。进一步由于内存消耗高,则仅允许在固定的场景中使用,造成神经网络模型的使用灵活性差。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种卷积神经网络模型压缩方法和装置、存储介质及电子装置,以至少解决相关技术中神经网络模型的使用效率低、灵活性差的技术问题。

根据本发明实施例的一个方面,提供了一种卷积神经网络模型压缩方法,包括:将卷积神经网络模型中的第一批量标准化层的参数合并到上述卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型,其中,上述卷积神经网络模型与上述第一目标神经网络模型对于相同的输入具有相同的输出,上述第一批量标准化层为在上述卷积神经网络模型中位于上述第一卷积层之后、且与上述第一卷积层连接的批量标准化层;将上述第一目标神经网络模型中的上述第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型,其中,上述第二目标神经网络模型的内存占用率小于上述第一目标神经网络模型的内存占用率;对上述第二目标神经网络模型进行压缩,得到第三目标神经网络模型。

根据本发明实施例的另一方面,还提供了一种卷积神经网络模型使用方法,包括:获取待输入参数;将上述待输入参数输入到第三目标神经网络模型中,其中,上述第三目标神经网络模型为将卷积神经网络模型中的第一批量标准化层的参数合并到上述卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型后,删除上述第一目标神经网络模型中的上述第一目标卷积层中的目标卷积核,并对删除上述目标卷积核后的第二目标神经网络模型进行压缩得到的模型,其中,上述卷积神经网络模型与上述第一目标神经网络模型对于相同的输入具有相同的输出,上述第一批量标准化层为在上述卷积神经网络模型中位于上述第一卷积层之后、且与上述第一卷积层连接的批量标准化层;获取上述第三目标神经网络模型输出的结果。

根据本发明实施例的又一方面,还提供了一种卷积神经网络模型压缩装置,包括:合并单元,用于将卷积神经网络模型中的第一批量标准化层的参数合并到上述卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型,其中,上述卷积神经网络模型与上述第一目标神经网络模型对于相同的输入具有相同的输出,上述第一批量标准化层为在上述卷积神经网络模型中位于上述第一卷积层之后、且与上述第一卷积层连接的批量标准化层;删除单元,用于将上述第一目标神经网络模型中的上述第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型,其中,上述第二目标神经网络模型的内存占用率小于上述第一目标神经网络模型的内存占用率;压缩单元,用于对上述第二目标神经网络模型进行压缩,得到第三目标神经网络模型。

作为一种可选的示例,上述装置还包括:第一确定单元,用于在得到上述第二目标神经网络模型之前确定上述第一目标卷积层中每一组卷积核的p-范数,其中,p等于0或p等于1或p等于2或p等于正无穷;上述删除单元包括:第一设定模块,用于设定每一组卷积核的剪枝率;排序模块,用于将每一组卷积核的p-范数按照从大到小的顺序进行排列;删除模块,用于删除上述每一组卷积核的p-范数中小于上述第一阈值的p-范数对应的目标组卷积核,直到满足上述剪枝率的要求,得到上述第二目标神经网络模型,其中,上述第二目标神经网络模型中所有卷积核的数量与上述第一目标神经网络模型中所有卷积核的数量的比值小于预定阈值。

作为一种可选的示例,上述删除模块包括:删除子模块,用于将上述p-范数小于上述第一阈值的目标组卷积核的权重设置为0。

作为一种可选的示例,上述装置还包括:第二确定单元,用于在将上述卷积神经网络模型中的上述第一批量标准化层的参数合并到上述卷积神经网络模型中的上述第一卷积层中之前,在上述卷积神经网络模型包含卷积层形成的跨层连接分支和/或多层串连分支的情况下,将上述卷积神经网络模型中除每个分支上的最后一个卷积层之外的卷积层作为上述第一卷积层。

作为一种可选的示例,上述合并单元包括:第一计算模块,用于根据上述第一卷积层的与上述第一卷积层的第i个输出特征图对应的n个卷积核、上述第一批量标准化层的与上述第一卷积层的第i个输出特征图对应的参数,计算得到上述第一目标卷积层的对应于上述第i个输出特征图的n个卷积核;第二计算模块,用于根据上述第一卷积层的与上述第一卷积层的第i个输出特征图对应的偏置、上述第一批量标准化层的与上述第一卷积层的第i个输出特征图对应的参数,计算得到上述第一目标卷积层的对应于上述第i个输出特征图的偏置;第三计算模块,用于根据上述第一卷积层的n个输入特征图与上述第一目标卷积层的对应于第i个输出特征图的n个卷积核之间的卷积和,以及,上述第一目标卷积层的对应于上述第i个输出特征图的偏置,确定出上述第一目标卷积层的第i个输出特征图,其中,n为上述第一卷积层的输入特征图的个数,1≤i≤m,m为上述第一目标卷积层的输出特征图的个数。

作为一种可选的示例,上述第一确定单元包括:第一确定模块,用于确定上述第一目标卷积层的对应于第i个输出特征图的n个卷积核的p-范数,其中,1≤i≤m,上述m为上述第一目标卷积层的输出特征图的个数,上述n为上述第一卷积层的输入特征图的个数,上述第一目标卷积层中的第i组卷积核为上述第一目标卷积层的对应于上述第i个输出特征图的上述n个卷积核;第二确定模块,用于确定上述第一目标卷积层的对应于第i个输出特征图的n个卷积核的p-范数之和;第三确定模块,用于将上述p-范数之和的次方作为上述第一目标卷积层的对应于第i个输出特征图的第i组卷积核的p-范数。

作为一种可选的示例,上述压缩单元包括:第二设定模块,用于设定压缩率ρ,其中0<ρ<1;压缩模块,用于对上述第二目标神经网络模型进行逐层压缩,直到满足设定的压缩率ρ。

作为一种可选的示例,上述装置还包括:第一获取单元,用于在对上述第二目标神经网络模型进行压缩,得到第三目标神经网络模型之后,获取人物面部图像;输入单元,用于将上述人物面部图像输入到上述第三目标神经网络模型中;第二获取单元,用于获取上述第三目标神经网络模型输出的结果,其中,上述输出的结果为上述人物面部图像对应的人物的年龄。

根据本发明实施例的又一方面,还提供了一种卷积神经网络模型使用装置,包括:第一获取单元,用于获取待输入参数;输入单元,用于将上述待输入参数输入到第三目标神经网络模型中,其中,上述第三目标神经网络模型为将卷积神经网络模型中的第一批量标准化层的参数合并到上述卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型后,删除上述第一目标神经网络模型中的上述第一目标卷积层中的目标卷积核,并对删除上述目标卷积核后的第二目标神经网络模型进行压缩得到的模型,其中,上述卷积神经网络模型与上述第一目标神经网络模型对于相同的输入具有相同的输出,上述第一批量标准化层为在上述卷积神经网络模型中位于上述第一卷积层之后、且与上述第一卷积层连接的批量标准化层;第二获取单元,用于获取上述第三目标神经网络模型输出的结果。

作为一种可选的示例,上述装置还包括:确定单元,用于在将上述第一批量标准化层的参数合并到上述卷积神经网络模型中的第一卷积层中之前,在上述卷积神经网络模型包含卷积层形成的跨层连接分支和/或多层串连分支的情况下,将上述卷积神经网络模型中除每个分支上的最后一个卷积层之外的卷积层作为上述第一卷积层。

作为一种可选的示例,上述第一获取单元包括:第一获取模块,用于获取人物面部图像;上述输入单元包括:输入模块,用于将上述人物面部图像输入到上述第三目标神经网络模型中;上述第二获取单元包括:第二获取模块,用于获取上述第三目标神经网络模型输出的上述人物面部图像对应的人物的年龄。

根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述卷积神经网络模型压缩方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的卷积神经网络模型压缩方法。

在本发明实施例中,采用了将卷积神经网络模型中的第一批量标准化层的参数合并到上述卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型;将上述第一目标神经网络模型中的上述第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型;对上述第二目标神经网络模型进行压缩,得到第三目标神经网络模型的方法。在上述方法中,由于将卷积神经网络模型中的第一批量标准化层合并到了第一卷积层中,生成第一目标神经网络模型,并对第一目标神经网络模型中的范数小于第一阈值的卷积核执行删除操作,得到内存占用率更小的第二目标神经网络模型,以及对第二目标神经网络模型进行压缩,得到收敛的第三目标神经网络模型,从而实现了对卷积神经网络模型的裁剪,减少了卷积神经网络模型的体积,降低了卷积神经网络模型的内存占用,提高了卷积神经网络模型的使用效率。进一步由于卷积神经网络模型的体积减少,因此不必拘泥于特定的使用环境,提高了卷积神经网络模型使用灵活性。解决了相关技术中神经网络模型的使用效率低、灵活性差的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的卷积神经网络模型压缩方法的应用环境的示意图;

图2是根据本发明实施例的一种可选的卷积神经网络模型压缩方法的流程示意图;

图3是根据本发明实施例的一种可选的卷积神经网络模型压缩方法的示意图;

图4是根据本发明实施例的另一种可选的卷积神经网络模型压缩方法的示意图;

图5是根据本发明实施例的又一种可选的卷积神经网络模型压缩方法的示意图;

图6是根据本发明实施例的又一种可选的卷积神经网络模型压缩方法的示意图;

图7是根据本发明实施例的另一种可选的卷积神经网络模型压缩方法的流程示意图;

图8是根据本发明实施例的一种可选的卷积神经网络模型使用方法的流程示意图;

图9是根据本发明实施例的一种可选的卷积神经网络模型压缩装置的结构示意图;

图10是根据本发明实施例的另一种可选的卷积神经网络模型压缩装置的结构示意图;

图11是根据本发明实施例的又一种可选的卷积神经网络模型压缩装置的结构示意图;

图12是根据本发明实施例的又一种可选的卷积神经网络模型压缩装置的结构示意图;

图13是根据本发明实施例的一种可选的卷积神经网络模型使用装置的结构示意图;

图14是根据本发明实施例的另一种可选的卷积神经网络模型使用装置的结构示意图;

图15是根据本发明实施例的一种可选的电子装置的结构示意图;

图16是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种卷积神经网络模型压缩方法,可选地,作为一种可选的实施方式,上述卷积神经网络模型压缩方法可以但不限于应用于如图1所示的环境中。

如图1所示,图1中包含有终端104与服务器112。终端104负责与用户102进行人机交互,终端104包括存储器106,用于存储用户102输入的交互信息、处理器108,用于对用户102输入的交互信息进行处理,或通过网络110将交互信息发送给服务器112。服务器112包括数据库114,用于存储用户102的交互信息,处理引擎116,用于对交互信息进行处理或转发等。

终端104上显示有用户操作界面104-2,用户操作界面中包含有内容输入按钮104-4与结果显示区域104-6。其中,内容输入按钮用于检测数据输入指令,在检测到数据输入指令后终端104接收参数,并将参数输入到目标卷积神经网络模型中,由目标卷积神经网络模型输出结果,将结果在结果显示区域104-6显示结果。

可选地,上述终端104可以但不限于为手机、平板电脑、笔记本电脑、pc机或其他物理终端,上述网络110可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器112可以包括但不限于任何可以进行计算的硬件设备。

需要说明的是,图1仅为一种示例,显示结果的方式并不局限于界面显示,还可以以声音的形式输出结果。输入参数时,同样并不局限于使用输入按钮104-4输入,还可以使用其他方式,如传感器获取,摄像头拍摄,语音输入等。本实施例对此不做限定。

通过本实施例,通过将卷积神经网络模型中的第一批量标准化层合并到了第一卷积层中,生成第一目标神经网络模型,并对第一目标神经网络模型中的范数小于第一阈值的卷积核执行删除操作,得到内存占用率更小的第二目标神经网络模型,以及对第二目标神经网络模型进行训练,得到收敛的第三目标神经网络模型的方法,从而实现了对卷积神经网络模型的裁剪,减少了卷积神经网络模型的体积,降低了卷积神经网络模型的内存占用,提高了卷积神经网络模型的使用效率。进一步由于卷积神经网络模型的体积减少,因此不必拘泥于特定的使用环境,提高了卷积神经网络模型使用灵活性。

可选地,作为一种可选的实施方式,如图2所示,上述卷积神经网络模型压缩方法包括:

s202,将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

s204,将第一目标神经网络模型中的第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型,其中,第二目标神经网络模型的内存占用率小于第一目标神经网络模型的内存占用率;

s206,对第二目标神经网络模型进行压缩,得到第三目标神经网络模型。

可选地,上述卷积神经网络模型的压缩方法可以但不限于应用于任何使用卷积神经网络模型的领域中。例如,将上述卷积神经网络模型应用到自动识别水果好坏的场景中。若是使用现有技术,由于卷积神经网络模型体积大,内存占用高,若是采用现有的卷积神经网络模型识别水果好坏,则消耗资源多,识别效率低。而通过本方案中的卷积神经网络模型压缩方法,通过对卷积神经网络模型的压缩,从而减小了卷积神经网络模型的体积,降低了卷积神经网络模型的内存消耗。例如将压缩后的卷积神经网络模型安装在手机中,则手机获取到水果的图片即可判断水果的好坏,提高了卷积神经网络模型的使用效率与使用灵活性。

或者,将上述卷积神经网络模型应用到识别人物年龄的场景中。通过对卷积神经网络模型的压缩,从而减小了卷积神经网络模型的体积,降低了卷积神经网络模型的内存消耗。在应用压缩后的卷积神经网络模型时,由于压缩后的卷积神经网络模型体积小,内存消耗低,因此可以灵活的应用。如使用携带有压缩后的卷积神经网络模型的手机拍照,然后识别照片,输出被拍照者的年龄。实现了提高了卷积神经网络模型的使用效率与使用灵活性的效果。

需要说明的是,上述仅为对压缩的卷积神经网络模型的使用示例,本实施例并不限定卷积神经网络模型的使用形式。任何使用卷积神经网络模型的场景都可以使用本方案对卷积神经网络模型进行压缩,从而缩小卷积神经网络模型的体积,减少卷积神经网络模型的内存消耗,从而提高卷积神经网络模型的使用效率与使用灵活性。

可选地,上述卷积神经网络模型的第一卷积层可以为卷积神经网络模型的任意一层。而由于卷积神经网络模型可能包含跨层连接分支和/或多层串联分支的情况。针对存在跨层连接分支和/或多层串联分支的情况的卷积神经网络模型,将卷积神经网络模型的所有分支中除了每一个分支的最后一个卷积层之外的所有卷积层确定为第一卷积层。即,除了每一个分支的最后一个卷积层不合并之外,将其他剩余的卷积层均作为第一卷积层并进行合并操作,从而实现了对卷积神经网络模型的压缩。同时,保证了不同分支的输出结果的融合。

可选地,在将卷积神经网络模型中的第一批量标准化层的参数合并到第一卷积层中之后,需要将合并后得到的第一目标卷积层中不重要的卷积核删除,从而实现对第一目标卷积层的压缩,进而实现对卷积神经网络模型的压缩。此时,可选地,可以使用p-范数的方法确定每一组卷积核的重要程度。例如,结合图3(a)与图3(b)所示,图3(a)中包括第一目标卷积层302,第一目标卷积层302中的第一个输出特征图对应着一组卷积核k′11、k′21、k′31。而在计算出每一个目标卷积层的每一组卷积核的p-范数之后,对每一组卷积核的-范数进行排序,p-范数小于第一阈值的目标组卷积核将被删除。如目标组卷积核k′11、k′21、k′31对应的p-范数小于第一阈值,则将目标组卷积核k′11、k′21、k′31删除,也就是将输出特征图删除,从而完成对卷积神经网络模型的压缩。需要说明的是,由于输出特征图的三个输入被删除,对应的与相联系的后续卷积核也要删除。的如图3(b)中的压缩后的第一目标卷积层304所示,删除之后的相关的卷积核(将图3(a)中的所有虚线删除)。

需要说明的是,在实际应用中,可以将上述目标组卷积核k′11、k′21、k′31的权重设置为0,则输出特征图不再输入与输出有效参数,以实现删除目标组卷积核的效果。上述p可以为1或2,即计算每一组卷积核的1-范数或2-范数,根据1-范数或2-范数的大小确定删除一组或多组卷积核。

在将p-范数小于第一阈值的目标组卷积核删除之后,包含有第一目标卷积层的第二目标神经网络模型中所有剩余卷积核的数量与第一目标神经网络模型中所有卷积核的数量的比值小于预定阈值。例如,在删除目标组卷积核后,第二目标神经网络模型中剩余卷积核500个,而第一目标神经网络模型中总卷积核数1000个。设置预定阈值为60%,则第二目标神经网络模型中所有剩余卷积核的数量与第一目标神经网络模型中所有卷积核的数量的比值为50%,小于了预定阈值。

需要说明的是,在删除第一目标卷积层的目标组卷积核的过程中,需要为每一个目标卷积层设置一个预设压缩率,预设压缩率用于确定对第一目标卷积层的压缩程度。如设置预设压缩率为80%,则对应的应该删除20%的卷积核。如对p-范数进行排序后,删除最小的p-范数对应的目标组卷积核,然后检测删除后的第一目标卷积层的压缩率是否小于了80%。若是第一目标卷积层的压缩率小于了80%,则表示第一目标卷积层压缩合格。若是第一目标卷积层的压缩率大于了80%,则表示第一目标卷积层还需要继续压缩。此时,再次删除当前最小,初始第二小的p-范数对应的目标组卷积核,直到压缩率小于了80%,完成对第一目标卷积层的压缩。需要说明的是,对各个第一目标卷积层设置的预设压缩率可以相同也可以不同,具体数值根据需要设定。

可选地,在对卷积神经网络模型中的第一目标卷积层进行压缩得到第二目标神经网络模型之后,对第二目标神经网络模型进行训练,直到第二目标神经网络模型收敛。此时,将收敛的第二目标神经网络模型作为第三目标神经网络模型,从而完成对卷积神经网络模型的压缩。在压缩过程中,可以对第二目标神经网络模型进行逐层压缩。

通过本实施例,通过将卷积神经网络模型中的第一批量标准化层的参数合并到第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型;将第一目标神经网络模型中第一目标卷积层中的范数小于第一阈值的卷积核删除;对删除目标卷积核后的第二目标神经网络模型进行压缩,得到第三目标神经网络模型的方法,从而实现了对卷积神经网络模型的压缩,减小了卷积神经网络模型的体积,提高了卷积神经网络模型的使用效率与使用灵活性。

作为一种可选的实施方案,

在得到第二目标神经网络模型之前,方法还包括:s1,确定所述第一目标卷积层中每一组卷积核的p-范数,其中,p等于0或p等于1或p等于2或p等于正无穷;

将第一目标神经网络模型中的第一目标卷积层中范数小于第一阈值的卷积核删除包括:s1,设定每一组卷积核的剪枝率;s2,将每一组卷积核的p-范数按照从大到小的顺序进行排列;s3,删除所述每一组卷积核的p-范数中小于所述第一阈值的p-范数对应的目标组卷积核,直到满足所述剪枝率的要求,得到所述第二目标神经网络模型,其中,所述第二目标神经网络模型中所有卷积核的数量与所述第一目标神经网络模型中所有卷积核的数量的比值小于预定阈值。

上述剪枝率可以用于表示一组卷积核的删除程度,可以用0-1之间的数值表示。如剪枝率为60则表示需要将该组卷积核压缩到原有的40%。

可选地,在得到第一目标卷积层中的每一组卷积核的p-范数之后,可以按照组对p-范数进行排序,按照从大到小的顺序或者从小到大的顺序。p-范数越大表示对应的一组卷积核越重要。在对p-范数进行排序后,获取第一阈值,将p-范数小于第一阈值的一组卷积核删除,从而将不重要的卷积核删除。p优选为1或2。

通过本实施例,通过确定每一组卷积核的p-范数,从而根据p-范数确定重要的卷积核,并将不重要的卷积核删除,实现了提高删除卷积核的准确性的效果,进而保证了对卷积神经网络模型进行压缩的压缩效率。

作为一种可选的方案,删除每一组卷积核的p-范数中,小于第一阈值的p-范数对应的目标组卷积核包括:

s1,将p-范数小于第一阈值的目标组卷积核的权重设置为0。

可选地,由于卷积核在传递数据的过程中,每一个卷积核都配置有一定的权重。若是将该权重设置为0,则该卷积核传递的数据为零,不再传递有效数据。因此,将目标组卷积核的权重设置为0可以避免目标组卷积核继续传递数据,达到删除目标组卷积核的目的。

通过本实施例,通过上述方法删除目标组卷积核,从而保证了删除第一目标神经网络模型中不重要的卷积核,提高了对卷积神经网络模型的压缩效率。

作为一种可选的实施方案,在将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中之前,还包括:

s1,在卷积神经网络模型包含卷积层形成的跨层连接分支和/或多层串连分支的情况下,将卷积神经网络模型中除每个分支上的最后一个卷积层之外的卷积层作为第一卷积层。

可选地,在对卷积神经网络模型进行压缩的过程中,需要确定卷积神经网络模型的哪些卷积层为第一卷积层。对于没有跨层连接分支和多层串连分支的卷积神经网络模型,如vggnet模型,可以将卷积神经网络模型的所有卷积层确定为第一卷积层,即,对所有的卷积层进行压缩。而若是包含跨层连接分支或多层串连分支的模型,如resnet模型或resnext模型的残差模块中包含跨层连接,此时,需要选择模型中的一部分卷积层作为第一卷积层。

例如,如图4所示,对于一个包含跨层连接分支的模型,主干分支由1*1、3*3、1*1的卷积层串联而成,其输入通道数分别为c0、c1、c2,跨层分支为上一个残差模块的输出特征图,为了不影响不同分支的输出结果的融合,需要保证主干分支的输出特征图的通道数保持不变,因此仅仅对前两个卷积层进行压缩,而不对主干分支的最后一个1*1的卷积层进行压缩。在inceptionnet中,包含多个分支输出的特征图的融合,对每一个分支中的最后一个卷积层不进行压缩,其它部分的卷积层则按照上述方法压缩。

通过本实施例,通过对跨层连接分支和/或多层串连分支的卷积层的最后一个卷积层不压缩,从而提高了对卷积神经网络模型的压缩准确性。

作为一种可选的实施方案,将卷积神经网络模型中的第一批量标准化层的参数合并到所述卷积神经网络模型中的第一卷积层中包括:

s1,根据所述第一卷积层的与所述第一卷积层的第i个输出特征图对应的n个卷积核、所述第一批量标准化层的与所述第一卷积层的第i个输出特征图对应的参数,计算得到所述第一目标卷积层的对应于所述第i个输出特征图的n个卷积核;

s2,根据所述第一卷积层的与所述第一卷积层的第i个输出特征图对应的偏置、所述第一批量标准化层的与所述第一卷积层的第i个输出特征图对应的参数,计算得到所述第一目标卷积层的对应于所述第i个输出特征图的偏置;

s3,根据所述第一卷积层的n个输入特征图与所述第一目标卷积层的对应于第i个输出特征图的n个卷积核之间的卷积和,以及,所述第一目标卷积层的对应于所述第i个输出特征图的偏置,确定出所述第一目标卷积层的第i个输出特征图,

其中,n为所述第一卷积层的输入特征图的个数,1≤i≤m,m为所述第一目标卷积层的输出特征图的个数。

可选地,第一卷积层表示为:

第一批量标准化层表示为:

其中,为第一卷积层的第i个输出特征图,为第一卷积层第j个输入特征图,为卷积操作,kji为第一卷积层的第i组的第j个卷积核,bi为第一卷积层的第i组卷积核的偏置,其中,1<=i<=m,1<=j<=n,m为输出特征图的数量,n为输入特征图的数量;

为第一批量标准化层的第i个输出特征图,γi与βi为第一批量标准化层中与对应的参数,μi为在训练过程中对应的第一批量标准化层所保存的平均值,为在训练过程中对应的第一批量标准化层所保存的方差,∈为非零常数;

其中,通过以下公式将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中:

其中,k′ji为第一目标卷积层的第i个输出特征图的第j个卷积核,b′i为第一目标卷积层的第i个输出特征图的偏置。

例如,结合图5、6进行说明。如图5所示,第一卷积层的第j个输入特征图为包括第i个输出特征图为包括第i组的第j个卷积核为kji,包括k11、k21、k31、k12、k22、k32、k13、k23、k33,第i组卷积核的偏置为bi,包括b1、b2、b3,表示卷积操作。其卷积过程可表示为:

第一批量标准化层中,γi、βi表示第i通道的输入特征图对应的参数,γi包括:γ1、γ2、γ3,βi包括:β1、β2、β3,μi为在训练过程中对应的第一批量标准化层所保存的平均值,为在训练过程中对应的第一批量标准化层所保存的方差,μi包括:μ1、μ2、μ3,包括:则第一批量标准化层的过程可以表示为:

结合公式与公式,得到:

其中,k′ji为第一目标卷积层的第i组的第j个卷积核,b′i为第一目标卷积层中第i组卷积核的偏置。如图6所示,用k′ji替换原卷积核的kji,用b′i替换原卷积核的bi,同时将第一批量标准化层移除,从而得到将第一批量标准化层融合进第一卷积层后的目标模型,目标模型与原卷积神经网络模型在计算结果上是完全等价的。

通过本实施例,通过上述方法,从而将第一批量标准化层的参数合并到第一卷积层中,实现了对卷积神经网络模型的第一批量标准化层与第一卷积层的合并,得到第一目标卷积层。进一步通过p-范数删除第一目标卷积层中的不重要的卷积核,实现了对卷积神经网络模型的压缩,减轻了卷积神经网络模型的体积,提高了卷积神经网络模型的使用效率与使用灵活性。

作为一种可选的实施方案,确定所述第一目标卷积层中每一组卷积核的p-范数包括:

s1,确定所述第一目标卷积层的对应于第i个输出特征图的n个卷积核的p-范数,其中,1≤i≤m,所述m为所述第一目标卷积层的输出特征图的个数,所述n为所述第一卷积层的输入特征图的个数,所述第一目标卷积层中的第i组卷积核为所述第一目标卷积层的对应于所述第i个输出特征图的所述n个卷积核;

s2,确定所述第一目标卷积层的对应于第i个输出特征图的n个卷积核的p-范数之和;

s3,将所述p-范数之和的次方作为所述第一目标卷积层的对应于第i个输出特征图的第i组卷积核的p-范数。

可选地,使用以下公式确定第一目标卷积层中每一组卷积核的p-范数:

其中,k′ji为第一目标卷积层的第i组的第j个卷积核,p等于0或p等于1或p等于2或p等于正无穷,1<=i<=m,1<=j<=n,m为输出特征图的数量,n为输入特征图的数量,为第i个输出特征图对应的一组卷积核的p-范数。p优选为1或2。

通过上述公式确定出第一目标卷积层中的每一组的卷积核的p-范数,从而可以根据p-范数对第一目标卷积层进行压缩,提高了对卷积神经网络模型进行压缩的压缩效率。

作为一种可选的实施方案,对第二目标神经网络模型进行压缩,得到压缩后的第三目标神经网络模型,包括:

设定压缩率ρ,其中0<ρ<1;以及

对所述第二目标神经网络模型进行逐层压缩,直到满足设定的压缩率ρ。

通过本实施例,通过设定压缩率,从而可以限制对第二目标神经网络模型的压缩程度,提高了压缩的准确性。

作为一种可选的实施方案,在对第二目标神经网络模型进行训练,得到第三目标神经网络模型之后,还包括:

s1,获取人物面部图像;

s2,将人物面部图像输入到第三目标神经网络模型中;

s3,获取第三目标神经网络模型输出的结果,其中,输出的结果为人物面部图像对应的人物的年龄。

例如,由于本方案中的第三目标神经网络模型是经过压缩后的模型。因此,该模型体积小,消耗内存少,可以灵活的应用在各个终端或者应用中。以将第三目标神经网络模型应用到手机上为例,当使用手机对人物进行拍照得到人物面部图像或者手机中包括对人物面部图像的情况下,使用第三目标神经网络模型对人物面部图像进行识别,然后第三目标神经网络模型输出人物面部图像对应的人物的年龄。

通过本实施例,通过上述方法,从而实现了对第三目标神经网络模型的灵活运用。

以下结合图7中的步骤s702到s712对上述方法进行整体描述。如图7所示,对于一个任意数据集上预先训练好的一个卷积神经网络模型,将该模型中的所有可合并的第一批量标准化层参数合并到相应的第一卷积层中,生成第一目标神经网络模型,卷积神经网络模型与第一目标神经网络模型的输出结果是等价的。对步骤s704生成的第一目标神经网络模型的第一目标卷积层,计算每一组卷积核的p-范数,并从大到小排序,将步骤s706中的p-范数较小的若干组卷积核从第一目标神经网络模型中移除,直到满足设定的压缩率ρ(0<ρ<1)的要求,同时,将该第一目标卷积层的后续卷积层中与已移除的卷积核相关的参数一并从目标模型中移除掉。重复步骤s706与s708,得到第二目标神经网络模型。对第二目标神经网络模型在给定的数据集上进行再训练,直到模型收敛,得到第三目标神经网络模型。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种卷积神经网络模型使用方法,作为一种可选的方式,如图8所示,上述方法包括:

s802,获取待输入参数;

s804,将待输入参数输入到第三目标神经网络模型中,其中,第三目标神经网络模型为将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型后,删除第一目标神经网络模型中的第一目标卷积层中的目标卷积核,并对删除目标卷积核后的第二目标神经网络模型进行压缩得到的模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

s806,获取第三目标神经网络模型输出的结果。

可选地,上述卷积神经网络模型使用方法可以但不限于应用于任何可以使用压缩后的卷积神经网络模型的场景中。

例如,将上述方法应用到使用手机识别人脸五官比例的场景中。若是使用现有技术,由于卷积神经网络模型的体积大,占用内存高,可能在手机等运算能力弱的终端上无法正常使用或无法使用。而采用本方案中的上述方法,由于卷积神经网络模型为经过压缩后的模型,因此,可以在手机上流畅运行。在手机中安装有压缩后的卷积神经网络模型后,手机获取到人脸参数,然后输出识别结果。如,识别结果为“您的五官很端正”,或者识别结果为“您的眼睛很大”。

需要说明的是,上述应用场景仅为示例,本实施例并不对上述卷积神经网络模型使用方法的使用场景进行限定。

通过上述方法,由于对卷积神经网络模型进行了压缩,从而降低了卷积神经网络模型的体积,提高了卷积神经网络模型的使用效率与灵活性。

作为一种可选的方案,在将第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中之前,还包括:

s1,在卷积神经网络模型包含卷积层形成的跨层连接分支和/或多层串连分支的情况下,将卷积神经网络模型中除每个分支上的最后一个卷积层之外的卷积层作为第一卷积层。

在对卷积神经网络模型进行压缩的过程中,需要确定卷积神经网络模型的哪些卷积层为第一卷积层。对于没有跨层连接分支和多层串连分支的卷积神经网络模型,如vggnet模型,可以将卷积神经网络模型的所有卷积层确定为第一卷积层,即,对所有的卷积层进行压缩。而若是包含跨层连接分支或多层串连分支的模型,如resnet模型或resnext模型的残差模块中包含跨层连接,此时,需要选择模型中的一部分卷积层作为第一卷积层。

通过本实施例,通过上述方法确定所要压缩的卷积层,提高了对卷积神经网络进行压缩的压缩准确度。

作为一种可选的实施方案,

上述获取待输入参数包括:s1,获取人物面部图像;

上述将待输入参数输入到第三目标神经网络模型中包括:s1,将人物面部图像输入到第三目标神经网络模型中;

上述获取第三目标神经网络模型输出的结果包括:s1,获取第三目标神经网络模型输出的人物面部图像对应的人物的年龄。

例如,由于本方案中的第三目标神经网络模型是经过压缩后的模型。因此,该模型体积小,消耗内存少,可以灵活的应用在各个终端或者应用中。以将第三目标神经网络模型应用到手机上为例,当使用手机对人物进行拍照得到人物面部图像或者手机中包括对人物面部图像的情况下,使用第三目标神经网络模型对人物面部图像进行识别,然后第三目标神经网络模型输出人物面部图像对应的人物的年龄。

通过本实施例,通过上述方法,从而实现了对第三目标神经网络模型的灵活运用。

本实施例的其他方面可以参照上述卷积神经网络模型压缩方法中的示例,在此不做重复说明。

根据本发明实施例的又一个方面,还提供了一种用于实施上述卷积神经网络模型压缩方法的卷积神经网络模型压缩装置。如图9所示,该装置包括:

(1)合并单元902,用于将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

(2)删除单元904,用于将第一目标神经网络模型中的第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型,其中,第二目标神经网络模型的内存占用率小于第一目标神经网络模型的内存占用率;

(3)压缩单元906,用于对第二目标神经网络模型进行压缩,得到第三目标神经网络模型。

可选地,上述卷积神经网络模型的压缩装置可以但不限于应用于任何使用卷积神经网络模型的领域中。例如,将上述卷积神经网络模型应用到自动识别水果好坏的场景中。若是使用现有技术,由于卷积神经网络模型体积大,内存占用高,若是采用现有的卷积神经网络模型识别水果好坏,则消耗资源多,识别效率低。而通过本方案中的卷积神经网络模型压缩方法,通过对卷积神经网络模型的压缩,从而减小了卷积神经网络模型的体积,降低了卷积神经网络模型的内存消耗。例如将压缩后的卷积神经网络模型安装在手机中,则手机获取到水果的图片即可判断水果的好坏,提高了卷积神经网络模型的使用效率与使用灵活性。

或者,将上述卷积神经网络模型应用到识别人物年龄的场景中。通过对卷积神经网络模型的压缩,从而减小了卷积神经网络模型的体积,降低了卷积神经网络模型的内存消耗。在应用压缩后的卷积神经网络模型时,由于压缩后的卷积神经网络模型体积小,内存消耗低,因此可以灵活的应用。如使用携带有压缩后的卷积神经网络模型的手机拍照,然后识别照片,输出被拍照者的年龄。实现了提高了卷积神经网络模型的使用效率与使用灵活性的效果。

需要说明的是,上述仅为对压缩的卷积神经网络模型的使用示例,本实施例并不限定卷积神经网络模型的使用形式。任何使用卷积神经网络模型的场景都可以使用本方案对卷积神经网络模型进行压缩,从而缩小卷积神经网络模型的体积,减少卷积神经网络模型的内存消耗,从而提高卷积神经网络模型的使用效率与使用灵活性。

可选地,上述卷积神经网络模型的第一卷积层可以为卷积神经网络模型的任意一层。而由于卷积神经网络模型可能包含跨层连接分支和/或多层串联分支的情况。针对存在跨层连接分支和/或多层串联分支的情况的卷积神经网络模型,将卷积神经网络模型的所有分支中除了每一个分支的最后一个卷积层之外的所有卷积层确定为第一卷积层。即,除了每一个分支的最后一个卷积层不合并之外,将其他剩余的卷积层均作为第一卷积层并进行合并操作,从而实现了对卷积神经网络模型的压缩。同时,保证了不同分支的输出结果的融合。

可选地,在将卷积神经网络模型中的第一批量标准化层的参数合并到第一卷积层中之后,需要将合并后得到的第一目标卷积层中不重要的卷积核删除,从而实现对第一目标卷积层的压缩,进而实现对卷积神经网络模型的压缩。此时,可选地,可以使用p-范数的方法确定每一组卷积核的重要程度。例如,结合图3(a)与图3(b)所示,图3(a)中包括第一目标卷积层302,第一目标卷积层302中的第一个输出特征图对应着一组卷积核k′11、k′21、k′31。而在计算出每一个目标卷积层的每一组卷积核的p-范数之后,对每一组卷积核的-范数进行排序,p-范数小于第一阈值的目标组卷积核将被删除。如目标组卷积核k′11、k′21、k′31对应的p-范数小于第一阈值,则将目标组卷积核k′11、k′21、k′31删除,也就是将输出特征图删除,从而完成对卷积神经网络模型的压缩。需要说明的是,由于输出特征图的三个输入被删除,对应的与相联系的后续卷积核也要删除。的如图3(b)中的压缩后的第一目标卷积层304所示,删除之后的相关的卷积核(将图3(a)中的所有虚线删除)。

需要说明的是,在实际应用中,可以将上述目标组卷积核k′11、k′21、k′31的权重设置为0,则输出特征图不再输入与输出有效参数,以实现删除目标组卷积核的效果。上述p可以为1或2,即计算每一组卷积核的1-范数或2-范数,根据1-范数或2-范数的大小确定删除一组或多组卷积核。

在将p-范数小于第一阈值的目标组卷积核删除之后,包含有第一目标卷积层的第二目标神经网络模型中所有剩余卷积核的数量与第一目标神经网络模型中所有卷积核的数量的比值小于预定阈值。例如,在删除目标组卷积核后,第二目标神经网络模型中剩余卷积核500个,而第一目标神经网络模型中总卷积核数1000个。设置预定阈值为60%,则第二目标神经网络模型中所有剩余卷积核的数量与第一目标神经网络模型中所有卷积核的数量的比值为50%,小于了预定阈值。

需要说明的是,在删除第一目标卷积层的目标组卷积核的过程中,需要为每一个目标卷积层设置一个预设压缩率,预设压缩率用于确定对第一目标卷积层的压缩程度。如设置预设压缩率为80%,则对应的应该删除20%的卷积核。如对p-范数进行排序后,删除最小的p-范数对应的目标组卷积核,然后检测删除后的第一目标卷积层的压缩率是否小于了80%。若是第一目标卷积层的压缩率小于了80%,则表示第一目标卷积层压缩合格。若是第一目标卷积层的压缩率大于了80%,则表示第一目标卷积层还需要继续压缩。此时,再次删除当前最小,初始第二小的p-范数对应的目标组卷积核,直到压缩率小于了80%,完成对第一目标卷积层的压缩。需要说明的是,对各个第一目标卷积层设置的预设压缩率可以相同也可以不同,具体数值根据需要设定。

可选地,在对卷积神经网络模型中的第一目标卷积层进行压缩得到第二目标神经网络模型之后,对第二目标神经网络模型进行训练,直到第二目标神经网络模型收敛。此时,将收敛的第二目标神经网络模型作为第三目标神经网络模型,从而完成对卷积神经网络模型的压缩。

通过本实施例,通过将卷积神经网络模型中的第一批量标准化层的参数合并到第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型;将第一目标神经网络模型中第一目标卷积层中的范数小于第一阈值的卷积核删除;对删除目标卷积核后的第二目标神经网络模型进行训练,得到第三目标神经网络模型的方法,从而实现了对卷积神经网络模型的压缩,减小了卷积神经网络模型的体积,提高了卷积神经网络模型的使用效率与使用灵活性。

作为一种可选的实施方案,如图10所示,

上述装置还包括:(1)第一确定单元1002,用于在得到所述第二目标神经网络模型之前确定所述第一目标卷积层中每一组卷积核的p-范数,其中,p等于0或p等于1或p等于2或p等于正无穷;

上述删除单元904包括:(1)第一设定模块1004,用于设定每一组卷积核的剪枝率;(2)排序模块1006,用于将每一组卷积核的p-范数按照从大到小的顺序进行排列;(3)删除模块1008,用于删除所述每一组卷积核的p-范数中小于所述第一阈值的p-范数对应的目标组卷积核,直到满足所述剪枝率的要求,得到所述第二目标神经网络模型,其中,所述第二目标神经网络模型中所有卷积核的数量与所述第一目标神经网络模型中所有卷积核的数量的比值小于预定阈值。

通过本实施例,通过确定每一组卷积核的p-范数,从而根据p-范数确定重要的卷积核,并将不重要的卷积核删除,实现了提高删除卷积核的准确性的效果,进而保证了对卷积神经网络模型进行压缩的压缩效率。

作为一种可选的实施方案,如图11所示,上述删除模块1008包括:

设置子模块1102,用于将p-范数小于第一阈值的目标组卷积核的权重设置为0。

可选地,由于卷积核在传递数据的过程中,每一个卷积核都配置有一定的权重。若是将该权重设置为0,则该卷积核传递的数据为零,不再传递有效数据。因此,将目标组卷积核的权重设置为0可以避免目标组卷积核继续传递数据,达到删除目标组卷积核的目的。

通过本实施例,通过上述方法删除目标组卷积核,从而保证了删除第一目标神经网络模型中不重要的卷积核,提高了对卷积神经网络模型的压缩效率。

作为一种可选的实施方案,如图12所示,上述装置还包括:

(1)第二确定单元1202,用于在将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中之前,在卷积神经网络模型包含卷积层形成的跨层连接分支和/或多层串连分支的情况下,将卷积神经网络模型中除每个分支上的最后一个卷积层之外的卷积层作为第一卷积层。

通过本实施例,通过对包含跨层连接或多层融合的卷积层的最后一个卷积层不压缩,从而提高了对卷积神经网络模型的压缩准确性。

作为一种可选的方案,上述合并单元902包括:

(1)第一计算模块,用于根据所述第一卷积层的与所述第一卷积层的第i个输出特征图对应的n个卷积核、所述第一批量标准化层的与所述第一卷积层的第i个输出特征图对应的参数,计算得到所述第一目标卷积层的对应于所述第i个输出特征图的n个卷积核;

(2)第二计算模块,用于根据所述第一卷积层的与所述第一卷积层的第i个输出特征图对应的偏置、所述第一批量标准化层的与所述第一卷积层的第i个输出特征图对应的参数,计算得到所述第一目标卷积层的对应于所述第i个输出特征图的偏置;

(3)第三计算模块,用于根据所述第一卷积层的n个输入特征图与所述第一目标卷积层的对应于第i个输出特征图的n个卷积核之间的卷积和,以及,所述第一目标卷积层的对应于所述第i个输出特征图的偏置,确定出所述第一目标卷积层的第i个输出特征图,

其中,n为所述第一卷积层的输入特征图的个数,1≤i≤m,m为所述第一目标卷积层的输出特征图的个数。

通过本实施例,通过上述方法,从而将第一批量标准化层的参数合并到第一卷积层中,实现了对卷积神经网络模型的第一批量标准化层与第一卷积层的合并,得到第一目标卷积层。进一步通过p-范数删除第一目标卷积层中的不重要的卷积核,实现了对卷积神经网络模型的压缩,减轻了卷积神经网络模型的体积,提高了卷积神经网络模型的使用效率与使用灵活性。

作为一种可选的方案,上述第一确定单元1002包括:

(1)第一确定模块,用于确定所述第一目标卷积层的对应于第i个输出特征图的n个卷积核的p-范数,其中,1≤i≤m,所述m为所述第一目标卷积层的输出特征图的个数,所述n为所述第一卷积层的输入特征图的个数,所述第一目标卷积层中的第i组卷积核为所述第一目标卷积层的对应于所述第i个输出特征图的所述n个卷积核;

(2)第二确定模块,用于确定所述第一目标卷积层的对应于第i个输出特征图的n个卷积核的p-范数之和;

(3)第三确定模块,用于将所述p-范数之和的次方作为所述第一目标卷积层的对应于第i个输出特征图的第i组卷积核的p-范数。

通过上述公式确定出第一目标卷积层中的每一组的卷积核的p-范数,从而可以根据p-范数对第一目标卷积层进行压缩,提高了对卷积神经网络模型进行压缩的压缩效率。

作为一种可选的实施方案,上述压缩单元906包括:

(1)第二设定模块,用于设定压缩率ρ,其中0<ρ<1;

(2)压缩模块,用于对所述第二目标神经网络模型进行逐层压缩,直到满足设定的压缩率ρ。

通过本实施例,通过设定压缩率,从而可以限制对第二目标神经网络模型的压缩程度,提高了压缩的准确性。

作为一种可选的方案,上述装置还包括:

(1)第一获取单元,用于在对第二目标神经网络模型进行训练,得到第三目标神经网络模型之后,获取人物面部图像;

(2)第二输入单元,用于将人物面部图像输入到第三目标神经网络模型中;

(3)第二获取单元,用于获取第三目标神经网络模型输出的结果,其中,输出的结果为人物面部图像对应的人物的年龄。

通过本实施例,通过上述装置,从而实现了对第三目标神经网络模型的灵活运用。

根据本发明实施例的又一个方面,还提供了一种用于实施上述卷积神经网络模型使用方法的卷积神经网络模型使用装置。可选地,如图13所示,上述装置包括:

(1)第一获取单元1302,用于获取待输入参数;

(2)输入单元1304,用于将待输入参数输入到第三目标神经网络模型中,其中,第三目标神经网络模型为将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型后,删除第一目标神经网络模型中的第一目标卷积层中的目标卷积核,并对删除目标卷积核后的第二目标神经网络模型进行压缩得到的模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

(3)第二获取单元1306,用于获取第三目标神经网络模型输出的结果。

可选地,上述卷积神经网络模型使用装置可以但不限于应用于任何可以使用压缩后的卷积神经网络模型的场景中。

例如,上述装置为手机。若是使用现有技术,由于卷积神经网络模型的体积大,占用内存高,可能在手机等运算能力弱的终端上无法正常使用或无法使用。而采用本方案中的上述方法,由于卷积神经网络模型为经过压缩后的模型,因此,可以在手机上流畅运行。在手机中安装有压缩后的卷积神经网络模型后,手机获取到人脸参数,然后输出识别结果。如,识别结果为“您的五官很端正”,或者识别结果为“您的眼睛很大”。

需要说明的是,上述应用场景仅为示例,本实施例并不对上述卷积神经网络模型使用方法的使用场景进行限定。

通过上述方法,由于对卷积神经网络模型进行了压缩,从而降低了卷积神经网络模型的体积,提高了卷积神经网络模型的使用效率与灵活性。

作为一种可选的方案,如图14所示,

上述第一获取单元1302包括:(1)第一获取模块1402,用于获取人物面部图像;

上述输入单元1304包括:(1)输入模块1404,用于将人物面部图像输入到第三目标神经网络模型中;

上述第二获取单元1306包括:(1)第二获取模块1406,用于获取第三目标神经网络模型输出的人物面部图像对应的人物的年龄。

通过本实施例,通过上述方法,从而实现了对第三目标神经网络模型的灵活运用。

作为一种可选的方案,上述装置还包括:

(1)确定单元,用于在将第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中之前,在卷积神经网络模型包含卷积层形成的跨层连接分支和/或多层串连分支的情况下,将卷积神经网络模型中除每个分支上的最后一个卷积层之外的卷积层作为第一卷积层。

通过本实施例,通过上述方法确定所要压缩的卷积层,提高了对卷积神经网络进行压缩的压缩准确度。

本实施例的其他方面可以参照上述卷积神经网络模型压缩方法中的示例,在此不做重复说明。

根据本发明实施例的又一个方面,还提供了一种用于实施上述卷积神经网络模型压缩方法的电子装置,如图15所示,该电子装置包括存储器1502和处理器1504,该存储器1502中存储有计算机程序,该处理器1504被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

s2,将第一目标神经网络模型中的第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型,其中,第二目标神经网络模型的内存占用率小于第一目标神经网络模型的内存占用率;

s3,对第二目标神经网络模型进行压缩,得到第三目标神经网络模型。

可选地,本领域普通技术人员可以理解,图15所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图15其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图15中所示更多或者更少的组件(如网络接口等),或者具有与图15所示不同的配置。

其中,存储器1502可用于存储软件程序以及模块,如本发明实施例中的卷积神经网络模型压缩方法和装置对应的程序指令/模块,处理器1504通过运行存储在存储器1502内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的卷积神经网络模型压缩方法。存储器1502可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1502可进一步包括相对于处理器1504远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1502具体可以但不限于用于存储目标卷积神经网络模型等信息。作为一种示例,如图15所示,上述存储器1502中可以但不限于包括上述卷积神经网络模型压缩装置中的合并单元902、删除单元904、压缩单元906。此外,还可以包括但不限于上述卷积神经网络模型压缩装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置1506用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1506包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1506为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:显示器1508,用于显示目标卷积神经网络模型的输出结果;和连接总线1510,用于连接上述电子装置中的各个模块部件。

根据本发明实施例的又一个方面,还提供了一种用于实施上述卷积神经网络模型使用方法的电子装置,如图16所示,该电子装置包括存储器1602和处理器1604,该存储器1602中存储有计算机程序,该处理器1604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取待输入参数;

s2,将待输入参数输入到第三目标神经网络模型中,其中,第三目标神经网络模型为将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型后,删除第一目标神经网络模型中的第一目标卷积层中的目标卷积核,并对删除目标卷积核后的第二目标神经网络模型进行压缩得到的模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

s3,获取第三目标神经网络模型输出的结果。

可选地,本领域普通技术人员可以理解,图16所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图16其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图16中所示更多或者更少的组件(如网络接口等),或者具有与图16所示不同的配置。

其中,存储器1602可用于存储软件程序以及模块,如本发明实施例中的卷积神经网络模型使用方法和装置对应的程序指令/模块,处理器1604通过运行存储在存储器1602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的卷积神经网络模型使用方法。存储器1602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1602可进一步包括相对于处理器1604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1602具体可以但不限于用于存储目标卷积神经网络模型等信息。作为一种示例,如图16所示,上述存储器1602中可以但不限于包括上述卷积神经网络模型使用装置中的第一获取单元1302、输入单元1304、第二获取单元1306。此外,还可以包括但不限于上述卷积神经网络模型使用装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置1606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1606包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1606为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:显示器1608,用于显示目标卷积神经网络模型的输出结果;和连接总线1610,用于连接上述电子装置中的各个模块部件。

根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

s2,将第一目标神经网络模型中的第一目标卷积层中范数小于第一阈值的卷积核删除,得到第二目标神经网络模型,其中,第二目标神经网络模型的内存占用率小于第一目标神经网络模型的内存占用率;

s3,对第二目标神经网络模型进行压缩,得到第三目标神经网络模型。

或者可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取待输入参数;

s2,将待输入参数输入到第三目标神经网络模型中,其中,第三目标神经网络模型为将卷积神经网络模型中的第一批量标准化层的参数合并到卷积神经网络模型中的第一卷积层中,生成包含有第一目标卷积层的第一目标神经网络模型后,删除第一目标神经网络模型中的第一目标卷积层中的目标卷积核,并对删除目标卷积核后的第二目标神经网络模型进行压缩得到的模型,其中,卷积神经网络模型与第一目标神经网络模型对于相同的输入具有相同的输出,第一批量标准化层为在卷积神经网络模型中位于第一卷积层之后、且与第一卷积层连接的批量标准化层;

s3,获取目标卷积神经网络模型输出的结果。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1