网络剪枝方法、装置、设备及计算机存储介质与流程

文档序号:33318200发布日期:2023-03-03 17:24阅读:44来源:国知局
网络剪枝方法、装置、设备及计算机存储介质与流程

1.本技术涉及网络剪枝领域,具体涉及一种网络剪枝方法、装置、设备及计算机存储介质。


背景技术:

2.随着计算机技术的不断发展,以及物联网、人工智能发展的大趋势下,物体检测技术作为计算机视觉的一个重要分支,已经广泛地应用到例如人脸识别、视频监控、车辆的辅助驾驶、移动机器人等各个领域中。由于卷积神经网络的运算过程需要消耗大量的计算资源,同时模型存储量较大,对于类似于移动电话、移动机器人这种不方便部署大规模计算服务器的移动端上的部署带来巨大的挑战。
3.对于一个类似于vgg-net、google-net,其可搭建一个通用的网络,而往往在特定场景下网络检测特定物体仅需要进行少分类,例如通用的包裹形状检测网络为了检全,还会包括很多少见的包裹形状,而对于中转场中经过规范打包的包裹不会出现这种形状,因此采用通用的网络对特定场景进行检测时,网络具有很大的信息冗余度,占用的计算资源较大,急需一种能够减少计算资源消耗,又可以准确对物体进行检测的方法。


技术实现要素:

4.本技术提供一种网络剪枝方法、装置、设备及计算机存储介质,旨在解决需要一种能够减少计算资源消耗,又可以准确对物体进行检测的方法的问题。
5.第一方面,本技术提供一种网络剪枝方法,所述方法包括:
6.获取初始网络,并获取包含场景信息的训练图像;
7.通过所述初始网络对所述训练图像进行特征提取处理,得到所述初始网络中目标网络层输出的待筛选特征图;
8.从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图;
9.根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
10.在本技术一种可能的实现方式中,所述根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络,包括:
11.获取所述冗余特征图携带的通道标记;
12.根据所述通道标记,确定所述目标网络层中所述冗余特征图对应的目标卷积核;
13.将所述目标卷积核删除,得到所述场景信息对应的标准网络。
14.在本技术一种可能的实现方式中,所述从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图,包括:
15.选取所述待筛选特征图中的第一目标特征图和第二目标特征图;
16.对所述第一目标特征图和所述第二目标特征图进行融合处理,得到融合特征图;
17.若所述融合特征图为全零特征图,则将所述第一目标特征图和所述第二目标特征
图作为冗余特征图。
18.在本技术一种可能的实现方式中,所述根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络,还包括:
19.根据目标设备的计算资源信息,计算得到所述目标网络层的剪枝最小阈值;
20.根据所述训练图像中像素点的像素值,计算得到所述目标网络层的剪枝最大阈值;
21.根据所述剪枝最小阈值、所述剪枝最大阈值和所述冗余特征图,对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
22.在本技术一种可能的实现方式中,所述根据所述训练图像中像素点的像素值,计算得到所述目标网络层的剪枝最大阈值,包括:
23.对所述训练图像中像素点的像素值进行分类,得到多个像素值类别和所述像素值类别的类别数量;
24.根据所述类别数量和所述目标网络层中卷积核的数量,计算得到所述目标网络层的剪枝最大阈值。
25.在本技术一种可能的实现方式中,所述对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络,包括:
26.获取所述目标网络层输出历史冗余特征图的历史激活次数;
27.若所述历史激活次数大于或等于预设的激活阈值,则对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
28.在本技术一种可能的实现方式中,所述获取包含场景信息的训练图像,包括:
29.获取待识别的初始图像;
30.通过所述初始网络对所述初始图像进行检测;
31.若所述初始图像包含场景信息,并且所述初始图像未包含冗余信息,则对所述初始图像进行数据增强处理,得到多张训练图像。
32.第二方面,本技术提供一种网络剪枝装置,所述网络剪枝装置包括:
33.获取单元,用于获取初始网络,并获取包含场景信息的训练图像;
34.特征提取单元,用于通过所述初始网络对所述训练图像进行特征提取处理,得到所述初始网络中目标网络层输出的待筛选特征图;
35.选取单元,用于从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图;
36.剪枝单元,用于根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
37.在本技术一种可能的实现方式中,所述剪枝单元还用于:
38.获取所述冗余特征图携带的通道标记;
39.根据所述通道标记,确定所述目标网络层中所述冗余特征图对应的目标卷积核;
40.将所述目标卷积核删除,得到所述场景信息对应的标准网络。
41.在本技术一种可能的实现方式中,所述选取单元还用于:
42.选取所述待筛选特征图中的第一目标特征图和第二目标特征图;
43.对所述第一目标特征图和所述第二目标特征图进行融合处理,得到融合特征图;
44.若所述融合特征图为全零特征图,则将所述第一目标特征图和所述第二目标特征
图作为冗余特征图。
45.在本技术一种可能的实现方式中,所述剪枝单元还用于:
46.根据目标设备的计算资源信息,计算得到所述目标网络层的剪枝最小阈值;
47.根据所述训练图像中像素点的像素值,计算得到所述目标网络层的剪枝最大阈值;
48.根据所述剪枝最小阈值、所述剪枝最大阈值和所述冗余特征图,对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
49.在本技术一种可能的实现方式中,所述剪枝单元还用于:
50.对所述训练图像中像素点的像素值进行分类,得到多个像素值类别和所述像素值类别的类别数量;
51.根据所述类别数量和所述目标网络层中卷积核的数量,计算得到所述目标网络层的剪枝最大阈值。
52.在本技术一种可能的实现方式中,所述剪枝单元还用于:
53.获取所述目标网络层输出历史冗余特征图的历史激活次数;
54.若所述历史激活次数大于或等于预设的激活阈值,则对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
55.在本技术一种可能的实现方式中,所述获取单元还用于:
56.获取待识别的初始图像;
57.通过所述初始网络对所述初始图像进行检测;
58.若所述初始图像包含场景信息,并且所述初始图像未包含冗余信息,则对所述初始图像进行数据增强处理,得到多张训练图像。
59.第三方面,本技术还提供一种网络剪枝设备,所述网络剪枝设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行本技术提供的任一种网络剪枝方法中的步骤。
60.第四方面,本技术还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的网络剪枝方法中的步骤。
61.综上所述,本技术包括:获取初始网络,并获取包含场景信息的训练图像;通过所述初始网络对所述训练图像进行特征提取处理,得到所述初始网络中目标网络层输出的待筛选特征图;从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图;根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。由于冗余特征图中缺乏场景信息,因此冗余特征图对应的参数在特征提取过程中未对提取场景信息作出贡献,根据冗余特征图对目标网络层进行剪枝可以有效去除这些参数,保留目标网络层中有贡献的参数,既可以精简初始网络,减少计算资源的消耗,又可以保证标准网络仍然可以在工作过程中获取场景信息。
附图说明
62.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附
图。
63.图1是本技术实施例提供的网络剪枝方法的应用场景示意图;
64.图2是本技术实施例中提供的网络剪枝方法的一种流程示意图;
65.图3是本技术实施例中提供的根据剪枝最小阈值和剪枝最大阈值,得到标准网络的一种流程示意图
66.图4是本技术实施例中提供的根据历史激活次数得到标准网络的一种流程示意图;
67.图5是本技术实施例中提供的获取训练图像的一种流程示意图;
68.图6是本技术实施例中提供的网络剪枝装置的一个实施例结构示意图;
69.图7是本技术实施例中提供的网络剪枝设备的一个实施例结构示意图。
具体实施方式
70.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
71.在本技术实施例的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
72.为了使本领域任何技术人员能够实现和使用本技术,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本技术。在其它实例中,不会对公知的过程进行详细阐述,以避免不必要的细节使本技术实施例的描述变得晦涩。因此,本技术并非旨在限于所示的实施例,而是与符合本技术实施例所公开的原理和特征的最广范围相一致。
73.本技术实施例提供一种网络剪枝方法、装置、设备和计算机存储介质。其中,该网络剪枝装置可以集成在网络剪枝设备中,该网络剪枝设备可以是服务器,也可以是终端等设备。
74.首先,在介绍本技术实施例之前,先介绍下本技术实施例关于应用背景的相关内容。
75.对图像进行目标检测的通用网络可以包括以下层级:
76.特征提取层,可以由去除全连接层的卷积神经网络(convolutional neural networks,cnn)构成,用于提取图像中的特征。网络剪枝设备可以将图像输入特征提取层,经过卷积、池化等操作后,得到图像的特征图。特征提取层中包含用于提取特定特征的参数,每类参数用于提取一种特征,一类参数可以理解为一个卷积核,即每一个卷积核可以用于提取一种特定特征,例如在包裹形状检测网络中,一个卷积核可以用于提取一种包裹;
77.预测层可以由卷积神经网络中的全连接层构成,用于根据特征提取层输出的特征图进行预测,得到输入图像的检测结果。
78.本技术实施例网络剪枝方法的执行主体可以为本技术实施例提供的网络剪枝装
置,或者集成了该网络剪枝装置的服务器设备、物理主机或者用户设备(user equipment,ue)等不同类型的网络剪枝设备,其中,网络剪枝装置可以采用硬件或者软件的方式实现,ue具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(personal digital assistant,pda)等终端设备。
79.该网络剪枝设备可以采用单独运行的工作方式,或者也可以采用设备集群的工作方式。
80.参见图1,图1是本技术实施例所提供的网络剪枝系统的场景示意图。其中,该网络剪枝系统可以包括网络剪枝设备100,网络剪枝设备100中集成有网络剪枝装置。
81.另外,如图1所示,该网络剪枝系统还可以包括存储器200,用于存储数据,如存储文本数据。
82.需要说明的是,图1所示的网络剪枝系统的场景示意图仅仅是一个示例,本技术实施例描述的网络剪枝系统以及场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络剪枝系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
83.下面,开始介绍本技术实施例提供的网络剪枝方法,本技术实施例中以网络剪枝设备作为执行主体,为了简化与便于描述,后续方法实施例中将省略该执行主体。
84.参照图2,图2是本技术实施例提供的网络剪枝方法的一种流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该网络剪枝方法具体可以包括以下步骤201~步骤204,其中:
85.201、获取初始网络,并获取包含场景信息的训练图像。
86.初始网络是指待剪枝的神经网络,具体可以是卷积神经网络(convolutional neural networks,cnn)或全卷积网络(fully convolutional network,fcn)等神经网络中的一种。初始网络用于根据输入的图像进行目标检测(object detection)。例如初始网络可以用于根据输入的图像进行分类(classification)或图像分割(image segmentation)等任务。初始网络的构成可以参考上文中通用网络的构成,既可以仅包含一个特征提取层,也可以包含多个特征提取层,每个特征提取层中既可以包含一个卷积核,又可以包含多个卷积核,以提取多种特征。
87.具体地,初始网络可以是上文中说明的通用网络。例如初始网络可以是在中转场中用于检测包裹和分拣人员的通用网络。该通用网络可以由工作人员直接获取因特网或者其他的系统中用于检测包裹和分拣人员的网络得到,能够根据输入的图像检测图像中的包裹、分拣人员。
88.需要对初始网络进行处理的原因是初始网络中存在大量的冗余参数。以在中转场中检测包裹和分拣人员为例,所需的检测结果只有“存在包裹”和“不存在包裹”两种,或者是“存在包裹”“存在分拣人员”和“不存在包裹和分拣人员”三种,但是如果将通用网络作为初始网络检测包裹和分拣人员,初始网络中会存在用于提取包裹和分拣人员以外信息的冗余参数。例如初始网络除了可以检测包裹和分拣人员之外,还可以用于检测中转场中的小型铲车,而当前的中转场中不需要对小型铲车进行检测,则初始网络中用于检测小型铲车的冗余参数在整个检测过程中都没有对检测任务作出贡献,只会增加初始网络的运算时
间,属于冗余参数。因此可以通过本技术实施例中提供的网络剪枝方法对初始网络中的这些未作出贡献的参数进行剪枝,以精简初始参数,提高计算的速度,并可以避免这些参数提取到错误的特征以影响检测的结果。
89.需要说明的是,初始网络至少需要能够检测出对于剪枝后的初始网络需要检测的物体。例如剪枝后的初始网络用于检测中转场中的包裹和分拣人员,则初始网络至少需要能够检测出包裹和分拣人员,否则即使对初始网络进行剪枝,提高了网络的计算速度和检测的精确度,在剪枝后的初始网络无法实现检测任务时,剪枝也将没有意义。
90.场景信息是指剪枝后的初始网络的检测目标信息,场景信息可以根据剪枝后的初始网络的具体应用场景确定。继续以应用场景是中转场为例进行说明,假设剪枝后的初始网络用于检测中转场中的包裹和分拣人员,则场景信息是指包裹的信息和分拣人员的信息。又例如剪枝后的初始网络用于检测道路上的汽车和行人,则场景信息是指汽车的信息和行人的信息。
91.训练图像是指对初始网络进行剪枝时采用的样本图像。本技术实施例对获取训练图像的方法不进行限制,网络剪枝设备可以事先拍摄足够多的包含场景信息的图像作为训练图像,例如网络剪枝设备可以通过设置在中转场中的图像获取装置对中转场进行拍照,以得到训练图像。或者,网络剪枝设备可以采用因特网上现有训练图像集中的图像作为训练图像,例如,网络剪枝设备可以采用imagenet中包含场景信息的图像作为训练图像。
92.需要说明的是,训练图像中除了场景信息之外,最好不再包括其他的冗余信息,以避免剪枝过程中将部分冗余参数误认为有效参数。例如场景信息是包裹的信息和分拣人员的信息时,训练图像中最好只包含这两种信息,原因是如果训练图像中还包含了其他如小型铲车的信息时,剪枝过程中可能将用于提取小型铲车信息的冗余参数误认为有效参数,在这种情况下,网络剪枝设备可以通过调整图像获取装置的拍摄角度等方式,得到仅包含包裹和分拣人员的图像,以得到训练图像。
93.通过将包含场景信息的训练图像作为剪枝时输入的样本图像,可以有效识别初始网络中的冗余参数和有效参数。
94.202、通过所述初始网络对所述训练图像进行特征提取处理,得到所述初始网络中目标网络层输出的待筛选特征图。
95.在一些实施例中,目标网络层可以是指训练图像传播完成后,初始网络中用于提取图像特征的任意网络层级。
96.在另一些实施例中,目标网络层还可以是指训练图像在前向传播过程中,当前提取图像特征的网络层级,如果初始网络和通用网络的构成一致,由特征提取层和预测层构成,则目标网络层是指特征提取层中的一层。例如初始网络包含第一特征提取层和第二特征提取层时,如果训练图像前向传播至第一特征提取层时,目标网络层是指第一特征提取层,如果训练图像经过第一特征提取层后,前向传播至第二特征提取层,则目标网络层是指第二特征提取层。下文中为了方便理解,将以目标网络层是训练图像在前向传播过程中,当前提取图像特征的网络层级进行解释说明。
97.待筛选特征图是指目标网络层中的卷积核对训练图像进行卷积计算后得到的特征图。示例性地,待筛选特征图可以是经过卷积计算和激活函数计算后得到的特征图,激活函数可以采用relu(rectified linear unit)等常用的激活函数。每个卷积核对应一个待
筛选特征图,因此如果目标网络层中包含数个卷积核,则目标网络层输出的待筛选特征图数量与卷积核的数量一致。
98.203、从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图。
99.冗余特征图是指不包含场景信息的特征图,如果初始网络的结构与通用网络一致,由特征提取层和预测层构成,则冗余特征图是指输入预测层后无法检测出检测目标的特征图。示例性地,冗余特征图可以是待筛选特征图中特征值均为零的特征图。由于待筛选特征图通过特征值的分布表征训练图像中的场景信息,因此如果特征值均为零,则说明该待筛选特征图中未包含任何信息,因此该待筛选特征图对应的卷积核未提取到训练图像中的场景信息,对应的卷积核属于冗余参数。例如如果采用步骤202中用于检测包裹形状的初始网络对包裹进行形状检测,而训练图像中的包裹仅包含立方体和圆柱体两种形状,则用于识别椎体的卷积核输出的待筛选特征图中,特征值均为0,该卷积核输出的待筛选特征图即为冗余特征图,该卷积核属于冗余参数。
100.将特征值均为零的特征图作为冗余特征图的方法相比根据初始网络中权重绝对值大小或者batch normalization层的数据分布的方法,由于考虑了训练图像在实际前向传播时的情况,因此定位的冗余参数更加准确。
101.在一些实施例中,可以将待筛选特征图两两进行融合,提高冗余特征图的选取精确度。此时所述从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图,包括:
102.(1)选取所述待筛选特征图中的第一目标特征图和第二目标特征图。
103.第一目标特征图和第二目标特征图是待筛选特征图中任意两张不相同的特征图。例如目标网络层中包含5个卷积核时,第一目标特征图和第二特征图可以5个卷积核中任意两个卷积核输出的待筛选特征图。
104.(2)对所述第一目标特征图和所述第二目标特征图进行融合处理,得到融合特征图。
105.网络剪枝设备可以对第一目标特征图和第二目标特征图进行融合处理,以得到包含了多种特征信息的融合特征图。例如对于包含5个卷积核的网络层,假设其中2个卷积核分别用于获取待筛选图像中包裹的形状信息和颜色信息,则融合特征图中同时包含了包裹的形状信息和颜色信息。对第一目标特征图和第二目标特征图进行融合处理的目的是为了在判定冗余特征图时,考虑特征之间的关系。例如训练图像中同时包含汽车和汽车司机时,由于汽车司机在训练图像中占的区域小,提取汽车司机的特征时产生的第一目标特征图可能会被误判为冗余特征图,因此初始网络误判场景信息中不包含汽车司机的信息,在后续的剪枝过程中会去除用于提取汽车司机特征的参数。如果对提取汽车的特征时产生的第二目标特征图与第一目标特征图进行融合处理,则生成的融合特征图中不仅包含了汽车司机的信息,还包含了汽车与汽车司机之间关系的信息,因此误判的几率大大降低。
106.(3)若所述融合特征图为全零特征图,则将所述第一目标特征图和所述第二目标特征图作为冗余特征图。
107.全零特征图是指特征值均为零的融合特征图。
108.本技术实施例中的方法对第一目标特征图和第二特征图进行了融合处理,因此高维的融合特征图相比低维的待筛选特征图包含的信息更加丰富,在训练图像中场景信息较为模糊时,也可以保证在后续剪枝过程中能够准确地对目标网络层进行剪枝。
109.需要说明的是,如果待筛选特征图中未包含冗余特征图,则网络剪枝设备将会对初始网络中除目标网络层之外的其他网络层执行步骤202以及步骤202之后的步骤。
110.204、根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
111.标准网络是指对目标网络层进行剪枝后得到的网络。经过剪枝后,初始网络中对提取场景信息没有作出贡献的参数被去除,得到的标准网络中仅包含了用于提取场景信息的参数,达到精简网络的目的。对于不同的场景信息,剪枝操作去除的参数不同,因此得到的标准网络之间也有所差异。例如初始网络是通用的目标检测网络时,根据中转场中需要检测的目标,可以对目标网络层进行剪枝以得到不同的标准网络。如果初始网络可以检测包裹、分拣人员和小型铲车,而中转场中不会出现小型铲车,则得到的标准网络仅需要检测包裹和分拣人员即可。或者,初始网络是通用的用于检测包裹形状的网络时,根据中转场包裹的打包标准,可以对目标网络层进行剪枝以得到不同的标准网络。如果中转场中包裹仅被打包成立方体,则得到的标准网络仅会识别打包成立方体的包裹。如果中转场中包裹仅被打包成立方体或圆柱体,则得到的标准网络仅需要检测打包成立方体或打包成圆柱体的包裹即可。
112.对目标网络层剪枝可以是指对冗余特征图对应的卷积核进行剪枝,也可以指对整个目标网络层进行剪枝。
113.在一些实施例中,网络剪枝设备可以对每一张全零特征图对应的卷积核进行剪枝。例如目标网络层中包含3个分别用于提取立方体特征,圆柱体特征和椎体特征的卷积核时,如果用于提取椎体特征的卷积核输出了全零特征图,则将该卷积核相关的参数删除,以完成对目标网络层的剪枝。具体地,所述根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络,包括:
114.(一)获取所述冗余特征图携带的通道标记。
115.(二)根据所述通道标记,确定所述目标网络层中所述冗余特征图对应的目标卷积核。
116.通道标记是指冗余特征图的索引(index)。通过通道标记,网络剪枝设备可以确定目标网络层中输出冗余特征图的卷积核。例如,网络剪枝设备可以遍历每个卷积核的相关参数,得到相关参数中该卷积核的索引,然后网络剪枝设备将冗余特征图的索引与相关参数中的索引匹配,得到冗余特征图对应的卷积核。
117.目标卷积核是指通道标记对应的卷积核,目标卷积核的参数是对提取场景信息没有作出贡献的参数。
118.(三)将所述目标卷积核删除,得到所述场景信息对应的标准网络。
119.将目标卷积核删除是指将目标卷积核的相关参数从目标网络层中删除。
120.将目标卷积核删除后,后续输入目标网络层的图像将不会再与该目标卷积核对应的卷积核进行卷积等计算,因此剪枝后的标准网络在对少分类场景下的图像进行检测时,既减少了无效计算,又保证了进行特征提取时不会遗漏场景信息,相比初始网络的效率更高。
121.在一些实施例中,网络剪枝设备可以根据冗余特征图的数量与待筛选特征图的数量,对整个目标网络层进行剪枝。例如,网络剪枝设备可以判断冗余特征图的数量与待筛选
特征图的数量之间的比值是否大于或等于预设的比值阈值,如果该比值大于或等于预设的比值阈值,则说明目标网络层对检测任务的贡献很小,并且待筛选特征图中非全零特征图对应的卷积核可能是因为参数设置不适宜,输出的待筛选特征图中特征值才不是零,因此网络剪枝设备可以将目标网络层相关的参数删除,以完成对目标网络层的剪枝。
122.需要说明的是,在对整个目标网络层进行剪枝时,需要设置恰当的比值阈值,避免将有效参数删除。
123.标准网络是指对目标网络层剪枝完成后得到的网络。得到标准网络后,网络剪枝设备还需要将目标网络层下一层的下一网络层进行处理。例如,网络剪枝设备可以将下一网络层中冗余特征图的索引所对应的卷积核进行剪枝。然后网络剪枝设备控制训练图像继续向下一网络层前向传播,并且对下一网络层执行步骤201-步骤204,以对下一网络层进行剪枝,直至所有的网络层都剪枝完成。
124.进一步地,在得到标准网络后,还可以将标准网络作为预训练模型进行微调(fine-tune),以提高标准网络的性能,具体的微调过程可以参考通用的微调方法,在此不进行赘述。
125.综上所述,本技术实施例包括:获取初始网络,并获取包含场景信息的训练图像;通过所述初始网络对所述训练图像进行特征提取处理,得到所述初始网络中目标网络层输出的待筛选特征图;从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图;根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。由于冗余特征图中缺乏场景信息,因此冗余特征图对应的参数在特征提取过程中未对提取场景信息作出贡献,根据冗余特征图对目标网络层进行剪枝可以有效去除这些参数,保留目标网络层中有贡献的参数,既可以精简初始网络,减少计算资源的消耗,又可以保证标准网络仍然可以在工作过程中获取场景信息。
126.在一些实施例中,还可以为剪枝设定剪枝阈值,以限制去除参数的最大比例。参考图3,此时,所述根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络,还包括:
127.301、根据目标设备的计算资源信息,计算得到所述目标网络层的剪枝最小阈值。
128.目标设备是指运行标准网络的设备。本技术对目标设备的种类不进行限制。目标设备可以是手机等移动设备,也可以是计算机等终端。例如,目标设备可以是中转场中的中央计算机,该中央计算机用于通过标准网络对传输的包裹进行检测。
129.计算资源信息是指目标设备的计算能力,直观地来说可以是目标设备中处理器每秒能够执行的指令数量。例如,处理器的mops(million operation per second,每秒百万条指令)是1时,可以将计算资源信息设定为1。如果中转场中的中央计算机的mops是2,则计算资源信息为1。目标设备的计算能力越强,则目标设备运行不卡顿的情况下,标准网络中可以保留的参数越多,因此目标网络层中需要去除的参数越少。目标设备的计算能力越弱,则目标设备运行不卡顿的情况下,标准网络中可以保留的参数越少,因此目标网络层中需要去除的参数越多。
130.剪枝最小阈值用于指示去除参数的最小比例,具体地,是指对目标网络层进行剪枝时需要去除目标网络层中参数的最小比例。例如,根据目标设备的需求,需要去除目标网络层中至少30%的参数,则剪枝最小阈值为30%。此外,还可以通过其它参数表示剪枝最小
阈值。示例性地,剪枝最小阈值还可以是目标网络层中去除卷积核的个数。例如,根据目标设备的需求,需要去除目标网络层中的至少2个卷积核,则剪枝最小阈值为2。
131.具体地,剪枝最小阈值可以通过目标设备的计算资源信息和标准网络需要的计算能力计算得到。假设以手机为例的目标设备的计算资源信息是b,标准网络需要的计算能力是a,b小于a,则可以将b/a作为剪枝最小阈值,或者将b/a更大的值作为剪枝最小阈值,从而可以保证标准网络能够在目标设备上正常运行。或者,假设以手机为例的目标设备的计算资源信息是b,标准网络中每个卷积核需要的计算能力是c,目标网络层中包含d个卷积核,则剪枝最小阈值可以是即对向上取整。
132.302、根据所述训练图像中像素点的像素值,计算得到所述目标网络层的剪枝最大阈值。
133.剪枝最大阈值用于指示去除参数的最大比例,具体地,是指对目标网络层进行剪枝时需要去除目标网络层中参数的最大比例。例如,根据训练图像中像素点的像素值,需要去除目标网络层中最多30%的参数,则剪枝最大阈值为30%。此外,还可以通过其它参数表示剪枝最大阈值。示例性地,剪枝最大阈值还可以是目标网络层中去除卷积核的个数。例如,根据训练图像中像素点的像素值,需要去除目标网络层中的最多2个卷积核,则剪枝最大阈值为2。
134.计算剪枝最大阈值的原因是为了避免去除过多的参数而影响标准网络的性能。
135.在一些实施例中,可以通过将像素值分类的方法,得到多个像素值类别,然后根据像素值类别的数量计算得到剪枝最大阈值。示例性地,所述根据所述训练图像中像素点的像素值,计算得到所述目标网络层的剪枝最大阈值,包括:
136.(a)对所述训练图像中像素点的像素值进行分类,得到多个像素值类别和所述像素值类别的类别数量。
137.对像素值进行分类是指根据像素值的大小,将其分入不同的像素值范围内。例如,可以预先设定多个像素值范围,如[0,100),[100,200)和[200,255]。然后网络剪枝设备根据各像素值的大小将其分入3个像素值范围内。像素值类别可以是指像素值落入的像素值范围。例如预先设定的像素值范围[0,100),[100,200)和[200,255]中,[100,200)和[200,255]均有像素值落入,而[0,100)没有像素值落入,即训练图像中没有像素点的像素值属于[0,100)的像素值范围,则像素值类别是指[100,200)和[200,255]。此时类别数量即为2。
[0138]
由于在训练图像中,不同种类的对象之间像素值差异较大,因此像素值类别可以表征训练图像中对象种类,而类别数量可以表征对象种类的数量。例如在中转场中,包裹、传送带和分拣人员的工作服三者之间像素值差异较大,包裹通常为棕黄色,传送带为黑色,而分拣人员的工作服通常为亮色,因此可以通过训练图像中像素值类别的类别数量推断训练图像中对象种类的数量。例如像素值类别的类别数量是2时,可以推断训练图像中对象种类是2。
[0139]
(b)根据所述类别数量和所述目标网络层中卷积核的数量,计算得到所述目标网络层的剪枝最大阈值。
[0140]
网络剪枝设备可以根据类别数量和目标网络层中卷积核的数量计算得到剪枝最大阈值。示例性地,网络剪枝设备可以将目标网络层中卷积核的数量与类别数量作差,将差
作为剪枝最大阈值。例如目标网络层中卷积核的数量为5,而类别数量为2时,网络剪枝设备可以将3作为剪枝最大阈值,即最多减去目标网络层中的3个卷积核。又或者,网络剪枝设备可以将目标网络层中卷积核的数量与类别数量的差与目标网络层中卷积核的数量作比值,将得到的比值作为剪枝最大阈值。例如目标网络层中卷积核的数量为5,而类别数量为2时,计算得到的比值为60%,则网络剪枝设备可以将60%作为剪枝最大阈值。
[0141]
303、根据所述剪枝最小阈值、所述剪枝最大阈值和所述冗余特征图,对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
[0142]
在对目标网络层进行剪枝时,网络剪枝设备可以首先确定冗余特征图的数量,然后判断数量与剪枝最小阈值之间关系,以及数量与剪枝最大阈值之间的关系。如果数量大于或等于剪枝最小阈值,并且数量小于或等于剪枝最大阈值,则可以将冗余特征图对应的卷积核进行剪枝。如果数量小于剪枝最小阈值,则说明对冗余特征图对应的卷积核进行剪枝后在目标设备上受限于计算能力,无法正常运行。此时对于目标网络层的每个卷积核,可以计算该卷积核中卷积参数绝对值的和,如式(1):
[0143][0144]
其中,sj为第j个卷积核中卷积参数绝对值的和,n为卷积核中卷积参数的个数。
[0145]
然后,网络剪枝设备对sj从小到大进行排序,就可以得到卷积核重要性的排序。根据数量与剪枝最小阈值之间的差值,对不重要的卷积进行剪枝,以减小标准网络需要的计算能力。例如数量是2,而剪枝最小阈值是3时,可以将sj最小的卷积核同样进行剪枝。相反地,如果数量大于剪枝最大阈值,则说明如果将冗余特征图对应的卷积核进行剪枝,可能会对标准网络的性能造成影响。此时网络剪枝设备可以保留部分冗余特征图对应的卷积核。
[0146]
由于只通过一张训练图像对目标网络层进行剪枝存在一定的偶然性,如果训练图像中包含的场景信息较为模糊,或者包含的场景信息不全面,例如场景信息是“行人”的相关信息和“汽车”的相关信息,而训练图像中仅包含“行人”的相关信息时,网络剪枝设备会将用于提取“汽车”的相关信息的参数去除,因此得到的标准网络性能会受到影响。
[0147]
在一些实施例中,可以根据目标网络层的历史激活次数对目标网络层进行剪枝,排除上述情况造成的影响。参考图4,此时所述对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络,包括:
[0148]
401、获取所述目标网络层输出历史冗余特征图的历史激活次数。
[0149]
历史冗余特征图是目标网络层对历史训练图像进行特征提取处理得到的特征图,历史训练图像可以理解为将多张图像依次输入目标网络层,以输出各图像的特征图的过程中,在训练图像之前输入的图像。
[0150]
历史激活次数是指目标网络层中卷积核输出历史冗余特征图的次数。示例性地,历史激活次数可以是目标网络层中每一个卷积核输出历史冗余特征图的次数。
[0151]
在一些实施例中,历史激活次数是目标网络层中每一个卷积核输出历史冗余特征图的次数。例如目标网络层中包含3个卷积核时,历史激活次数是这3个卷积核各自生成冗余特征图的次数,因此历史激活次数包含3个值。
[0152]
获取历史激活次数的原因是为了更精确地评估目标网络层中的特定卷积核是否属于冗余参数。如果历史激活次数的数量大,则说明对于每一张输入的图像,该特定卷积核
提取到的特征图缺乏场景信息,因此输出冗余特征图并非是因为训练图像中包含的场景信息较为模糊,或者包含的场景信息不全面,该特定卷积核属于冗余参数。如果历史激活次数的数量小,则说明输出冗余特征图的概率小,可能是因为训练图像中包含的场景信息较为模糊,或者包含的场景信息不全面,不能将该特定卷积核判定为冗余参数。
[0153]
402、若所述历史激活次数大于或等于预设的激活阈值,则对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
[0154]
激活阈值用于评估历史激活次数的大小,具体的数值可以根据实际应用场景确定。例如在目标设备的计算能力较高时,可以尽量减少去除的参数,因此可以设定较高的激活阈值,如将10000张图像输入初始网络以进行剪枝的情况下,激活阈值可以设定为9000。在目标设备的计算能力较低时,可以设定较低的激活阈值,如将10000张图像输入初始网络以进行剪枝的情况下,激活阈值可以设定为5000。通过灵活地设定激活阈值,网络剪枝设备可以调整去除参数的数量或比例。
[0155]
在一些实施例中,网络剪枝设备可以对获得的图像进行预识别,以判断图像中是否存在场景信息。通过预识别,网络剪枝设备可以排除不包含场景信息的图像,避免采用这些图像进行剪枝时反而去除了初始网络中的有效参数。参考图5,此时所述获取包含场景信息的训练图像,包括:
[0156]
501、获取待识别的初始图像。
[0157]
初始图像是指剪枝的候选图像。初始图像中可能包含场景信息,也可能不包含场景信息。例如初始网络是用于检测包裹形状的通用检测网络,而中转场中包裹被打包成立方体时,初始图像可以是包含了立方体包裹的图像,也可以是包含了圆柱体包裹的图像,还可以是不包含包裹的图像。
[0158]
本技术实施例对初始图像的获取方式同样不进行限制,具体可以参考步骤201中获取训练图像的步骤,不再进行赘述。
[0159]
502、通过所述初始网络对所述初始图像进行检测。
[0160]
503、若所述初始图像包含场景信息,并且所述初始图像未包含冗余信息,则对所述初始图像进行数据增强处理,得到多张训练图像。
[0161]
冗余信息是指场景信息之外的信息。示例性地,冗余信息可以是初始网络为识别网络时,与场景信息无关的识别结果。例如初始网络是用于检测包裹形状的通用检测网络,而中转场中包裹被打包成立方体时,冗余信息可以是识别后得到的初始图像中的圆柱体包裹,或者是识别后得到的初始图像中的皮带机等。直观地来说,网络剪枝设备可以将初始图像输入初始网络中,然后根据初始图像的检测结果判断是否包含场景信息和冗余信息,如果检测结果中仅出现了与场景信息对应的检测结果,则说明初始图像包含场景信息,未包含冗余信息。如果检测结果中同时出现了场景信息对应的检测结果,以及冗余信息对应的检测结果,则说明初始图像同时包含了场景信息和冗余信息。
[0162]
判断初始图像是否包含冗余信息的原因是为了得到仅包含场景信息的训练图像,以尽量去除目标网络层中的冗余参数。
[0163]
如果初始图像包含场景信息,并且未包含冗余信息,则说明如果以初始图像作为训练图像对目标网络层进行剪枝,则可以去除目标网络层中的冗余参数而不会去除用于提取场景信息的有效参数。为了保证图像数量足够,可以对初始图像进行如移位、旋转和颜色
变换等多种数据增强处理,以得到多张训练图像。通过本技术实施例得到的训练图像不仅可以保证有足够多的数量,以提高剪枝的精确性,还可以保证训练图像中均包含场景信息,不包含冗余信息,在剪枝时不会去除用于提取场景信息的有效参数。
[0164]
此外,步骤501-步骤503中提供的方法不需要额外的设备,仅需要通过初始网络即可实现,并且在对初始网络进行多轮剪枝时,前一轮的剪枝操作会进一步提高后一轮筛选训练图像的精确性,因此本技术实施例中提供的得到训练图像的方法既保证了低成本,又保证了精确性。
[0165]
为了更好实施本技术实施例中网络剪枝方法,在网络剪枝方法基础之上,本技术实施例中还提供一种网络剪枝装置,如图6所示,为本技术实施例中网络剪枝装置的一个实施例结构示意图,该网络剪枝装置600包括:
[0166]
获取单元601,用于获取初始网络,并获取包含场景信息的训练图像;
[0167]
特征提取单元602,用于通过所述初始网络对所述训练图像进行特征提取处理,得到所述初始网络中目标网络层输出的待筛选特征图;
[0168]
选取单元603,用于从所述待筛选特征图中选取缺乏所述场景信息的冗余特征图;
[0169]
剪枝单元604,用于根据所述冗余特征图对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
[0170]
在本技术一种可能的实现方式中,所述剪枝单元604还用于:
[0171]
获取所述冗余特征图携带的通道标记;
[0172]
根据所述通道标记,确定所述目标网络层中所述冗余特征图对应的目标卷积核;
[0173]
将所述目标卷积核删除,得到所述场景信息对应的标准网络。
[0174]
在本技术一种可能的实现方式中,所述选取单元603还用于:
[0175]
选取所述待筛选特征图中的第一目标特征图和第二目标特征图;
[0176]
对所述第一目标特征图和所述第二目标特征图进行融合处理,得到融合特征图;
[0177]
若所述融合特征图为全零特征图,则将所述第一目标特征图和所述第二目标特征图作为冗余特征图。
[0178]
在本技术一种可能的实现方式中,所述剪枝单元604还用于:
[0179]
根据目标设备的计算资源信息,计算得到所述目标网络层的剪枝最小阈值;
[0180]
根据所述训练图像中像素点的像素值,计算得到所述目标网络层的剪枝最大阈值;
[0181]
根据所述剪枝最小阈值、所述剪枝最大阈值和所述冗余特征图,对所述目标网络层进行剪枝,得到所述场景信息对应的标准网络。
[0182]
在本技术一种可能的实现方式中,所述剪枝单元604还用于:
[0183]
对所述训练图像中像素点的像素值进行分类,得到多个像素值类别和所述像素值类别的类别数量;
[0184]
根据所述类别数量和所述目标网络层中卷积核的数量,计算得到所述目标网络层的剪枝最大阈值。
[0185]
在本技术一种可能的实现方式中,所述剪枝单元604还用于:
[0186]
获取所述目标网络层输出历史冗余特征图的历史激活次数;
[0187]
若所述历史激活次数大于或等于预设的激活阈值,则对所述目标网络层进行剪
枝,得到所述场景信息对应的标准网络。
[0188]
在本技术一种可能的实现方式中,所述获取单元601还用于:
[0189]
获取待识别的初始图像;
[0190]
通过所述初始网络对所述初始图像进行检测;
[0191]
若所述初始图像包含场景信息,并且所述初始图像未包含冗余信息,则对所述初始图像进行数据增强处理,得到多张训练图像。
[0192]
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0193]
由于该网络剪枝装置可以执行本技术如图1至图5对应任意实施例中网络剪枝方法中的步骤,因此,可以实现本技术如图1至图5对应任意实施例中网络剪枝方法所能实现的有益效果,详见前面的说明,在此不再赘述。
[0194]
此外,为了更好实施本技术实施例中网络剪枝方法,在网络剪枝方法基础之上,本技术实施例还提供一种网络剪枝设备,参阅图7,图7示出了本技术实施例网络剪枝设备的一种结构示意图,具体的,本技术实施例提供的网络剪枝设备包括处理器701,处理器701用于执行存储器702中存储的计算机程序时实现如图1至图5对应任意实施例中网络剪枝方法的各步骤;或者,处理器701用于执行存储器702中存储的计算机程序时实现如图6对应实施例中各单元的功能。
[0195]
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器702中,并由处理器701执行,以完成本技术实施例。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
[0196]
网络剪枝设备可包括,但不仅限于处理器701、存储器702。本领域技术人员可以理解,示意仅仅是网络剪枝设备的示例,并不构成对网络剪枝设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如网络剪枝设备还可以包括输入输出设备、网络接入设备、总线等,处理器701、存储器702、输入输出设备以及网络接入设备等通过总线相连。
[0197]
处理器701可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是网络剪枝设备的控制中心,利用各种接口和路线连接整个网络剪枝设备的各个部分。
[0198]
存储器702可用于存储计算机程序和/或模块,处理器701通过运行或执行存储在存储器702内的计算机程序和/或模块,以及调用存储在存储器702内的数据,实现计算机装置的各种功能。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络剪枝设备的使用所创建的数据(比如音频数据、视频数据等)等。此外,
存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0199]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网络剪枝装置、网络剪枝设备及其相应单元的具体工作过程,可以参考如图1至图5对应任意实施例中网络剪枝方法的说明,具体在此不再赘述。
[0200]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机存储介质中,并由处理器进行加载和执行。
[0201]
为此,本技术实施例提供一种计算机存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术如图1至图5对应任意实施例中网络剪枝方法中的步骤,具体操作可参考如图1至图5对应任意实施例中网络剪枝方法的说明,在此不再赘述。
[0202]
其中,该计算机存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
[0203]
由于该计算机存储介质中所存储的指令,可以执行本技术如图1至图5对应任意实施例中网络剪枝方法中的步骤,因此,可以实现本技术如图1至图5对应任意实施例中网络剪枝方法所能实现的有益效果,详见前面的说明,在此不再赘述。
[0204]
以上对本技术实施例所提供的一种网络剪枝方法、装置、设备及计算机存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1