一种基于神经网络的调整方法、装置及设备与流程

文档序号:17727324发布日期:2019-05-22 02:36阅读:131来源:国知局
一种基于神经网络的调整方法、装置及设备与流程

本发明涉及机器学习技术领域,特别是涉及一种基于神经网络的调整方法、装置及设备。



背景技术:

神经网络已经广泛应用于机器学习领域,利用神经网络可以对各种数据进行分析处理,比如,提取图像特征、人脸识别等等。通常情况下,对神经网络训练完成后,便可以利用该神经网络对输入数据进行处理,得到的输出数据即为处理结果。

上述方案中,神经网络训练完成后,网络中的层级、计算参数等不再改变,针对大量数据,利用同一神经网络,导致该神经网络对数据的适应性较差。



技术实现要素:

本发明实施例的目的在于提供一种基于神经网络的调整方法、装置及设备,以提高神经网络对数据的适应性。

为达到上述目的,本发明实施例提供了一种基于神经网络的调整方法,包括:

获取待调整的神经网络及输入数据;

将所述待调整的神经网络输入推理引擎;

利用所述推理引擎的组件,对所述待调整的神经网络进行多次调整,得到每次调整后的神经网络;

针对每次调整后的神经网络,将所述输入数据输入该次调整后的神经网络,得到该次输出数据;

将每次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

可选的,在所述获取待调整的神经网络及输入数据之后,还可以包括:

根据预先获取的配置信息,对所述输入数据进行调整,得到调整后的输入数据;

所述针对每次调整后的神经网络,将所述输入数据输入该次调整后的神经网络,得到该次输出数据,可以包括:

针对每次调整后的神经网络,将所述调整后的输入数据输入该次调整后的神经网络,得到该次输出数据。

可选的,所述根据预先获取的配置信息,对所述输入数据进行调整,得到调整后的输入数据,可以包括:

根据预先获取的配置信息,对所述输入数据进行以下至少一种调整,得到调整后的输入数据:

对所述输入数据进行数据类型调整;

对所述输入数据进行分辨率调整;

对所述输入数据进行拼帧处理。

可选的,在所述利用所述推理引擎的组件,对所述待调整的神经网络进行多次调整,得到每次调整后的神经网络之前,还可以包括:

在推理引擎的组件中,确定适用于所述待调整的神经网络的多个组件;其中,所述推理引擎的组件包括以下三种组件中至少一种:

对神经网络的批处理数据量进行调整的组件;对神经网络层级进行融合的组件;对神经网络运算单元进行调整的组件;

若确定出不同种类的组件,则将所述不同种类的组件进行组合,得到多个组件组合;

所述利用所述推理引擎的组件,对所述待调整的神经网络进行多次调整,得到每次调整后的神经网络,包括:

每次利用一个组件组合对所述待调整的神经网络进行调整,得到每次调整后的神经网络。

可选的,所述对神经网络的批处理数据量进行调整的组件中包含多个组件,其中不同组件将神经网络的批处理数据量调整为不同数值;

所述对神经网络层级进行融合的组件,包括:对神经网络层级进行水平融合的组件、对神经网络层级进行垂直融合的组件;

所述对神经网络运算单元进行调整的组件,包括:对神经网络的汇编指令集进行调整的组件;对神经网络各层级间的对齐方式进行调整的组件;对神经网络的卷积算法进行调整的组件。

可选的,在所述确定最优次输出数据对应的调整后的神经网络之后,还可以包括:

记录调整得到最优神经网络所利用的组件组合,所述最优神经网络为所述优次输出数据对应的调整后的神经网络,所述组件组合中包括顺序排列的多个组件。

可选的,在所述确定最优次输出数据对应的调整后的神经网络之后,还可以包括:

记录调整得到最优神经网络所利用的组件,所述最优神经网络为所述优次输出数据对应的调整后的神经网络。

为达到上述目的,本发明实施例还提供了一种基于神经网络的调整装置,包括:

获取模块,用于获取待调整的神经网络及输入数据;

第一输入模块,用于将所述待调整的神经网络输入推理引擎;

第一调整模块,用于利用所述推理引擎的组件,对所述待调整的神经网络进行多次调整,得到每次调整后的神经网络;

第二输入模块,用于针对每次调整后的神经网络,将所述输入数据输入该次调整后的神经网络,得到该次输出数据;

第一确定模块,用于将每次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

可选的,所述装置还可以包括:

第二调整模块,用于根据预先获取的配置信息,对所述输入数据进行调整,得到调整后的输入数据;

所述第二输入模块,具体可以用于:

针对每次调整后的神经网络,将所述调整后的输入数据输入该次调整后的神经网络,得到该次输出数据。

可选的,所述第二调整模块,具体可以用于:根据预先获取的配置信息,对所述输入数据进行以下至少一种调整,得到调整后的输入数据:

对所述输入数据进行数据类型调整;

对所述输入数据进行分辨率调整;

对所述输入数据进行拼帧处理。

可选的,所述装置还可以包括:

第二确定模块,用于在推理引擎的组件中,确定适用于所述待调整的神经网络的多个组件;其中,所述推理引擎的组件包括以下三种组件中至少一种:对神经网络的批处理数据量进行调整的组件;对神经网络层级进行融合的组件;对神经网络运算单元进行调整的组件;

组合模块,用于确定出不同种类的组件时,将所述不同种类的组件进行组合,得到多个组件组合;

所述第一调整模块,具体可以用于:每次利用一个组件组合对所述待调整的神经网络进行调整,得到每次调整后的神经网络。

可选的,所述对神经网络的批处理数据量进行调整的组件中包含多个组件,其中不同组件将神经网络的批处理数据量调整为不同数值;

所述对神经网络层级进行融合的组件,包括:对神经网络层级进行水平融合的组件、对神经网络层级进行垂直融合的组件;

所述对神经网络运算单元进行调整的组件,包括:对神经网络的汇编指令集进行调整的组件;对神经网络各层级间的对齐方式进行调整的组件;对神经网络的卷积算法进行调整的组件。

可选的,所述装置还可以包括:

第一记录模块,用于记录调整得到最优神经网络所利用的组件组合,所述最优神经网络为所述优次输出数据对应的调整后的神经网络,所述组件组合中包括顺序排列的多个组件。

可选的,所述装置还可以包括:

第二记录模块,用于记录调整得到最优神经网络所利用的组件,所述最优神经网络为所述优次输出数据对应的调整后的神经网络。

为达到上述目的,本发明实施例还提供了一种电子设备,包括处理器和存储器,其中,

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一种基于神经网络的调整方法。

为达到上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种基于神经网络的调整方法。

应用本发明所示实施例,利用推理引擎的组件,对待调整的神经网络进行多次调整,每次调整后,将输入数据输入至调整后的神经网络,得到输出数据,将每次得到的输出数据进行对比,确定最优次输出数据对应的调整后的神经网络;最优次输出数据对应的调整后的神经网络,也就是最适应该输入数据的神经网络,因此,利用本方案,提高了神经网络对数据的适应性。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本发明实施例提供的基于神经网络的调整方法的第一种流程示意图;

图2为本发明实施例提供的一种神经网络层级水平融合方式示意图;

图3为本发明实施例提供的一种神经网络层级垂直融合方式示意图;

图4为本发明实施例提供的基于神经网络的调整方法的第二种流程示意图;

图5为本发明实施例提供的一种基于神经网络的调整装置的结构示意图;

图6为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

为了解决上述技术问题,本发明实施例提供了一种基于神经网络的调整方法、装置及设备。该方法及装置可以应用于各种电子设备,具体不做限定。

下面首先对本发明实施例提供的一种基于神经网络的调整方法进行详细说明。

图1为本发明实施例提供的基于神经网络的调整方法的第一种流程示意图,包括:

s101:获取待调整的神经网络及输入数据。

s102:将该待调整的神经网络输入推理引擎。

s103:利用推理引擎的组件,对该待调整的神经网络进行多次调整,得到每次调整后的神经网络。

s104:针对每次调整后的神经网络,将该输入数据输入该次调整后的神经网络,得到该次输出数据。

s105:将每次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

应用本发明所示实施例,利用推理引擎的组件,对待调整的神经网络进行多次调整,每次调整后,将输入数据输入至调整后的神经网络,得到输出数据,将每次得到的输出数据进行对比,确定最优次输出数据对应的调整后的神经网络;最优次输出数据对应的调整后的神经网络,也就是最适应该输入数据的神经网络,因此,利用本方案,提高了神经网络对数据的适应性。

下面对图1所示实施进行详细说明:

s101:获取待调整的神经网络及输入数据。

本发明实施例中的“待调整的神经网络”为训练完成的神经网络。

本发明实施例中的“输入数据”可以为视频、图像、音频等多媒体数据,或者,也可以为其他,具体不做限定。如果获取到的数据为封装、编码后的数据,则需要对其进行解封装、解码操作,得到输入数据。

s102:将该待调整的神经网络输入推理引擎。

推理引擎也称推理机,其中包含多个组件,利用这些组件可以对神经网络进行调整。

作为一种实施方式,在将待调整的神经网络输入推理引擎后,可以先判断是否记录了该待调整的神经网络对应的推理引擎组件、或者对应的推理引擎组件组合,组件组合中包括顺序排列的多个组件:如果记录了对应的组件,则直接利用记录的组件对该待调整的神经网络进行调整;如果记录了组件组合,则按照组件组合中的顺序,利用组件组合中的多个组件依次对待调整的神经网络进行调整;如果未记录,再执行后续方案。

s103:利用该推理引擎的组件,对该待调整的神经网络进行多次调整,得到每次调整后的神经网络。

作为一种实施方式,在s103之前,可以先在推理引擎的组件中,确定适用于该待调整的神经网络的多个组件。推理引擎的组件包括以下三种组件中至少一种:对神经网络的批处理数据量进行调整的组件;对神经网络层级进行融合的组件;对神经网络运算单元进行调整的组件。

在本实施例中,每一种组件可以包括多个组件,比如,对神经网络的批处理数据量进行调整的组件中包含多个组件,其中不同组件将神经网络的批处理数据量调整为不同数值。

批处理数据量,也就是batch,或者称为batchsize,是指一次计算处理数据的量,比如一次计算同时处理n张图像,则batch/batchsize=n。一般来说,神经网络可以有多种batch选择,比如单batch(batch=1)、多batch;在多batch的情况下,batch一般为偶数,比如,2,4,6,8等,具体不做限定。

对神经网络的批处理数据量进行调整的多个组件可以包括:将batch调整为1的组件,将batch调整为2的组件,将batch调整为4的组件,等等。

在这些对batch进行调整的组件中,选择适用于待调整的神经网络的一个或多个组件。一般来说,待调整的神经网络适用于各种batch,或者,在一些内存空间较小的情况下,batch的数值不能过大。

如上所述,每一种组件可以包括多个组件,比如,对神经网络层级进行融合的组件,可以包括下述组件中的一个或多个:对神经网络层级进行水平融合的组件、对神经网络层级进行垂直融合的组件、对神经网络层级进行rpn层融合的组件、对神经网络层级进行depth-wise卷积融合的组件、对神经网络层级进行1*1卷积融合的组件,等等,具体不做限定。比如,水平融合可以如图2中所示,将conv(卷积)层21与conv22层融合,得到conv2层和slice(切片)层;垂直融合可以图3中所示,将conv1层与relu(激活)层融合,得到conv-relu层。

一般来说,有的神经网络不适用于水平融合,有的神经网络不适用于垂直融合,等等,因此,这里需要在上述多个对神经网络层级进行融合的组件中,选择适用于待调整的神经网络的一个或多个组件。

如上所述,每一种组件可以包括多个组件,比如,对神经网络运算单元进行调整的组件,可以包括下述组件中的一个或多个:对神经网络的汇编指令集进行调整的组件;对神经网络各层级间的对齐方式进行调整的组件;对神经网络的卷积算法进行调整的组件,等等。

在此基础上,还可以对组件进行更详细的划分:如果汇编指令集有多种,则每种汇编指令集可以对应一个组件,如果神经网络各层级间的对齐方式有多种,则每种对齐方式可以对应一个组件,如果神经网络的卷积算法有多种,则每种卷积算法可以对应一个组件。

本领域技术人员可以理解,适用于待调整的神经网络的汇编指令集与硬件环境有关,因此,可以预先确定待调整的神经网络运行时所处的硬件环境,并选择适用于该硬件环境的汇编指令集,进而在对汇编指令集进行调整的组件中,选择适用于待调整的神经网络的一个或多个组件。

作为一种实施方式,可以预先获取配置信息,该配置信息中包括该待调整的神经网络运行时所处的硬件环境信息,根据该配置信息,选择适用于该待调整的神经网络的汇编指令集,进而选择出对该待调整的神经网络汇编指令集进行调整的组件。

本领域技术人员可以理解,神经网络各网络层级的中间值的对齐方式也会影响计算效率。举个例子,一个神经元一次可以读取n位数据,而传递到该神经元的数据只有n-1位,则该神经元的一次读取到的数据量降低,导致计算效率降低。而本实施方式中,预先确定适用于该待调整的神经网络各层级间的对齐方式,选择该对齐方式对应的组件对待调整的神经网络进行调整,这样使得该神经元每次都读取到n位数据,提高了计算效率。

神经网络的卷积算法有多种,比如,矩阵运算方法、fft(fastfouriertransformation,离散傅氏变换)算法、winograd快速傅氏变换等,不再一一列举。每种卷积算法可以对应一个组件,比如矩阵运算方法对应的组件可以将神经网络的卷积算法调整为矩阵运算方法,fft算法对应的组件可以将神经网络的卷积算法调整为fft算法,等等,不再一一列举。

如果确定出一种组件下的多个组件,比如,确定出以下三个组件:将batch调整为1的组件、将batch调整为2的组件、将batch调整为4的组件,这三个组件属于同一种组件;这种情况下,每次利用一个组件对待调整的神经网络进行调整,也就是进行三次调整,每次调整后,将输入数据输入该次调整后的神经网络,得到该次输出数据。再将三次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

再举一例,假设确定出以下两个组件:对神经网络层级进行水平融合的组件、对神经网络层级进行垂直融合的组件,这两个组件属于同一种组件;这种情况下,每次利用一个组件对待调整的神经网络进行调整,也就是进行两次调整,每次调整后,将输入数据输入该次调整后的神经网络,得到该次输出数据。再将两次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

如果确定出不同种类的组件,则将所述不同种类的组件进行组合,得到多个组件组合。比如,上述对神经网络的批处理数据量进行调整的组件、对神经网络层级进行融合的组件、对神经网络运算单元进行调整的组件,这三种组件属于不同种类的组件。

假设确定出对神经网络的batch进行调整的组件有l个,确定出对神经网络层级进行融合的组件有m个,确定出对神经网络运算单元进行调整的组件有n个,如果不考虑组合中各组件的排列顺序,则可得到l*m*n个组件组合,如果考虑组合中各组件的排列顺序,则可得到个组件组合。或者,这些组件组合中有些组件不兼容,比如,某些对神经网络的卷积算法进行调整的组件、以及某些对神经网络层级进行融合的组件不能同时对同一神经网络进行调整,则可以在这些组件组合中删除这种不兼容的组件组合。

另外,对神经网络运算单元进行调整的组件中,对神经网络的汇编指令集进行调整的组件、对神经网络各层级间的对齐方式进行调整的组件、对神经网络的卷积算法进行调整的组件,也可以认为是不同种类的组件。

这种情况下,在上述例子中,假设上述n个对神经网络运算单元进行调整的组件中,包含n1个对神经网络的汇编指令集进行调整的组件、n2个对神经网络各层级间的对齐方式进行调整的组件、n3个对神经网络的卷积算法进行调整的组件;如果不考虑组合中各组件的排列顺序,则可得到l*m*n1*n2*n3个组件组合,如果考虑组合中各组件的排列顺序,则可得到个组件组合。或者,这些组件组合中有些组件不兼容,比如,某些对神经网络的卷积算法进行调整的组件、以及某些对神经网络层级进行融合的组件不能同时对同一神经网络进行调整,则可以在这些组件组合中删除这种不兼容的组件组合。

或者,也可以不必穷尽全部组件组合,仅得到若干个组件组合即可,组合数量不做限定。另外,组合中组件的数量也不一定为上述内容中的三个或者五个,也可以为两个、四个,等等,具体不做限定。或者,在确定出不同种类的组件的情况下,也可以不对这些组件进行组合;这样,s103中,可以利用每个组件组合,依次对该待调整的神经网络进行调整,也可以利用每个组件(未组合的情况),依次对该待调整的神经网络进行调整。

举个例子,假设确定出三种组件,第一种组件中包括两个组件:将batch调整为1的组件,将batch调整为2的组件;第二种组件中包括两个组件:对神经网络层级进行水平融合的组件、对神经网络层级进行垂直融合的组件;第三种组件中包括两个组件:将神经网络的卷积算法调整为矩阵运算方法的组件,将神经网络的卷积算法调整为fft算法的组件。

这种情况下,可以将三种组件进行组合,比如{将batch调整为1的组件,对神经网络层级进行水平融合的组件,将神经网络的卷积算法调整为fft算法的组件};或者,也可以将两种组件进行组合,比如{将batch调整为1的组件,对神经网络层级进行水平融合的组件}、{对神经网络层级进行垂直融合的组件,将神经网络的卷积算法调整为fft算法的组件};或者也可以不进行组合。

比如,可以利用如下组件及组件组合依次对待调整的神经网络进行调整:{将batch调整为1的组件},{将batch调整为2的组件,对神经网络层级进行水平融合的组件},{将batch调整为1的组件,对神经网络层级进行垂直融合的组件},{对神经网络层级进行垂直融合的组件,将神经网络的卷积算法调整为fft算法的组件},{对神经网络层级进行垂直融合的组件},等等。组件组合中的顺序、数量及种类具体不做限定。

大括号中包含的组件为进行一次调整用到的组件,每次调整可以按照大括号中的顺序,利用大括号中的各组件分别对待调整的神经网络进行调整。

s104:针对每次调整后的神经网络,将该输入数据输入该次调整后的神经网络,得到该次输出数据。

需要说明的是,每次调整都是独立调整,并不基于上一次调整后的神经网络继续进行调整。或者说,每次对神经网络进行调整,将输入数据输入神经网络,得到输出数据后,再将该神经网络恢复为调整前的状态。

s105:将每次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

确定最优次输出数据可以基于不同指标,该指标可以根据实际情况进行设定,比如耗时最少,或者,准确性最高,等等,具体不做限定。最优次输出数据对应的调整后的神经网络可以认为是最适应该输入数据的神经网络,因此,利用本方案,提高了神经网络对数据的适应性。后续利用该最优次输出数据对应的调整后的神经网络对该输入数据进行处理,可以达到更好的处理效果。

为了方便描述,将该最优次输出数据对应的调整后的神经网络称为最优神经网络。作为一种实施方式,在确定出最优神经网络之后,可以记录调整得到该最优神经网络所利用的组件或者组件组合,所述组件组合中包括顺序排列的多个组件。

上述例子中,每次利用一个大括号中的组件对待调整的神经网络进行调整,这样就是记录调整得到最优神经网络的大括号中的内容,大括号中可以包含一个组件,也可以为一个组件组合,若为一个组件组合,还可以记录组合中各组件的顺序。

应用本实施方式,记录调整得到该最优神经网络所利用的组件或者组件组合,一方面,后续再对相同或类似的神经网络进行调整时,便可以直接利用记录的组件或者组件组合对该神经网络进行调整,不需要再反复调整,提高了推理引擎的工作效率;另一方面,不需要存储调整后的神经网络,仅记录组件或者组件组合,减少了存储数据量。

作为一种实施方式,不仅可以对神经网络进行调整,还可以对输入数据进行调整。具体的,可以在s101之后,根据预先获取的配置信息,对所述输入数据进行调整,得到调整后的输入数据;s104可以包括:针对每次调整后的神经网络,将所述调整后的输入数据输入该次调整后的神经网络,得到该次输出数据。

作为一种实施方式,可以根据预先获取的配置信息,对所述输入数据进行以下至少一种调整,得到调整后的输入数据:

对所述输入数据进行数据类型调整;

对所述输入数据进行分辨率调整;

对所述输入数据进行拼帧处理。

配置信息中可以包括数据类型信息、分辨率信息、网络延迟信息、计算延迟信息等。举例来说,可以根据该配置信息,对所述输入数据进行数据类型调整:比如,可以根据该配置信息,确定是否需要将输入数据由float类型转换为char类型,或者,是否需要将数据补齐patch(补丁)等。

或者,可以根据预先获取的配置信息,对所述输入数据进行分辨率调整:比如,可以根据该配置信息,选择分辨率的具体数据、以及选择做上采样还是下采样,等等。

或者,可以根据预先获取的配置信息,对所述输入数据进行拼帧处理:比如,可以根据该配置信息,确定是否需要将多帧图像拼成一帧进行处理,等等。

经过上述调整过程之后得到调整后的输入数据。将调整后的输入数据输入调整后的神经网络,可以进一步提高二者的适应性。

本实施方式可以如图4所示,包括:

s401:获取待调整的神经网络及输入数据。

s402:根据预先获取的配置信息,对该输入数据进行调整,得到调整后的输入数据。

s403:将该待调整的神经网络输入推理引擎。

s404:利用该推理引擎的组件,对该待调整的神经网络进行多次调整,得到每次调整后的神经网络。

s405:针对每次调整后的神经网络,将该调整后的输入数据输入该次调整后的神经网络,得到该次输出数据。

s406:将每次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

s402并不限定在s403之前执行,也可以在s403或者s404之后执行。

如上所述,确定最优次输出数据可以基于不同指标,该指标可以根据实际情况进行设定。假设指标为耗时最少,可以对每次调整利用的组件、以及该次调整后对输入数据进行处理的耗时进行记录。举例来说,该记录可以如表1所示,表1中记录的耗时为对输入数据进行处理的单帧耗时,举例来说,如果输入数据为4帧数据,则将处理这4帧数据的总耗时除以4后得到的数值记录在表1中。

表1

下面结合表1进行说明:

1、获取待调整的神经网络a及输入数据;

2、将该输入数据的分辨率调整为1920*1080;

3、确定适用于待调整的神经网络a的组件有两种,第一种包括:将batch调整为1的组件、将batch调整为2的组件,第二种包括:对神经网络层级进行垂直融合的组件。将这两种组件进行组合,得到了表1中的两种组件组合、以及两种单独的组件;

4、利用这两种组件组合、以及两种单独的组件分别对神经网络a进行四次调整,并将调整分辨率后的输入数据分别输入每次调整后的神经网络中,得到四次输出数据;

5、确定最优次输出数据的指标为耗时最短,因此表1中利用{将batch调整为1的组件,对神经网络层级进行垂直融合的组件}的组件组合对神经网络a进行调整,得到的是最适用于该输入数据的神经网络。

与上述方法实施例相对应,本发明实施例还提供了一种基于神经网络的调整装置。

图5为本发明实施例提供的一种基于神经网络的调整装置的结构示意图,包括:

获取模块501,用于获取待调整的神经网络及输入数据;

第一输入模块502,用于将所述待调整的神经网络输入推理引擎;

第一调整模块503,用于利用所述推理引擎的组件,对所述待调整的神经网络进行多次调整,得到每次调整后的神经网络;

第二输入模块504,用于针对每次调整后的神经网络,将所述输入数据输入该次调整后的神经网络,得到该次输出数据;

第一确定模块505,用于将每次输出数据进行对比,确定最优次输出数据对应的调整后的神经网络。

作为一种实施方式,所述装置还可以包括:

第二调整模块(图中未示出),用于根据预先获取的配置信息,对所述输入数据进行调整,得到调整后的输入数据;

第二输入模块504,具体可以用于:

针对每次调整后的神经网络,将所述调整后的输入数据输入该次调整后的神经网络,得到该次输出数据。

作为一种实施方式,所述第二调整模块,具体可以用于:根据预先获取的配置信息,对所述输入数据进行以下至少一种调整,得到调整后的输入数据:

对所述输入数据进行数据类型调整;

对所述输入数据进行分辨率调整;

对所述输入数据进行拼帧处理。

作为一种实施方式,所述装置还可以包括:第二确定模块和组合模块(图中未示出),其中,

第二确定模块,用于在推理引擎的组件中,确定适用于所述待调整的神经网络的多个组件;其中,所述推理引擎的组件包括以下三种组件中至少一种:对神经网络的批处理数据量进行调整的组件;对神经网络层级进行融合的组件;对神经网络运算单元进行调整的组件;

组合模块,用于确定出不同种类的组件时,将所述不同种类的组件进行组合,得到多个组件组合;

第一调整模块503,具体可以用于:每次利用一个组件组合对所述待调整的神经网络进行调整,得到每次调整后的神经网络。

作为一种实施方式,所述对神经网络的批处理数据量进行调整的组件中包含多个组件,其中不同组件将神经网络的批处理数据量调整为不同数值;

所述对神经网络层级进行融合的组件,包括:对神经网络层级进行水平融合的组件、对神经网络层级进行垂直融合的组件;

所述对神经网络运算单元进行调整的组件,包括:对神经网络的汇编指令集进行调整的组件;对神经网络各层级间的对齐方式进行调整的组件;对神经网络的卷积算法进行调整的组件。

作为一种实施方式,所述装置还可以包括:

第一记录模块(图中未示出),用于记录调整得到最优神经网络所利用的组件组合,所述最优神经网络为所述优次输出数据对应的调整后的神经网络,所述组件组合中包括顺序排列的多个组件。

作为一种实施方式,所述装置还可以包括:

第二记录模块(图中未示出),用于记录调整得到最优神经网络所利用的组件,所述最优神经网络为所述优次输出数据对应的调整后的神经网络。

应用本发明图5所示实施例,利用推理引擎的组件,对待调整的神经网络进行多次调整,每次调整后,将输入数据输入至调整后的神经网络,得到输出数据,将每次得到的输出数据进行对比,确定最优次输出数据对应的调整后的神经网络;最优次输出数据对应的调整后的神经网络,也就是最适应该输入数据的神经网络,因此,利用本方案,提高了神经网络对数据的适应性。

本发明实施例还提供了一种电子设备,如图6所示,包括处理器601和存储器602,其中,

存储器602,用于存放计算机程序;

处理器601,用于执行存储器602上所存放的程序时,实现上述任一种基于神经网络的调整方法。

上述电子设备提到的存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种基于神经网络的调整方法。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图5所示的基于神经网络的调整装置实施例、图6所示的电子设备实施例、上述计算机可读存储介质实施例而言,由于其基本相似于图1-4所示的基于神经网络的调整方法实施例,所以描述的比较简单,相关之处参见图1-4所示的基于神经网络的调整方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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