一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

神经网络模型的数据处理方法、介质和电子设备与流程

2022-03-05 08:35:32 来源:中国专利 TAG:


1.本技术涉及人工智能领域,特别涉及一种神经网络模型的数据处理方法、介质和电子设备。


背景技术:

2.随着人工智能(artificial intelligence,ai)的迅速发展,神经网络模型在人工智能领域的应用越来越广泛。为提高神经网络的运行速度,通常通过定点运算来实现神经网络模型中的各种运算,例如归一化、卷积等。但是,用于运行神经网络模型的运算单元,例如神经网络处理器(neural-network processing unit,npu),并不能直接通过硬件实现非线性运算的定点运算,例如对操作数求幂指数后再求倒数的运算(例如平方根的倒数),npu在计算神经网络模型中的该类运算过程时,需要采用其他方法,例如牛顿法、泰勒级数展开等,来实现该类运算的求解。但是,通过牛顿法计算的过程中需要不断迭代求解,速度慢且占用npu的大量硬件资源,降低了电子设备运行神经网络模型的速度;而泰勒级数展开的方法精度较低,无法确保神经网络模型的运行精度。


技术实现要素:

3.有鉴于此,本技术实施例提供了神经网络模型的数据处理方法,通过将对操作数求幂指数后再求倒数的运算转换为多个乘法因子相乘的运算,并通过查表来获取多个乘法因子对应的运算结果,并将获取的运算结果相乘得到对操作数求幂指数后再求倒数的运算的运算结果,提高了电子设备对上述运算的运算速度,从而提高了神经网络模型的运行速度。
4.第一方面,本技术实施例提供了一种神经网络模型的数据处理方法,应用于电子设备,包括:在运行神经网络模型的过程中检测到对操作数的第一类运算,其中,第一类运算包括对操作数求幂指数后再求倒数的运算;从乘法因子结果集中,选取与对操作数求幂指数后再求倒数的运算相对应的多个乘法因子的运算结果值,其中,对操作数求幂指数后再求倒数的运算结果与多个乘法因子相乘的乘法运算结果相同,并且各乘法因子对应不同操作数的不同运算结果值预先存储在乘法因子结果集中;通过对获取的各乘法因子的运算结果值相乘,得到对操作数的第一类运算的运算结果。
5.也即是说,在本技术实施例中,通过将对操作数求幂指数后再求倒数的运算转换等价的多个乘法因子相乘的运算,并预先将各乘法因子对应不同操作数的不同运算结果值存储在乘法因子结果集中,通过从乘法因子结果集中查询各乘法因子的运算结果值,并将查询到的运算结果值相乘也可得到对操作数求幂指数后再求倒数的运算的运算结果。
6.通过本技术实施例提供的方法,电子设备可以通过查找和乘法运算即可得到对操作数的幂倒数运算的运算结果,提高了电子设备计算的操作数求幂指数后再求倒数的运算的速度,从而在确保神经网络模型的运行精度的同时,提高了电子设备运行神经网络模型的速度。
7.在上述第一方面的一种可能实现中,上述方法还包括:根据操作数对应的二进制数的预设高n2位二进制数的数值a和预设低n1位二进制数的数值b,确定多个乘法因子,并且多个乘法因子中至少一个乘法因子与数值a相关,至少一个乘法因子与数值b相关。
8.在上述第一方面的一种可能实现中,上述从乘法因子结果集中,选取与对操作数求幂指数后再求倒数的运算相对应的多个乘法因子的运算结果值,包括:基于操作数的二进制数计算操作数的多个索引值,并基于多个索引值从乘法因子结果集中选取多个乘法因子的运算结果值。
9.在上述第一方面的一种可能实现中,与数值a相关的乘法因子的索引值是基于数值a确定的,与数值b相关的乘法因子的索引值是基于数值b确定的。
10.也即是说,各乘法因子对应的索引值根据该乘法因子中随操作数变化而变化的变量确定。例如,在某一乘法因子中的数值a和数值b随之操作数的变化而变化,则该乘法因子的索引值由数值a和数值b确定。
11.在上述第一方面的一种可能实现中,在乘法因子结果集中,乘法因子对应不同操作数的运算结果值,与乘法因子对应不同操作数的索引值之间存在一一对应的关系。
12.也即是说,乘法因子结果集中存储的各乘法因子对应的值和索引值一一对应,索引值的数量和对应的乘法因子的运算结果值的数量相同。
13.在上述第一方面的一种可能实现中,上述乘法因子结果集以查找表或者数据库的形式存储。
14.在上述第一方面的一种可能实现中,上述乘法因子结果集中各乘法因子的运算结果的精度由神经网络模型的精度要求确定。
15.也即是说,乘法因子结果集中各乘法因子的运算结果值的精度由神经网络模型的精度要求确定,神经网络模型的精度要求越高,各乘法因子的运算结果值的精度越高,数量越多,从而对应的索引值也越多。
16.在本技术实施例中,各乘法因子的运算结果值的数量(也即是乘法因子结果集的大小)可以根据神经网络模型的精度要求确定,从而可以在满足精度要求的情况下减小各乘法因子的运算结果值的数量(也即是乘法因子结果集的大小),从而提高从乘法因子结果集中获取各乘法因子的运算结果值的速度,进而提高神经网络模型的运行速度。
17.在上述第一方面的一种可能实现中,与第一类运算等价的多个乘法因子相乘的乘法运算,通过以下公式定义:
[0018][0019]
其中,y为操作数,n为对操作数求幂指数后再求倒数的运算中的幂指数,a为y对应的二进制数的预设高n2位二进制数的数值,b为y对应的二进制数的预设低n1位二进制数的数值,为乘法因子,n1与n2的和与y对应的二进制数的位数相同。
[0020]
在上述第一方面的一种可能实现中,上述乘法因子结果集包括第一查找表和第二查找表,其中:
[0021]
第一查找表用于存储乘法因子的运算结果值;
[0022]
第二查找表用于存储乘法因子的运算结果值。
[0023]
在本技术实施例中,乘法因子不随操作数y的变化而变化,因此可以单独存储乘法因子的运算结果值,而无需通过查找表或数据库来存储。故而采用第一查找表来存储乘法因子的运算结果值;采用第二查找表来存储乘法因子的运算结果值。
[0024]
在上述第一方面的一种可能实现中,上述乘法因子对应的第一索引值由数值a对应的二进制数的高n3位对应的数值确定,其中n3由神经网络模型的精度要求确定。
[0025]
在本技术实施例中,由神经网络模型的精度要求来确定n3的取值,从而可以在满足神经网络模型的精度要求的情况下,减小各乘法因子的运算结果值/处一索引值的数量,从而提高从第一查找表中获取乘法因子的运算结果值的速度,进而提高神经网络模型的运行速度。
[0026]
在上述第一方面的一种可能实现中,上述从乘法因子结果集中,选取与对操作数求幂指数后再求倒数的运算相对应的多个乘法因子的运算结果值,包括:根据数值a对应的二进制数的高n3位对应的数值确定第一索引值,并基于确定出的第一索引值从第一查找表中获取乘法因子的运算结果值。
[0027]
在上述第一方面的一种可能实现中,上述乘法因子对应的第二索引值基于以下公式确定:b-a-n1;其中,a为数值a对应的二进制数的有效位数,b为数值b对应的二进制数的有效位数。
[0028]
在本技术实施例中,第二索引值的数量为n1 n2,减小了第二索引值的数量,从而减小了第二查找表的长度,提高了从第二查找表中获取乘法因子的运算结果值的速度,进而提高了神经网络模型的运行速度。
[0029]
在上述第一方面的一种可能实现中,上述从乘法因子结果集中,选取与对操作数求幂指数后再求倒数的运算相对应的多个乘法因子的运算结果值,包括:根据数值a对应的二进制数的有效位数和数值b对应的二进制数的有效位数确定第二索引值,并基于第二索引值从第二查找表中获取乘法因子的运算结果值。
[0030]
第二方面,本技术实施例提供了一种可读介质,该可读介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现上述第一方面及其各种可能实现提供的任一种神经网络模型的数据处理方法。
[0031]
第三方面,本技术实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于运行指令以使电子设备实现上述第一方面及其各种可能实现提供的任一种的神经网络
模型的数据处理方法。
附图说明
[0032]
图1根据本技术的一些实施例,示出了一种神经网络模型的结构示意图;
[0033]
图2a根据本技术的一些实施例,示出了一种通过查表方式对操作数y进行幂倒数运算的运算过程的示意图;
[0034]
图2b根据本技术的一些实施例,示出了又一种通过查表方式对操作数y进行幂倒数运算的运算过程的示意图;
[0035]
图3根据本技术的一些实施例,示出了一种神经网络模型的数据处理方法的流程示意图;
[0036]
图4根据本技术的一些实施例,示出了一种对操作数δ2 ε进行幂倒数运算的过程示意图;
[0037]
图5根据本技术的一些实施例,示出了一种对输入图像20进行归一化运算后的结果示意图;
[0038]
图6根据本技术的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
[0039]
本技术的说明性实施例包括但不限于神经网络模型的数据处理方法、介质和电子设备。
[0040]
下面结合附图对本技术实施例的技术方案进行详细介绍。
[0041]
图1根据本技术的一些实施例,示出了一种神经网络模型的结构示意图。如图1所示,神经网络模型10包括归一化层11、卷积层12和相似度计算层13,用于评价输入图像20和输入图像30的相似度。其中,卷积层12用于对输入图像20和输入图像30进行特征提取,相似度计算层用于根据卷积层12提取的输入图像20和输入图像30的特征,计算输入图像20和输入图像30的相似度。
[0042]
其中,归一化层11可以通过以下公式(1)来对实现图像的归一化计算:
[0043][0044]
公式(1)中:x
ij
表示图像中第i行第j列的像素的灰度值;z
ij
表示对图像归一化后的数据中第i行第j列的值;μ表示图像中各像素的灰度值的平均值,δ表示图像中各像素的灰度值的标准差,ε为大于0的一个较小的数,以避免公式(1)中的分母为0。
[0045]
由公式(1)可知,对图像进行归一化的过程中包括了对操作数求幂指数再求倒数的运算如前所述,用于运行神经网络模型的运算单元,例如npu,需要采用牛顿法、泰勒级数展开等方法来实现对操作数求幂指数后再求倒数的运算(以下简称幂倒数运算),但是,通过牛顿法计算幂倒数的过程中需要不断迭代求解,速度慢且占用npu的大量硬件资源,降低了电子设备运行神经网络模型的速度;而通过泰勒级数展开来求解幂倒数精度较低,无法确保神经网络模型的精度。
[0046]
可以理解,幂倒数运算可以通过以下公式(2)来定义:
[0047][0048]
公式(2)中,y为进行幂倒数运算的操作数,且y》0;n为幂倒数运算的指数。
[0049]
可以理解,归一化层11基于公式(1)所示的归一化方法对图像进行归一化只是一种示例,在另一些实施例中,归一化层11也可以采用其他方式对图像(或其他类型的数据)进行归一化,例如bn(batch norm)、in(instance norm)、gn(group norm)、ln(layer norm)等,本技术实施例不做限定。
[0050]
可以理解,图1所示的神经网络模型10的结构只是一种示例,在另一些实施例中,本技术实施例提供的方法也适用于任意包括公式(2)所示幂倒数运算的神经网络模型,在此不做限定。
[0051]
为了解决上述问题,本技术实施例提供了一种神经网络模型的数据处理方法。具体地,可以将对操作数的幂倒数运算转换为多个乘法因子相乘的运算,并且至少部分乘法因子对应的运算结果预先存储在对应的查找表(乘法因子结果集)中。其中,可以利用操作数的一些特征数据确定相应的索引值,以根据索引值从查找表中查询到各乘法因子对应的运算结果。然后将各乘法因子对应的运算结果相乘得到对操作数的幂倒数运算的运算结果。通过本技术实施例提供的方法,电子设备可以通过查表和乘法运算即可得到对操作数的幂倒数运算的运算结果,提高了电子设备计算幂倒数运算的速度,从而在确保神经网络模型的运行精度的同时,提高了电子设备运行神经网络模型的速度。
[0052]
具体地,幂倒数运算可以转换为多个乘法因子的乘积。例如,对于上述公式(2)中的幂倒数运算假设操作数y的二进制数的位数为n1 n2,从低位到高位依次为第0位到第n1 n
2-1位,并且y的高n2位为a,y的低n1位为b,则操作数y可以通过公式(3)表示:
[0053][0054]
可以理解,前述n1、n2为正整数,例如,可以取n1=n2=16;在一些实施例中,也可以取n1=16,n2=32;在另一些实施例中,还可以根据操作数y的位数,神经网络的模型的精度的要求等确定其他的n1和n2的值,在此不做限定。
[0055]
结合公式(2)、公式(3)以及指数运算法则,可以将上述幂倒数运算转换为公式(4)所示三个乘法因子的乘积:
[0056][0057]
公式(4)中,e为自然常数,在一些实施例中,可以取e=2.718281828459045。
[0058]
可以理解,在公式(4)中,当幂倒数运算和神经网络模型确定后,乘法因子为
常数,无需通过单独的查找表来存储乘法因子的运算结果。因此,可以通过第一查找表来存储不同的a对应的乘法因子的运算结果、通过第二查找表来存储不同的a、b对应的乘法因子的运算结果。电子设备在计算公式(2)所示的幂倒数运算的过程中,可以获取操作数y的高n2位(a)和低n1位(b),并从第一查找表和第二查找表中获取乘法因子乘法因子的运算结果,再将乘法因子乘法因子乘法因子的运算结果相乘,即可确定对操作数y的幂倒数运算的运算结果。
[0059]
可以理解,在一些实施例中,由于乘法因子的运算结果不随操作数的值的变化而变化,因此可以预置于电子设备的存储器中,以便于电子设备在对操作数进行幂倒数运算的过程中直接从存储器中获取乘法因子的运算结果。
[0060]
如前所述,可以利用操作数的一些特征数据确定相应的索引值,而这些特征数据可以包括操作数的二进制数的至少部分位数和/或至少部分位数的特征。例如,对于上述公式(4),可以看出来乘法因子与操作数的高n2位(a)相关,故可以将a的至少部分位数,例如a的高n3位对应的数作为乘法因子的索引值。同理,在公式(4)中,乘法因子同时和操作数的高n2位(a)和操作数的低n1位(b)有关,故而可以将a和b的至少部分位数的特征,例如a和b的有效位数之差作为乘法因子的索引值。其中,有效位数是指a或b的二进制数第一位不为0位到最低位的位数,例如0000000000001110的有效位数为4。
[0061]
可以理解,在另一些实施例中,也可以利用操作数的其他特征数据确定相应的索引值,在此不做限定。
[0062]
可以理解,在一些实施例中,若在第一查找表中存储a与乘法因子的一一对应关系会导致第一查找表的长度过大,增加电子设备在对第一查找表进行查表过程中的时间和硬件资源占用量。例如,当a的二进制数包括16位的情况下,a的取值有2
16
种可能,也即是若在第一查找表中存储a与乘法因子的一一对应关系,第一查找表的长度为2
16
,占用的存储空间大,且不利于快速从第一查找表中确定a对应的乘法因子的运算结果。
[0063]
为减小第一查找表的长度,在一些实施例中,可以根据神经网络模型对运行精度的要求来确定第一查找表的长度,神经网络模型对运行精度的要求越高,第一查找表的长度越大。例如,神经网络模型的精度要求为n3(n3≤n2)位,则第一查找表的长度可以为例如,对于大部分神经网络模型,n3可以为8,即是第一查找表存储有第一索引值i1取0至255时对应的乘法因子的运算结果。由于乘法因子随操作数y的高n2位a的变化而变
化,因此,可以根据a确定第一索引值i1,以便于根据第一索引值i1从第一查找表中获取a取不同值时乘法因子对应的运算结果。例如,电子设备可以根据a和n3,确定a和i1的对应关系,例如取a的二进制数的前n3位为特征数据,并以该特征数据对应的数作为第一索引值i1,具体地例如,当a为0000000110000001的情况下,取a的前8位为第一索引值i1,即i1为二进制数00000001,也即是十进制数1。
[0064]
可以理解,在另一些实施例中,n3也可以取其他数值,例如4、16、32等,在此不做限定。
[0065]
可以理解,在另一些实施例中,也可以通过其他方式来定义a与索引值i1的对应关系,在此不做限定。
[0066]
通过本技术实施例提供的方法来构建第一查找表,可以在确保神经模型的运行精度的同时有效减少第一查找表的长度,从而提高电子设备从第一查找表中获取乘法因子的速度,进而提高电子设备运行神经网络模型的速度。
[0067]
可以理解,在一些实施例中,若在第二查找表中存储(a、b)和乘法因子的一一对应关系会导致第二查找表的长度过大,增加电子设备在对第二查找表进行查表过程中的时间和硬件资源占用量。例如,当a、b的二进制数都包括16位的情况下,a、b的取值都有2
16
种可能,从而若在第一查找表中存储(a,b)与乘法因子的一一对应关系,第二查找表的长度为2
32
,占有用的存储空间大,且不利于快速从第二查找表中确定a、b对应的乘法因子的运算结果。
[0068]
为减小第二查找表的长度,在一些实施例中,由于乘法因子的运算结果一般是一个较小的数,对幂倒数运算的结果影响较小,因此可以以n1 n2 1为第二查找表的长度,并且以-n
1-n2到0为第二查找表的第二索引值i2的取值范围,也即是说第二查找表中存储有第二索引值i2的取值为-n
1-n2到0时对应的乘法因子的运算结果。由于上述乘法因子随操作数y的高n2位a、操作数y的低n1位b的变化而变化,因此,可以根据a和b确定第二索引值i2,以便于根据第二索引值i2从第二查找表中获取a、b取不同值时乘法因子对应的运算结果。例如,可以以a和b的有效位数为特征数据,并根据该特征数据确定第二索引值i2。具体地,假设a的有效位数为a,b的有效位数为b,则索引值i2可以根据公式i2=b-a-n1来确定。
[0069]
可以理解,在另一些实施例中,也可以采用其他方式来确定第二查找表的长度,例如可以根据神经网络模型的精度,增加第二查找表的长度,例如以n1 n2 1的倍数来确定第二查找表的长度,在此不做限定。
[0070]
可以理解,在另一些实施例中,也可以通过其他方式来定义n1、n2与索引值i2的对应关系,在此不做限定。
[0071]
通过本技术实施例提供的方法来构建第二查找表,可以有效减少第二查找表的长
度,从而提高电子设备从第二查找表中获取乘法因子的运算结果速度,进而提高电子设备运行神经网络模型的速度。
[0072]
可以理解,在一些实施例中,前述第一查找表和第二查找表可以预置于电子设备当中,也可以由电子设备从其他电子设备(例如服务器)中获取,还可以由开发人员随神经网络模型部署到电子设备当中,在此不做限定。
[0073]
基于前述幂倒数运算的计算方法以及第一查找表、第二查找表的构建方法,电子设备在运行神经网络模型过程中,若检测到幂倒数运算,则获取操作数y的高n2位(a)、低n1位(b),在基于a确定第一索引值i1并从第一查找表中获取i1对应乘法因子的运算结果,基于a和b确定第二索引值i2并根据i2从第二查找表中获取i2对应的乘法因子的运算结果,再计算乘法因子乘法因子乘法因子对应的运算结果的乘积即可得到对操作数y的幂倒数运算结果,最后再基于运算结果继续运行神经网络模型。通过本技术实施例提供的方法,电子设备在运行神经网络模型过程中,若检测到幂倒数运算,通过两次查表操作和三次乘法运算即可获取该幂倒数运算的运算结果,提高了电子设备计算幂倒数运算的速度,从而在确保神经网络模型的运行精度的同时,提高了电子设备运行神经网络模型的速度。
[0074]
可以理解,前述将幂倒数运算转换为公式(4)所示的多个乘法因子相乘的运算只是一种示例,在另一些实施例中,也可以转换为其他形式的多个乘法因子相乘的运算,在此不做限定。例如,参考图2b,可以将操作数y的二进制数分为高n4位(c)、中间n2位(a)和低n1位(b),则操作数y可以表示为:
[0075][0076]
结合公式(5)和前述公式(4)的推导方法可知,对操作数y进行公式(2)所示的幂倒数运算转换为公式(6)所示的三个乘法因子相乘的运算:
[0077][0078]
在公式(6)中,乘法因子不随操作数的值的变化而改变,从而可以参考上述第一查找表的构建过程确定存储乘法因子对应的运算结果的查找表,参考上述第二查找表的构建过程确定存储乘法因子对应的运算结果的查找表,以便于电子设备在运行神经网络模型中的幂倒数运算时根据操作数的高n4位(c)确定相应的索引值并在第一查找表中查询乘法因子的运算结果;基于高n4位(c)、中间n2位(a)和低n1位(b)相应的索引值并在第二查找表中查询乘法因子的运算结果。再将乘法因子乘法因子和乘法因子对应的运算结果相乘即可得到的运
算结果。
[0079]
下面基于上述公式(4)所示幂倒数运算的计算原理、上述第一查找表和第二查找表的构建方法,结合图1所示的场景,详细描述本技术实施例的技术方案。
[0080]
图3根据本技术的一些实施例,示出了一种神经网络模型的数据处理方法的流程示意图。该方法的执行主体为电子设备,如图3所示,该流程包括如下步骤:
[0081]
s301:检测到神经网络模型10中的幂倒数运算。即是电子设备在运行神经网络模型10的过程中,检测到幂倒数运算,即通过本技术实施例提供的方法计算该幂倒数运算。
[0082]
例如,在电子设备在运行神经网络模型10的归一化层,基于前述公式(1)对输入图像20和输入图像30进行归一化的过程中,可以检测到幂倒数运算电子设备在检测到上述幂倒数运算后,即触发本技术实施例提供的方法。
[0083]
s302:获取操作数的二进制数的高m位和低n位。即是电子设备获取待操作数(例如前述δ2 ε)的二进制数的高m位和低n位,以便于确定用于从第一查找表和第二查找表进行查找的第一索引值i1和第二索引值i2。
[0084]
例如,图4根据本技术的一些实施例,示出了对图1所示输入图像20进行归一化过程中,计算的过程示意图。其中δ2 ε=17729394,也即是幂倒数运算的操作数为17729394。电子设备可以获取操作数的高16位a:0000000100001110和低16位b:1000 0111 0111 0010,用于确定在第一查找表和第二查找表中进行查找的索引值(也即是m=16,n=16)。
[0085]
可以理解,δ可以通过图5所示输入图像20对应的数据矩阵求标准差确定,ε的取值可以为1,以确保操作数δ2 ε大于0。
[0086]
可以理解,前述取m=16,n=16只是一种示例,在另一些实施例中,m和n也可以取其他数值,本技术实施例不做限定。
[0087]
可以理解,在一些实施例中,m和n的值可以根据操作数的位数以及神经网络模型对精度的要求预设于电子设备的存储器中。
[0088]
可以理解,在一些实施例中,数据在电子设备中都是以二进制的形式进行存储,电子设备可以直接从电子设备的存储器(例如电子设备的内存、外部存储器、电子设备的处理器中的寄存器)中获取操作数的二进制数的高m位和低n位。
[0089]
s303:基于操作数的二进制数的高m位确定第一索引值i1,并从第一查找表中获取第一索引值i1对应的乘法因子的运算结果。
[0090]
即是电子设备基于获取的操作数的二进制数的高m位确定从第一查找表中进行查找的第一索引值i1,并通过i1在第一查找表中获取i1对应的乘法因子的运算结果。例如,如前所述,可以以a的高8位所对应的数作为第一索引值i1,参考图4,可以以a的高8位(00000001)对应的数(十进制1)作为第一索引值i1,并从第一查找表中获取i1对应的乘法因子的运算结果.0000111110010100。
[0091]
可以理解,在另一些实施例中,第一索引值的确定方法可以根据第一查找表的构
建方法采用其他的方法,本技术实施例不做限定
[0092]
s304:基于操作数的二进制数的高m位和低n位确定第二索引值i2,并从第二查找表中获取第二索引值i2对应的乘法因子的运算结果。
[0093]
即是电子设备基于操作数的二进制数的高m位a和低n位b确定从第二查找表中进行查找的第二索引值i2,并通过第二索引值i2在第二查找表中获取第二索引值i2对应乘法因子的运算结果。例如,如前所述,可以基于操作数的二进制数的高m位和低n位的有效位数确定第二索引值i2,假设a的有效位数为a,b的有效位数为b,则第二索引值i2可以根据公式i2=b-a-n1,参考图4,a的有效位数为9,b的有效位数为11,则i2=11-9-16=-14。电子设备根据i2=-14从第二查找表中获取第二索引值i2对应的乘法因子的运算结果.1111111111111110。
[0094]
可以理解,在另一些实施例中,第二索引值的确定方法可以根据第二查找表的构建方法采用其他的方法,本技术实施例不做限定。
[0095]
s305:基于乘法因子的运算结果和乘法因子的运算结果确定对操作数的幂倒数运算结果。
[0096]
即是电子设备在获取到乘法因子的运算结果和乘法因子的运算结果后,根据根式(4),计算得到的运算结果。例如,参考图4,电子设备可以从存储器中获取乘法因子对应的运算结果.0000000100000000,并计算.0000000100000000、.0000111110010100和.1111111111111110的乘积,得到幂倒数运算的运算结果.0000000000010000。
[0097]
可以理解,由于乘法因子的运算结果不随操作数的变化而变化,因此可以预置于电子设备的存储器中,以便于电子设备在对操作数进行幂倒数运算的过程中直接从存储器中获取乘法因子的运算结果。
[0098]
s306:基于幂倒数运算结果继续运行神经网络模型。
[0099]
也即是电子设备在确定出幂倒数运算的运算结果后,继续运行神经网络模型以实现相关功能。例如,对于图1所示的场景,电子设备在确定出的运算结果后,基于公式(1)对输入图像20对应的数据进行归一化运算后,可以得到图5所示的归一化运算结果矩阵d,并将该结果传递给卷积层12。电子设备还可以基于上述各步骤提供的方法对输入图像30进行归一化运算,得到输入图像30的归一化运算结果,并将该结果传递给卷积层12。卷积层12对上述归一化结果进行特征提取,再将特征提取后的数据传递给相似度计算层13,由相似度计算层13计算得到输入图像20和输入图像30的相似度。
[0100]
可以理解,在一些实施例中,卷积层12可以基于以下公式(7)对输入图像20或输入图像30的归一化运算结果进行特征提取:
[0101][0102]
在公式(7)中,矩阵d为输入图像20或输入图像30的归一化运算结果,大小为m
×
m(380
×
380),矩阵e为卷积核且大小为n
×
n,卷积步长为k,z(m,n)为卷积结果矩阵z第m行第n列的元素,矩阵d与卷积核c的卷积可以记为z=d*e。
[0103]
并且,在公式(7)中,m、n满足以下关系式:
[0104][0105]
其中为向下取整运算,即为小于u的最大整数。由于m-n《m且k为正整数,可见也即是说卷积结果z的大小总是小于或等于矩阵d的大小。
[0106]
假设卷积核e为如下所示3
×
3的矩阵:
[0107][0108]
从而卷积层12对输入图像20进行特征提取后的矩阵z为:
[0109][0110]
可以理解,卷积层12对输入图像30的归一化结果矩阵进行特征提取的方式与上述过程相似,在此不做赘述。
[0111]
电子设备在通过卷积层对输入图像20和输入图像30特征提取得到相应的矩阵后,即可通过相似度计算层确定输入图像20和输入图像30的相似度。
[0112]
可以理解,在另一些实施例中,卷积层12也可以采用其他形式对输入图像20和输入图像30进行特征提取,本技术实施例不做限定。
[0113]
例如,在一些实施例中,相似度计算层13可以通过卷积层对输入图像20和输入图像30特征提取得到相应的矩阵间的相关系数确定输入图像20和输出图像30的相似度。具体地,在一些实施例中,相似度计算层13可以根据以下公式(8)确定输入图像20与输入图像30的相似度。
[0114][0115]
公式(7)中,z1为卷积层12对输入图像20进行特征提取后的数据,z2为卷积层12对输入图像30进行特征提取后的数据,cov(z1,z2)为z1和z2的协方差,为z1的平均值,为z2的平均值。可以理解,r(z1,z2)的绝对值越大,表示输入图像20与输入图像30的相似度越高。例如,在一些实施例中,计算得到r(z1,z2)为0.778,即是输入图像20和输入图像30的相似度为0.778。
[0116]
可以理解,在另一些实施例中,相似度计算层13也可以采用其他方式,基于卷积层12对输入图像20、输入图像30进行特征提取后的数据,确定输入图像20和输入图像30的相似度,在此不做限定。
[0117]
可以理解,上述步骤s301至步骤s306的执行顺序只是一种示例,在另一些实施例中,也可以采用其他顺序,还可以合并或拆分部分步骤,本技术实施例不做限定。例如,电子设备先获取操作数的二进制数的高m位确定第一索引值i1,并从第一查找表中获取第一索引值i1对应的乘法因子的运算结果;再获取操作数的二进制数的低n位,并基于操作数的二进制数的高m位和低n位确定第二索引值i2,并从第二查找表中获取第二索引值i2对应的乘法因子的运算结果。
[0118]
通过本技术实施例提供的方法,电子设备在运行神经网络模型过程中,若检测到幂倒数运算,通过两次查表操作和三次乘法运算即可获取该幂倒数运算的运算结果,提高了电子设备计算幂倒数运算的速度,从而在确保神经网络模型的运行精度的同时,提高了电子设备运行神经网络模型的速度。
[0119]
可以理解,前述以神经网络模型10中的归一化层11为例介绍本技术实施例提供的神经网络模型的数据处理方法只是一种示例,该方法可以适用于任意包括公式(2)所示的幂倒数运算的任意神经网络模型,本技术实施例不做限定。
[0120]
可以理解,本技术实施例提供的神经网络模型的数据处理方法,可以应用于能够运行神经网络模型的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备等,本技术实施例不做限定。为便于理解本技术实施例的技术方案,以电子设备100为例说明本技术实施例提供的神经网络模型的数据处理方法的适用的电子设备的结构。
[0121]
进一步,图6根据本技术的一些实施例,示出了一种电子设备100的结构示意图。如图6所示,电子设备100包括一个或多个处理器101、系统内存102、非易失性存储器(non-volatile memory,nvm)103、通信接口104、输入/输出(i/o)设备105、以及用于耦接处理器
101、系统内存102、非易失性存储器103、通信接口104和输入/输出(i/o)设备105的系统控制逻辑106。其中:
[0122]
处理器101可以包括一个或多个处理单元,例如,可以包括中央处理器cpu(central processing unit)、图像处理器gpu(graphics processing unit)、数字信号处理器dsp(digital signal processor)、微处理器mcu(micro-programmed control unit)、ai(artificial intelligence,人工智能)处理器或可编程逻辑器件fpga(field programmable gate array)、神经网络处理器(neural-network processing unit,npu)等的处理模块或处理电路可以包括一个或多个单核或多核处理器。在一些实施例中,npu可以用于运行本技术实施例提供的神经网络模型的数据处理方法对应的指令,根据操作数的二进制数的高m位从第一查找表中获取乘法因子的运算结果、根据操作数的二进制数的高m位和低n位从第二查找表中获取乘法因子的运算结果,再基于乘法因子的运算结果和乘法因子的运算结果确定对操作数的幂倒数运算的运算结果。
[0123]
系统内存102是易失性存储器,例如随机存取存储器(random-access memory,ram),双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddr sdram)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储第一查表、第二查找表以及前述的运算结果。
[0124]
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(hard disk drive,hdd)、光盘(compact disc,cd)、数字通用光盘(digital versatile disc,dvd)、固态硬盘(solid-state drive,ssd)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(secure digital,sd)存储卡等。在另一些实施例中,非易失性存储器103可以用于存储第一查表、第二查找表以及前述乘法因子的运算结果。
[0125]
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行时使电子设备100实现本技术各实施例提供的神经网络模型的数据处理方法。
[0126]
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信,例如,电子设备100可以通过通信接口104从其他电子设备获取神经网络模型以及该神经网络模型对应的第一查找表和第二查找表。
[0127]
输入/输出(i/o)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(i/o)设备105与电子设备100进行交互。
[0128]
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提
供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
[0129]
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(system in package,sip)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(system-on-chip,soc)。
[0130]
可以理解,图6所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0131]
本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0132]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
[0133]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0134]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
[0135]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0136]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,
在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0137]
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0138]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献