神经网络训练的方法及装置、智能行驶控制的方法及装置与流程

文档序号:25098583发布日期:2021-05-18 22:28阅读:43来源:国知局
神经网络训练的方法及装置、智能行驶控制的方法及装置与流程

1.本公开涉及计算机技术领域,具体而言,涉及一种神经网络训练的方法及装置、智能行驶控制的方法及装置。


背景技术:

2.目前,神经网络被广泛应用在计算机视觉领域,例如,图片分类、语义分割、物体检测等领域。然而,这些性能卓越的神经网络往往拥有上千万的参数,庞大的参数量、极其缓慢的迭代速度使得这些大型神经网络很难在资源有限的终端设备进行部署。
3.为了实现这一目的,相关技术提供了一种神经网络剪枝的方法,该方法作为一种深度神经网络的压缩手段,通过对神经网络的参数统计,剪去不重要的通道,可以有效减少神经网络参数量以及浮点运算量(floating

point operations per second,flops),被广泛使用。
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.图1示出了本公开实施例所提供的一种神经网络训练的方法的流程图;
59.图2示出了本公开实施例所提供的一种神经网络训练的方法的应用示意图;
60.图3示出了本公开实施例所提供的一种智能行驶控制的方法的流程图;
61.图4示出了本公开实施例所提供的一种神经网络训练的装置的示意图;
62.图5示出了本公开实施例所提供的一种智能行驶控制的装置的示意图;
63.图6示出了本公开实施例所提供的一种电子设备的示意图;
64.图7示出了本公开实施例所提供的另一种电子设备的示意图。
具体实施方式
65.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅
是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
66.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
67.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
68.经研究发现,目前,可以通过学习额外的剪枝参数来实现神经网络剪枝,例如,可以针对每个通道学习一个剪枝概率(概率越大,说明需要剪去的可能性越大),由于需要兼顾的通道数量过多,使得剪枝参数本身的学习周期比较长,导致效率较低,从而不能很好的适应后续的神经网络训练等过程。
69.基于上述研究,本公开提供了一种神经网络训练的方法及装置、智能行驶控制的方法及装置,从一个构建的待训练神经网络出发,根据网络层组进行资源再分配,最终得到符合运算需求的训练后的神经网络,性能更佳。
70.为便于对本实施例进行理解,首先对本公开实施例所公开的一种神经网络训练的方法进行详细介绍,本公开实施例所提供的神经网络训练的方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该神经网络训练的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
71.参见图1所示,为本公开实施例提供的神经网络训练的方法的流程图,方法包括步骤s101~s103,其中:
72.s101:构建与原始神经网络对应的待训练神经网络;待训练神经网络与原始神经网络之间的网络结构相似度大于预设相似度,且待训练神经网络的通道数量小于原始神经网络的通道数量;
73.s102:将构建的待训练神经网络包括的多个网络层划分为多个网络层组,并基于当前资源池中的可分配运算资源对划分的每个网络层组进行资源分配;
74.s103:基于为每个网络层组分配的运算资源以及预先采集的图像样本,控制待训练神经网络包括的每个网络层进行训练,得到训练后的神经网络。
75.这里,为了便于理解本公开实施例提供的神经网络训练的方法,接下来可以对该方法的应用场景进行详细的说明。考虑到性能卓越的神经网络往往拥有上千万的参数,庞大的参数量和及其缓慢的推理速度使得这些大型神经网络很难在资源有限的终端设备进行部署,为了更好的应用在终端设备,往往需要对原始神经网络进行剪枝。
76.相关技术中的神经网络剪枝是在原始神经网络的基础上针对神经网络通道额外
学习一些剪枝参数,这些剪枝参数可以帮助从原始神经网络中选取出哪些通道是可以被剪掉的,然而,对于具有超级多通道的大型神经网络而言,上述剪枝操作的复杂度较高,可操作性较差,较为耗时。
77.正是为了解决上述问题,本公开实施例才提供了一种神经网络训练的方法,该方法在原始神经网络之外构建了一个与该神经网络的网络结构相似、但通道规模更小的待训练神经网络,并基于网络层组的划分来进行资源的合理分配,这样所训练得到的神经网络的性能更佳。
78.其中,这里的待训练神经网络可以是对原始神经网络剪枝后的神经网络,该神经网络与原始神经网络之间的网络结构相似度大于预设相似度(例如0.8),且待训练神经网络的通道数量小于原始神经网络的通道数量。
79.在具体应用中,可以采用均匀剪枝的方式执行上述剪枝操作,也即可以针对每个网络层使用相同的预设剪枝率。这里,可以针对原始神经网络的网络结构下的多个网络层,基于同一预设剪枝率对多个网络层分别进行剪枝,得到剪枝后的多个网络层,这样,将剪枝后的多个网络层按照原始神经网络的网络结构所对应的组合顺序进行组合,得到构建的待训练神经网络。
80.本公开实施例中,利用均匀剪枝可以尽可能地保留原始神经网络的网络结构,不破坏原始神经网络的深度类型和结构类型。此外,由于产生的待训练神经网络和原始神经网络在结构上十分相近,这将有利于原始神经网络的学习经验来指导待训练神经网络的神经网络训练。在具体应用中,特别是神经网络的整体剪枝率小于40%时,由均匀剪枝产生的神经网络性能和很多最新的剪枝神经网络的结构很接近,这将有利于不同神经网络之间的联合操作。
81.需要说明的是,为待训练神经网络预留的参数运算量以及浮点运算量将远远小于原始神经网络所需的参数运算量和浮点运算量。与此同时,在确定预设剪枝率的情况下,可以为待训练神经网络分配一个目标运算资源,在进行剪枝之后,可以将多余的运算资源储存在资源池中,作为当前资源池中可以分配给待训练神经网络的可分配运算资源。
82.针对构建的待训练神经网络而言,为了避免特殊网络结构(如残差网络、深度卷积网络)对于通道数量的限制,可以将待训练神经网络的多个网络层划分为多个网络层组,并可以基于当前资源池中的可分配运算资源对划分的每个网络层组进行资源分配,从而将预先为待训练神经网络分配的目标运算资源全部或大部分消耗掉,以最大限度的利用运算资源。
83.在确定出可以为各个网络层组分配的运算资源的情况下,针对每个网络层组包括的各个网络层而言,可以均分所分配的运算资源,进而,通过控制待训练神经网络包括的每个网络层进行神经网络训练,可以得到训练后的神经网络,这里的训练后的神经网络作为已经剪枝完成的神经网络,可以充分的利用分配的运算资源,性能更佳。
84.本公开实施例中,针对原始神经网络包括的每个网络层,可以确定该网络层的原始输出通道数量,并基于确定的原始输出通道数量以及预设剪枝率,得到剪枝后该网络层的输出通道数量。
85.例如,针对一个原始输出通道数量为320的网络层,在经过10%的预设剪枝率的剪枝之后,可以得到剪枝后该网络层的输出通道数量为32,也即,在剪枝前,该网络层输出的
可以是320维度的特征图,在剪枝后,该网络层输出的则可以是32维度的特征图。
86.考虑到目前主流的神经网络通常带有残差结构,而残差结构中,由于会用到逐个特征维度的直接相加,因此需要相加的两个特征图的尺寸完全一致。如图2所示的一个残差结构的示意图,第一网络层的输出与第三网络层的输出需要直接相加。
87.为了确保这一相加操作,可以是经过维度变换,将第一个网络层的输出以及第三个网络层的输出调整为一致,这将会导致神经网络结构的变化。这里,为了在确保神经网络结构不变的情况下,实现上述功能,可以按照输出通道数量(对应网络层输出的特征图的维度)对多个网络层进行网络层组的划分。具体的,可以将输出通道数量一致的网络层作为划分的一个网络层组。这样,一个网络层组内的各个网络层的输出将具有一致性。
88.对于一个网络层组内的各个网络层,可以在后面的资源分配时进行同等程度的调整,相比针对各个网络层的单独调整而言,基于网络层组的调整方式可以同步对多个网络层进行资源分配,从而可以更高效的进行资源分配。
89.考虑到不同网络层组的重要度并不相同,如果按照均等的资源分配方式,将很大程度上会导致运算资源无法被合理的分配。为了解决这一问题,本公开实施例可以先确定划分的每个网络层组的重要度,而后基于重要度的大小为不同的网络层组分配对应的运算资源,进而再对每个网络层组内的网络层进行资源分配,以实现资源的合理分配。
90.这里,为了确定划分的每个网络层组的重要度,可以先确定该网络层组包括的每个网络层的重要度,然后基于每个网络层的重要度以及该网络层组包括的网络层数量,来确定这个网络层组的重要度。具体可以采用如下公式来确定:
[0091][0092]
其中,t
i
用于表示第i个网络层组的重要度,g
i
用于表示第i个网络层组所包括的网络层数量,γ
j
对应第i个网络层组所包括的第j个网络层的重要度。
[0093]
本公开实施提供的神经网络训练的方法可以按照如下步骤确定每个网络层的重要度:
[0094]
步骤一、针对构建的待训练神经网络包括的每个网络层,构建该网络层的重要度参数;并在将多个图像样本输入到待训练神经网络的情况下,基于通过该网络层所连接的正则化层确定的针对多个图像样本的统计平均参数值、以及构建的重要度参数,确定该网络层的正则化参数;
[0095]
步骤二、在多个网络层的正则化参数对应同一正则化取值的情况下,确定与每个网络层的重要度参数对应的重要度。
[0096]
这里,首先可以依赖于一个网络层所构建的重要度参数来确定这个网络层的正则化参数,而后基于批正则化(batch normalization)处理的特性,将各个网络层的正则化参数进行等值运算,从而解算出每个网络层的重要度。有关一个网络层的正则化参数可以按照如下公式来确定:
[0097][0098]
其中,x
o
用于表示任一网络层的正则化参数,x
i
用于表示图像样本,μ和σ用于表示该网络层所连接的正则化层确定的针对图像样本的统计平均参数值(分别对应均值和方
差),γ和β用于表示该网络层的重要度参数,∈用于表示常数。
[0099]
这样,将各个网络层的正则化参数对应到同一正则化取值,可以计算出γ和β所对应的重要度。
[0100]
在按照上述方法确定各个网络层的重要度的情况下,可以确定出各个网络层组的重要度,进而可以实现针对网络层组的资源分配。
[0101]
针对划分的每个网络层组,基于该网络层组的重要度、各网络层组的重要度的和值、以及当前资源池中的可分配运算资源,确定该网络层组可分配到的运算资源。在具体应用中,可以按照如下公式进行资源分配:
[0102][0103]
其中,r
i
用于表示第i个网络层组可分配到的运算资源,t
i
用于表示第i个网络层组的重要度,m用于表示的是已分配的目标运算资源,(1

λ)m用于表示当前资源池中的可分配运算资源。
[0104]
针对一个网络层组内的各个网络层而言,可以在上述均匀剪枝的基础上对网络层的通道数量进行同等程度的增加。例如,对于重要度较大的网络层组,可以对该网络层组内的各个网络层同等增加20个通道,对于重要度较小的网络层组,可以对该网络层组内的各个网络层同等增加2个通道等,进而针对增加后的通道分配掉对应的运算资源。
[0105]
基于上述为网络层组分配的运算资源,本公开实施例可以控制待训练神经网络包括的每个网络层进行训练以得到训练后的神经网络,具体可以通过如下步骤来实现:
[0106]
步骤一、基于待训练神经网络包括的多个网络层的重要度,确定当前轮的待训练神经网络的损失函数值;
[0107]
步骤二、在确定的损失函数值大于预设损失值的情况下,调整待训练神经网络的网络参数值;
[0108]
步骤三、基于网络参数值调整后的神经网络中的各个网络层组的重要度以及当前资源池中的可分配运算资源,为网络参数值调整后的神经网络中的各个网络层组重新分配资源,基于为每个网络层组重新分配的运算资源以及预先采集的图像样本,控制网络参数值调整后的神经网络包括的每个网络层进行训练,直到确定的网络参数值调整后的神经网络的损失函数值小于等于预设损失值,得到训练后的神经网络。
[0109]
这里,针对待训练神经网络定义的损失函数可以将各个网络层的重要度添加到待训练神经网络的基本损失函数中,如下式所示:
[0110][0111]
其中,用于表示待训练神经网络的损失函数,用于表示基本损失函数,γ
i
用于表示第i个网络层的重要度参数。
[0112]
在确定损失函数值过大的情况下,可以调整待训练神经网络的网络参数值,调整完模型参数值之后,分组不变,重新计算各个网络层的重要度,然后计算各个网络层组的重要度,并根据新的各个网络层组的重要度重新分配资源。基于为每个网络层组重新分配的运算资源,控制网络参数值调整后的神经网络包括的每个网络层进行训练,直到网络参数
值调整后的神经网络的损失函数值小于等于预设损失值,得到训练后的神经网络。
[0113]
需要说明的是,本公开实施例中可以将损失函数值达到或者小于预设损失值作为神经网络的收敛条件,除此之外,这里还可以将网络迭代次数达到预设次数作为收敛条件,或者其它收敛条件,在此不做具体的限制。
[0114]
本公开实施例提供的神经网络训练的方法还可以基于知识蒸馏的方法学习原始神经网络的暗知识,以更好的进行神经网络训练。具体包括如下步骤:
[0115]
步骤一、针对输入的图像样本,确定原始神经网络对应的第一输出结果,以及当前轮的待训练神经网络对应的第二输出结果;
[0116]
步骤二、在确定的损失函数值大于预设损失值、且第一输出结果与第二输出结果之间的匹配度小于预设匹配度的情况下,调整待训练神经网络的网络参数值。
[0117]
这里,可以将两个神经网络对应的输出结果进行结果比对,在匹配度较大的情况下,说明待训练神经网络很好的学习到了原始神经网络的暗知识,在匹配度较小的情况下,说明待训练神经网络并没有很好的学习到了原始神经网络的暗知识,这时需要对待训练神经网络的神经网络参数值进行调整,直至两个输出结果之间的匹配度足够的小。这样,待训练神经网络不仅是一个更为优良的剪枝神经网络还是一个与剪枝前的原始神经网络在特性上相差不大的神经网络,从而可以广泛应用于各种技术领域。
[0118]
基于本公开实施例提供的上述神经网络训练的方法,本公开实施例还提供了一种智能行驶控制的方法,如图3所示,可以通过如下步骤实现:
[0119]
s301:获取行驶装置在行驶过程中采集的图像或者点云数据;
[0120]
s302:利用基于本公开实施例提供的神经网络训练的方法得到的训练后的神经网络,检测图像或者点云数据中的目标对象;
[0121]
s303:基于检测的目标对象,控制行驶装置。
[0122]
这里训练后的神经网络可以检测图像或点云数据中的目标对象。以点云数据为例,这里可以检测出的目标对象可以是距离行驶装置5米的行人,除此之外,还可以检测出行人的姿态的信息。
[0123]
基于检测出的目标对象的相关信息,可以对行驶装置进行控制。例如,可以在确定行驶装置距离前方行人过近的情况下,及时执行刹车操作。
[0124]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0125]
基于同一发明构思,本公开实施例中还提供了与神经网络训练的方法对应的神经网络训练的装置、以及与智能行驶控制的方法对应的智能行驶控制的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0126]
参照图4所示,为本公开实施例提供的一种神经网络训练的装置的示意图,装置包括:构建模块401、划分模块402、分配模块403、训练模块404;其中,
[0127]
构建模块401,用于构建与原始神经网络对应的待训练神经网络;待训练神经网络与原始神经网络之间的网络结构相似度大于预设相似度,且待训练神经网络的通道数量小于原始神经网络的通道数量;
[0128]
划分模块402,用于将构建的待训练神经网络包括的多个网络层划分为多个网络层组;
[0129]
分配模块403,用于基于当前资源池中的可分配运算资源对划分的每个网络层组进行资源分配;
[0130]
训练模块404,用于基于为每个网络层组分配的运算资源以及预先采集的图像样本,控制待训练神经网络包括的每个网络层进行训练,得到训练后的神经网络。
[0131]
在一种可能的实施方式中,构建模块401,用于按照以下步骤构建与原始神经网络对应的待训练神经网络:
[0132]
针对原始神经网络的网络结构下的多个网络层,基于同一预设剪枝率对多个网络层分别进行剪枝,得到剪枝后的多个网络层;
[0133]
将剪枝后的多个网络层按照原始神经网络的网络结构所对应的组合顺序进行组合,得到构建的待训练神经网络。
[0134]
在一种可能的实施方式中,构建模块401,用于按照如下步骤对每个网络层进行剪枝:
[0135]
针对原始神经网络的网络结构下的每个网络层,确定该网络层的原始输出通道数量,并基于确定的原始输出通道数量以及预设剪枝率,得到剪枝后该网络层的输出通道数量。
[0136]
在一种可能的实施方式中,划分模块402,用于按照以下步骤将构建的待训练神经网络包括的多个网络层划分为多个网络层组:
[0137]
针对构建的待训练神经网络包括的每个网络层,确定该网络层的输出通道数量;
[0138]
通过将输出通道数量一致的网络层划分为一个网络层组,将构建的待训练神经网络划分为多个网络层组。
[0139]
在一种可能的实施方式中,上述装置还包括:
[0140]
确定模块405,用于针对构建的待训练神经网络包括的每个网络层,确定该网络层的重要度;基于每个网络层的重要度,确定划分的每个网络层组的重要度。
[0141]
在一种可能的实施方式中,确定模块405,用于按照以下步骤针对构建的待训练神经网络包括的每个网络层,确定该网络层的重要度:
[0142]
针对构建的待训练神经网络包括的每个网络层,构建该网络层的重要度参数;并在将多个图像样本输入到待训练神经网络的情况下,基于通过该网络层所连接的正则化层确定的针对多个图像样本的统计平均参数值、以及构建的重要度参数,确定该网络层的正则化参数;
[0143]
在多个网络层的正则化参数对应同一正则化取值的情况下,确定与每个网络层的重要度参数对应的重要度。
[0144]
在一种可能的实施方式中,确定模块405,用于按照以下步骤基于每个网络层的重要度,确定划分的每个网络层组的重要度:
[0145]
针对划分的每个网络层组,基于该网络层组包括的至少一个网络层的重要度、以及该网络层组包括的网络层数量,确定该网络层组的重要度。
[0146]
在一种可能的实施方式中,分配模块403,用于按照以下步骤基于当前资源池中的可分配运算资源对划分的每个网络层组进行资源分配:
[0147]
针对划分的每个网络层组,基于该网络层组的重要度、各网络层组的重要度的和值、以及当前资源池中的可分配运算资源,确定该网络层组可分配到的运算资源。
[0148]
在一种可能的实施方式中,上述装置还包括:
[0149]
调整模块406,在确定每个网络层组可分配到的运算资源之后,针对划分的每个网络层组,基于该网络层组可分配到的运算资源对该网络层组包括的各个网络层的输出通道数量进行同步调整。
[0150]
在一种可能的实施方式中,训练模块404,用于按照以下步骤基于为每个网络层组分配的运算资源以及预先采集的图像样本,控制待训练神经网络包括的每个网络层进行训练,得到训练后的神经网络:
[0151]
基于待训练神经网络包括的多个网络层的重要度,确定当前轮的待训练神经网络的损失函数值;
[0152]
在确定的损失函数值大于预设损失值的情况下,调整待训练神经网络的网络参数值;
[0153]
基于网络参数值调整后的神经网络中的各个网络层组的重要度以及当前资源池中的可分配运算资源,为网络参数值调整后的神经网络中的各个网络层组重新分配资源,基于为每个网络层组重新分配的运算资源以及预先采集的图像样本,控制网络参数值调整后的神经网络包括的每个网络层进行训练,直到确定的网络参数值调整后的神经网络的损失函数值小于等于预设损失值,得到训练后的神经网络。
[0154]
参照图5所示,为本公开实施例提供的一种智能行驶控制的装置的示意图,装置包括:获取模块501、检测模块502、控制模块503;其中,
[0155]
获取模块501,用于获取行驶装置在行驶过程中采集的图像或者点云数据;
[0156]
检测模块502,用于利用基于本公开实施例提供的神经网络训练的方法得到的训练后的神经网络,检测图像或者点云数据中的目标对象;
[0157]
控制模块503,用于基于检测的目标对象,控制行驶装置。
[0158]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0159]
本公开实施例还提供了一种电子设备,如图6所示,为本公开实施例提供的电子设备结构示意图,包括:处理器601、存储器602、和总线603。存储器602存储有处理器601可执行的机器可读指令(比如,图4中的装置中构建模块401、划分模块402、分配模块403、训练模块404对应的执行指令等),当电子设备运行时,处理器601与存储器602之间通过总线603通信,机器可读指令被处理器601执行时执行如下处理:
[0160]
构建与原始神经网络对应的待训练神经网络;待训练神经网络与原始神经网络之间的网络结构相似度大于预设相似度,且待训练神经网络的通道数量小于原始神经网络的通道数量;
[0161]
将构建的待训练神经网络包括的多个网络层划分为多个网络层组,并基于当前资源池中的可分配运算资源对划分的每个网络层组进行资源分配;
[0162]
基于为每个网络层组分配的运算资源以及预先采集的图像样本,控制待训练神经网络包括的每个网络层进行训练,得到训练后的神经网络。
[0163]
本公开实施例还提供了另一种电子设备,如图7所示,为本公开实施例提供的电子
memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0174]
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1