CN110929839B - 训练神经网络的方法和装置、电子设备和计算机存储介质 - Google Patents
训练神经网络的方法和装置、电子设备和计算机存储介质 Download PDFInfo
- Publication number
- CN110929839B CN110929839B CN201811102988.7A CN201811102988A CN110929839B CN 110929839 B CN110929839 B CN 110929839B CN 201811102988 A CN201811102988 A CN 201811102988A CN 110929839 B CN110929839 B CN 110929839B
- Authority
- CN
- China
- Prior art keywords
- network
- neural network
- pruning
- characteristic data
- training
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 426
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000012549 training Methods 0.000 title claims abstract description 110
- 238000013138 pruning Methods 0.000 claims abstract description 289
- 238000012545 processing Methods 0.000 claims description 102
- 230000006978 adaptation Effects 0.000 claims description 93
- 230000008569 process Effects 0.000 claims description 35
- 230000003044 adaptive effect Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 9
- 238000002372 labelling Methods 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 24
- 238000004590 computer program Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000013140 knowledge distillation Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000011478 gradient descent method Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
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
技术领域
本公开涉及计算机视觉技术,尤其是一种训练神经网络的方法和装置、电子设备和计算机存储介质。
背景技术
近年来,神经网络在图像处理的许多任务上都取得了巨大的成功。为了完成复杂的图像处理任务,神经网络的深度越来越深,神经网络的参数也越来越多,神经网络的计算量越来越大,神经网络的计算复杂度也越来越复杂,使得很多神经网络无法直接应用于一些计算能力有限的小型设备中,例如:手机、车载电脑等移动终端设备。
发明内容
本公开实施例提供一种训练神经网络的技术方案。
根据本公开实施例的一个方面,提供一种训练神经网络的方法,包括:
对第一神经网络进行剪枝处理,得到剪枝网络;
基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络。
可选地,在本公开上述方法实施例中,所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络,包括:
通过所述第一神经网络对第一样本图像进行处理,得到第一特征数据;
通过所述剪枝网络对所述第一样本图像进行处理,得到第二特征数据;
基于所述第一特征数据和所述第二特征数据,得到所述剪枝网络的网络损失值;
根据所述剪枝网络的网络损失值,对所述剪枝网络的参数进行调整处理,得到第二神经网络。
可选地,在本公开上述任一方法实施例中,所述基于所述第一特征数据和所述第二特征数据,得到所述剪枝网络的网络损失值,包括:
根据所述第二特征数据与所述第一特征数据,得到所述剪枝网络的隐形损失值;
基于所述剪枝网络的隐形损失值和所述剪枝网络的任务损失值,得到所述剪枝网络的网络损失值,其中,所述剪枝网络的任务损失值是根据所述第二特征数据与所述第一样本图像的标注数据得到的。
可选地,在本公开上述任一方法实施例中,所述根据所述第二特征数据与所述第一特征数据,得到所述剪枝网络的隐形损失值,包括:
对所述第二特征数据进行适配处理,以使得所述第二特征数据适配到所述第一特征数据所属的特征空间;
基于所述适配处理后的第二特征数据与所述第一特征数据之间的距离,得到所述剪枝网络的隐形损失值。
可选地,在本公开上述任一方法实施例中,在所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络之前,还包括:
基于所述第一神经网络,对进行所述适配处理的适配层的权重进行调整,得到调整后的适配层;
所述对所述第二特征数据进行适配处理,包括:
通过所述调整后的适配层对所述第二特征数据进行适配处理,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小。
可选地,在本公开上述任一方法实施例中,在所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络之前,还包括:
基于所述第一神经网络,对进行所述适配处理的所述剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小;
所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络,包括:
基于所述第一神经网络,训练所述调整后的剪枝网络,得到第二神经网络。
可选地,在本公开上述任一方法实施例中,所述对第一神经网络进行剪枝处理,得到剪枝网络,包括:
基于所述第一神经网络中的多个网络通道中每个网络通道对于所述第一神经网络的输出结果的影响参数,对所述第一神经网络中的多个网络通道进行剪枝处理,得到所述剪枝网络。
可选地,在本公开上述任一方法实施例中,在所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络之后,还包括:
确定所述第二神经网络是否达到预设网络条件;
响应于所述第二神经网络达到所述预设网络条件,将所述第二神经网络确定为目标神经网络。
可选地,在本公开上述任一方法实施例中,还包括:
响应于所述第二神经网络未达到所述预设网络条件,将所述第二神经网络作为更新后的所述第一神经网络进行剪枝处理。
根据本公开实施例的另一个方面,提供一种图像处理方法,包括:
获取待处理图像;
将所述待处理图像输入到目标神经网络进行处理,得到图像处理结果,其中,所述目标神经网络是通过上述任意一实施例所述的方法训练得到的。
根据本公开实施例的又一个方面,提供一种训练神经网络的装置,包括:
剪枝单元,用于对第一神经网络进行剪枝处理,得到剪枝网络;
训练单元,用于基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络。
可选地,在本公开上述装置实施例中,所述训练单元,用于:
通过所述第一神经网络对第一样本图像进行处理,得到第一特征数据;
通过所述剪枝网络对所述第一样本图像进行处理,得到第二特征数据;
基于所述第一特征数据和所述第二特征数据,得到所述剪枝网络的网络损失值;
根据所述剪枝网络的网络损失值,对所述剪枝网络的参数进行调整处理,得到第二神经网络。
可选地,在本公开上述任一装置实施例中,所述训练单元,用于:
根据所述第二特征数据与所述第一特征数据,得到所述剪枝网络的隐形损失值;
基于所述剪枝网络的隐形损失值和所述剪枝网络的任务损失值,得到所述剪枝网络的网络损失值,其中,所述剪枝网络的任务损失值是根据所述第二特征数据与所述第一样本图像的标注数据得到的。
可选地,在本公开上述任一装置实施例中,所述训练单元,还用于:
对所述第二特征数据进行适配处理,以使得所述第二特征数据适配到所述第一特征数据所属的特征空间;
基于所述适配处理后的第二特征数据与所述第一特征数据之间的距离,得到所述剪枝网络的隐形损失值。
可选地,在本公开上述任一装置实施例中,还包括:
调整单元,用于基于所述第一神经网络,对进行所述适配处理的适配层的权重进行调整,得到调整后的适配层;
所述训练单元,用于通过所述调整后的适配层对所述第二特征数据进行适配处理,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小。
可选地,在本公开上述任一装置实施例中,还包括:
调整单元,用于基于所述第一神经网络,对进行所述适配处理的所述剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小;
所述训练单元,用于基于所述第一神经网络,训练所述调整后的剪枝网络,得到第二神经网络。
可选地,在本公开上述任一装置实施例中,所述剪枝单元,用于基于所述第一神经网络中的多个网络通道中每个网络通道对于所述第一神经网络的输出结果的影响参数,对所述第一神经网络中的多个网络通道进行剪枝处理,得到所述剪枝网络。
可选地,在本公开上述任一装置实施例中,还包括:
判断单元,用于确定所述第二神经网络是否达到预设网络条件;
输出单元,用于根据所述判断单元的判断结果,响应于所述第二神经网络达到所述预设网络条件,将所述第二神经网络确定为目标神经网络。
可选地,在本公开上述任一装置实施例中,所述剪枝单元,还用于根据所述判断单元的判断结果,响应于所述第二神经网络未达到所述预设网络条件,将所述第二神经网络作为更新后的所述第一神经网络进行剪枝处理。
根据本公开实施例的再一个方面,提供的一种图像处理装置,包括:
获取单元,用于获取待处理图像;
处理单元,用于将所述待处理图像输入到目标神经网络进行处理,得到图像处理结果,其中,所述目标神经网络是通过上述任一实施例所述的装置训练得到的。
根据本公开实施例的再一个方面,提供的一种电子设备,包括上述任一实施例所述的装置。
根据本公开实施例的再一个方面,提供的一种电子设备,包括:
存储器,用于存储可执行指令;以及
处理器,用于执行所述可执行指令从而完成上述任一实施例所述的方法。
根据本公开实施例的再一个方面,提供的一种计算机程序,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现上述任一实施例所述方法的指令。
根据本公开实施例的再一个方面,提供的一种计算机存储介质,用于存储计算机可读指令,所述指令被执行时实现上述任一实施例所述的方法。
基于本公开上述实施例提供的训练神经网络的方法和装置、电子设备和计算机存储介质,通过对第一神经网络进行剪枝处理,得到剪枝网络,基于第一神经网络,训练剪枝网络,得到第二神经网络,能够在降低神经网络规模的条件下将第一神经网络的知识迁移到剪枝网络上,从而减缓剪枝网络性能的下降。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开一些实施例的训练神经网络的方法的流程图;
图2为本公开一些实施例对第一神经网络进行剪枝处理的流程图;
图3为本公开一些实施例基于第一神经网络训练剪枝网络的流程图;
图4为本公开另一些实施例的训练神经网络的方法的流程图;
图5为本公开又一些实施例的训练神经网络的方法的流程图;
图6为本公开一些实施例进行剪枝处理前后的神经网络的示意图;
图7A为本公开一些实施例获得隐形损失值的示意图;
图7B为本公开另一些实施例获得隐形损失值的示意图;
图7C为本公开又一些实施例获得隐形损失值的示意图;
图8为本公开再一些实施例的训练神经网络的方法的流程图;
图9为本公开一些实施例的训练神经网络的装置的结构示意图;
图10为本公开另一些实施例的训练神经网络的装置的结构示意图;
图11为本公开又一些实施例的训练神经网络的装置的结构示意图;
图12为本公开一些实施例提供的电子设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、第三程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
图1为本公开一些实施例的训练神经网络的方法的流程图。该方法可以由终端设备或服务器执行,例如:照相机、摄像机、手机、车载电脑等移动终端设备。
102,对第一神经网络进行剪枝处理,得到剪枝网络。
在本公开实施例中,第一神经网络可以为训练好的神经网络,并且第一神经网络可以为规模较大的神经网络,例如,第一神经网络的网络参数的数量大于某一数值,但本公开实施例对此不做限定。可选地,第一神经网络可以为卷积神经网络(ConvolutionalNeural Network,CNN)、深度神经网络(Deep Neural Network,DNN)或循环神经网络(Recurrent Neural Network,RNN)等,本公开实施例对第一神经网络的类型不做限定。第一神经网络为适用于图像处理任务的神经网络,例如:目标识别任务、目标分类任务、目标检测任务或姿态估计任务等。第一神经网络也可以为适用于各种应用场景的神经网络,例如:安防监控场景、人脸解锁场景或人脸支付场景等,本实施例对第一神经网络的适用范围不作限定。
在102中,可以对第一神经网络进行剪枝处理,以减少神经网络的参数量。可选地,可以去除第一神经网络的至少一个参数,得到剪枝网络,例如去除第一神经网络的至少一个网络层,和/或去除第一神经网络的至少一个通道,等等,本公开实施例对此不做限定。
在本公开实施例中,可以通过多种方式对第一神经网络进行剪枝处理。可选地,基于第一神经网络中的多个参数中每个参数的重要性,对第一神经网络进行剪枝处理,得到剪枝网络。这样,基于第一神经网络的多个参数中每个参数的重要性,去除第一神经网络的至少一个参数,得到剪枝网络。例如,去除第一神经网络的多个参数中重要性最低的至少一个参数。在一个例子中,基于第一神经网络中的多个网络通道中每个网络通道的重要性,对所述第一神经网络进行剪枝处理,得到剪枝网络,但本实施例对第一神经网络进行剪枝处理的具体实现不作限定。
在本公开实施例中,可以通过多种方式度量神经网络中参数的重要性。例如,可以基于参数对于网络输出结果的影响,确定参数的重要性。再例如,可以基于去除参数前后的网络损失的变化,确定参数的重要性。再例如,可以基于某个网络层或通道的反向梯度和输出,确定该网络层或通道的重要性,等等,本公开实施例对此不做限定。
在本公开实施例中,在剪枝处理中可以去除第一神经网络的多个参数中的一个或多个参数,去除的至少一个参数的个数可以通过多种方式确定。例如,可以基于重要性参数阈值确定去除的至少一个网络通道或网络层。再例如,可以设定剪枝比例,并基于剪枝比例和第一神经网络中包括的参数(例如网络通道或网络层)的数量,确定去除的至少一个参数的数量。作为一个例子,可以按照网络通道的重要性对网络通道进行降序排列,并按照设定剪裁比例保留重要程度高的网络通道,但本公开实施例不限于此。
104,基于第一神经网络,训练剪枝网络,得到第二神经网络。
可选地,可以基于第一神经网络对剪枝网络的训练进行监督,例如:可以基于第一神经网络,得到剪枝网络的监督信息,并基于该监督信息,调整剪枝网络的网络参数。或者,基于第一神经网络,得到剪枝网络的网络损失,并根据剪枝网络的网络损失,对剪枝网络的网络参数进行调整,得到第二神经网络。
可选地,可以采用梯度下降法(Gradient Descent,GD)等方法中的一种,对剪枝网络进行训练,本公开实施例对剪枝网络的训练方法的具体实现不作限定。
在一些可能的实现方式中,可以分别利用第一神经网络和剪枝网络对样本图像进行处理,得到第一特征数据和第二特征数据,并基于第一特征数据和第二特征数据,调整剪枝网络的网络参数,得到第二神经网络。例如,基于第一特征数据和第二特征数据之间的距离或相似度,调整剪枝网络的网络参数,得到第二神经网络,但本公开实施例对此不做限定。
基于本公开实施例提供的训练神经网络的方法,通过对第一神经网络进行剪枝处理,得到剪枝网络,基于第一神经网络,训练剪枝网络,得到第二神经网络,在降低网络规模的基础上,将第一神经网络的知识迁移到剪枝网络上,保证神经网络的精度,加速神经网络的训练。
本公开实施例适用于采用分组卷积(Group Convolution)和/或深度卷积(depthwise convolution)的神经网络,也可以应用于其他网络,本公开实施例对此不做限定。
在本公开实施例中,将第一神经网络作为教师网络,剪枝网络作为学生网络,并将教师网络(即复杂、但处理性能优越的网络)学到的知识迁移到学生网络(精简、低复杂度的网络)上,能够保证剪枝网络的处理性能。
在一些实施例中,基于第一神经网络中的多个网络通道中每个网络通道对于第一神经网络的输出结果的影响,确定该每个网络通道的重要性,并将多个网络通道中重要性较低的至少一个网络通道去除,以实现对第一神经网络的剪枝处理。
下面将结合图2所示的例子,详细描述对第一神经网络进行剪枝处理的流程。
202,获取第一神经网络中的多个网络通道中每个网络通道对第一神经网络的网络损失的偏移量。
在一个可选的例子中,可以根据第一神经网络的网络损失和剪枝网络的网络损失,基于最小化第一神经网络和剪枝网络之间的网络损失差异的原则,对第一神经网络进行剪枝处理。
例如,对第一神经网络的剪枝处理可以基于以下公式进行:
其中,C()表示损失函数,D为样本图像,W和W′分别为第二网络和剪枝处理后的第二网络中的参数,||W′||0限定W′中非零参数的个数。参数Wi是否被去除取决于其对应的输出hi。从公式1可以得知,去除的至少一个网络通道使得第二网络与剪枝处理后的第二网络对于样本图像的损失值之间的差别最小。这样,可选地,可以确定第二网络的多个网络通道中每个网络通道对于网络损失的贡献,并从多个网络通道中取出对网络损失贡献最小的至少一个网络通道。
对公式1进行一阶泰勒展开,得到以下公式2:
其中,hi为第二网络中的网络通道i的输出,表示网络通道i的反向梯度,|ΔC(hi)|表示去除网络通道hi前后的网络损失的变化量,即网络通道i对网络损失的偏移量。
204,根据第一神经网络的多个网络通道中每个网络通道的偏移量,确定该每个网络通道的重要性。
在一个可选的例子中,可以根据第一神经网络中的网络通道i对第一神经网络的网络损失的偏移量,即网络通道i的反向梯度和网络通道的得到的乘积,确定网络通道i的重要性,例如:网络通道的偏移量越小,网络通道的重要性也越低,而网络通道的偏移量越大,网络通道的重要性也越大,但本公开实施例不限于此。
这样,可以基于各个网络通道对网络损失的贡献,去除多个网络通道中对网络损失的贡献最小的至少一个网络通道,得到剪枝网络,但本公开实施例对此不做限定。
206,基于第一神经网络中的多个网络通道中每个网络通道的重要性,去除第一神经网络的多个网络通道中的至少一个网络通道。
在一个可选的例子中,可以去除多个网络通道中重要性最小的至少一个网络通道。例如,可以按照第一神经网络中的多个网络通道中每个网络通道对第一神经网络的网络损失的偏移量,对第一神经网络中的多个网络通道进行排序,并去掉排在最前面或最后面的重要性小的至少一个网络通道,但本公开实施例不限于此。
可选地,根据第一神经网络中的多个网络通道中每个网络通道的重要性,可以去除第一神经网络中的多个网络通道中重要性小的至少两个网络通道,也可以去除第一神经网络中的多个网络通道中重要性最小的一个网络通道。此时,可选地,在第一神经网络中的多个网络通道中存在至少两个重要性最小的网络通道时,可以随机选择其中的一个网络通道进行去除,本公开实施例对去除第一神经网络的网络通道的具体实现不作限定。
图6为本公开一些实施例中进行剪枝处理前后的神经网络的示意图,其中,610为第一神经网络,620为对第一神经网络610进行剪枝处理得到的剪枝网络,从图6中可以看出,剪枝网络620相比于第一神经网络610,网络的深度和参数都减小了。
本公开实施例通过从第一神经网络中的多个网络通道中挑选出重要性小的至少一个网络通道进行去除,在减小神经网络的参数量的同时,最大程度地保留神经网络的性能,从而加速神经网络的训练。
下面将结合图3所示的例子,详细描述基于第一神经网络训练剪枝网络的流程。
302,通过第一神经网络对第一样本图像进行处理,得到第一特征数据。
在一个可选的例子中,可以通过第一神经网络对样本图像集中的每个样本图像进行特征提取处理,得到第一特征数据,例如:第一特征数据为至少一个第一特征图或第一特征张量。
304,通过剪枝网络对第一样本图像进行处理,得到第二特征数据。
在一个可选的例子中,可以通过剪枝网络对样本图像集中的每个样本图像进行特征提取处理,得到第二特征数据,例如:第二特征数据为至少一个第二特征图或者第二特征张量。
这样,通过第一神经网络和剪枝网络分别对同一样本图像进行处理,例如,特征提取处理,得到第一特征数据和第二特征数据,并基于第一特征数据和第二特征数据,调整剪枝网络的网络参数。
306,基于第一特征数据和第二特征数据,得到剪枝网络的网络损失值。
可选地,可以基于第一特征数据和第二特征数据的距离,得到剪枝网络的网络损失值。或者,可以基于第一特征数据和通过对第二特征数据进行适配处理得到的第三特征数据之间的距离,得到剪枝网络的网络损失值,本公开实施例对此不做限定。
在一个可选的例子中,剪枝网络的网络损失值可以包括任务损失值和隐形损失值,其中,任务损失值可以根据第二特征数据(即预测值)与第一样本图像的标注数据(即真实值)得到,例如:L1损失、L2损失或Softmax,等等,本公开实施例对获得任务损失值的方式不作限定。隐形损失值可以根据第二特征数据与第一特征数据得到,例如:可以L2损失、归一化损失或适配损失等,本实施例对获得隐形损失值的方式不作限定。
例如:剪枝网络的网络损失值如下:
L=Lt+λLh (公式3)
其中,Lt为任务损失值,Lh为隐形损失值,λ为隐形损失的权重,其数据可以根据神经网络的任务类型进行设置,例如:对于小规模的分类任务,λ的取值可以较大,例如为10,而对于大规模的分类任务,λ的取值可以较小,例如为1,但本公开实施例不限于此。
308,根据剪枝网络的网络损失值,对剪枝网络的参数进行调整处理,得到第二神经网络。
在一个可选的例子中,可以根据剪枝网络的网络损失值,采用随机梯度下降法(Stochastic Gradient Descent,SGD)等方法,对剪枝网络的参数进行调整处理,得到第二神经网络,本实施例对剪枝网络的参数进行调整处理的方法不作限定。
本公开实施例通过第一神经网络对剪枝网络的训练进行监督,可以将第一神经网络的知识迁移到剪枝网络上,减缓剪枝网络性能的下降,使第二神经网络输出与第一神经网络得到的特征图相似的特征图,从而保证神经网络的精度。
在一个可选的例子中,可以采用L2网络损失,获得隐形损失值,其表达式如下:
其中,Lm为隐形损失值,ft和fs分别为第一特征图和第二特征图,N为特征图中包括的元素的总数。
图7A为本公开实施例中获得隐形损失值的一个示例的示意图,其中,710为第一神经网络,720为剪枝网络,730为损失确定单元,用于根据第一神经网络710得到的第一特征图和剪枝网络720得到的第二特征图采用L2网络损失获得的隐形损失值。
在另一个可选的例子中,可以采用归一化网络损失,获得隐形损失值,其表达式如下:
其中,Lm为隐形损失值,ft和fs分别为第一特征图和第二特征图,N为特征图中元素的总数。
图7B为本公开实施例中获得隐形损失值的另一示例的示意图,其中,710为第一神经网络,720为剪枝网络,740和750为归一化处理单元,分别用于对第一神经网络710得到的第一特征图和剪枝网络720得到的第二特征图进行归一化处理,得到第一归一化特征图和第二归一化特征图,760为损失确定单元,用于根据归一化处理单元740和750得到的第一归一化特征图和第二归一化特征图,获得隐形损失值。
在另一个例子中,在剪枝网络与第一神经网络得到的特征数据的通道数不相等的情况下,可以对第二特征数据进行适配处理,以使得第二特征数据适配到第一特征数据所属的特征空间,即通过适配处理使剪枝网络对应的特征数据的通道数与第一神经网络对应的特征数据的通道数一致,然后基于适配处理后的第二特征数据与第一特征数据之间的距离,得到剪枝网络的隐形损失值。
可选地,可以通过适配层对第二特征数据进行适配处理,该适配层可以为剪枝网络在训练过程中新增的网络层,也可以将剪枝网络的至少一个网络层作为适配层,本公开实施例对适配层的具体实现不作限定。
在一个可选的例子中,可以采用适配网络损失,获得隐形损失值,其表达式如下:
其中,Lm为隐形损失值,ft和fs分别为第一特征图和第二特征图,N为特征图中元素的总数,r()为适配处理函数。
图7C为本公开实施例中获得隐形损失值的另一示例的示意图,其中,710为第一神经网络,720为剪枝网络,770为适配层,用于对剪枝网络720得到的第二特征图进行适配处理,780为损失确定单元,用于根据第一神经网络710得到的第一特征图和适配处理后的第二特征图,获得隐形损失值。
可选地,对于卷积神经网络,适配层可以采用卷积层。对于采用增加适配层的方式对第二特征数据进行适配处理,例如:适配层可以采用1×1的卷积层,采用一个卷积层作为适配层,可以避免采用多层卷积神经网络带来的大量的参数,可以增强适配层在第二特征数据与第一特征数据相似时表现力。
在一些可选地实施例中,在基于第一神经网络,训练剪枝网络之前,还可以对适配层的权重进行调整,即对适配层的参数进行重构,以使得通过调整后的适配层进行适配处理后的第二特征数据与第一特征数据之间的差异最小。下面将结合图4和图5的实施例,详细描述对适配层的权重进行调整的流程。
402,对第一神经网络进行剪枝处理,得到剪枝网络。
在一个可选的例子中,可以对第一神经网络中的网络通道进行剪枝处理,例如:可以基于第一神经网络中的多个网络通道中每个网络通道对于第一神经网络的输出结果的影响参数,即网络通道的重要性,对所述第一神经网络中的多个网络通道进行剪枝处理,得到剪枝网络,本实施例对第一神经网络进行剪枝处理的方法不作限定。
404,基于第一神经网络,对进行适配处理的适配层的权重进行调整,得到调整后的适配层。
在本实施例中,是采用增加适配层的方式对第二特征数据进行适配处理,以使得第二特征数据适配到第一特征数据所属的特征空间。
在一个可选的例子中,可以根据剪枝网络对应的特征数据,即第二特征数据,和第一神经网络对应的特征数据,即第一特征数据,基于最小化重建误差,得到对应的函数,根据最小二乘法求解该函数,得到适配层的权重,实现对适配层的权重的调整。
例如:基于最小化重建误差,得到的函数如下:
其中,Y为第一神经网络对应的特征图,例如为第一特征图,X为剪枝网络对应的特征图,例如为第二特征图,W为适配层的权重。
根据最小二乘法:W=(XTX)-1XTY,求解该函数,得到适配层的权重的表达式如下:
其中,Wf为适配层的最终权重,W0和Wr分别为适配层的原始权重和适配层的重构权重,Y0和X0分别在整个样本集对第一神经网络和剪枝网络的特征图进行计算。
406,基于第一神经网络,训练剪枝网络,得到第二神经网络。
在本公开实施例中,可以通过调整后的适配层对第二特征数据进行适配处理,以使适配处理后的第二特征数据与第一特征数据之间的差异最小,然后基于适配处理后的第二特征数据与第一特征数据之间的距离,得到剪枝网络的隐形损失值,基于剪枝网络的隐形损失值和剪枝网络的任务损失值,得到剪枝网络的网络损失值,根据剪枝网络的网络损失值,对剪枝网络进行训练,得到第二神经网络。
502,对第一神经网络进行剪枝处理,得到剪枝网络。
在一个可选的例子中,可以对第一神经网络中的网络通道进行剪枝处理,例如:可以基于第一神经网络中的多个网络通道中每个网络通道对于第一神经网络的输出结果的影响参数,即网络通道的重要性,对所述第一神经网络中的多个网络通道进行剪枝处理,得到剪枝网络,本实施例对第一神经网络进行剪枝处理的方法不作限定。
504,基于第一神经网络,对进行适配处理的剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络。
在本实施例中,是采用剪枝网络的至少一个网络层作为适配层的方式对第二特征数据进行适配处理,以使得第二特征数据适配到第一特征数据所属的特征空间。
在一个可选的例子中,可以根据剪枝网络对应的特征数据,即第二特征数据,和第一神经网络对应的特征数据,即第一特征数据,基于最小化重建误差,得到对应的函数,根据最小二乘法求解该函数,得到适配层的权重,实现对适配层的权重的调整。
506,基于第一神经网络,训练调整后的剪枝网络,得到第二神经网络。
在本实施例中,可以通过调整后的适配层对第二特征数据进行适配处理,以使适配处理后的第二特征数据与第一特征数据之间的差异最小,然后基于适配处理后的第二特征数据与第一特征数据之间的距离,得到剪枝网络的隐形损失值,基于剪枝网络的隐形损失值和剪枝网络的任务损失值,得到剪枝网络的网络损失值,根据剪枝网络的网络损失值,对调整后的剪枝网络进行训练,得到第二神经网络,其中,剪枝网络的任务损失值是根据调整后的剪枝网络对第一样本图像进行处理得到的第三特征数据与第一样本图像的标注数据得到的。
上述两个实施例利用剪枝网络对应的特征数据和第一神经网络对应的特征数据,对适配层的权重进行调整,并利用调整后的适配层对第二特征数据进行适配处理,可以为剪枝网络提供更好地初始化,使通过初始化的剪枝网络得到的特征图与通过第一神经网络得到的特征图较为相似,从而在利用初始化的剪枝网络对应的特征图与第一神经网络对应的特征图进行知识迁移时,可以提升知识迁移的效果,提升所获得的神经网络的性能。
在一些实施例中,在操作104或406或506,基于第一神经网络,训练剪枝网络或调整后的剪枝网络,得到第二神经网络之后,还可以确定第二神经网络是否达到预设网络条件,并响应于第二神经网络达到预设网络条件,将第二神经网络确定为目标神经网络,和/或,响应于第二神经网络未达到预设网络条件,将第二神经网络作为更新后的第一神经网络进行剪枝处理,即从操作102或402或502开始执行,直至得到目标神经网络或者训练失败。其中,预设网络条件可以包括预设迭代次数和预设精度等条件中的至少一种,本实施例对预设网络条件的类型不作限定。
在一个可选的例子中,如图8所示,图8为本公开再一些实施例的训练神经网络的方法的流程图,其中,剪枝操作810、重构操作820和知识蒸馏操作830依次执行,并通过判断操作840,确定是否迭代执行剪枝操作810、重构操作820和知识蒸馏操作830,在知识蒸馏操作830中,教师网络相当于第一神经网络,学生网络相当于剪枝网络,得到的压缩网络850相当于目标神经网络,其中在得到压缩网络850之前,还可以执行另一个知识蒸馏操作860,该另一个知识蒸馏操作860是基于原始的第一神经网络对应的特征数据和最终得到的第二神经网络对应的特征数据进行知识蒸馏,得到最终的压缩网络850。
本实施例采用多次迭代操作相比于采用单次操作,可以通过每一次迭代操作,使通过剪枝网络得到的特征图不断地逼近通过第一神经网络得到的特征图,从而提升知识迁移的效果,提升所获得的神经网络的性能,另外,本实施例通过在得到最终的压缩网络之前,执行另一个知识蒸馏操作可以进一步提升所获得的神经网络的性能。
另外,本公开的一些实施例还提供了一种图像处理方法,该方法包括:获取待处理图像;将待处理图像输入到目标神经网络进行处理,得到图像处理结果,其中,目标神经网络是通过上述任一实施例的方法训练得到的。
图9为本公开一些实施例的训练神经网络的装置的结构示意图。该装置可以设置于终端设备或服务器中,例如:照相机、摄像机、手机、车载电脑等移动终端设备。
如图9所示,该装置包括:剪枝单元910和训练单元920。其中,
剪枝单元910,用于对第一神经网络进行剪枝处理,得到剪枝网络。
在本公开实施例中,第一神经网络可以为训练好的神经网络,并且第一神经网络可以为规模较大的神经网络,例如,第一神经网络的网络参数的数量大于某一数值,但本公开实施例对此不做限定。可选地,第一神经网络可以为卷积神经网络、深度神经网络或循环神经网络等,本公开实施例对第一神经网络的类型不做限定。第一神经网络为适用于图像处理任务的神经网络,例如:目标识别任务、目标分类任务、目标检测任务或姿态估计任务等。第一神经网络也可以为适用于各种应用场景的神经网络,例如:安防监控场景、人脸解锁场景或人脸支付场景等,本实施例对第一神经网络的适用范围不作限定。
剪枝单元910可以对第一神经网络进行剪枝处理,以减少神经网络的参数量。可选地,可以去除第一神经网络的至少一个参数,得到剪枝网络,例如去除第一神经网络的至少一个网络层,和/或去除第一神经网络的至少一个通道,等等,本公开实施例对此不做限定。
在本公开实施例中,剪枝单元910可以通过多种方式对第一神经网络进行剪枝处理。可选地,剪枝单元910基于第一神经网络中的多个参数中每个参数的重要性,对第一神经网络进行剪枝处理,得到剪枝网络。这样,基于第一神经网络的多个参数中每个参数的重要性,去除第一神经网络的至少一个参数,得到剪枝网络。例如,去除第一神经网络的多个参数中重要性最低的至少一个参数。在一个例子中,剪枝单元910基于第一神经网络中的多个网络通道中每个网络通道的重要性,对所述第一神经网络进行剪枝处理,得到剪枝网络,但本实施例对第一神经网络进行剪枝处理的具体实现不作限定。
在本公开实施例中,剪枝单元910可以通过多种方式度量神经网络中参数的重要性。例如,剪枝单元910可以基于参数对于网络输出结果的影响,确定参数的重要性。再例如,剪枝单元910可以基于去除参数前后的网络损失的变化,确定参数的重要性。再例如,剪枝单元910可以基于某个网络层或通道的反向梯度和输出,确定该网络层或通道的重要性,等等,本公开实施例对此不做限定。
在本公开实施例中,剪枝单元910在剪枝处理中可以去除第一神经网络的多个参数中的一个或多个参数,去除的至少一个参数的个数可以通过多种方式确定。例如,剪枝单元910可以基于重要性参数阈值确定去除的至少一个网络通道或网络层。再例如,剪枝单元910可以设定剪枝比例,并基于剪枝比例和第一神经网络中包括的参数(例如网络通道或网络层)的数量,确定去除的至少一个参数的数量。作为一个例子,剪枝单元910可以按照网络通道的重要性对网络通道进行降序排列,并按照设定剪裁比例保留重要程度高的网络通道,但本公开实施例不限于此。
训练单元920,用于基于第一神经网络,训练剪枝网络,得到第二神经网络。
可选地,训练单元920可以基于第一神经网络对剪枝网络的训练进行监督,例如:可以基于第一神经网络,得到剪枝网络的监督信息,并基于该监督信息,调整剪枝网络的网络参数。或者,基于第一神经网络,得到剪枝网络的网络损失,并根据剪枝网络的网络损失,对剪枝网络的网络参数进行调整,得到第二神经网络。
可选地,训练单元920可以采用梯度下降法等方法中的至少一种,对剪枝网络进行训练,本公开实施例对训练单元920对剪枝网络的训练方法的具体实现不作限定。
在一些可能的实现方式中,训练单元920可以分别利用第一神经网络和剪枝网络对样本图像进行处理,得到第一特征数据和第二特征数据,并基于第一特征数据和第二特征数据,调整剪枝网络的网络参数,得到第二神经网络。例如,训练单元920可以基于第一特征数据和第二特征数据之间的距离或相似度,调整剪枝网络的网络参数,得到第二神经网络,但本公开实施例对此不做限定。
基于本公开实施例提供的训练神经网络的装置,通过对第一神经网络进行剪枝处理,得到剪枝网络,基于第一神经网络,训练剪枝网络,得到第二神经网络,在降低网络规模的基础上,将第一神经网络的知识迁移到剪枝网络上,保证神经网络的精度,加速神经网络的训练。
在一些实施例中,剪枝单元910,用于基于第一神经网络中的多个网络通道中每个网络通道对于第一神经网络的输出结果的影响,确定该每个网络通道的重要性,并将多个网络通道中重要性较低的至少一个网络通道去除,以实现对第一神经网络的剪枝处理。
可选地,剪枝单元910,可以获取第一神经网络中的多个网络通道中每个网络通道对第一神经网络的网络损失的偏移量;根据第一神经网络的多个网络通道中每个网络通道的偏移量,确定该每个网络通道的重要性;然后基于第一神经网络中的多个网络通道中每个网络通道的重要性,去除第一神经网络的多个网络通道中的至少一个网络通道。
在一个可选的例子中,剪枝单元910可以根据第一神经网络的网络损失和剪枝网络的网络损失,基于最小化第一神经网络和剪枝网络之间的网络损失差异的原则,对第一神经网络进行剪枝处理。
在一个可选的例子中,剪枝单元910可以根据第一神经网络中的网络通道i对第一神经网络的网络损失的偏移量,即网络通道i的反向梯度和网络通道的得到的乘积,确定网络通道i的重要性,例如:网络通道的偏移量越小,网络通道的重要性也越低,而网络通道的偏移量越大,网络通道的重要性也越大,但本公开实施例不限于此。
这样,可以基于各个网络通道对网络损失的贡献,去除多个网络通道中对网络损失的贡献最小的至少一个网络通道,得到剪枝网络,但本公开实施例对此不做限定。
在一个可选的例子中,剪枝单元910可以去除多个网络通道中重要性最小的至少一个网络通道。例如,可以按照第一神经网络中的多个网络通道中每个网络通道对第一神经网络的网络损失的偏移量,对第一神经网络中的多个网络通道进行排序,并去掉排在最前面或最后面的重要性小的至少一个网络通道,但本公开实施例不限于此。
可选地,剪枝单元910根据第一神经网络中的多个网络通道中每个网络通道的重要性,可以去除第一神经网络中的多个网络通道中重要性小的至少两个网络通道,也可以去除第一神经网络中的多个网络通道中重要性最小的一个网络通道。此时,可选地,在第一神经网络中的多个网络通道中存在至少两个重要性最小的网络通道时,可以随机选择其中的一个网络通道进行去除,本公开实施例对去除第一神经网络的网络通道的具体实现不作限定。
在一些实施例中,训练单元920,用于通过第一神经网络对第一样本图像进行处理,得到第一特征数据;通过剪枝网络对第一样本图像进行处理,得到第二特征数据;然后基于第一特征数据和第二特征数据,得到剪枝网络的网络损失值;根据剪枝网络的网络损失值,对剪枝网络的参数进行调整处理,得到第二神经网络。
在一个可选的例子中,训练单元920可以通过第一神经网络对样本图像集中的每个样本图像进行特征提取处理,得到第一特征数据,例如:第一特征数据为至少一个第一特征图或第一特征张量。
在一个可选的例子中,训练单元920可以通过剪枝网络对样本图像集中的每个样本图像进行特征提取处理,得到第二特征数据,例如:第二特征数据为至少一个第二特征图或者第二特征张量。
这样,通过第一神经网络和剪枝网络分别对同一样本图像进行处理,例如,特征提取处理,得到第一特征数据和第二特征数据,并基于第一特征数据和第二特征数据,调整剪枝网络的网络参数。
可选地,训练单元920可以基于第一特征数据和第二特征数据的距离,得到剪枝网络的网络损失值。或者,可以基于第一特征数据和通过对第二特征数据进行适配处理得到的第三特征数据之间的距离,得到剪枝网络的网络损失值,本公开实施例对此不做限定。
在一个可选的例子中,剪枝网络的网络损失值可以包括任务损失值和隐形损失值,其中,任务损失值可以根据第二特征数据(即预测值)与第一样本图像的标注数据(即真实值)得到,例如:L1损失、L2损失或Softmax,等等,本公开实施例对获得任务损失值的方式不作限定。隐形损失值可以根据第二特征数据与第一特征数据得到,例如:可以L2损失、归一化损失或适配损失等,本实施例对获得隐形损失值的方式不作限定。
在一个可选的例子中,训练单元920可以根据剪枝网络的网络损失值,采用随机梯度下降法(Stochastic Gradient Descent,SGD)等方法,对剪枝网络的参数进行调整处理,得到第二神经网络,本实施例对剪枝网络的参数进行调整处理的方法不作限定。
本公开实施例通过第一神经网络对剪枝网络的训练进行监督,可以将第一神经网络的知识迁移到剪枝网络上,减缓剪枝网络性能的下降,使第二神经网络输出与第一神经网络得到的特征图相似的特征图,从而保证神经网络的精度。
在另一个例子中,在剪枝网络与第一神经网络得到的特征数据的通道数不相等的情况下,可以对第二特征数据进行适配处理,以使得第二特征数据适配到第一特征数据所属的特征空间,即通过适配处理使剪枝网络对应的特征数据的通道数与第一神经网络对应的特征数据的通道数一致,然后基于适配处理后的第二特征数据与第一特征数据之间的距离,得到剪枝网络的隐形损失值。
可选地,训练单元920可以通过适配层对第二特征数据进行适配处理,该适配层可以为剪枝网络在训练过程中新增的网络层,也可以将剪枝网络的至少一个网络层作为适配层,本公开实施例对适配层的具体实现不作限定。
可选地,对于卷积神经网络,适配层可以采用卷积层。对于采用增加适配层的方式对第二特征数据进行适配处理,例如:适配层可以采用1×1的卷积层,采用一个卷积层作为适配层,可以避免采用多层卷积神经网络带来的大量的参数,可以增强适配层在第二特征数据与第一特征数据相似时表现力。
图10为本公开另一些实施例的训练神经网络的装置的结构示意图。该装置可以设置于终端设备或服务器中,例如:照相机、摄像机、手机、车载电脑等移动终端设备。如图10所示,该装置包括剪枝单元1010和训练单元1020,其中剪枝单元1010和训练单元1020分别与图9中的剪枝单元910和训练单元920相类似,与图9所述的实施例相比较,两者的不同之处在于,该装置还包括:调整单元1030。其中,
调整单元1030,用于基于第一神经网络,对进行适配处理的适配层的权重进行调整,得到调整后的适配层;或者,用于基于第一神经网络,对进行适配处理的剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络。
在一个可选的例子中,调整单元1030可以根据剪枝网络对应的特征数据,即第二特征数据,和第一神经网络对应的特征数据,即第一特征数据,基于最小化重建误差,得到对应的函数,根据最小二乘法求解该函数,得到适配层的权重,实现对适配层的权重的调整。
在一个可选的例子中,在调整单元1030基于第一神经网络,对进行适配处理的适配层的权重进行调整,得到调整后的适配层的情况下,训练单元1020用于通过调整后的适配层对第二特征数据进行适配处理,以使适配处理后的第二特征数据与第一特征数据之间的差异最小。
在一个可选的例子中,在调整单元1030基于第一神经网络,对进行适配处理的剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络的情况下,训练单元1020用于基于第一神经网络,训练调整后的剪枝网络,得到第二神经网络,以使适配处理后的第二特征数据与第一特征数据之间的差异最小。
本公开实施例利用剪枝网络对应的特征数据和第一神经网络对应的特征数据,对适配层的权重进行调整,并利用调整后的适配层对第二特征数据进行适配处理,可以为剪枝网络提供更好地初始化,使通过初始化的剪枝网络得到的特征图与通过第一神经网络得到的特征图较为相似,从而在利用初始化的剪枝网络对应的特征图与第一神经网络对应的特征图进行知识迁移时,可以提升知识迁移的效果,提升所获得的神经网络的性能。
图11为本公开又一些实施例的训练神经网络的装置的结构示意图。该装置可以设置于终端设备或服务器中,例如:照相机、摄像机、手机、车载电脑等移动终端设备。如图11所示,该装置包括剪枝单元1110、训练单元1120和调整单元1130,其中剪枝单元1110、训练单元1120和调整单元1130分别与图10中的剪枝单元1010、训练单元1020和调整单元1030相类似,与图10所述的实施例相比较,两者的不同之处在于,该装置还包括:判断单元1140和输出单元1150。其中,
判断单元1140,用于确定第二神经网络是否达到预设网络条件。
输出单元1150,用于根据判断单元1140的判断结果,响应于第二神经网络达到预设网络条件,将第二神经网络确定为目标神经网络。
剪枝单元1110,还用于根据判断单元1140的判断结果,响应于第二神经网络未达到预设网络条件,将第二神经网络作为更新后的第一神经网络进行剪枝处理。
其中,预设网络条件可以包括预设迭代次数和预设精度等条件中的至少一种,本实施例对预设网络条件的类型不作限定。
本公开实施例通过采用判断单元1140可以实现多次迭代操作,相比于采用单次操作,可以通过每一次迭代操作,使通过剪枝网络得到的特征图不断地逼近通过第一神经网络得到的特征图,从而提升知识迁移的效果,提升所获得的神经网络的性能。
另外,本公开的一些实施例还提供了一种图像处理装置,该装置包括:获取单元,用于获取待处理图像;处理单元,用于将待处理图像输入到目标神经网络进行处理,得到图像处理结果,其中,目标神经网络是通过上述任一实施例的装置训练得到的。
本公开实施例还提供了一种电子设备,例如可以是移动终端、个人计算机(PC)、平板电脑、服务器等。下面参考图12,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备1200的结构示意图:如图12所示,计算机***1200包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(CPU)1201,和/或一个或多个加速单元1213等,加速单元1213可包括但不限于GPU、FPGA、其他类型的专用处理器等,处理器可以根据存储在只读存储器(ROM)1202中的可执行指令或者从存储部分1208加载到随机访问存储器(RAM)1203中的可执行指令而执行各种适当的动作和处理。通信部1212可包括但不限于网卡,所述网卡可包括但不限于IB(Infiniband)网卡,处理器可与只读存储器1202和/或随机访问存储器1203中通信以执行可执行指令,通过总线1204与通信部1212相连、并经通信部1212与其他目标设备通信,从而完成本申请实施例提供的任一项方法对应的操作,例如,对第一神经网络进行剪枝处理,得到剪枝网络;基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络。
此外,在RAM 1203中,还可存储有装置操作所需的各种程序和数据。CPU1201、ROM1202以及RAM1203通过总线1204彼此相连。在有RAM1203的情况下,ROM1202为可选模块。RAM1203存储可执行指令,或在运行时向ROM1202中写入可执行指令,可执行指令使中央处理单元1201执行上述通信方法对应的操作。输入/输出(I/O)接口1205也连接至总线1204。通信部1212可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
需要说明的,如图12所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图12的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如加速单元1213和CPU1201可分离设置或者可将加速单元1213集成在CPU1201上,通信部1209可分离设置,也可集成设置在CPU1201或加速单元1213上,等等。这些可替换的实施方式均落入本公开公开的保护范围。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本申请实施例提供的方法步骤对应的指令,例如,对第一神经网络进行剪枝处理,得到剪枝网络;基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的方法中限定的上述功能。
在一个或多个可选实施方式中,本公开实施例还提供了一种计算机程序程序产品,用于存储计算机可读指令,该指令被执行时使得计算机执行上述任一可能的实现方式中对第一神经网络进行剪枝处理,得到剪枝网络;基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络的方法。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选例子中,该计算机程序产品具体体现为计算机存储介质,在另一个可选例子中,该计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
在一个或多个可选实施方式中,本公开实施例还提供了一种训练神经网络的方法及其对应的装置和电子设备、计算机存储介质、计算机程序以及计算机程序产品,其中,该方法包括:对第一神经网络进行剪枝处理,得到剪枝网络;基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络的方法。
在一些实施例中,该训练神经网络的指示可以具体为调用指令,第一装置可以通过调用的方式指示第二装置执行训练神经网络,相应地,响应于接收到调用指令,第二装置可以执行上述训练神经网络的方法中的任意实施例中的步骤和/或流程。
应理解,本公开实施例中的“第一”、“第二”等术语仅仅是为了区分,而不应理解成对本公开实施例的限定。
还应理解,在本公开中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
可能以许多方式来实现本公开的方法和装置、设备。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置、设备。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (17)
1.一种图像处理方法,其特征在于,包括:
获取待处理图像;
将所述待处理图像输入到目标神经网络进行处理,得到图像处理结果,其中,所述目标神经网络是通过如下方法训练得到的:对第一神经网络进行剪枝处理,得到剪枝网络;基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络;响应于所述第二神经网络达到预设网络条件,将所述第二神经网络确定为目标神经网络;
其中,所述对第一神经网络进行剪枝处理,得到剪枝网络,包括:获取所述第一神经网络中的多个网络通道中每个网络通道对所述第一神经网络的网络损失的偏移量;根据所述第一神经网络的多个网络通道中每个网络通道的偏移量,确定所述每个网络通道的重要性;基于所述第一神经网络中的多个网络通道中每个网络通道的重要性,去除所述第一神经网络的多个网络通道中的至少一个网络通道,其中,每个网络通道的偏移量为网络通道的反向梯度和网络通道的输出的乘积;
所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络,包括:通过所述第一神经网络对第一样本图像进行处理,得到第一特征数据;通过所述剪枝网络对所述第一样本图像进行处理,得到第二特征数据;基于所述第一特征数据和所述第二特征数据,得到所述剪枝网络的网络损失值;根据所述剪枝网络的网络损失值,对所述剪枝网络的参数进行调整处理,得到第二神经网络。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一特征数据和所述第二特征数据,得到所述剪枝网络的网络损失值,包括:
根据所述第二特征数据与所述第一特征数据,得到所述剪枝网络的隐形损失值;
基于所述剪枝网络的隐形损失值和所述剪枝网络的任务损失值,得到所述剪枝网络的网络损失值,其中,所述剪枝网络的任务损失值是根据所述第二特征数据与所述第一样本图像的标注数据得到的。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二特征数据与所述第一特征数据,得到所述剪枝网络的隐形损失值,包括:
对所述第二特征数据进行适配处理,以使得所述第二特征数据适配到所述第一特征数据所属的特征空间;
基于所述适配处理后的第二特征数据与所述第一特征数据之间的距离,得到所述剪枝网络的隐形损失值。
4.根据权利要求3所述的方法,其特征在于,在所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络之前,还包括:
基于所述第一神经网络,对进行所述适配处理的适配层的权重进行调整,得到调整后的适配层;
所述对所述第二特征数据进行适配处理,包括:
通过所述调整后的适配层对所述第二特征数据进行适配处理,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小。
5.根据权利要求3所述的方法,其特征在于,在所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络之前,还包括:
基于所述第一神经网络,对进行所述适配处理的所述剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小;
所述基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络,包括:
基于所述第一神经网络,训练所述调整后的剪枝网络,得到第二神经网络。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述对第一神经网络进行剪枝处理,得到剪枝网络,包括:
基于所述第一神经网络中的多个网络通道中每个网络通道对于所述第一神经网络的输出结果的影响参数,对所述第一神经网络中的多个网络通道进行剪枝处理,得到所述剪枝网络。
7.根据权利要求1至5中任意一项所述的方法,其特征在于,还包括:
响应于所述第二神经网络未达到所述预设网络条件,将所述第二神经网络作为更新后的所述第一神经网络进行剪枝处理。
8.一种图像处理装置,其特征在于,包括:
获取单元,用于获取待处理图像;
处理单元,用于将所述待处理图像输入到目标神经网络进行处理,得到图像处理结果,所述目标神经网络通过训练神经网络的装置训练得到的;
所述训练神经网络的装置包括:剪枝单元,用于对第一神经网络进行剪枝处理,得到剪枝网络;训练单元,用于基于所述第一神经网络,训练所述剪枝网络,得到第二神经网络;输出单元,用于响应于所述第二神经网络达到预设网络条件,将所述第二神经网络确定为目标神经网络;
其中,所述剪枝单元被进一步配置成:获取第一神经网络中的多个网络通道中每个网络通道对第一神经网络的网络损失的偏移量;根据所述第一神经网络的多个网络通道中每个网络通道的偏移量,确定所述每个网络通道的重要性;基于所述第一神经网络中的多个网络通道中每个网络通道的重要性,去除第一神经网络的多个网络通道中的至少一个网络通道,其中,每个网络通道的偏移量为网络通道的反向梯度和网络通道的输出的乘积;
所述训练单元,用于通过所述第一神经网络对第一样本图像进行处理,得到第一特征数据;
通过所述剪枝网络对所述第一样本图像进行处理,得到第二特征数据;
基于所述第一特征数据和所述第二特征数据,得到所述剪枝网络的网络损失值;
根据所述剪枝网络的网络损失值,对所述剪枝网络的参数进行调整处理,得到第二神经网络。
9.根据权利要求8所述的装置,其特征在于,所述训练单元,用于:
根据所述第二特征数据与所述第一特征数据,得到所述剪枝网络的隐形损失值;
基于所述剪枝网络的隐形损失值和所述剪枝网络的任务损失值,得到所述剪枝网络的网络损失值,其中,所述剪枝网络的任务损失值是根据所述第二特征数据与所述第一样本图像的标注数据得到的。
10.根据权利要求9所述的装置,其特征在于,所述训练单元,还用于:
对所述第二特征数据进行适配处理,以使得所述第二特征数据适配到所述第一特征数据所属的特征空间;
基于所述适配处理后的第二特征数据与所述第一特征数据之间的距离,得到所述剪枝网络的隐形损失值。
11.根据权利要求9所述的装置,其特征在于,所述训练神经网络的装置还包括:
调整单元,用于基于所述第一神经网络,对进行所述适配处理的适配层的权重进行调整,得到调整后的适配层;
所述训练单元,用于通过所述调整后的适配层对所述第二特征数据进行适配处理,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小。
12.根据权利要求9所述的装置,其特征在于,所述训练神经网络的装置还包括:
调整单元,用于基于所述第一神经网络,对进行所述适配处理的所述剪枝网络的至少一个网络层的权重进行调整,得到调整后的剪枝网络,以使所述适配处理后的第二特征数据与所述第一特征数据之间的差异最小;
所述训练单元,用于基于所述第一神经网络,训练所述调整后的剪枝网络,得到第二神经网络。
13.根据权利要求8至12中任意一项所述的装置,其特征在于,所述剪枝单元,用于基于所述第一神经网络中的多个网络通道中每个网络通道对于所述第一神经网络的输出结果的影响参数,对所述第一神经网络中的多个网络通道进行剪枝处理,得到所述剪枝网络。
14.根据权利要求8至12中任意一项所述的装置,其特征在于,所述剪枝单元,还用于响应于所述第二神经网络未达到所述预设网络条件,将所述第二神经网络作为更新后的所述第一神经网络进行剪枝处理。
15.一种电子设备,其特征在于,包括权利要求8至13中任意一项所述的装置。
16.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;以及
处理器,用于执行所述可执行指令从而完成权利要求1至7中任意一项所述的方法。
17.一种计算机存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811102988.7A CN110929839B (zh) | 2018-09-20 | 2018-09-20 | 训练神经网络的方法和装置、电子设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811102988.7A CN110929839B (zh) | 2018-09-20 | 2018-09-20 | 训练神经网络的方法和装置、电子设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110929839A CN110929839A (zh) | 2020-03-27 |
CN110929839B true CN110929839B (zh) | 2024-04-16 |
Family
ID=69855545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811102988.7A Active CN110929839B (zh) | 2018-09-20 | 2018-09-20 | 训练神经网络的方法和装置、电子设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110929839B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488986B (zh) * | 2020-04-13 | 2023-06-27 | 商汤集团有限公司 | 一种模型压缩方法、图像处理方法以及装置 |
CN112101515A (zh) * | 2020-07-29 | 2020-12-18 | 北京智行者科技有限公司 | 深度学习模型的加速方法及装置 |
CN111967585B (zh) * | 2020-09-25 | 2022-02-22 | 深圳市商汤科技有限公司 | 网络模型的处理方法及装置、电子设备和存储介质 |
CN112200318B (zh) * | 2020-10-10 | 2021-11-09 | 广州云从人工智能技术有限公司 | 一种目标检测方法、装置、机器可读介质及设备 |
CN112329721B (zh) * | 2020-11-26 | 2023-04-25 | 上海电力大学 | 一种模型轻量化设计的遥感小目标检测方法 |
CN112819157B (zh) * | 2021-01-29 | 2024-04-16 | 商汤集团有限公司 | 神经网络训练的方法及装置、智能行驶控制的方法及装置 |
CN115511071A (zh) * | 2021-06-23 | 2022-12-23 | 北京字跳网络技术有限公司 | 模型训练方法、装置及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355248A (zh) * | 2016-08-26 | 2017-01-25 | 深圳先进技术研究院 | 一种深度卷积神经网络训练方法及装置 |
CN107247989A (zh) * | 2017-06-15 | 2017-10-13 | 北京图森未来科技有限公司 | 一种神经网络训练方法及装置 |
US20180114114A1 (en) * | 2016-10-21 | 2018-04-26 | Nvidia Corporation | Systems and methods for pruning neural networks for resource efficient inference |
CN108229533A (zh) * | 2017-11-22 | 2018-06-29 | 深圳市商汤科技有限公司 | 图像处理方法、模型剪枝方法、装置及设备 |
CN108229591A (zh) * | 2018-03-15 | 2018-06-29 | 北京市商汤科技开发有限公司 | 神经网络自适应训练方法和装置、设备、程序和存储介质 |
CN108334934A (zh) * | 2017-06-07 | 2018-07-27 | 北京深鉴智能科技有限公司 | 基于剪枝和蒸馏的卷积神经网络压缩方法 |
CN108510083A (zh) * | 2018-03-29 | 2018-09-07 | 国信优易数据有限公司 | 一种神经网络模型压缩方法以及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515429B2 (en) * | 2016-07-01 | 2019-12-24 | Digimarc Corporation | Image-based pose determination |
-
2018
- 2018-09-20 CN CN201811102988.7A patent/CN110929839B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355248A (zh) * | 2016-08-26 | 2017-01-25 | 深圳先进技术研究院 | 一种深度卷积神经网络训练方法及装置 |
US20180114114A1 (en) * | 2016-10-21 | 2018-04-26 | Nvidia Corporation | Systems and methods for pruning neural networks for resource efficient inference |
CN108334934A (zh) * | 2017-06-07 | 2018-07-27 | 北京深鉴智能科技有限公司 | 基于剪枝和蒸馏的卷积神经网络压缩方法 |
CN107247989A (zh) * | 2017-06-15 | 2017-10-13 | 北京图森未来科技有限公司 | 一种神经网络训练方法及装置 |
CN108229533A (zh) * | 2017-11-22 | 2018-06-29 | 深圳市商汤科技有限公司 | 图像处理方法、模型剪枝方法、装置及设备 |
CN108229591A (zh) * | 2018-03-15 | 2018-06-29 | 北京市商汤科技开发有限公司 | 神经网络自适应训练方法和装置、设备、程序和存储介质 |
CN108510083A (zh) * | 2018-03-29 | 2018-09-07 | 国信优易数据有限公司 | 一种神经网络模型压缩方法以及装置 |
Non-Patent Citations (2)
Title |
---|
Channel Pruning for Accelerating Very Deep Neural Networks;Yihui He等;arXiv:1707.06168v2 [cs.CV] 21 Aug 2017;全文 * |
Learning Efficient Convolutional Networks through Network Slimming;Zhuang Liu等;ICCV2017;正文1-8 * |
Also Published As
Publication number | Publication date |
---|---|
CN110929839A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110929839B (zh) | 训练神经网络的方法和装置、电子设备和计算机存储介质 | |
US11455782B2 (en) | Target detection method and apparatus, training method, electronic device and medium | |
US20230084869A1 (en) | System for simplified generation of systems for broad area geospatial object detection | |
US9904874B2 (en) | Hardware-efficient deep convolutional neural networks | |
CN108229479B (zh) | 语义分割模型的训练方法和装置、电子设备、存储介质 | |
CN110431560B (zh) | 目标人物的搜索方法和装置、设备和介质 | |
CN108154222B (zh) | 深度神经网络训练方法和***、电子设备 | |
WO2018099473A1 (zh) | 场景分析方法和***、电子设备 | |
CN108921877B (zh) | 一种基于宽度学习的长期目标跟踪方法 | |
US20220172456A1 (en) | Noise Tolerant Ensemble RCNN for Semi-Supervised Object Detection | |
WO2019232772A1 (en) | Systems and methods for content identification | |
CN108229652B (zh) | 神经网络模型迁移方法和***、电子设备、程序和介质 | |
CN113449783A (zh) | 一种对抗样本生成方法、***、计算机设备和存储介质 | |
CN110929836B (zh) | 神经网络训练及图像处理方法和装置、电子设备、介质 | |
CN111104954A (zh) | 一种对象分类的方法与装置 | |
CN112949767A (zh) | 样本图像增量、图像检测模型训练及图像检测方法 | |
CN110659657A (zh) | 训练模型的方法和装置 | |
CN112800919A (zh) | 一种检测目标类型视频方法、装置、设备以及存储介质 | |
CN108229680B (zh) | 神经网络***、遥感图像识别方法、装置、设备及介质 | |
EP4343616A1 (en) | Image classification method, model training method, device, storage medium, and computer program | |
CN113627536A (zh) | 模型训练、视频分类方法,装置,设备以及存储介质 | |
CN113971733A (zh) | 一种基于超图结构的模型训练方法、分类方法及装置 | |
CN115631381A (zh) | 分类模型训练方法、图像分类方法、装置及电子设备 | |
CN114494747A (zh) | 模型的训练方法、图像处理方法、装置、电子设备及介质 | |
US20170364740A1 (en) | Signal processing |
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 |