确定布局顺序及数据处理的方法、装置、设备及存储介质与流程

文档序号:20920706发布日期:2020-05-29 14:06阅读:185来源:国知局
确定布局顺序及数据处理的方法、装置、设备及存储介质与流程

本申请实施例涉及数据处理技术领域,具体而言,涉及一种确定布局顺序及数据处理的方法、装置、设备及存储介质。



背景技术:

随着数据处理技术的发展,电子设备上负载的数据处理任务越来越丰富,从而使电子设备能代替人自动执行多种任务。其中,人工智能技术作为一种流行的数据处理方式,越来越多地应用至服务器和终端设备,旨在实现天网监控、语音交互、文字识别、身份验证、自动驾驶、智能推荐等诸多任务。

人工智能技术的实施过程通常包括网络模型训练和网络模型应用等两大阶段。为了使电子设备能自动执行较复杂的任务,通常需要搭建或选择一种结构较复杂的网络模型,例如深度学习网络,然后对该网络模型进行训练,并将训练完毕的网络模型载入服务器和/或终端设备,使服务器和/或终端设备可以利用该网络模型执行较复杂的任务。但是由于某些电子设备的处理能力和内存空间等硬件条件有限,特别是终端设备和物联网系统中的监控节点设备,在这些电子设备上部署网络模型后,其硬件条件不利于网络模型的应用,从而影响用户期望任务的执行。

为此,相关技术通过分析电子设备的硬件特点,确定出一种数据布局顺序。电子设备上部署的网络模型在处理数据之前,通过按照确定出的布局顺序,对待处理数据和网络模型权重进行重新排布,从而可以在处理数据期间,帮助电子设备提升网络模型处理能力。但是实际情况是,电子设备的网络模型处理能力的提升并不显著,因此网络模型的应用范围仍然受限。



技术实现要素:

本申请实施例提供一种确定布局顺序及数据处理的方法、装置、设备及存储介质,旨在解决网络模型在电子设备上运行期间,网络模型受限于电子设备硬件条件的问题。

本申请实施例第一方面提供一种确定布局顺序的方法,所述方法包括:

针对目标网络模型中的目标网络层,获得该目标网络层的对应输入数据的数据参数,以及获得该目标网络层的网络层参数;

根据所述数据参数和所述网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序。

本申请实施例第二方面提供一种数据处理方法,所述方法包括:

针对目标网络模型中的每个网络层,获得该网络层的上一网络层所处理得到的待处理数据的中间结果;

按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对所述中间结果中的各个数值进行重新排布,其中,多个网络层各自对应的布局顺序不全部相同;

通过该网络层,对重新排布后的所述中间结果进行处理,以获得该网络层所处理得到的所述待处理数据的另一中间结果。

本申请实施例第三方面提供一种确定布局顺序的装置,所述装置包括:

参数获得模块,用于针对目标网络模型中的目标网络层,获得该目标网络层的对应输入数据的数据参数,以及获得该目标网络层的网络层参数;

布局顺序确定模块,用于根据所述数据参数和所述网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序。

本申请实施例第四方面提供一种数据处理装置,所述装置包括:

中间结果获得模块,用于针对目标网络模型中的每个网络层,获得该网络层的上一网络层所处理得到的待处理数据的中间结果;

中间结果排布模块,用于按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对所述中间结果中的各个数值进行重新排布,其中,多个网络层各自对应的布局顺序不全部相同;

处理模块,用于通过该网络层,对重新排布后的所述中间结果进行处理,以获得该网络层所处理得到的所述待处理数据的另一中间结果。

本申请实施例第五方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请实施例第一方面所述的方法的步骤。

本申请实施例第六方面提供一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请实施例第二方面所述的方法的步骤。

本申请实施例第七方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请实施例第一方面或第二方面所述的方法中的步骤。

采用本申请提供的确定布局顺序的方法,针对目标网络模型中的目标网络层,获得该目标网络层的对应输入数据的数据参数,以及获得该目标网络层的网络层参数;然后根据所获得的数据参数和网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序。

相比于相关技术中通过分析电子设备的硬件特点以确定布局顺序,整个网络的各个网络层对应同一个布局顺序。本申请以数据参数和网络层参数等细粒度参数为依据,为目标网络层确定对应的布局顺序。由于每个目标网络层各自的数据参数和网络层参数通常互不相同,或者不全部相同,因此本申请可以为每个目标网络层分别确定出相对个性化的布局顺序。在网络应用期间,各个目标网络层的所需数据可以按照各自对应的布局顺序进行重新排布,每个网络层的处理性能均被显著提高或最大化地提高,从而帮助电子设备显著提升网络模型处理能力,进而有利于扩大网络模型的应用范围。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提出的确定布局顺序的方法的流程图;

图2是本申请一实施例提出的待处理数据的布局顺序;

图3是本申请一实施例提出的目标网络层内的权重数据的布局顺序;

图4是本申请一实施例提出的模型训练流程图;

图5是本申请一实施例提出的数据处理方法的流程图;

图6是本申请一实施例提出的确定布局顺序的装置的示意图;

图7是本申请一实施例提出的数据处理装置的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

人工智能技术作为一种流行的数据处理方式,越来越多地应用至服务器和终端设备。人工智能技术的实施过程通常包括网络模型训练和网络模型应用等两大阶段。为了使电子设备能自动执行较复杂的任务,通常需要搭建或选择一种结构较复杂的网络模型,例如深度学习网络,然后对该网络模型进行训练,并将训练完毕的网络模型载入服务器和/或终端设备,使服务器和/或终端设备可以利用该网络模型执行较复杂的任务。但是由于某些电子设备的处理能力和内存空间等硬件条件有限,特别是终端设备和物联网系统中的监控节点设备,在这些电子设备上部署网络模型后,其硬件条件不利于网络模型的应用,从而影响用户期望任务的执行。

为此,相关技术一方面提出了轻量级网络和网络模型量化等技术,以提高电子设备的网络模型处理能力,但是这些技术主要着力于模型设计方面,对网络模型的精度要求很高,需要长期的网络设计和调优,成本较高。相关技术另一方面以电子设备的硬件空间利用率为突破点,尝试对网络模型在数据处理期间所需数据的数据结构进行优化布局,从而提升片上存储器的利用率,进而提高电子设备的网络模型处理能力。

为了对网络模型在数据处理期间所需数据的数据结构进行优化布局,相关技术通过分析电子设备的硬件特点,规定电子设备的硬件特点在何种条件下,应该对网络模型在数据处理期间所需数据的数据结构采取何种布局方式。上述方式虽然能一定程度地帮助电子设备提升网络模型处理能力,但是提升幅度并不显著。本申请的申请人通过研究发现,当利用上述方式为一个网络模型确定出布局方式后,该网络模型的各个网络层共享该布局方式,然而该布局方式是一种较为中庸的布局方式,并不适用于每个网络层,因此难以帮助电子设备显著提升网络模型处理能力。

有鉴于此,本申请提出:针对目标网络模型中的目标网络层,获得该目标网络层的对应输入数据的数据参数,以及获得该目标网络层的网络层参数;然后以数据参数和网络层参数等细粒度参数为依据,为目标网络层确定对应的布局顺序。由于每个目标网络层各自的数据参数和网络层参数通常互不相同,或者不全部相同,因此可以为每个目标网络层分别确定出相对个性化的布局顺序。在网络应用期间,各个目标网络层的所需数据可以按照各自对应的布局顺序进行重新排布,每个网络层的处理性能均被显著提高或最大化地提高,从而帮助电子设备显著提升网络模型处理能力,进而有利于扩大网络模型的应用范围。

参考图1,图1是本申请一实施例提出的确定布局顺序的方法的流程图。如图1所示,该方法包括以下步骤:

步骤s11:针对目标网络模型中的目标网络层,获得该目标网络层的对应输入数据的数据参数,以及获得该目标网络层的网络层参数。

其中,目标网络层是指目标网络模型中需要确定相应布局顺序的网络层。例如在某些实施例中,一个网络模型中包括多个网络层,基于时间成本和必要性的考虑,需要为其中的部分网络层确定相应的布局顺序,如此,这部分网络层中的每一个网络层即是一个目标网络层。又例如在另一些实施例中,一个网络模型中包括多个网络层,需要为全部网络层均确定相应的布局顺序,如此,该网络模型中的每一个网络层即是一个目标网络层。

示例地,假设一个网络模型中包括4个卷积层和2个全连接层,用户需要为其中的4个卷积层分别确定相应的布局顺序。如此,每一个卷积层即是一个目标网络层,需要针对4个目标网络层分别确定相应的布局顺序。

其中,目标网络层的对应输入数据是指利用该目标网络层进行数据处理时,需要输入至该目标网络层的数据。对应输入数据的数据参数是指:输入数据的数据排布参数。例如在输入数据是张量(tensor)形式的情况下,对应输入数据的数据参数可以是:张量的单列高度、单行长度、维度等等。

示例地,目标网络层可以是卷积层,该目标网络层的对应输入数据是图像数据,例如原始图像或特征图featuremap。如此,该目标网络层的对应输入数据的数据参数可以包括:图像高度、图像宽度以及图像通道(channel)数量。为了提高参数的精细化水平,从而获得更准确的布局顺序,在某些实施例中,目标网络层的对应输入数据的数据参数可以包括:图像高度、图像宽度以及图像通道(channel)数量等三者。

其中,目标网络层的网络层参数是指:用于表征目标网络层的结构的参数,和/或,用于表征目标网络层的数据处理方式的参数。

沿用上述示例,目标网络层可以是卷积层,该目标网络层的对应输入数据是图像数据,例如原始图像或特征图featuremap。如此,该目标网络层的网络层参数可以包括:卷积核数量、卷积核长度、卷积核宽度以及卷积步幅。其中,卷积核数量、卷积核长度以及卷积核宽度表征了目标网络层的结构,卷积步幅表征了目标网络层的数据处理方式,即卷积处理方式。

需要说明的是,目标网络模型中的目标网络层除了可以是卷积层,也可以是其他类型的网络层,例如池化层、全连接层等等,本申请不限定目标网络层的具体类型。例如在目标网络层是池化层的情况下,其对应输入数据也可以是图像数据,该对应输入数据的数据参数也可以包括:图像高度、图像宽度以及图像通道数量。在目标网络层是池化层的情况下,其网络层参数可以包括:池化窗口的宽度和池化窗口的长度。

还需要说明的是,考虑到卷积层、池化层、全连接层等常见网络层不仅可应用于图像处理任务,还可以应用于自然语言处理、生物特征识别、肢体动作识别、智能推荐等诸多任务,由于不同任务通常对应不同的输入数据,因此本申请对目标网络层的对应输入数据的类型不做限定。例如输入数据的类型可以是图像数据、音频数据、词向量数据、以及表征方向、速度、加速度、时间的向量数据等等。

由于目标网络在训练完毕后,其内部的网络层参数通常已经固定,因此可以直接获得目标网络层的网络层参数。考虑到网络层参数的获得方法,已经是较为成熟的技术,本申请对此不再赘述。

为了获得目标网络层的对应输入数据的数据参数,可以按照目标网络模型中各个网络层的数据传递方向,依次确定各个网络层的对应输入数据的数据参数。

以输入数据为图像数据为例,原始图像在经过标准化处理后,作为第一个网络层的输入数据,因此可以将原始图像经过标准化处理后的图像高度、图像宽度以及图像通道数量确定为第一个网络层的对应输入数据的数据参数。然后根据第一个网络层的网络层参数(例如卷积核数量、卷积核长度、卷积核宽度、卷积步幅等,或者池化窗口的宽度、池化窗口的长度等),确定第一个网络层的输出图像的图像高度、图像宽度以及图像通道数量。由于该输出图像将作为第二网络层的输入数据,因此将该输出图像的图像高度、图像宽度以及图像通道数量确定为第二个网络层的对应输入数据的数据参数。依次类推,可以确定出各个网络层各自的对应输入数据的数据参数。

需要说明的,本申请在实施期间,可以通过多种不同的方式获得目标网络层的对应输入数据的数据参数,以及获得目标网络层的网络层参数,本申请对数据参数和网络层参数的具体获得方式不做限定。

步骤s12:根据所述数据参数和所述网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序。

其中,利用该目标网络层进行数据处理时所需的各个数值通常包括:该目标网络层的待处理数据(即该目标网络层的对应输入数据)、该目标网络层内的权重数据。这其中,如前所述,待处理数据可以是图像数据、音频数据、词向量数据、以及表征方向、速度、加速度、时间的向量数据等等。这其中,如果目标网络层是卷积层,则目标网络层内的权重数据可以是:卷积核矩阵中的各个数值。

示例地,参考图2,图2是本申请一实施例提出的待处理数据的布局顺序。如图2所示,待处理数据是张量形式,该张量的单列高度(height)为5,单列宽度(width)为6,通道数(channel)为3。如果确定出的布局顺序是:n-channel-height-width,即待处理数据的组别(n)作为第一优先级排列,通道(channel)作为第二优先级排列,单列高度(height)作为第三优先级排列,单列宽度(width)作为第四优先级排列。由于图2所示的待处理数据仅有一组,因此关于待处理数据的组别(n)的排列可忽略。按照该布局顺序对待处理数据进行重新排布,其排布结果如图2所示。

或者如果确定出的布局顺序是:height-width-channel-n,即单列高度(height)作为第一优先级排列,单列宽度(width)作为第二优先级排列,通道(channel)作为第三优先级排列,待处理数据的组别(n)作为第四优先级排列。由于图2所示的待处理数据仅有一组,因此关于待处理数据的组别(n)的排列可忽略。按照该布局顺序对待处理数据进行重新排布,其排布结果如图2所示。

示例地,参考图3,图3是本申请一实施例提出的目标网络层内的权重数据的布局顺序。如图3所示,以目标网络层是卷积层为例,该目标网络层内的权重数据是:卷积核矩阵中的各个数值。如图3所示,该卷积层包括两组卷积核矩阵,每组卷积核矩阵的单列高度(height)为3,单列宽度(width)也为3,通道数(channel)仍然为3。如果确定出的布局顺序是:n-channel-height-width,即卷积核矩阵的组别(n)作为第一优先级排列,通道(channel)作为第二优先级排列,单列高度(height)作为第三优先级排列,单列宽度(width)作为第四优先级排列。按照该布局顺序对该卷积层内的权重数据进行重新排布,其排布结果如图3所示。

或者如果确定出的布局顺序是:height-width-channel-n,即单列高度(height)作为第一优先级排列,单列宽度(width)作为第二优先级排列,通道(channel)作为第三优先级排列,卷积核矩阵的组别(n)作为第四优先级排列。按照该布局顺序对该卷积层内的权重数据进行重新排布,其排布结果如图3所示。

为了根据数据参数和网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序,在某些实施例中,可以执行以下子步骤:

子步骤s12-1:将所述数据参数和所述网络层参数输入预先训练的布局顺序预测模型,获得该布局顺序预测模型输出的布局顺序;

子步骤s12-2:将所述布局顺序预测模型所输出的布局顺序确定为:利用所述目标网络层进行数据处理时所需的各个数值的布局顺序。

其中,布局顺序预测模型的具体结构类型存在多种可能,优选用决策树模型。应当理解的,布局顺序预测模型的具体结构取决于模型训练前期的模型搭建环节,本申请对布局顺序预测模型的具体结构不做限定。

通过布局顺序预测模型确定布局顺序,可以借助神经网络的学习能力,在神经网络学习、训练结束后,将该神经网络作为布局顺序预测模型确定布局顺序,更有利于获得更准确的布局顺序。

此外,为了根据数据参数和网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序,还可以采用其他的确定方式。示例地,可以预先针对每种数据参数和网络层参数,通过多次试验,确定该种数据参数和网络层参数所对应的最佳布局顺序,然后将该种数据参数、网络层参数以及最佳布局顺序建立为先验知识规则。在执行上述步骤s12时,通过查询该先验知识规则,从而确定布局顺序。

需要说明的是,本申请在根据数据参数和网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序时,可以选用多种不同的具体实施方式,本申请对此不限定。

相比于相关技术中通过分析电子设备的硬件特点以确定布局顺序,整个网络的各个网络层对应同一个布局顺序。通过执行上述包括步骤s11和步骤s12的确定布局顺序的方法,以数据参数和网络层参数等细粒度参数为依据,为目标网络层确定对应的布局顺序。由于每个目标网络层各自的数据参数和网络层参数通常互不相同,或者不全部相同,因此本申请可以为每个目标网络层分别确定出相对个性化的布局顺序。在网络应用期间,各个目标网络层的所需数据可以按照各自对应的布局顺序进行重新排布,每个网络层的处理性能均被显著提高或最大化地提高,从而帮助电子设备显著提升网络模型处理能力,进而有利于扩大网络模型的应用范围。

此外,在根据数据参数和网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序之后,还可以将目标网络模型和该目标网络模型中每个目标网络层各自对应的布局顺序存入终端设备的存储器。

如此,该终端设备在利用该目标网络模型进行数据处理时,当待处理数据流转至目标网络层后,可以按照该目标网络层对应的布局顺序,对该目标网络层的所需数据(例如待处理数据,和/或,该目标网络层内的权重数据)进行重新排序,使得该目标网络层的处理性能被显著提高或最大化地提高,从而帮助终端设备显著提升网络模型处理能力。

其中,终端设备包括但不限于:手机、平板电脑、打卡设备、门禁设备、监控设备、文字扫描笔、物联网系统内的监测节点等。

以上,本申请通过一个或多个实施例介绍了确定布局顺序的方法的应用过程,在某些实施例中,确定布局顺序的方法的应用过程中涉及到布局顺序预测模型。以下,本申请通过实施例介绍该布局顺序预测模型的训练过程。应当理解的,上述确定布局顺序的方法的实施并非必须依赖于该布局顺序预测模型,如上所述,本申请还可通过其他具体实施方式执行上述步骤s12,因此该布局顺序预测模型的应用不应解释为对本申请的限定。

参考图4,图4是本申请一实施例提出的模型训练流程图。如图4所示,该训练流程包括以下步骤:

步骤s41:获得样本数据组,所述样本数据组中包括样本数据参数、样本网络层参数以及标签,该标签用于表征:该样本数据参数和该样本网络层参数对应的最优布局顺序。

其中,样本数据参数和样本网络层参数表征了一个样本网络层,标签表征了该样本网络层对应的最优布局顺序。如此,体现了本申请的主要发明构思:根据每个目标网络层的精细化参数,确定该目标网络层对应的最优布局顺序,即利用该目标网络层进行数据处理时所需的各个数值的最优布局顺序。

以样本网络层是卷积层、输入数据为图像数据为例,样本数据组中的样本数据参数可以是:图像高度、图像宽度以及图像通道数量。样本数据组中的样本网络层参数可以是:卷积核数量、卷积核长度、卷积核宽度以及卷积步幅。

其中,本申请在实施期间,标签的具体形式可以是数字。例如数字1代表的布局顺序为:n-channel-height-width;数字2代表的布局顺序为:n-channel-width-height;数字3代表的布局顺序为:n-height-channel-width;依次类推。如果某一组样本数据参数和样本网络层参数对应的最优布局顺序为:n-channel-width-heigh。则该组样本数据参数和样本网络层参数对应的标签是2。

为了获得样本数据组,或者,为了为一个样本数据参数和样本网络层参数确定对应的标签,即最优布局顺序,可以执行以下子步骤:

子步骤s41-1:针对一组样本数据参数和样本网络层参数,为其生成多种布局顺序;

子步骤s41-2:针对所述多种布局顺序中的每种布局顺序,按照该布局顺序对一个测试数据中的各个数值进行重新排布,并通过一个测试网络层,对重新排布后的所述测试数据进行处理,以获得用于表征处理性能的性能参数值,其中,所述测试网络层是该组样本数据参数和样本网络层参数所对应的网络层;

子步骤s41-3:根据多种布局顺序各自对应的性能参数值,将最优性能参数值所对应的布局顺序确定为:该组样本数据参数和样本网络层参数所对应的最优布局顺序。

示例地,针对一个样本网络层,首先确定其对应输入数据的样本数据参数,以及确定其样本网络层参数。然后为该样本数据参数和样本网络层参数生成多种布局顺序。

针对每种布局顺序,在一个电子设备(例如手机)内,按照该布局顺序,对一个测试数据(包括待处理数据和样本网络层内的权重数据)中的各个数值进行重新排布;并在该电子设备内,通过该样本网络层(即前述测试网络层)对重新排布后的测试数据进行处理,同时监测该处理过程,以获得性能参数值。

如此,针对多种布局顺序获得各自对应的性能参数值,将最优性能参数值所对应的布局顺序确定为:该组样本数据参数和样本网络层参数所对应的最优布局顺序。假设该组样本数据参数和样本网络层参数所对应的最优布局顺序为:n-height-channel-width,则该组样本数据参数和样本网络层参数所对应的标签是3。

其中,示例地,用于表征处理性能的性能参数值包括但不限于:处理耗时、内存占用率、cpu使用率等等。如果获得的性能参数值是处理耗时,则最优性能参数值是指:最短处理耗时。

步骤s42:基于所述样本数据组对预设模型进行训练,并确定该预设模型的精度。

其中,预设模型可以是特别搭建的模型,也可以选用现有的模型,例如决策树模型。本申请对预设模型的具体结构不限定。

在训练时,可以将样本数据组输入预设模型,获得预设模型输出的布局顺序预测结果。然后可以根据该布局顺序预测结果和样本数据组中的标签,确定损失值。其中,布局顺序预测结果和标签的差异越大,该损失值的数值越大。最后利用该损失值对预设模型的参数进行更新。

为了确定预设模型的精度,本申请可以从多种不同的确定方式中选择任一种确定方式。例如,可以利用多个测试数据组,对预设模型进行测试,并根据多个测试结果确定预设模型的精度。或者例如,可以根据该预设模型多次执行步骤s42所获得的多个损失值,确定该预设模型的精度。考虑到确定模型精度的方式,是较为成熟的技术,本申请对此不再赘述。

步骤s43:在所述精度达到精度阈值的情况下,将所述预设模型确定为所述布局顺序预测模型。

如图4所示,在预设模型的精度达到精度阈值的情况下,确定预设模型训练成功,将预设模型确定为所述布局顺序预测模型。在预设模型的精度未达到精度阈值的情况下,可以返回步骤s41,以准备下一个样本数据组,从而利用下一个样本数据组继续对预设模型进行训练。

通过在预设模型训练期间引入精度检验步骤,可以在预设模型的精度达到精度阈值时,及时终止训练,从而可以避免生成多余的样本数据组,从而节约样本成本。

以上,本申请通过一个或多个实施例介绍了确定布局顺序的方法。通过执行该确定布局顺序的方法,可以为目标网络模型中的每个目标网络层分别确定出相对个性化的布局顺序。在网络应用期间,各个目标网络层的所需数据可以按照各自对应的布局顺序进行重新排布,每个网络层的处理性能均被显著提高或最大化地提高,从而帮助电子设备显著提升网络模型处理能力,进而有利于扩大网络模型的应用范围。

以下,本申请通过一个或多个实施例介绍利用该目标网络模型进行数据处理的过程。应当理解的,上述确定布局顺序的方法与下述数据处理方法基于同一发明构思,即目标网络模型中的每个目标网络层分别对应相对个性化的布局顺序。

参考图5,图5是本申请一实施例提出的数据处理方法的流程图。如图5所示,该方法包括以下步骤:

步骤s51:针对目标网络模型中的每个网络层,获得该网络层的上一网络层所处理得到的待处理数据的中间结果。

示例地,该数据处理方法可应用于终端设备。例如在针对第二个网络层执行步骤s51时,该终端设备的存储器从该终端设备的处理器获得:第二个网络层的上一网络层所处理得到的待处理数据的中间结果。换言之,该终端设备的存储器可以该终端设备的处理器获得:第一个网络层的处理结果,即待处理数据的中间结果。

又例如在针对第三个网络层执行步骤s51时,该终端设备的存储器从该终端设备的处理器获得:第三个网络层的上一网络层所处理得到的待处理数据的中间结果。换言之,该终端设备的存储器可以该终端设备的处理器获得:第二个网络层的处理结果,即待处理数据的中间结果。

步骤s52:按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对所述中间结果中的各个数值进行重新排布,其中,多个网络层各自对应的布局顺序不全部相同。

其中,所述中间结果即是该网络层的待处理数据,是该网络层在进行数据处理时所需的数据之一。如此,需要按照该网络层对应的布局顺序,对该中间结果中的各个数值进行重新排布。

如前所述,网络层在进行数据处理时还可能需要:该网络层的网络层权重。在某些实施例中,可以在对中间结果中的各个数值进行重新排布时,同时按照该网络层对应的布局顺序,对该网络层的网络层权重进行重新排布。

在另一些实施例中,由于网络层的网络层权重是在目标网络模型训练完毕后即确定的,因此可以在对中间结果中的各个数值进行重新排布之前,预先按照各个网络层各自对应的布局顺序,对各个网络层内的网络层权重进行重新排布。如此,在执行步骤s52期间,可以直接获得该网络层的已经提前重排完毕的网络层权重,从而可以减小重排时间,进一步提高性能。

示例地,例如在针对第二个网络层执行步骤s52时,存储器可以按照利用第二个网络层进行数据处理时所需的各个数值的布局顺序,对中间结果中的各个数值进行重新排布。换言之,存储器可以按照第二个网络层对应的布局顺序,对第一个网络层所得到的中间结果中的各个数值进行重新排布。

同时,存储器可以按照第二个网络层对应的布局顺序,对第二个网络层内的网络层权重进行重新排布。或者直接获得第二个网络层的已经提前重排完毕的网络层权重。

又例如在针对第三个网络层执行步骤s52时,存储器可以按照利用第三个网络层进行数据处理时所需的各个数值的布局顺序,对中间结果中的各个数值进行重新排布。换言之,存储器可以按照第三个网络层对应的布局顺序,对第二个网络层所得到的中间结果中的各个数值进行重新排布。

同时,存储器可以按照第三个网络层对应的布局顺序,对第三个网络层内的网络层权重进行重新排布。或者直接获得第三个网络层的已经提前重排完毕的网络层权重。

步骤s53:通过该网络层,对重新排布后的所述中间结果进行处理,以获得该网络层所处理得到的所述待处理数据的另一中间结果。

示例地,例如在针对第二个网络层执行步骤s53时,存储器将第二个网络层的重新排布后的网络层权重、以及重新排布后的中间结果输入处理器,处理器根据重新排布后的网络层权重,对重新排布后的中间结果进行处理。例如处理器在处理期间,将中间结果的各个数值与网络层权重的各个权重数值对应相乘,以获得待处理数据的另一中间结果。

又例如在针对第三个网络层执行步骤s53时,存储器将第三个网络层的重新排布后的网络层权重、以及重新排布后的中间结果输入处理器,处理器根据重新排布后的网络层权重,对重新排布后的中间结果进行处理。例如处理器在处理期间,将中间结果的各个数值与网络层权重的各个权重数值对应相乘,以获得待处理数据的另一中间结果。

如前所述,考虑到网络层的网络层权重是在目标网络模型训练完毕后即确定的,因此为了减小重排时间,以进一步提高性能,可以在对所述待处理数据进行处理之前,预先针对每个网络层,按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对该网络层的网络层权重进行重新排序,以获得重新排布后的网络层权重;然后对该网络层的重新排布后的网络层权重进行存储。

示例地,可以将各个网络层的预先重新排布后的网络层权重存储至另一存储器。存储器在执行上述步骤s52期间,可以同时从另一存储器中读取对应网络层的预先重新排布后的网络层权重。例如在针对第二个网络层执行上述步骤s52期间,可以直接从另一存储器中读取第二个网络层的预先重新排布后的网络层权重。

通过执行上述包括步骤s51至步骤s53的数据处理方法,由于多个网络层各自对应的布局顺序不全部相同,换言之,每个网络层分别具有相对个性化的布局顺序。因此在网络应用期间,各个网络层的所需数据可以按照各自对应的布局顺序进行重新排布,每个网络层的处理性能均被显著提高或最大化地提高,从而帮助电子设备显著提升网络模型处理能力,进而有利于扩大网络模型的应用范围。

基于同一发明构思,本申请一实施例提供一种确定布局顺序的装置。参考图6,图6是本申请一实施例提出的确定布局顺序的装置的示意图。如图6所示,该装置包括:

参数获得模块61,用于针对目标网络模型中的目标网络层,获得该目标网络层的对应输入数据的数据参数,以及获得该目标网络层的网络层参数;

布局顺序确定模块62,用于根据所述数据参数和所述网络层参数,确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序。

可选地,所述目标网络层为卷积层,所述目标网络层的对应输入数据为图像数据;

所述目标网络层的对应输入数据的数据参数包括:图像高度、图像宽度以及图像通道数量;

所述目标网络层的网络层参数包括:卷积核数量、卷积核长度、卷积核宽度以及卷积步幅。

可选地,所述装置还包括:

存储模块,用于在确定利用该目标网络层进行数据处理时所需的各个数值的布局顺序之后,将所述目标网络模型和所述目标网络模型中每个目标网络层各自对应的布局顺序存入终端设备的存储器。

可选地,所述布局顺序确定模块具体用于:将所述数据参数和所述网络层参数输入预先训练的布局顺序预测模型,获得该布局顺序预测模型输出的布局顺序;将所述布局顺序预测模型所输出的布局顺序确定为:利用所述目标网络层进行数据处理时所需的各个数值的布局顺序。

可选地,所述装置还包括:

样本获得模块,用于在将所述数据参数和所述网络层参数输入预先训练的布局顺序预测模型之前,获得样本数据组,所述样本数据组中包括样本数据参数、样本网络层参数以及标签,该标签用于表征:该样本数据参数和该样本网络层参数对应的最优布局顺序;

模型训练模块,用于基于所述样本数据组对预设模型进行训练,并确定该预设模型的精度;

模型确定模块,用于在所述精度达到精度阈值的情况下,将所述预设模型确定为所述布局顺序预测模型。

可选地,所述样本获得模块具体用于:针对一组样本数据参数和样本网络层参数,为其生成多种布局顺序;针对所述多种布局顺序中的每种布局顺序,按照该布局顺序对一个测试数据中的各个数值进行重新排布,并通过一个测试网络层,对重新排布后的所述测试数据进行处理,以获得用于表征处理性能的性能参数值,其中,所述测试网络层是该组样本数据参数和样本网络层参数所对应的网络层;根据多种布局顺序各自对应的性能参数值,将最优性能参数值所对应的布局顺序确定为:该组样本数据参数和样本网络层参数所对应的最优布局顺序。

基于同一发明构思,本申请一实施例提供一种数据处理装置。参考图7,图7是本申请一实施例提出的数据处理装置的示意图。如图7所示,该装置包括:

中间结果获得模块71,用于针对目标网络模型中的每个网络层,获得该网络层的上一网络层所处理得到的待处理数据的中间结果;

中间结果排布模块72,用于按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对所述中间结果中的各个数值进行重新排布,其中,多个网络层各自对应的布局顺序不全部相同;

处理模块73,用于通过该网络层,对重新排布后的所述中间结果进行处理,以获得该网络层所处理得到的所述待处理数据的另一中间结果。

可选地,所述装置应用于终端设备;所述中间结果获得模块具体用于:针对目标网络模型中的每个网络层,使所述终端设备的存储器从所述终端设备的处理器获得:该网络层的上一网络层所处理得到的待处理数据的中间结果;

所述排布模块具体用于:使所述存储器按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对所述中间结果中的各个数值进行重新排布;

所述处理模块具体用于:使所述存储器将所述网络层的重新排布后的网络层权重、以及重新排布后的所述中间结果输入所述处理器,以使得所述处理器根据重新排布后的所述网络层权重,对重新排布后的所述中间结果进行处理。

可选地,所述装置还包括:

网络层权重排布模块,用于在对所述待处理数据进行处理之前,预先针对每个网络层,按照利用该网络层进行数据处理时所需的各个数值的布局顺序,对该网络层的网络层权重进行重新排序,以获得重新排布后的网络层权重;

网络层权重存储模块,用于对该网络层的重新排布后的网络层权重进行存储。

基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的确定布局顺序的方法中的步骤,或者该程序被处理器执行时实现如本申请上述任一实施例所述的数据处理方法中的步骤。

基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的确定布局顺序的方法中的步骤。

基于同一发明构思,本申请另一实施例提供一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的数据处理方法中的步骤。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种确定布局顺序及数据处理的方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1