CN114169501A - 神经网络压缩方法及相关设备 - Google Patents
神经网络压缩方法及相关设备 Download PDFInfo
- Publication number
- CN114169501A CN114169501A CN202111462453.2A CN202111462453A CN114169501A CN 114169501 A CN114169501 A CN 114169501A CN 202111462453 A CN202111462453 A CN 202111462453A CN 114169501 A CN114169501 A CN 114169501A
- Authority
- CN
- China
- Prior art keywords
- model
- layer
- student
- teacher
- pruning
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/047—Probabilistic or stochastic networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种神经网络压缩方法及相关设备,方法包括:将预设神经网络模型作为教师模型;对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;利用所述教师模型指导所述学生模型,进行知识蒸馏。采用本申请实施例实现神经网络模型压缩。
Description
技术领域
本申请涉及图像处理技术领域,具体涉及一种神经网络压缩方法及相关设备。
背景技术
现有技术中,近些年来,神经网络模型展示了其强大的能力,但是它依靠其百万、千万的可训练参数而得来的,当模型越来越多时,算法的实时性得不到保证。而且很多算法都是依靠图形处理器GPU,当移植到中央处理器CPU的时候,这些模型运行会非常慢,所以需要有效的压缩模型的方法,因此,如何实现神经网络压缩的问题亟待解决。
发明内容
本申请实施例提供了一种神经网络压缩方法及相关设备,可以实现神经网络压缩。
第一方面,本申请实施例提供一种神经网络压缩方法,所述方法包括:
将预设神经网络模型作为教师模型;
对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;
利用所述教师模型指导所述学生模型,进行知识蒸馏。
第二方面,本申请实施例提供了一种神经网络压缩装置,所述装置包括:确定单元、剪枝单元和处理单元,其中,
所述确定单元,用于将预设神经网络模型作为教师模型;
所述剪枝单元,用于对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;
所述处理单元,用于利用所述教师模型指导所述学生模型,进行知识蒸馏。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,具备如下有益效果:
可以看出,本申请实施例中所描述的神经网络压缩方法及相关设备,将预设神经网络模型作为教师模型,对教师模型进行剪枝操作,得到学生模型,教师模型与学生模型的网络结构基本,只有卷积通道不同,利用教师模型指导学生模型,进行知识蒸馏,一方面,教师模型与学生模型的网络结构基本,只有卷积通道不同,在实现神经网络模型压缩的基础上,还可以学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果,另一方面,学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好,进而,可以在实现神经网络模型压缩的基础上,也提升了神经网络模型的效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种神经网络压缩方法的流程示意图;
图1B是本申请实施例提供的一种神经网络卷积层的结构示意图;
图1C是本申请实施例提供的一种通道权重模块的结构示意图;
图1D是本申请实施例提供的另一种神经网络卷积层的结构示意图;
图1E是本申请实施例提供的基于特征图的蒸馏框架的结构示意图;
图2是本申请实施例提供的另一种神经网络压缩方法的流程示意图;
图3是本申请实施例提供的一种电子设备的结构示意图;
图4是本申请实施例提供的一种神经网络压缩装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所描述电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、行车记录仪、交通指挥平台、服务器、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备(如智能手表、蓝牙耳机)等,上述仅是举例,而非穷举,包含但不限于上述电子设备。
下面对本申请实施例进行详细介绍。
请参阅图1A,图1A是本申请实施例提供的一种神经网络压缩方法的流程示意图,如图所示,本神经网络压缩方法包括:
101、将预设神经网络模型作为教师模型。
其中,预设神经网络模型可以包括以下至少一种:卷积神经网络模型、全连接神经网络模型、循环神经网络模型等等,在此不做限定。例如,预设神经网络模型可以为resnet50网络。
本申请实施例中,预设神经网络模型可以包括至少一个卷积层,还可以包括以下网络层:全连接层、归一化层、池化层等等,在此不做限定。
102、对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同。
其中,本申请实施例中,可以对教师模型进行剪枝操作,得到学生模型,教师模型与学生模型的网络结构基本,只有卷积通道不同。从而,学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果。
具体实现中,可以通过将包含目标的一类或者多类图像输入到教师模型进行剪枝操作,目标可以包括以下至少一种:人脸、指纹、虹膜、人体、动物、植物等等,在此不做限定。
可选的,所述教师模型包括P个卷积层,所述P为正整数;
上述步骤102,对所述教师模型进行剪枝操作,得到学生模型,可以包括如下步骤:
21、将卷积层i连接注意力模块,所述卷积层i为所述P个卷积层中的任一卷积层;
22、将所述卷积层i的运算结果依次输入到全局平均池化层、全连接层以及归一化层,得到通道权重向量;
23、将教师模型进行训练,训练收敛后,得到最佳的权重分布;
24、根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型。
具体实现中,以卷积层i为例,卷积层i为P个卷积层中的任一卷积层。可以将卷积层i连接注意力模块,注意力模块可以用来衡量卷积层每一个通道的权重,在权重排后面的就被剪枝掉。注意力模块则推理阶段之前也会被剪枝掉。将教师模型进行训练,训练收敛后,得到最佳的权重分布。
进一步的,可以将卷积层i的运算结果依次输入到全局平均池化层、全连接层以及归一化层,得到通道权重向量,然后根据通道的权重(通道权重向量),对卷积层进行剪枝,权重和卷积层的通道是一一对应的,例如,可以将注意力模块的第一输出结果与通道权重向量进行乘法运算,得到第二输出结果,根据第二输出结果对教师模型进行剪枝操作,得到学生模型,通过网络训练得到每一个通道的权重,最后设定一个阈值,将低于阈值权重的通道删除,达到剪枝的目的。这样就得到一个通过训练得出来的通道权重,消除冗余,使得模型的效率更高。
举例说明下,如图1B所示,传统的神经网络卷积操作如图1B所示,输出为:
而本申请实施例,则提供了一个给通道加权重的模块,如图1C所示,其包括全局池化层、全连接层和归一化层(softmax)
具体实现中,假设卷积层conv的卷积核为:
M=[m1,m2,....,mc]
其中,c为通道数,X为卷积前的输入,那么定义输出:
O=[o1,o2,....,oc]
那么有下面的公式:
oc=mc*X
其中,*代表卷积操作。
进一步的,输出之后得到O,其可以紧接着连接一个全局平均池化层(globalAverage Pooling)得到输出Z:
Z=[z1,z2,z3.....,zc]
那么,Z可以为一个C×1×1的矩阵,其中:
其中,H是输出特征图的高,W是输出特征图的宽。
另外,全局平均池化之后接一个可以学习的全连接层(FC),FC层的权值为W,那么输出S=FC(z,W),输出S是一个C×1×1的矩阵,C的值是conv卷积层的通道数。
最后,可以将输出的S通过一个softmax进行归一化,得到一个长度为C的一个向量V(v1,v2,....,Vc),V中的每一个值都在0~1之间,那么向量里面的每一个值代表的就是那个通道的权值,softMax操作如下:
最后,可以将通道权重V和卷积输出O通过scale层实现进行对应通道相乘,得到最后输出。
然后,进行训练神经网络,当神经网络收敛之后,V就学到了对应卷积层。
通道的权重,该权重反应了该卷积的各个通道的重要性,然后对V进行排序,卷积核M根据排列好的V进行排序,通道一一对应,然后进行剪枝,比如,设定剪枝20%,就将M后面20%的卷积核舍弃,留下80%。
当然,也可以如图1D所示,将卷积层i的运算结果输入到注意力模块,再将注意力模型的输出结果与通道权重向量进行运算。
进一步的,可选的,上述步骤24,根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型,可以包括如下步骤:
241、根据所述通道权重向量确定M个结果,M为大于1的整数;
242、确定所述M个输出结果中低于设定阈值的N个输出结果,N为小于M且大于或等于1的整数;
243、对所述N个输出结果相应的通道进行剪枝操作。
其中,设定阈值可以预先设置或者系统默认,设定阈值用于对卷积核的大小进行比较。具体实现中,每一权重可以对应一个结果,例如,可以确定第二输出结果中每一通道的输出结果,得到M个输出结果,M为大于1的整数,再确定M个输出结果中低于设定阈值的N个输出结果,N为小于M且大于或等于1的整数,该N个输出结果可以为卷积核低于预设阈值的通道对应的输出结果,对N个输出结果相应的通道进行剪枝操作。
可选的,还可以包括如下步骤:
A1、确定目标压缩比;
A2、根据所述目标压缩比确定所述设定阈值。
其中,目标压缩比可以预先设置或者系统默认。目标压缩比可以与设备的硬件参数相关,或者,也可以与需要识别的目标的类型相关。硬件参数可以包括以下至少一种:内存大小、CPU核数、GPU核数、NPU核数、CPU型号、GPU型号、NPU型号、CPU的可用资源占比、GPU的可用资源占比、NPU的可用资源占比等等,在此不做限定。目标的类型可以包括以下至少一种:人、动物、植物、场景等等,在此不做限定。具体实现中,可以预先存储预设的压缩比与阈值之间的映射关系,可以根据该映射关系确定目标压缩比对应的设定阈值,如此,可以实现神经网络模型动态压缩。
可以看出,本申请实施例,在每一个卷积层的旁边设计一个通道注意力模块,通过网络训练得到每一个通道的权重,最后设定一个阈值,将低于阈值权重的通道删除,达到剪枝的目的。这样就得到一个通过训练得出来的通道权重,消除冗余,使得模型的效率更高。
103、利用所述教师模型指导所述学生模型,进行知识蒸馏。
具体实现中,学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好,进而,可以在实现神经网络模型压缩的基础上,也提升了神经网络模型的效果。
相关技术中,学生网络学习的是教师网络经过softmax层输出的特征,这个特征是非常深层的特征,学生网络一开始就学习这个特征会非常困难,导致教师的信息丢失。而本申请实施例则提出一个从浅层特征就开始学习的知识蒸馏策略,由于蒸馏采用学生模型是教师模型剪枝后的模型,那么学生模型和教师模型的网络层是一一对应的,只是通道不同,所以将教师模型从浅层到深层每一层都和学生网络模型连接起来进行蒸馏学习,那么学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好。
可选的,所述教师模型包括P个第一卷积层、1个第一全连接层和1个第一归一化层;所述学生模型包括P个第二卷积层、1个第二全连接层和1个第二归一化层;所述第一归一化层通过第一损失函数连接所述第二归一化层;每一第一归一化层通过第二损失函数以及适配层连接对应的第二归一化层;所述第一损失函数由硬损失函数和软损失函数构成;还可以包括如下步骤:
B1、确定每一第二损失函数对应的第一权值、硬损失函数的第二权值和软损失函数的第三权值;
B2、根据所述第一权值、所述第二权值、所述第三权值、所述第一损失函数以及每一第二损失函数构造总损失函数;
B3、通过所述总损失函数训练所述教师模型和所述学生模型。
本申请实施例中,教师模型包括P个第一卷积层、1个第一全连接层和1个第一归一化层;所述学生模型包括P个第二卷积层、1个第二全连接层和1个第二归一化层;所述第一归一化层通过第一损失函数连接所述第二归一化层;每一第一归一化层通过第二损失函数以及适配层连接对应的第二归一化层;所述第一损失函数由硬损失函数和软损失函数构成。
具体实现中,第一权值、第二权值和第三权值可以为经验值或者系统默认或者用户可以自行设置,进而,可以确定每一第二损失函数对应的第一权值、硬损失函数的第二权值和软损失函数的第三权值,再根据第一权值、第二权值、所述第三权值、第一损失函数以及每一第二损失函数构造总损失函数,通过总损失函数训练教师模型和学生模型。
具体实现中,剪枝完之后,得到了一个学生网络结构student,而教师网络teacher就是没有剪枝前的训练好的模型。
本申请实施例中,除了在深层softMax层的输出进行蒸馏外,对学生网络的中间层进行蒸馏,由于学生网络student是教师网络teacher剪枝后得来的,那么他们的网络结构相同,不同的只是卷积层的输出通道。
举例说明下,如图1E所示,该神经网络模型包括教师模型(teacher)和学生模型(student),教师模型包括多个卷积层(conv1、conv2、…、convN)、全连接层(FC)、归一化层(softmax);学生模型包括多个卷积层(conv1、conv2、…、convN)、全连接层(FC)、归一化层(softmax),归一化层之间通过KL loss连接,每一卷积层之间均对应一个损失函数(L2loss)和适配层(adapt)。
假设第n个卷积层为convN,teacher在n个卷积层的输出为Vtn,Vtn的维度为(Ctn,H,W),student输出为Vsn,Vsn的维度为(Csn,H,W),为了进行蒸馏,需要student和teacher的维度要一样,所以这里我们提出了添加一个适配层,其实就是一个1×1的卷积层,经过这个1×1卷积层后,student的维度也变为(Ctn,H,W),这个适配层的作用就是将student的输出维度和teacher输出维度变为一样,好方便蒸馏,最后求这两个输出的第二损失函数L2loss:
Ln(Vtn,Vsn)=||Vtn-Vsn||2
其中,n代表的是第n个卷积层后的输出,Vtn表示teacher网络第n个卷积层后的输出,Vsn代表student网络的输出再经过适配层adapt后的输出,两者求L2loss。
进而,若选择从第1层到第n层都蒸馏,那么,中间层总体Loss可以表示为:
其中,i表示第i层。
本申请实施例中,除了中间层蒸馏的loss,student网络训练还包括传统的知识蒸馏的loss,包括两部分一个是Lhard,一个是Lsoft,具体如下:
其中,vj是teacher的输出,zj是student的输出,qj代表studnet网络在温度T下的softmax输出在第j类上面的值,pj带表teacher网络在温度T下的softmax输出在第j类上面的值,cj表示的是真实的标签值,正标签取1,负标签取0,N是总标签的数量。
那么,则总体的LOSS为:
Loss=αLmid+βLhard+λLsoft
其中,α,β,λ是权重参数。
相关技术中,神经网络压缩方有通道剪枝以及知识蒸馏等方法,但是这些方法之间往往是相互独立的,比如剪枝的时候没有考虑蒸馏,蒸馏的时候也没有考虑剪枝。剪枝的时候不管采用什么措施,往往效果都不会达到原来的模型。而在蒸馏的时候如果教师模型和学生模型的网络结构差异过大,蒸馏反而会起到相反的作用(比如,教师网络用resnet101,学生网络用vggnet19)。也就是说如果教师模型和学生模型的网络结构相似(比如,教师网络用resnet101,学生网络用resnet50),学生模型才能最大化学习到教师模型的知识。
而本申请实施例,则是采用一种基于同一网络结构的剪枝和蒸馏神经网络压缩方法,首先训练一个大模型(比如resnet50),作为教师模型,利用通道剪枝的方法,将教师模型进行剪枝,得到一个学生模型(比如,resnet50_pruned),利用教师模型指导学生模型训练,进行知识蒸馏,由于学生网络和教师网络结构基本相同,只是卷积通道不同,那么,学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果。
可以看出,本申请实施例中所描述的神经网络压缩方法,将预设神经网络模型作为教师模型,对教师模型进行剪枝操作,得到学生模型,教师模型与学生模型的网络结构基本,只有卷积通道不同,利用教师模型指导学生模型,进行知识蒸馏,一方面,教师模型与学生模型的网络结构基本,只有卷积通道不同,在实现神经网络模型压缩的基础上,还可以学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果,另一方面,学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好,进而,可以在实现神经网络模型压缩的基础上,也提升了神经网络模型的效果。
与上述图1A所示的实施例一致地,请参阅图2,图2是本申请实施例提供的一种神经网络压缩方法的流程示意图,应用于电子设备,如图所示,本神经网络压缩方法包括:
201、将预设神经网络模型作为教师模型。
202、对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;所述教师模型包括P个第一卷积层、1个第一全连接层和1个第一归一化层;所述学生模型包括P个第二卷积层、1个第二全连接层和1个第二归一化层;所述第一归一化层通过第一损失函数连接所述第二归一化层;每一第一归一化层通过第二损失函数以及适配层连接对应的第二归一化层;所述第一损失函数由硬损失函数和软损失函数构成。
203、确定每一第二损失函数对应的第一权值、硬损失函数的第二权值和软损失函数的第三权值。
204、根据所述第一权值、所述第二权值、所述第三权值、所述第一损失函数以及每一第二损失函数构造总损失函数。
205、通过所述总损失函数训练所述教师模型和所述学生模型。
206、利用所述教师模型指导所述学生模型,进行知识蒸馏。
其中,上述步骤201-步骤206的具体描述可以参照上述图1A所描述的神经网络压缩方法的相应步骤,在此不再赘述。
可以看出,本申请实施例中所描述的神经网络压缩方法,一方面,教师模型与学生模型的网络结构基本,只有卷积通道不同,在实现神经网络模型压缩的基础上,还可以学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果,另一方面,学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好,进而,可以在实现神经网络模型压缩的基础上,也提升了神经网络模型的效果。
与上述实施例一致地,请参阅图3,图3是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,应用于电子设备,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,本申请实施例中,上述程序包括用于执行以下步骤的指令:
将预设神经网络模型作为教师模型;
对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;
利用所述教师模型指导所述学生模型,进行知识蒸馏。
可选的,所述教师模型包括P个卷积层,所述P为正整数;
在所述对所述教师模型进行剪枝操作,得到学生模型方面,上述程序包括用于执行以下步骤的指令:
将卷积层i连接注意力模块,所述卷积层i为所述P个卷积层中的任一卷积层;
将所述卷积层i的运算结果依次输入到全局平均池化层、全连接层以及归一化层,得到通道权重向量;
将教师模型进行训练,训练收敛后,得到最佳的权重分布;
根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型。
可选的,在所述根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型方面,上述程序包括用于执行以下步骤的指令:
根据所述通道权重向量确定M个结果,M为大于1的整数;
确定所述M个输出结果中低于设定阈值的N个输出结果,N为小于M且大于或等于1的整数;
对所述N个输出结果相应的通道进行剪枝操作。
可选的,上述程序还包括用于执行以下步骤的指令:
确定目标压缩比;
根据所述目标压缩比确定所述设定阈值。
可选的,所述教师模型包括P个第一卷积层、1个第一全连接层和1个第一归一化层;所述学生模型包括P个第二卷积层、1个第二全连接层和1个第二归一化层;所述第一归一化层通过第一损失函数连接所述第二归一化层;每一第一归一化层通过第二损失函数以及适配层连接对应的第二归一化层;所述第一损失函数由硬损失函数和软损失函数构成;
上述程序还包括用于执行以下步骤的指令:
确定每一第二损失函数对应的第一权值、硬损失函数的第二权值和软损失函数的第三权值;
根据所述第一权值、所述第二权值、所述第三权值、所述第一损失函数以及每一第二损失函数构造总损失函数;
通过所述总损失函数训练所述教师模型和所述学生模型。
可以看出,本申请实施例中所描述的电子设备,将预设神经网络模型作为教师模型,对教师模型进行剪枝操作,得到学生模型,教师模型与学生模型的网络结构基本,只有卷积通道不同,利用教师模型指导学生模型,进行知识蒸馏,一方面,教师模型与学生模型的网络结构基本,只有卷积通道不同,在实现神经网络模型压缩的基础上,还可以学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果,另一方面,学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好,进而,可以在实现神经网络模型压缩的基础上,也提升了神经网络模型的效果。
图4是本申请实施例中所涉及的神经网络压缩装置400的功能单元组成框图。该神经网络压缩装置400,应用于电子设备,所述装置400包括:确定单元401、剪枝单元402和处理单元403,其中,
所述确定单元401,用于将预设神经网络模型作为教师模型;
所述剪枝单元402,用于对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;
所述处理单元403,用于利用所述教师模型指导所述学生模型,进行知识蒸馏。
可选的,所述教师模型包括P个卷积层,所述P为正整数;
在所述对所述教师模型进行剪枝操作,得到学生模型方面,所述剪枝单元402具体用于:
将卷积层i连接注意力模块,所述卷积层i为所述P个卷积层中的任一卷积层;
将所述卷积层i的运算结果依次输入到全局平均池化层、全连接层以及归一化层,得到通道权重向量;
将教师模型进行训练,训练收敛后,得到最佳的权重分布;
根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型。
可选的,在所述根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型方面,所述剪枝单元402具体用于:
根据所述通道权重向量确定M个结果,M为大于1的整数;
确定所述M个输出结果中低于设定阈值的N个输出结果,N为小于M且大于或等于1的整数;
对所述N个输出结果相应的通道进行剪枝操作。
可选的,所述装置400还具体用于:
确定目标压缩比;
根据所述目标压缩比确定所述设定阈值。
可选的,所述教师模型包括P个第一卷积层、1个第一全连接层和1个第一归一化层;所述学生模型包括P个第二卷积层、1个第二全连接层和1个第二归一化层;所述第一归一化层通过第一损失函数连接所述第二归一化层;每一第一归一化层通过第二损失函数以及适配层连接对应的第二归一化层;所述第一损失函数由硬损失函数和软损失函数构成;
所述装置400还具体用于:
确定每一第二损失函数对应的第一权值、硬损失函数的第二权值和软损失函数的第三权值;
根据所述第一权值、所述第二权值、所述第三权值、所述第一损失函数以及每一第二损失函数构造总损失函数;
通过所述总损失函数训练所述教师模型和所述学生模型。
可以看出,本申请实施例中所描述的神经网络压缩装置,将预设神经网络模型作为教师模型,对教师模型进行剪枝操作,得到学生模型,教师模型与学生模型的网络结构基本,只有卷积通道不同,利用教师模型指导学生模型,进行知识蒸馏,一方面,教师模型与学生模型的网络结构基本,只有卷积通道不同,在实现神经网络模型压缩的基础上,还可以学生网络模型可以最大化学到教师网络模型的知识,提升学生网络模型的效果,另一方面,学生网络模型可以从简单到复杂一步步学习教师网络模型的知识,效果会更好,进而,可以在实现神经网络模型压缩的基础上,也提升了神经网络模型的效果。
可以理解的是,本实施例的神经网络压缩装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种神经网络压缩方法,其特征在于,所述方法包括:
将预设神经网络模型作为教师模型;
对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;
利用所述教师模型指导所述学生模型,进行知识蒸馏。
2.根据权利要求1所述的方法,其特征在于,所述教师模型包括P个卷积层,所述P为正整数;
所述对所述教师模型进行剪枝操作,得到学生模型,包括:
将卷积层i连接注意力模块,所述卷积层i为所述P个卷积层中的任一卷积层;
将所述卷积层i的运算结果依次输入到全局平均池化层、全连接层以及归一化层,得到通道权重向量;
将教师模型进行训练,训练收敛后,得到最佳的权重分布;
根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型,包括:
根据所述通道权重向量确定M个结果,M为大于1的整数;
确定所述M个输出结果中低于设定阈值的N个输出结果,N为小于M且大于或等于1的整数;
对所述N个输出结果相应的通道进行剪枝操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定目标压缩比;
根据所述目标压缩比确定所述设定阈值。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述教师模型包括P个第一卷积层、1个第一全连接层和1个第一归一化层;所述学生模型包括P个第二卷积层、1个第二全连接层和1个第二归一化层;所述第一归一化层通过第一损失函数连接所述第二归一化层;每一第一归一化层通过第二损失函数以及适配层连接对应的第二归一化层;所述第一损失函数由硬损失函数和软损失函数构成;
所述方法还包括:
确定每一第二损失函数对应的第一权值、硬损失函数的第二权值和软损失函数的第三权值;
根据所述第一权值、所述第二权值、所述第三权值、所述第一损失函数以及每一第二损失函数构造总损失函数;
通过所述总损失函数训练所述教师模型和所述学生模型。
6.一种神经网络压缩装置,其特征在于,所述装置包括:确定单元、剪枝单元和处理单元,其中,
所述确定单元,用于将预设神经网络模型作为教师模型;
所述剪枝单元,用于对所述教师模型进行剪枝操作,得到学生模型,所述教师模型与所述学生模型的网络结构基本,只有卷积通道不同;
所述处理单元,用于利用所述教师模型指导所述学生模型,进行知识蒸馏。
7.根据权利要求6所述的装置,其特征在于,所述教师模型包括P个卷积层,所述P为正整数;
在所述对所述教师模型进行剪枝操作,得到学生模型方面,所述剪枝单元具体用于:
将卷积层i连接注意力模块,所述卷积层i为所述P个卷积层中的任一卷积层;
将所述卷积层i的运算结果依次输入到全局平均池化层、全连接层以及归一化层,得到通道权重向量;
将教师模型进行训练,训练收敛后,得到最佳的权重分布;
根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型。
8.根据权利要求7所述的装置,其特征在于,在所述根据所述通道权重向量对所述教师模型进行剪枝操作,得到所述学生模型方面,所述剪枝单元具体用于:
根据所述通道权重向量确定M个结果,M为大于1的整数;
确定所述M个输出结果中低于设定阈值的N个输出结果,N为小于M且大于或等于1的整数;
对所述N个输出结果相应的通道进行剪枝操作。
9.一种电子设备,其特征在于,包括处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111462453.2A CN114169501A (zh) | 2021-12-02 | 2021-12-02 | 神经网络压缩方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111462453.2A CN114169501A (zh) | 2021-12-02 | 2021-12-02 | 神经网络压缩方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114169501A true CN114169501A (zh) | 2022-03-11 |
Family
ID=80482491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111462453.2A Pending CN114169501A (zh) | 2021-12-02 | 2021-12-02 | 神经网络压缩方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114169501A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115511059A (zh) * | 2022-10-12 | 2022-12-23 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN117496509A (zh) * | 2023-12-25 | 2024-02-02 | 江西农业大学 | 一种融合多教师知识蒸馏的Yolov7柚子计数方法 |
-
2021
- 2021-12-02 CN CN202111462453.2A patent/CN114169501A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115511059A (zh) * | 2022-10-12 | 2022-12-23 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN115511059B (zh) * | 2022-10-12 | 2024-02-09 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN117496509A (zh) * | 2023-12-25 | 2024-02-02 | 江西农业大学 | 一种融合多教师知识蒸馏的Yolov7柚子计数方法 |
CN117496509B (zh) * | 2023-12-25 | 2024-03-19 | 江西农业大学 | 一种融合多教师知识蒸馏的Yolov7柚子计数方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230196117A1 (en) | Training method for semi-supervised learning model, image processing method, and device | |
CN107767408B (zh) | 图像处理方法、处理装置和处理设备 | |
CN107730474B (zh) | 图像处理方法、处理装置和处理设备 | |
CN109902222A (zh) | 一种推荐方法及装置 | |
CN111164601A (zh) | 情感识别方法、智能装置和计算机可读存储介质 | |
CN114169501A (zh) | 神经网络压缩方法及相关设备 | |
WO2021184902A1 (zh) | 图像分类方法、装置、及其训练方法、装置、设备、介质 | |
CN112784764A (zh) | 一种基于局部与全局注意力机制的表情识别方法及系统 | |
CN107578014A (zh) | 信息处理装置及方法 | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN111882031A (zh) | 一种神经网络蒸馏方法及装置 | |
CN112233698A (zh) | 人物情绪识别方法、装置、终端设备及存储介质 | |
CN111898735A (zh) | 蒸馏学习方法、装置、计算机设备和存储介质 | |
CN112561028A (zh) | 训练神经网络模型的方法、数据处理的方法及装置 | |
CN113361698A (zh) | 神经网络模型的处理方法和装置、数据处理方法和装置 | |
WO2021127982A1 (zh) | 语音情感识别方法、智能装置和计算机可读存储介质 | |
CN109754357B (zh) | 图像处理方法、处理装置以及处理设备 | |
CN113269013B (zh) | 对象行为分析方法、信息显示方法及电子设备 | |
CN109214616B (zh) | 一种信息处理装置、系统和方法 | |
CN112308102B (zh) | 图像相似度计算方法、计算装置及存储介质 | |
WO2024114659A1 (zh) | 一种摘要生成方法及其相关设备 | |
CN116775836A (zh) | 基于多层次注意力的教科书文本问答方法及系统 | |
CN113378866B (zh) | 图像分类方法、系统、存储介质及电子设备 | |
CN113822291A (zh) | 一种图像处理方法、装置、设备及存储介质 | |
CN113095356A (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 |