神经网络层运算、模型训练方法、装置及设备与流程

文档序号:22679112发布日期:2020-10-28 12:38阅读:125来源:国知局
神经网络层运算、模型训练方法、装置及设备与流程

本发明涉及计算机处理的技术领域,尤其涉及神经网络层运算、模型训练方法、装置及设备。



背景技术:

神经网络又称为人工神经网络,是机器学习和深度学习的基础,目前主要有cnn(卷积神经网络)、rnn(循环神经网络)、dnn(深度神经网络)等。可以利用样本数据对神经网络进行训练,获得训练好的神经网络模型,以利用该神经网络模型对新的数据进行预测等。譬如,预先基于大量的训练样本进行卷积神经网络模型的训练,生成识别图像中物体类别的检测模型。利用卷积神经网络模型可以识别出待识别图像的物体类别。

某些神经网络的网络层中,所涉及的函数中可能使用了以自然常数e为底的指数函数(exp)。例如,诸如sigmoid函数或者softmax函数的激活函数中包含第二exp算法,也可以称为标准exp算法、默认exp算法。在模型训练阶段或模型应用阶段,会执行网络层中第二exp算法,虽然第二exp算法的精度高,但是计算速度慢,在单指令流多数据流(simd)的处理器中也无法并行计算。而目前采用带固定修正参数的第一exp算法(也可以称为快速exp算法)代替标准exp算法,虽然解决了计算速度问题,但存在精度误差。



技术实现要素:

为克服相关技术中存在的问题,本发明提供了神经网络层运算、模型训练方法、装置及设备。

根据本发明实施例的第一方面,提供一种神经网络层运算方法,所述方法包括:

在模型训练或模型应用阶段,执行当前网络层所使用的第一exp算法,得到所述当前网络层执行所述第一exp算法的运算之后的结果,

所述第一exp算法包含目标参数,所述目标参数参与所述第一exp算法的运算、且所述目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,所述第一exp算法为第二exp算法的快速算法。

根据本发明实施例的第二方面,提供一种模型训练方法,所述方法包括:

获取第一exp算法的训练样本集,所述训练样本集包括:第二神经网络模型中指定网络层使用的第二exp算法的输入数据;所述第一exp算法为第二exp算法的快速算法;

针对训练样本集中的每一样本,计算该样本分别运行所述第一exp算法和所述第二exp算法的函数值之间的误差值;

根据所述训练样本集中每一样本对应的误差值,调整所述第一exp算法中的参数,直到收敛条件满足,将当前确定的参数确定为所述第一exp算法的目标参数;

以与所述第二神经网络模型相同的网络结构、以及将指定网络层的第二exp算法替换为包含目标参数的第一exp算法,进行模型训练,获得第一神经网络模型。

根据本发明实施例的第三方面,提供一种神经网络层运算装置,所述装置包括:

处理模块,用于在模型训练或模型应用阶段,执行当前网络层所使用的第一exp算法,得到所述当前网络层执行所述第一exp算法的运算之后的结果,

所述第一exp算法包含目标参数,所述目标参数参与所述第一exp算法的运算、且所述目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,所述第一exp算法为第二exp算法的快速算法。

根据本发明实施例的第四方面,提供一种模型训练装置,所述装置包括:

样本集获取模块,用于获取第一exp算法的训练样本集,所述训练样本集包括:第二神经网络模型中指定网络层使用的第二exp算法的输入数据;所述第一exp算法为第二exp算法的快速算法;

误差值计算模块,用于针对训练样本集中的每一样本,计算该样本分别运行所述第一exp算法和所述第二exp算法的函数值之间的误差值;

参数调整模块,用于根据所述训练样本集中每一样本对应的误差值,调整所述第一exp算法中的参数,直到收敛条件满足,将当前确定的参数确定为所述第一exp算法的目标参数;

模型训练模块,用于以与所述第二神经网络模型相同的网络结构、以及将指定网络层的第二exp算法替换为包含目标参数的第一exp算法,进行模型训练,获得第一神经网络模型。

根据本发明实施例的第五方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述任一项所述方法。

本发明的实施例提供的技术方案可以包括以下有益效果:

本实施例在模型训练或模型应用阶段,执行当前网络层所使用的第一exp算法,得到当前网络层执行第一exp算法的运算之后的结果,由于第一exp算法包含目标参数、且目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,第一exp算法是第二exp算法的快速算法,因此,利用第一exp算法替换第二exp算法,在执行使用第一exp算法的当前网络层的运算时,可以提高计算效率,同时减少精度误差。

本实施例以第一exp算法的训练样本集作为第一exp算法和第二exp算法的输入数据,确定第一exp算法和第二exp算法的函数值间的差值,并依据差值来调整第一exp算法的参数,从而获得用来替换第二exp算法的第一exp算法,在模型训练阶段,通过将包含目标参数的第一exp算法替换指定网络层使用的第二exp算法,提高指定网络层计算效率的同时,减少精度误差。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入发明中并构成本发明的一部分,示出了符合本发明的实施例,并与发明一起用于解释本发明的原理。

图1是本发明根据一示例性实施例示出的一种神经网络层运算方法的流程图。

图2是本发明根据一示例性实施例示出的一种faster-rcnn网络计算过程示意图。

图3是本发明根据一示例性实施例示出的一种参数训练方法的流程图。

图4是本发明根据一示例性实施例示出的一种模型训练方法示意图。

图5是本发明根据一示例性实施例示出的一种算法替换示意图。

图6是本发明根据一示例性实施例示出的一种神经网络层运算/模型训练装置所在计算机设备的硬件结构图。

图7是本发明根据一示例性实施例示出的一种神经网络层运算装置的框图。

图8是本发明根据一示例性实施例示出的一种模型训练装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

exp,全称exponential,是以自然常数e为底的指数函数,也可以称为exp函数,exp算法。exp,可以是返回双精度浮点的exp,也可以是返回单精度浮点的expf。用于模拟exp算法、且计算效率高于exp算法的算法,往往叫做快速算法。为了进行区分,将这类算法命名为第一exp算法和第二exp算法,第一exp算法是第二exp算法的快速算法,第一exp算法可以简称为快速exp算法,第二exp算法可以称为标准exp算法,或默认exp算法。

exp计算是一种常见的数学运算,在各种算法中有广泛的应用,特别是在某些神经网络某些层中往往涉及有exp算法。在很多芯片平台中使用标准c语言库中的exp或expf函数具备比较高的精度,但是计算速度慢,例如定点嵌入式芯片中直接调用exp算法计算效率极低,难以满足算法性能需求。现有技术使用一种以乘加计算代替第二exp算法的第一exp算法,该第一exp算法包括参数,参数用于缩小第一exp算法和第二exp算法的计算结果差异,因此该参数也可以称为修正参数。目前,参数是第二exp算法与第一exp算法均方误差最小时的理论值,所得结果可证明在全局上为最优值,但是在实际使用过程中,exp函数所计算的数据往往会在一个相对固定的区间内,此时通过概率学推导的理论修正参数在局部就不是最优值。例如在faster-rcnn检测网络中,roipooling,proposal等层均包含exp计算,且会占用大量耗时,但是此时的exp所需计算的数值与输入图像分辨率相关,现有第二exp算法使用理论修正参数就会带来一定的精度误差,从而可能会影响算法性能。

鉴于此,本发明实施例提供一种神经网络中算法替换方案,在模型训练或模型应用阶段,执行当前网络层所使用的第一exp算法,得到当前网络层执行第一exp算法的运算之后的结果,由于第一exp算法包含目标参数、且目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,第二exp算法是第二exp算法的快速算法,因此,利用第一exp算法替换第二exp算法,在执行使用第一exp算法的当前网络层的运算时,可以提高计算效率,同时减少精度误差。

以下结合附图对本发明实施例进行示例说明。

如图1所示,是本发明根据一示例性实施例示出的一种神经网络层运算方法的流程图,所述方法包括:

在步骤102中,在模型训练或模型应用阶段,执行当前网络层所使用的第一exp算法,得到所述当前网络层执行所述第一exp算法的运算之后的结果,

所述第一exp算法包含目标参数,所述目标参数参与所述第一exp算法的运算、且所述目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,所述第一exp算法为第二exp算法的快速算法。

在该实施例中,使用第一exp算法的当前网络层用于模型训练或模型应用阶段,当前网络层可以是第一神经网络模型的网络层。模型训练阶段,可以是第一神经网络模型的训练,通过深度学习获得第一神经网络模型。模型应用阶段,可以是第一神经网络模型的使用阶段,例如,利用第一神经网络模型进行图像识别、目标检测或对象预测等。本实施例利用第一exp算法替换第二exp算法,在模型训练或模型应用阶段直接用第一exp算法进行运算,由于第一exp算法为第二exp算法的快速算法,因此,可以提高计算效率,又由于目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,因此,可以减少精度误差。

在一个示例中,目标参数是由与第一神经网络模型的应用场景相关的训练样本集训练获得,以实现目标参数与第一神经网络模型的场景有关,使其更加拟合使用场景。示例的,所述当前网络层是第一神经网络模型中与第二神经网络的指定网络层对应的网络层,第一神经网络模型与第二神经网络模型的网络结构相同;所述指定网络层是使用第二exp算法的网络层,所述目标参数的训练样本集:由第二神经网络模型使用的第二exp算法的输入数据构成。在确定目标参数后,以使用包含目标参数的第一exp算法的当前网络层进行训练,获得第一神经网络模型。

第二神经网络模型是一种深度学习框架,是已经训练好的模型,可以包含神经网络的拓扑结构(网络结构)和模型参数。例如选择哪些层以及每层对应的模型参数等。模型涉及各种网络层,例如输入层、卷积层、池化层、输出层等。第二神经网络模型所涉及的网络层中,某些网络层使用第二exp算法,某些网络层不使用第二exp算法,为了进行区分,将使用第二exp算法的网络层定义为指定网络层。第二神经网络模型可以利用训练样本和指定神经网络进行模型训练获得。例如,指定神经网络可以是faster-rcnn。可以理解的是,基于不同的目的所采用的训练样本和神经网络不同。以识别图像中物体类别的应用场景为例,训练样本可以包括样本图像和样本标签,样本标签是用于指示样本图像中目标对象所属类别的标签。利用训练样本进行模型训练,可以获得第二神经网络模型。在该实施例中,所述第二神经网络模型是采用faster-rcnn网络进行训练获得的模型,所述第二神经网络模型可以用于预测图像中对象所属类别。

如图2所示,是本发明根据一示例性实施例示出的一种faster-rcnn网络计算过程示意图。在该神经网络的roipooling层、proposal层以及frcnn-ortput层的计算过程中包含第二exp算法。本实施例可以实现:针对网络层中使用的第二exp算法,通过参数训练的方式,得到能替换第二exp算法的第一exp算法,并利用第一exp算法替换第二exp算法,然后以包含第一exp算法的指定网络层训练得到第一神经网络模型。每层网络层中可能有一个或多个第二exp算法,也可能有多个网络层使用第二exp算法,因此,在一个实施例中,可以分别确定不同第二exp算法对应的第一exp算法。在另一个实施例中,如果第二exp算法对应的训练样本集相同,则获得的第一exp算法也相同,因此,针对训练样本集相同的各第二exp算法(可能在同一网络层,可能不在同一网络层),获得的目标参数可以共享,即可以利用包含目标参数的第一exp算法替换所述各第二exp算法。

关于训练样本集,训练样本集是用于训练第一exp算法中参数的训练数据的集合。示例的,所述目标参数采用以下方法训练获得:

针对训练样本集中的每一样本,计算该样本分别运行所述第一exp算法和所述第二exp算法的函数值之间的误差值;

根据所述训练样本集中每一样本对应的误差值,调整所述第一exp算法中的参数,直到收敛条件满足,将当前确定的参数确定为所述第一exp算法的目标参数。

该实施例中,通过将训练样本集的样本作为输入,确定第二exp算法和第一exp算法的函数值间的差值,并依据差值来调整第一exp算法的参数,在收敛条件满足时,将当前确定的参数确定为所述第一exp算法的目标参数,从而获得用来替换第二exp算法的第一exp算法。

为了降低由于第一exp算法替换第二exp算法后出现的精度误差,采用场景训练的方式获得第一exp算法的参数,以使参数的调整过程依赖网络模型所限定的场景。示例的,目标参数的训练样本集包括:第二神经网络模型使用的第二exp算法的输入数据。例如,在第二神经网络模型的应用阶段,执行到指定网络层时,可以获取输入指定网络层中第二exp算法的数据,并将获取的数据作为训练样本集中的数据。

例如,训练样本集的获取过程可以包括:

在所述第二神经网络模型的应用阶段,获取第二神经网络模型中指定网络层使用的第二exp算法的输入数据;

根据所获取的输入数据构建训练样本集。

其中,输入数据可以是历史使用第二神经网络模型时截获到的指定网络层使用的第二exp算法的输入数据;也可以为了构建训练样本集,利用第二神经网络对测试集进行结果推理过程中,获取指定网络层使用的第二exp算法的输入数据。由于训练样本集由指定网络层中第二exp算法的输入数据构成,因此,训练样本集中数据是与当前应用场景相关的训练数据,利用训练样本集对第一exp算法的参数进行训练,再以与所述第二神经网络模型相同的网络结构、以及将指定网络层的第二exp算法替换为包含目标参数的第一exp算法,进行模型训练,获得第一神经网络模型,因此,不管是在第一神经网络模型的训练阶段,还是应用阶段,在执行包含目标参数的第一exp算法的运算时,可以保证提高运算速度的同时,减少在当前场景下由exp算法引起的精度误差。

可以理解的是,不同网络层中第二exp算法的输入数据可能不同,因此,针对不同第二exp算法依据其输入数据构建相应的训练样本集。相应的,不同训练样本集可能得到不同的目标参数。

在获得训练样本集后,可以利用训练样本集进行第一exp算法的参数的训练。针对每个指定网络层使用的第二exp算法,以该第二exp算法对应的训练样本集中数据分别作为第二exp算法和第一exp算法的输入数据,为了区分,将训练样本集中数据输入至第二exp算法计算得到的值定义为第二值,将训练样本集中数据输入至第一exp算法计算得到的值定义为第一值。第一值与第二值间的差值也可以称为第一exp算法相对于第二exp算法的函数值误差。利用第一值与第二值间的差值,来调整所述第一exp算法中的参数,以使相同输入数据的前提下,两个算法的计算结果的差异越小。

以第二exp算法包括:et为例,第一exp算法可以是由第二exp算法转换而得的、期望代替第二exp算法的函数,以便利用第一exp算法代替第二exp算法达到简化计算的目的。由于第一exp算法和第二exp算法间存在差异,因此,可以在第一exp算法中设置参数(可以称为修正参数),而参数用于缩小第一exp算法和第二exp算法的计算结果差异。首次执行参数调整操作前,所述第一exp算法中的参数为指定参数(可以称为默认值)。

在一个实施例中,第一exp算法可以是由e的指数次幂转换为2的指数次幂而得的函数。例如,第一exp算法可以是:

在该实施例中,t表示训练样本集中的输入数据,bias表示指数偏移值。如,单精度浮点数时bias为127,双精度浮点数bias为1023。

c表示参数,首次计算时c为指定参数。在一个例子中,指定参数可以是随机生成的数据。在另一个例子中,为了减少迭代次数,指定参数可以是使第二exp算法和第一exp算法均方误差最小时的值。例如,指定参数可以为:

在首次调整参数过程中,将训练样本集中的输入数据输入带指定参数的第一exp算法,获得第一exp算法的函数值(第一值);将输入数据输入第二exp算法,获得第二exp算法的函数值(第二值);通过将两个函数值进行比较,利用两函数的函数值间的差值调整所述第一exp算法中的参数。是否进行下一次调整,根据需求设定。

实际应用中,往往调整一次参数,并不能达到很好的效果,鉴于此,还通过设置收敛条件来实现多次调整参数。在一个实施例中,目标参数的确定过程包括:

以训练样本集中数据作为输入数据,执行第一exp算法得到第一值,以及执行第二exp算法得到第二值;

根据第一值与第二值之差判断当前是否满足预设的收敛条件;

若不满足,根据所述第一值与第二值之差调整第一exp算法中的参数,并返回确定第一值和第二值的步骤,否则,将当前第一exp算法的参数确定为所述目标参数。

其中,收敛条件是决定是否进行下一次调整操作的条件,例如,可以是第一值与第二值之差达到目标差值,也可以是迭代次数达到设定值等。目标差值可以是预先设定的允许误差值。在每次依据第一值与第二值之差调整第一exp算法中的参数后,可以将当前已记录的迭代次数增加预设值。预设值可以是1或其他值。首次调整时,迭代次数的初始值可以是0或其他默认值,具体根据需求设定。

以下结合附图对参数的调整过程进行示例说明。

如图3所示,是本发明根据一示例性实施例示出的一种参数训练方法的流程图,所述方法包括:

在步骤302中,获取第一exp算法的训练样本集。

其中,所述第一exp算法是第一神经网络模型中网络层使用的第一exp算法,所述训练样本集包括:第二神经网络模型使用的第二exp算法的输入数据。

在步骤304中,以训练样本集中的数据作为输入数据,计算输入至第一exp算法得到第一值,以及输入至第二exp算法得到的第二值。

训练样本集中可以包括多个输入数据,每次可以将一个输入数据分别输入到第一exp算法和第二exp算法,得到第一值和第二值,以便后续比较两个函数值的差异。例如,利用训练样本集分别计算第一exp算法的函数值(第一值)与直接调用标准库exp或expf获得的函数值(第二值)。

可以理解的是,首次迭代计算时,第一exp算法中参数为默认值,非首次迭代计算时,第一exp算法中参数为上一次迭代计算获得的参数。

在步骤306中,根据第一值与第二值之差判断当前是否满足预设的收敛条件。

其中,收敛条件是用来判断是否还需要进行下一次参数调整的条件。例如,可以判断第一值与第二值之差是否达到目标差值,也可以判断迭代次数是否取值为设定值。在第一值和第二值之差达到目标差值时,和/或,在迭代次数取值为设定值时,判定收敛条件满足。

在步骤308中,若不满足,根据所述第一值与第二值之差调整第一exp算法中的参数,并返回步骤304,以下一个样本作为输入数据,计算由第一exp算法得到的第一值以及由第二exp算法得到的第二值。

可以理解的是,调整第一exp算法中的参数过程可以包括:根据所述第一值与第二值之差确定新的参数,并利用新的参数对第一exp算法中已有的参数进行更新。

在步骤310中,若满足,将当前第一exp算法的参数确定为所述目标参数。

第一exp算法参数训练的执行是一个循环过程:通过使用正向的第一exp算法并计算其与期望值的误差,不断更新参数。

在一个例子中,可以采用预设迭代算法进行第一exp算法的参数的训练。例如,可以采用梯度下降法进行第一exp算法的参数训练,参数可以采用预设步长进行更新等,在此不一一赘述。

针对不同网络层中的第二exp算法,可能获得不同的训练样本集;针对同一网络层使用的不同第二exp算法,也可能获得不同的训练样本集。首次计算时,参数的初始值均可以为指定参数,即不同第二exp算法所对应的第一exp算法中参数相同。而在利用与第二exp算法对应的训练样本集进行参数训练后,由于不同第二exp算法的训练样本集可能不同,则参数训练获得的目标参数可能不同,进而用来替换不同第二exp算法的第一exp算法也可能不同,因此,需要构建不同第二exp算法的训练样本集,针对训练样本集不同的标准exp,需要分别进行参数训练,以获得能替换其的第一exp算法。

在获得与第二exp算法对应的第一exp算法的目标参数后,可以将包含目标参数的第一exp算法替换该指定网络层使用的第二exp算法。可以理解的是,第二exp算法与包含目标参数的第一exp算法存在映射关系,包含目标参数的第一exp算法用于替换对应的第二exp算法。

在一个例子中,可以在第二神经网络模型的应用阶段,利用包含目标参数的第一exp算法替换所述指定网络层所使用的第二exp算法。即在第二神经网络模型的应用阶段,执行第二神经网络模型中当前网络层所使用的第一exp算法,得到所述当前网络层执行所述第一exp算法的运算之后的结果。

其中,模型往往涉及两个阶段,一个是模型训练阶段,也可以称为反向训练阶段。例如,在该阶段可以利用样本和结果调整模型参数。另一个是模型应用阶段,也可以称为前向推理阶段。例如,在该阶段可以利用样本和模型参数推理结果。针对已经训练好的第二神经网络模型,利用第二神经网络模型进行结果推理过程中,在进行指定网络层的计算时,会调用exp算法,而本实施例将本该调用的第二exp算法替换为对应的包含目标参数的第一exp算法,从而达到提高指定网络层计算效率的同时,减少精度误差。

在另一个例子中,为了减少模型训练阶段和模型应用阶段间的计算误差,还可以将所述指定网络层中第二exp算法替换为包含目标参数的第一exp算法后,利用训练样本训练获得第一神经网络模型。第一神经网络模型的拓扑结构与所述第二神经网络模型的拓扑结构相同,以实现将第一神经网络模型和第二神经网络模型关联起来,可以利用第一神经网络模型替换第二神经网络模型。在所述第一神经网络模型的应用阶段,利用包含目标参数的第一exp算法替换所述指定网络层所使用的第二exp算法。由于模型训练阶段和模型应用阶段都采用的是第一exp算法,不仅提高处理效率,还减少模型训练阶段和模型应用阶段间的计算误差,获得性能更好的网络模型。

如图4所示,是本发明根据一示例性实施例示出的一种模型训练方法示意图。

在步骤402中,获取第一exp算法的训练样本集,所述训练样本集包括:第二神经网络模型中指定网络层使用的第二exp算法的输入数据;所述第一exp算法为第二exp算法的快速算法;

在步骤404中,针对训练样本集中的每一样本,计算该样本分别运行所述第一exp算法和所述第二exp算法的函数值之间的误差值;

在步骤406中,根据所述训练样本集中每一样本对应的误差值,调整所述第一exp算法中的参数,直到收敛条件满足,将当前确定的参数确定为所述第一exp算法的目标参数;

在步骤408中,以与所述第二神经网络模型相同的网络结构、以及将指定网络层的第二exp算法替换为包含目标参数的第一exp算法,进行模型训练,获得第一神经网络模型。

其中,步骤402至406是目标参数训练过程,可以离线完成,步骤408是模型训练过程。在一个实施例中,所述方法还包括:在第一神经网络模型的应用阶段,执行当前网络层所使用的包含目标参数的第一exp算法,得到所述当前网络层执行所述第一exp算法的运算之后的结果。

可以理解的是,图4与图1至图3中相关技术相同,在此不一一赘述。

如图5所示,是本发明根据一示例性实施例示出的一种算法替换示意图。在该示意图中,不管是神经网络反向训练执行过程中,还是前向推理执行过程中,神经网络包括一些不含第二exp算法的层和若干含第二exp算法的层(该类层可以认为是期望使用第一exp算法的层,简称指定网络层)。在网络执行之前,可用本发明所述方法离线训练出适合指定网络层使用的第一exp算法替换该层原有的第二exp算法。具体的,针对包含第二exp算法的层,利用该层中第二exp算法的输入数据构成训练样本集,并利用训练样本集进行第一exp算法参数训练,利用训练获得的目标参数更新第一exp算法,并将所获得的第一exp算法替换该指定网络层中的第二exp算法。而某些层不包含exp算法,则无需进行替换处理。

由上述实施例可见,用训练得到的目标参数确定第一exp算法,并利用所确定的第一exp算法替换神经网络中指定网络层中的第二exp算法,在保证运算速度的同时可以减少在当前场景下由快速算法引起的精度误差。

以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本发明公开的范围。

与前述神经网络层运算方法的实施例相对应,本发明还提供了神经网络层运算装置及其所应用的电子设备的实施例。

本发明神经网络层运算装置的实施例可以应用在计算机设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在计算机设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,是本发明根据一示例性实施例示出的一种神经网络层运算/模型训练装置所在计算机设备的硬件结构图,除了图6所示的处理器610、网络接口620、内存630、以及非易失性存储器640之外,实施例中神经网络层运算/模型训练装置631所在的计算机设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。

如图7所示,是本发明根据一示例性实施例示出的一种神经网络层运算装置的框图,所述装置包括:

处理模块72,用于在模型训练或模型应用阶段,执行当前网络层所使用的第一exp算法,得到所述当前网络层执行所述第一exp算法的运算之后的结果,

所述第一exp算法包含目标参数,所述目标参数参与所述第一exp算法的运算、且所述目标参数是利用第一exp算法和第二exp算法的函数值差异调整获得,所述第一exp算法为第二exp算法的快速算法。

在一个实施例中,所述装置还包括参数训练模块(图7未示出),用于:

针对训练样本集中的每一样本,计算该样本分别运行所述第一exp算法和所述第二exp算法的函数值之间的误差值;

根据所述训练样本集中每一样本对应的误差值,调整所述第一exp算法中的参数,直到收敛条件满足,将当前确定的参数确定为所述第一exp算法的目标参数。

在一个实施例中,所述当前网络层是第一神经网络模型中与第二神经网络的指定网络层对应的网络层,第一神经网络模型与第二神经网络模型的网络结构相同;所述指定网络层是使用第二exp算法的网络层,所述目标参数的训练样本集:由第二神经网络模型使用的第二exp算法的输入数据构成。

在一个实施例中,所述装置还包括模型训练模块(图7未示出),用于:

在利用训练样本集训练获得目标参数的情况下,利用包含所述目标参数的第一exp算法训练获得第一神经网络模型,训练过程中所采用的网络结构与第二神经网络模型的网络结构相同。

在一个实施例中,所述第二exp算法包括:et;所述第一exp算法包括:

首次执行参数调整操作前,所述第一exp算法中的参数为:

其中,t表示第一exp算法的输入数据。

在一个实施例中,所述第一神经网络模型是采用faster-rcnn网络进行训练获得的模型,例如,所述第一神经网络模型用于预测图像中对象所属类别。

如图8所示,是本发明根据一示例性实施例示出的一种模型训练装置的框图,所述装置包括:

样本集获取模块82,用于获取第一exp算法的训练样本集,所述训练样本集包括:第二神经网络模型中指定网络层使用的第二exp算法的输入数据;所述第一exp算法为第二exp算法的快速算法;

误差值计算模块84,用于针对训练样本集中的每一样本,计算该样本分别运行所述第一exp算法和所述第二exp算法的函数值之间的误差值;

参数调整模块86,用于根据所述训练样本集中每一样本对应的误差值,调整所述第一exp算法中的参数,直到收敛条件满足,将当前确定的参数确定为所述第一exp算法的目标参数;

模型训练模块88,用于以与所述第二神经网络模型相同的网络结构、以及将指定网络层的第二exp算法替换为包含目标参数的第一exp算法,进行模型训练,获得第一神经网络模型。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

相应的,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如上所述神经网络层运算方法。

本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

相应的,本说明书实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如上任一项所述神经网络层运算/模型训练方法。

相应的,本发明实施例还提供一种计算机存储介质,所述存储介质中存储有程序指令,所述程序指令实现如上任一项所述神经网络层运算/模型训练方法。

本发明实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本领域技术人员在考虑发明及实践这里申请的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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

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