掌桥专利:专业的专利平台
掌桥专利
首页

神经网络训练方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:39:06


神经网络训练方法、装置、电子设备及存储介质

技术领域

本公开涉及自动驾驶、神经网络技术领域,具体而言,涉及一种神经网络训练方法、装置、智能行驶方法、设备、电子设备及计算机可读存储介质。

背景技术

在自动驾驶中,由于车载设备上存储和计算资源有限,神经网络压缩或神经网络剪裁技术已经越来越重要。目前的压缩算法一般是首先训练一个参数量大、耗时长的大神经网络,之后在对大神经网络进行剪裁,生成满足检测精度、运行耗时要求以及能够在车载设备上部署的神经网络。

上述神经网络压缩或神经网络剪裁方法存在如下问题:训练大神经网络时消耗了大量的时间和计算资源,同时,对大神经网络进行剪裁的时候,为了保证剪裁得到神经网络的精度,往往需要不止一轮的通道剪裁,尤其是通道的剪枝率较高时,更是需要进行多伦的通道剪裁,不仅消耗了大量的时间和计算资源,还降低了神经网络剪裁的效率。

发明内容

本公开实施例至少提供一种神经网络训练方法、装置,以及智能行驶方法、设备。

第一方面,本公开实施例提供了一种神经网络训练方法,包括:

获取待剪裁神经网络,以及目标神经网络的目标网络参数信息;

分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络;所述过剪裁神经网络的总参数量和/或运行耗时小于所述目标网络参数信息中的总参数量和/或运行耗时;

分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息;

基于所述目标网络参数信息和每个第二网络层对应的所述影响程度信息,增加至少一个第二网络层中的通道,得到目标神经网络。

该方面,对待剪裁神经网络进行过度剪裁,得到一个比目标神经网络的网络规模小的过剪裁神经网络,之后通过在过剪裁神经网络中对检测精度的影响大的第二网络层中增加通道,来得到目标神经网络,该方面不需要训练一个大神经网络,节省了时间和计算资源,同时该方面不需要进行多伦的通道剪裁,只需要对检测精度的影响大的第二网络层中增加通道,单次迭代就能够得到目标神经网络,进一步节省了时间和计算资源,提高了神经网络的剪裁效率。

在一种可能的实施方式中,分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络,包括:

获取过剪裁尺度信息;所述过剪裁尺度信息包括以下至少一项:过剪裁参数量、过剪裁耗时;

基于所述目标网络参数信息和所述过剪裁尺度信息,确定剪裁网络参数信息;所述剪裁网络参数信息包括以下至少一项:所述过剪裁神经网络的总参数量、所述过剪裁神经网络的运行耗时;

基于所述剪裁网络参数信息,分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络。

该实施方式,利用过剪裁尺度信息,对待剪裁神经网络进行过度剪裁,能够得到一个比目标神经网络的网络规模小的过剪裁神经网络,对该网络规模小的过剪裁神经网络进行训练,能够减少训练时间,节省计算资源。

在一种可能的实施方式中,所述基于所述目标网络参数信息和所述过剪裁尺度信息,确定剪裁网络参数信息,包括:

计算所述目标神经网络的总参数量减去所述过剪裁参数量的第一差值,并将所述第一差值作为所述过剪裁神经网络的总参数量;和/或

计算所述目标神经网络的运行耗时减去所述过剪裁耗时的第二差值,并将所述第二差值作为所述过剪裁神经网络的运行耗时。

该实施方式,基于目标神经网络的总参数量和过剪裁参数量,能够得到过剪裁神经网络的准确的总参数量;基于目标神经网络的运行耗时和过剪裁耗时,能够得到过剪裁神经网络的准确的运行耗时。

在一种可能的实施方式中,各个第一网络层的第一网络参数信息包括以下至少一项:该第一网络层的总参数量;该第一网络层的运行耗时;

分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络,包括:

基于所述过剪裁神经网络的总参数量和/或所述过剪裁神经网络的运行耗时,以及,所述待剪裁神经网络中的每个第一网络层的总参数量和/或所述待剪裁神经网络中的每个第一网络层的运行耗时,分别对多个第一网络层中的通道进行剪裁,得到过剪裁神经网络。

该实施方式,基于待剪裁神经网络中的每个第一网络层的总参数量和/或每个第一网络层的运行耗时、过剪裁神经网络的总参数量和/或运行耗时,能够较为准确的对待剪裁神经网络进行过度剪裁,得到比目标神经网络的网络规模小的过剪裁神经网络。

在一种可能的实施方式中,所述分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息,包括:

获取所述过剪裁神经网络的训练样本;

利用所述过剪裁神经网络中每个通道对所述过剪裁神经网络的检测精度的精度影响参数,构造损失函数;

利用训练样本对所述过剪裁神经网络进行训练,直至满足训练截止条件;

根据训练完成时的过剪裁神经网络的损失函数的值,确定所述过剪裁神经网络中每个通道对所述过剪裁神经网络的检测精度的精度影响值;

基于得到的精度影响值,分别确定每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

该实施方式,对网络规模较小的过剪裁神经网络进行训练,能够较少训练时间,节省计算资源。同时利用每个通道对过剪裁神经网络的检测精度的精度影响参数来构造损失函数,能够较为准确地确定每个通道对过剪裁神经网络的检测精度的影响程度,即得到较为准确的精度影响值,利用该精度影响值能够较为准确地确定每个第二网络层对过剪裁神经网络的检测精度的影响程度信息。

在一种可能的实施方式中,所述基于得到的精度影响值,分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息,包括:

针对所述过剪裁网络中每个第二网络层,从得到的每个通道对应的精度影响值中,筛选该第二网络层所包括的各个通道对所述过剪裁神经网络的检测精度的精度影响值,计算筛选的精度影响值的和,并将得到的和作为该第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

该实施方式,各个通道对应的精度影响值的和能够较为准确的表征对应的第二网络层对过剪裁神经网络的检测精度的影响程度,即能够确定较为准确的影响程度信息。

在一种可能的实施方式中,所述基于所述目标网络参数信息和每个第二网络层对应的所述影响程度信息,增加至少一个第二网络层中的通道,得到目标神经网络,包括:

基于所述目标网络参数信息、所述剪裁网络参数信息以及每个第二网络层对应的所述影响程度信息,从所述过剪裁神经网络中的各个第二网络层中选取至少一个待处理网络层;

基于所述目标网络参数信息、所述剪裁网络参数信息以及所述至少一个待处理网络层中每个待处理网络层对应的第二网络参数信息,分别确定每个待处理网络层需要增加的通道数量;

基于每个待处理网络层需要增加的通道数量在该待处理网络层中增加通道,生成目标神经网络。

该实施方式,基于目标网络参数信息、剪裁网络参数信息以及每个第二网络层对应的影响程度信息,能够筛选到对神经网络的检测精度有较大影响的第二网络层,即待处理网络层;继而结合待处理网络层对应的第二网络参数信息,能够较为准确的确定每个待处理网络层需要增加的通道的数量,从而能够生成符合目标网络参数信息的目标神经网络。

第二方面,本公开实施例提供了一种智能行驶方法,包括:

利用本公开第一方面或第一方面任一种实施方式提供的神经网络训练方法训练的目标神经网络对所述道路图像进行检测,得到目标对象;

基于检测得到的目标对象,控制智能行驶设备。

第三方面,本公开实施例提供了一种神经网络训练装置,包括:

数据获取模块,用于获取待剪裁神经网络,以及目标神经网络的目标网络参数信息;

剪裁模块,用于分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络;所述过剪裁神经网络的总参数量和/或运行耗时小于所述目标网络参数信息中的总参数量和/或运行耗时;

重要性确定模块,用于分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息;

目标网络生成模块,用于基于所述目标网络参数信息和每个第二网络层对应的所述影响程度信息,增加至少一个第二网络层中的通道,得到目标神经网络。

第四方面,本公开实施例还提供一种智能行驶设备,包括:

获取模块,用于获取道路图像;

检测模块,用于利用本公开第一方面或第一方面任一种实施例提供的神经网络训练方法训练的目标神经网络对所述道路图像进行检测,得到目标对象;

控制模块,用于基于检测得到的目标对象,控制智能行驶设备。

第五方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者第二方面的实施方式中的步骤。

第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者第二方面的实施方式中的步骤。

关于上述神经网络训练装置、电子设备、及计算机可读存储介质的效果描述参见上述神经网络训练方法的说明,这里不再赘述。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种神经网络训练方法的流程图;

图2示出了本公开实施例所提供的一种神经网络训练装置的示意图;

图3示出了本公开实施例所提供的一种电子设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

现有技术中,神经网络压缩或神经网络剪裁方法存在如下缺陷:需要训练大神经网络,消耗了大量的时间和计算资源,同时,对大神经网络进行剪裁的时候,为了保证剪裁得到神经网络的精度,往往需要不止一轮的通道剪裁,尤其是通道的剪枝率较高时,更是需要进行多伦的通道剪裁,不仅消耗了大量的时间和计算资源,还降低了神经网络剪裁的效率。针对谁行数技术缺陷,本公开提供了一种神经网络训练方法、装置、电子设备及计算机可读存储介质,本公开对待剪裁神经网络进行过度剪裁,得到一个比目标神经网络的网络规模小的过剪裁神经网络,之后通过在过剪裁神经网络中对检测精度的影响大的第二网络层中增加通道,来得到目标神经网络,本公开不需要训练一个大神经网络,节省了时间和计算资源,同时本公开不需要进行多伦的通道剪裁,只需要对检测精度的影响大的第二网络层中增加通道,单次迭代就能够得到目标神经网络,进一步节省了时间和计算资源,提高了神经网络的剪裁效率。

下面通过具体的实施例,对本公开公开的神经网络训练方法、装置、电子设备及存储介质进行说明。

如图1所示,本公开实施例公开了一种神经网络训练方法,该方法可以应用于服务器,用于对大规模的神经网络进行剪裁,得到规模、精度等都满足要求的目标神经网络。具体地,该神经网络训练方法可以包括如下步骤:

S110、获取待剪裁神经网络,以及目标神经网络的目标网络参数信息。

上述待剪裁神经网络是一个具有较多的参数的大规模的神经网络,该神经网络的网络层中通道数量较多,需要根据当前对神经网络的参数量、耗时等的需求进行剪裁,以得到小规模的目标神经网络。小规模的目标神经网络对承载设备,例如车载设备的运算能力需求较低,才能够部署到车载设备等移动设备上。

上述待剪裁神经网络包括若干个第一网络层,第一网络层对应的第一网络参数信息包括第一网络层的总参数量和/或第一网络层的运行耗时。

上述目标网络参数信息用于表征目标神经网络的网络参数,具体可以包括所述目标神经网络的总参数量和/或所述目标神经网络的运行耗时。目标网络参数信息是根据目标神经网络所要部署到的车载设备的承载能力和对目标神经网络检测效率的要求设定的。

S120、分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络。

这里,可以基于所述待剪裁神经网络中的每个第一网络层的第一网络参数信息,以及所述目标网络参数信息,对待剪裁神经网络进行过度剪裁,得到过剪裁神经网络。过剪裁神经网络的网络规模小于目标神经网络的网络规模。

所述过剪裁神经网络的总参数量和/或运行耗时小于所述目标网络参数信息中的总参数量和/或运行耗时。具体地,利用剪裁网络参数信息表征过剪裁神经网络的网络参数,剪裁网络参数信息包括所述过剪裁神经网络的总参数量和/或所述过剪裁神经网络的运行耗时。根据上面的描述可知,目标神经网络对应的目标网络参数信息包括目标神经网络的总参数量和/或所述目标神经网络的运行耗时。目标神经网络的总参数量大于过剪裁神经网络的总参数量,目标神经网络的运行耗时大于过剪裁神经网络的运行耗时。

在进行过度剪裁时,可以首先获取预设的过剪裁尺度信息;之后基于所述目标网络参数信息和所述过剪裁尺度信息,确定剪裁网络参数信息;最后,基于所述剪裁网络参数信息和所述待剪裁神经网络中的每个第一网络层的第一网络参数信息,分别对每个第一网络层中的通道进行剪裁,得到过剪裁神经网络。

上述过剪裁尺度信息用于表征过度剪裁的尺度,可以包括过剪裁参数量和/或过剪裁耗时。在基于所述目标网络参数信息和所述过剪裁尺度信息,确定剪裁网络参数信息时,具体可以是:

计算所述目标神经网络的总参数量减去所述过剪裁参数量的第一差值,并将所述第一差值作为所述过剪裁神经网络的总参数量;和/或,计算所述目标神经网络的运行耗时减去所述过剪裁耗时的第二差值,并将所述第二差值作为所述过剪裁神经网络的运行耗时。

基于目标神经网络的总参数量和过剪裁参数量,能够得到过剪裁神经网络的准确的总参数量;基于目标神经网络的运行耗时和过剪裁耗时,能够得到过剪裁神经网络的准确的运行耗时。

上述基于所述剪裁网络参数信息和所述待剪裁神经网络中的每个第一网络层的第一网络参数信息,分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络,具体可以是:

基于所述过剪裁神经网络的总参数量和/或所述过剪裁神经网络的运行耗时,以及,所述待剪裁神经网络中的每个第一网络层的总参数量和/或所述待剪裁神经网络中的每个第一网络层的运行耗时,分别对多个个第一网络层中的通道进行剪裁,得到过剪裁神经网络。

在具体实施时,上述过剪裁神经网络的总参数量可以表示为H,上述过剪裁神经网络的运行耗时可以表示为T。例如,待训练神经网络包括N个第一网络层,每个第一网络层中通道数为C

在具体计算上述a(C′

在进行过度剪枝时,具体可以利用如下两种方式实现:一是均匀剪枝,即每个卷积层的剪枝率相同;另一种是无差别剪枝,即每个卷积层剪枝完后剩余的通道数相同。上述剪枝率为剪去的通道数和神经网络总通道数的比值。这里的过度剪枝为后续增加通道留出足够的空间。

基于剪裁神经网络中的每个第一网络层的总参数量和/或每个第一网络层的运行耗时、过剪裁神经网络的总参数量和/或运行耗时,能够较为准确的对待剪裁神经网络进行过度剪裁,得到比目标神经网络的网络规模小的过剪裁神经网络。

利用过剪裁尺度信息,对待剪裁神经网络进行过度剪裁,能够得到一个比目标神经网络的网络规模小的过剪裁神经网络,对该网络规模小的过剪裁神经网络进行训练,能够减少训练时间,节省计算资源。

S130、分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

这里可以是对过剪裁神经网络进行训练,确定每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

上述影响程度信息用于表征对应的第二网络层对神经网络的检测精度影响程度的大小。

S140、基于所述目标网络参数信息和每个第二网络层对应的所述影响程度信息,增加至少一个第二网络层中的通道,得到目标神经网络。

这里在生成目标神经网络时,可以基于每个第二网络层对应的所述影响程度信息,筛选对神经网络的检测精度有较大影响的第二网络层,再基于目标网络参数信息,对筛选出的第二网络层增加通道,以使目标神经网络的网络参数符合上述目标网络参数信息。

上述基于每个第二网络层对应的所述影响程度信息,筛选对神经网络的检测精度有较大影响的第二网络层,具体可以按照如下步骤实现:

基于所述目标网络参数信息、所述剪裁网络参数信息以及每个第二网络层对应的所述影响程度信息,从所述过剪裁神经网络中的各个第二网络层中选取至少一个待处理网络层。

具体地,可以基于目标网络参数信息中目标神经网络的总参数量和剪裁网络参数信息中过剪裁神经网络的总参数量,确定需要增加的参数量;基于目标网络参数信息中目标神经网络的运行耗时和剪裁网络参数信息中过剪裁神经网络的运行耗时,确定需要增加的运行耗时;之后根据需要增加的参数量和需要增加的运行耗时,确定需要筛选出的待处理网络层的数量N;再根据每个第二网络层对应的所述影响程度信息,从第二网络层中筛选出对检测精度影响最大的前N个的第二网络层,得到上述待处理网络层。

上述基于目标网络参数信息,对筛选出的第二网络层增加通道,具体可以是:基于所述目标网络参数信息、所述剪裁网络参数信息以及所述至少一个待处理网络层中每个待处理网络层对应的第二网络参数信息,分别确定每个待处理网络层需要增加的通道数量;基于每个待处理网络层需要增加的通道数量在该待处理网络层中增加通道,生成目标神经网络。

上述第二网络参数信息包括对应的第二网络层的总参数量和运行耗时。

基于所述目标网络参数信息、所述剪裁网络参数信息以及所述至少一个待处理网络层中每个待处理网络层对应的第二网络参数信息,分别确定每个待处理网络层需要增加的通道数量,具体可以是:

基于目标网络参数信息中目标神经网络的总参数量和剪裁网络参数信息中过剪裁神经网络的总参数量,确定需要增加的参数量;基于目标网络参数信息中目标神经网络的运行耗时和剪裁网络参数信息中过剪裁神经网络的运行耗时,确定需要增加的运行耗时;之后根据各个待处理网络层的总参数量和运行耗时,确定每个待处理网络层需要增加的通道数量。

具体地,对于总参数量较少、运行耗时较少、对神经网络的检测精度影响较大的待处理网络层,可以多增加一些通道,即确定的需要增加的通道数量较大;对于总参数量较多、运行耗时较多、对神经网络的检测精度影响较小的待处理网络层,可以适当增加一些通道,即确定的需要增加的通道数量较小。

基于目标网络参数信息、剪裁网络参数信息以及每个第二网络层对应的影响程度信息,能够筛选到对神经网络的检测精度有较大影响的第二网络层,即待处理网络层;继而结合待处理网络层对应的第二网络参数信息,能够较为准确的确定每个待处理网络层需要增加的通道的数量,从而能够生成符合目标网络参数信息的目标神经网络。

在一些实施例中,上述确定每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息,具体可以利用如下步骤实现:

步骤一、获取所述过剪裁神经网络的训练样本。

上述训练样本根据具体的应用场景来确定,例如,在自动驾驶场景中,上述训练样本可以是一些用于定位的图像。在人脸识别场景中,上述训练样本可以是一些包括人脸的图像。

步骤二、利用所述过剪裁神经网络中每个通道对所述过剪裁神经网络的检测精度的精度影响参数,构造损失函数。

在具体实施时,上述每个通道对所述过剪裁神经网络的检测精度的精度影响参数,具体可以是每个通道对应的参数伽马值。伽马值用于表征对应的通道对过剪裁神经网络的检测精度的精度影响程度。

上述损失函数具体可以是:

L=l(f(x,W),y)+λΣ

式中,L表示损失函数,l(.)表示主损失函数,f(.)表示过剪裁神经网络所表示的函数,x表示过剪裁神经网络的输入,即上述训练样本,y表示训练样本对应的标准检测结果,W表示过剪裁神经网络中的参数,γ表示精度影响参数,λ表示预设参数,i表示过剪裁神经网络的通道的总数量。

步骤三、利用训练样本对所述过剪裁神经网络进行训练,直至满足训练截止条件;根据训练完成时的过剪裁神经网络的损失函数的值,确定所述过剪裁神经网络中每个通道对所述过剪裁神经网络的检测精度的精度影响值。

利用上述训练样本对过剪裁神经网络进行训练,即可得到精度影响参数的优化值,即上述精度影响值。

步骤四、基于得到的精度影响值,分别确定每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

这里,具体可以是:针对每个第二网络层,获取所述第二网络层所包括的各个通道对所述过剪裁神经网络的检测精度的精度影响值,计算获取的精度影响值的和,并将得到的和作为所述第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

各个通道对应的精度影响值的和能够较为准确的表征对应的第二网络层对过剪裁神经网络的检测精度的影响程度,即能够确定较为准确的影响程度信息。

上述实施例对网络规模较小的过剪裁神经网络进行训练,能够较少训练时间,节省计算资源。同时利用每个通道对过剪裁神经网络的检测精度的精度影响参数来构造损失函数,能够较为准确地确定每个通道对过剪裁神经网络的检测精度的影响程度,即得到较为准确的精度影响值,利用该精度影响值能够较为准确地确定每个第二网络层对过剪裁神经网络的检测精度的影响程度信息。

另外,在确定每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息时,还可以是利用每个第二网络层对应的批正则化层的伽马值来构造损失函数,利用训练样本对过剪裁神经网络进行训练就能够只得到第二网络层对应伽马值的优化值,该优化值反应对应的第二网络层对所述过剪裁神经网络的检测精度的影响程度信息,该优化值越大,表示对应的第二网络层对所述过剪裁神经网络的检测精度的影响程度越大,该优化值越小,表示对应的第二网络层对所述过剪裁神经网络的检测精度的影响程度越小。根据该优化值即作为上述影响程度信息,即可用于选择上述待处理网络层。

上述基于每个待处理网络层需要增加的通道数量,生成目标神经网络,具体可以是:按照每个待处理网络层需要增加的通道数量,对对应的各个待处理网络层增加通道;再根据车载设备对各个网络层中的通道数的要求,对各个网络层中的通道数进行微调,小数量的增加或减少对应网络层中通道数,即可得到目标神经网络。

不同的车载设备对部署到其上的神经网络有不同的要求,例如有些车载设备要求部署到其上的神经网络,随着网络深度的增加,网络层中通道的数量递增,再例如,有些车载设备要求部署到其上的神经网络,网络层中通道的数量是8的倍数。因此需要根据不同的车载设备的要求对网络层中的通道数量进行微调。

上述实施例通过过度剪枝先得到一个参数量和耗时低于指定要求,即目标网络参数信息的小模型,即上述过剪裁神经网络,再在这个小模型上增加重要网络层的通道数来得到指定要求的模型,上述实施例不需要预训练大模型,在剪枝率很大的情况下不需要耗时的迭代剪枝过程,能够快速得到目标神经网络,能够快速部署到车载设备上,且适用于大部分的模型压缩技术。

本公开实施例还提供一种智能行驶方法,包括:

利用本公开第一方面或第一方面任一种实施方式提供的神经网络训练方法训练的目标神经网络对所述道路图像进行检测,得到目标对象;

基于检测得到的目标对象,控制智能行驶设备。

其中,智能行驶设备可以包括自动驾驶车辆、机器人,或者装配有高级辅助驾驶系统的车辆。

对应于上述神经网络训练方法,本公开还公开了一种神经网络训练装置器,该装置中的各个模块能够实现上述各个实施例的神经网络训练方法中的每个步骤,并且能够取得相同的有益效果,因此,对于相同的部分这里不再进行赘述。具体地,如图2所示,神经网络训练装置包括:

数据获取模块210,用于获取待剪裁神经网络,以及目标神经网络的目标网络参数信息。

剪裁模块220,用于分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络;所述过剪裁神经网络的总参数量和/或运行耗时小于所述目标网络参数信息中的总参数量和/或运行耗时。

重要性确定模块230,用于分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息。

目标网络生成模块240,用于基于所述目标网络参数信息和每个第二网络层对应的所述影响程度信息,增加至少一个第二网络层中的通道,得到目标神经网络。

本公开实施例还提供一种智能行驶设备,包括:

获取模块,用于获取道路图像;

检测模块,用于利用本公开第一方面或第一方面任一种实施例提供的神经网络训练方法训练的目标神经网络对所述道路图像进行检测,得到目标对象;

控制模块,用于基于检测得到的目标对象,控制智能行驶设备。

对应于上述神经网络训练方法,本公开实施例还提供了一种电子设备300,如图3所示,为本公开实施例提供的电子设备300结构示意图,包括:

处理器31、存储器32、和总线33;存储器32用于存储执行指令,包括内存321和外部存储器322;这里的内存321也称内存储器,用于暂时存放处理器31中的运算数据,以及与硬盘等外部存储器322交换的数据,处理器31通过内存321与外部存储器322进行数据交换,当电子设备300运行时,处理器31与存储器32之间通过总线33通信,使得处理器31执行以下指令:

获取待剪裁神经网络,以及目标神经网络的目标网络参数信息;分别对所述待剪裁神经网络中的多个第一网络层中的通道进行剪裁,得到过剪裁神经网络;所述过剪裁神经网络的总参数量和/或运行耗时小于所述目标网络参数信息中的总参数量和/或运行耗时;分别确定所述过剪裁网络中每个第二网络层对所述过剪裁神经网络的检测精度的影响程度信息;基于所述目标网络参数信息和每个第二网络层对应的所述影响程度信息,增加至少一个第二网络层中的通道,得到目标神经网络;

或者使得处理器31执行以下指令:

利用上述方法实施例中提供的神经网络训练方法训练的目标神经网络对所述道路图像进行检测,得到目标对象;

基于检测得到的目标对象,控制智能行驶设备。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述神经网络训练方法的步骤,或者执行上述方法实施例中的智能行驶方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例所提供的神经网络训练方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述神经网络训练方法的步骤,或者执行上述方法实施例中的智能行驶方法的步骤,具体可参见上述方法实施例,在此不再赘述。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopment Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 神经网络模型的训练方法和装置、电子设备和计算机存储介质
  • 神经网络训练方法及装置、电子设备和存储介质
技术分类

06120113007156