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

神经网络模型运行方法、介质和电子设备与流程

2022-06-29 23:46:59 来源:中国专利 TAG:


1.本技术涉及机器学习技术领域,特别涉及一种神经网络模型运行方法、介质和电子设备。


背景技术:

2.随着人工智能(artificial intelligence,ai)技术的快速发展,神经网络(例如,深度神经网络、循环神经网络)近年来在计算机视觉、语音、自然语言、强化学习等领域中取得了非常好的效果。随着神经网络算法的发展,算法的复杂度越来越高,为了提高识别度,模型的规模在逐渐增大,相应地,部署有神经网络模型的设备的功耗和运算资源的消耗也越来大。尤其对于一些运算资源有限的边缘设备,提高神经网络模型的运算速度,节约运算时间,降低功耗尤为重要。


技术实现要素:

3.本技术的目的在于提供了一种神经网络模型运行方法、介质和电子设备。通过本技术的神经网络模型运行方法,通过将具有相同运算形式和相同输入数据的运算项(如下文的公式(1)中的“x
t
×wxz
h
t-1
×whz”和公式(2)中的“x
t
×wxr
h
t-1
×whr
运算形式相同,输入数据都为x
t
和h
t-1
)”中的权重矩阵(w
xz
和w
xr
以及w
hz
和w
hr
)进行拼接,再利用该形式的运算项对应的运算单元基于拼接后的权重矩阵,通过一次从存储单元中获取输入数据即可得到各运算项的运算结果。从而提高了电子设备运算神经网络模型的速度。
4.本技术的第一方面提供了一种神经网络模型运行方法,应用于电子设备,其特征在于,神经网络模型包括第一运算和第二运算。并且方法包括:获取第一运算或第二运算的待运算数据矩阵,其中,第一运算和第二运算中的运算因子的数量相同,并且对于第一运算中的各运算因子,在第二运算中存在待运算数据矩阵相同而运算系数矩阵不同的对应运算因子。对待运算数据矩阵进行第三运算,生成第三运算的结果矩阵,其中,第三运算为将第一运算和第二运算中相对应的运算因子的运算系数矩阵进行合并之后得到的运算方式。对第三运算的结果矩阵进行拆分,分别得到第一运算的结果矩阵和第二运算的结果矩阵。
5.例如,以神经网络模型为门限循环单元模型,在门限循环单元模型的第t个时间步的gru网络,第一运算可以为下文的公式(1)的x
t
×wxz
h
t-1
×whz
,第二运算可以为下文的公式(2)的x
t
×wxz
h
t-1
×whz
。例如,处理器的运算单元通过一次从处理器的存储单元读取第t个时间步的输入数据x
t
、权重系数矩阵w
xz
、权重系数矩阵w
hz
、权重系数矩阵w
xr
、权重系数矩阵w
hr
以及第t-1个时间步的输出数据h
t-1
,将前述权重系数矩阵w
xz
和权重系数矩阵w
xr
进行拼接得到拼接权重矩阵w
xzr
、将前述权重系数矩阵w
hz
和权重系数矩阵w
hr
进行拼接得到拼接权重矩阵w
hzr
,运算单元通过运行x
×
h1 y
×
h2的矩阵运算逻辑,将拼接权重矩阵w
xzr
作为h1、拼接权重矩阵w
hzr
作为h2、第t个时间步的输入数据x
t
作为x、第t-1个时间步的输出数据h
t-1
作为y,进行对应的矩阵运算,即可一次运算得到公式(1)的x
t
×wxz
h
t-1
×whz
运算结果和x
t
×wxr
h
t-1
×whr
运算结果,然后根据权重系数矩阵w
xz
和权重系数矩阵w
xr
的维度值,将x
t
×wxz
h
t-1
×whz
运算结果和x
t
×wxr
h
t-1
×whr
运算结果进行拆分,分别得到x
t
×wxz
h
t-1
×whz
运算结果、x
t
×wxr
h
t-1
×whr
运算结果。通过一次从存储单元中获取输入数据即可得到各运算项的运算结果。从而提高了电子设备运算神经网络模型的速度。
6.在上述第一方面的一种可能的实现中,第一运算与第二运算的运算系数矩阵包括高度、宽度这两个数据维度,其中,第一运算与第二运算中相对应的运算因子的运算系数矩阵的高度、宽度对应相等。第三运算为第一运算与第二运算中相对应的运算因子的运算系数矩阵沿任一数据维度方向进行合并之后得到的运算方式。
7.在上述第一方面的一种可能的实现中,第三运算为第一运算与第二运算中对应的运算因子的运算系数矩阵沿宽度方向进行合并之后得到的运算方式。
8.在上述第一方面的一种可能的实现中,对第三运算的结果矩阵进行拆分,分别得到第一运算的结果矩阵和第二运算的结果矩阵包括:第三运算的结果矩阵包括高度、宽度这两个数据维度。对第三运算的结果矩阵沿任一数据维度方向进行拆分,分别得到第一运算的结果矩阵和第二运算的结果矩阵。
9.在上述第一方面的一种可能的实现中,对第三运算的结果矩阵于沿宽度方向进行拆分,分别得到第一运算的结果矩阵和第二运算的结果矩阵。
10.在上述第一方面的一种可能的实现中,第三运算为将第一运算和第二运算中相对应的运算因子的运算系数矩阵进行合并之后得到的运算方式包括:待运算数据矩阵包括第一输入数据矩阵、第二输入数据矩阵,第一运算和第二运算的运算因子包括第一运算和第二运算的第一输入数据矩阵与对应的运算系数矩阵的矩阵乘积、第一运算和第二运算的第二输入数据矩阵与对应的运算系数矩阵的矩阵乘积。
11.第三运算为第一运算与第二运算的第一输入数据矩阵相对应的运算系数矩阵进行合并,并且第一运算与第二运算的第二输入数据矩阵相对应的运算系数矩阵进行合并之后得到的运算方式。
12.在上述第一方面的一种可能的实现中,神经网络模型为循环神经网络模型,第一运算、第二运算为循环神经网络模型的全连接层的运算。
13.在上述第一方面的一种可能的实现中,神经网络模型包括以下至少一个:门限循环单元模型、长短期记忆模型。
14.本技术的第二方面提供了一种电子设备,该电子设备包括:运算单元、存储单元,其中,运算单元运行第一矩阵运算电路。运算单元从存储单元获取第一运算或第二运算的待运算数据矩阵,其中,第一运算和第二运算中的运算因子的数量相同,并且对于第一运算中的各运算因子,在第二运算中存在待运算数据矩阵相同而运算系数矩阵不同的对应运算因子。运算单元通过运行第一矩阵运算电路,对待运算数据矩阵进行第三运算,生成第三运算的结果矩阵,其中,第三运算为将第一运算和第二运算中相对应的运算因子的运算系数矩阵进行合并之后得到的运算方式,第一矩阵运算电路用于生成第一运算结果矩阵和第二运算结果矩阵。运算单元对第三运算的结果矩阵进行拆分,分别得到第一运算的结果矩阵和第二运算的结果矩阵。
15.例如,运算单元的x
×
h1 y
×
h2的矩阵运算对应的算术逻辑单元(即第一矩阵运算电路)能够一次处理数据量大于生成第t个时间步的更新门的输出结果以及生成第t个时间步的重置门的输出结果的数据处理量时,运算单元可以从存储单元上一次读取第t个时间
步的输入数据x
t
、第一权重矩阵w
xz
、第二权重矩阵w
hz
、第三权重矩阵w
xr
、第四权重矩阵w
hr
以及第t-1个时间步的输出数据h
t-1
,然后,对第一权重矩阵w
xz
与第三权重矩阵w
xr
沿宽度方向进行拼接,生成第一拼接权重矩阵。对第二权重矩阵w
xz
与第四权重矩阵w
hr
沿宽度方向进行拼接,生成第二拼接权重矩阵。运算单元通过运行x
×
h1 y
×
h2的矩阵运算对应的算术逻辑单元,即将第一拼接权重矩阵作为h1,将第二拼接权重矩阵作为h2输入到上述算术逻辑单元,从而使得运算单元从存储单元中读取一次数据,就能确定出第t个时间步的更新门的输出结果z
t

和重置门的输出结果r
t

。如此,减小了运算单元从处理单元从存储单元读取数据的次数,当gru模型处理一段待识别语音时,运算单元只需要从存储单元中读取n次数据(减少一倍的数据读取量),就能生成待识别语音对应的文字,从而提高了处理器进行语音处理的速度,进而提高电子设备的语音识别的速度,语音识别的时间变短,提升用户体验。
16.本技术的第三方面提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及多个处理器,用于运行存储器中的指令,以执行第一方面的神经网络模型运行方法。
17.本技术的第四方面提供了一种计算机可读存储介质,包括:电子设备的可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行第一方面的神经网络模型运行方法。
18.本技术的第五方面提供了一种计算机程序产品,包括计算机程序产品包括指令,该指令用于实现第一方面的神经网络模型运行方法。
附图说明
19.图1a根据本技术的一些实施例,示出了一种gru模型的应用示意图;
20.图1b根据本技术的一些实施例,示出了一种gru模型的结构示意图;
21.图1c根据本技术的一些实施例,示出了一种图1b中的第t个时间步的gru网络的结构示意图;
22.图2根据本技术的一些实施例,示出了一种电子设备的结构示意图;
23.图3根据本技术的一些实施例,示出了一种生成第t个时间步的更新门的输出结果的示意图;
24.图4根据本技术的一些实施例,示出了一种生成第t个时间步的重置门的输出结果的示意图;
25.图5根据本技术的一些实施例,示出了一种第t个时间步的第一权重矩阵与第t个时间步的第三权重矩阵拼接的示意图;
26.图6根据本技术的一些实施例,示出了一种第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵拼接的示意图;
27.图7根据本技术的一些实施例,示出了一种第t个时间步的第一输出数据的示意图;
28.图8根据本技术的一些实施例,示出了一种将第t个时间步的第一输出数据拆分成更新门的输出结果和重置门的输出结果示意图;
29.图9根据本技术的一些实施例,示出了一种gru模型运行方法的流程示意图;
30.图10根据本技术的一些实施例,示出了另一种gru模型运行方法的流程示意图。
具体实施方式
31.本技术的说明性实施例包括但不限于一种神经网络模型运行方法、装置、电子设备、介质以及计算机程序产品。下面将结合附图对本技术的实施例作进一步地详细描述。
32.由于本技术涉及门限循环单元(gated recurrent unit,gru)模型的内容,为了更加清楚的说明本技术实施例的方案,下面对本技术实施例中涉及到的gru模型进行详细描述。
33.(1)门限循环单元(gated recurrent unit,gru)模型
34.是循环神经网络(recurrent neural network,rnn)模型的一种。和长短期记忆(long-short term memory,lstm)模型一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。
35.图1a示出了一种gru模型10的应用示意图。如图1a所示,gru模型10的输入数据为待识别语音,gru模型10的输出数据为待识别语音对应的文字。
36.在其他一些实施例中,gru模型10还可以用于不同语言的文本翻译,例如,gru模型10的输入数据可以是中文文本,gru模型10的输出数据可以是中文文本对应的英文文本。gru模型10还可以用于图像分类,例如,gru模型10的输入数据可以是多帧图像,gru模型10的输出数据可以是每帧图像对应的图像类型。可以理解,gru模型10主要用于处理和预测序列数据,根据实际的应用,本技术对gru模型10的识别的内容不做具体限定。
37.图1b示出了一种gru模型10的结构示意图。如图1b所示,gru模型10包含n个gru网络,分别是gru1、gru2、

、grut-1、grut
……
、grun。其中,gru1表示第1个时间步的gru网络,gru2表示第2个时间步的gru网络,grut-1表示第t-1个时间步的gru网络,grut表示第t个时间步的gru网络,grun表示第n个时间步的gru网络。
38.例如,如图1b所示,{x1、x2、

、x
t-1
、x
t
……
、xn}为待识别语音数据,其中,x1为第1个时间步的gru网络(gru1)的语音输入数据,x2为第2个时间步的gru网络(gru2)的语音输入数据,x
t
为第t个时间步的gru网络(grut)的输入数据,
……
,xn为第n个时间步的gru网络(grun)的语音输入数据。gru模型10的输出数据{h1、h2、

、h
t-1
、h
t
……
、hn}可以是待识别语音对应的文字,其中,h1为第1个时间步的gru网络(gru1)的输出数据,h2为第2个时间步的gru网络(gru2)的输出数据,h
t
为第t个时间步的gru网络(grut)的输出数据,
……
,hn为第n个时间步的gru网络(grun)的输出数据。
39.可以理解,前述的每个时间步的gru网络的输入数据或输出数据可以为矩阵、张量、向量等,为了方便描述,在以下的方案介绍中,均以gru网络的输入数据或输出数据矩阵为例,对涉及神经网络各层的输入或输出的数据处理进行说明。
40.不难看出,由于gru模型10主要用于处理和预测序列数据,因此,当前时间步的gru网络需要结合上一时间步的输出数据,处理当前时间步的输入数据并生成当前时间步的输出数据。
41.图1c示出了一种图1b中的第t个时间步的gru网络的结构示意图。根据门结构的不同,第t个时间步的gru网络可以被划分为以下四个阶段:
42.1.更新阶段
43.更新阶段用于控制前一时间步的gru网络输出的状态信息被带入到当前时间步的gru网络的状态中的程度。更新门的门值越大说明前一时间步的状态信息带入到当前状态
中的程度越高。具体地,在第t个时间步的gru网络,更新阶段可以根据第t-1个时间步的gru网络的输出数据h
t-1
以及第t个时间步的gru网络输入数据x
t
,计算得到更新门控z
t
,通过更新门控z
t
来描述被带入当前状态h
t
的程度。
44.示例性地,更新门控z
t
可以通过以下公式(1)进行计算:
45.z
t
=σ(x
t
×wxz
h
t-1
×whz
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
46.其中σ表示sigmoid函数,即对x
t
×wxz
h
t-1
×whz
的计算结果通过sigmoid函数将其转换至(0,1)之间。w
xz
表示第t个时间步的gru网络的输入数据x
t
的权重系数矩阵,w
hz
表示第t-1个时间步的gru网络的输出数据h
t-1
的权重系数矩阵。
×
表示矩阵相乘, 表示矩阵拼接。
47.示例性地,使用第t个时间步的输入数据x
t
与权重矩阵w
xz
进行矩阵相乘的结果与第t-1个时间步的输出数据h
t-1
与权重矩阵w
xz
进行矩阵相乘的结果进行矩阵拼接,即x
t
×wxz
h
t-1
×whz
。x
t
×wxz
h
t-1
×whz
可以理解为图1c中的向量拼接运算t11。更新门控z
t
可以理解为图1c中的σ层t12的输出。
48.2.重置阶段
49.重置阶段用于控制前一时间步的gru网络输出的状态信息有多少信息被写入到当前时间步的gru网络的状态,重置门越小说明前一时间步的gru网络输出的状态信息被写入到当前时间步的gru网络的状态越少。具体地,在第t个时间步的gru网络,重置阶段可以根据第t-1个时间步的gru网络的输出数据h
t-1
以及第t个时间步的gru网络输入数据x
t
,计算得到重置门控r
t
,通过重置门控r
t
来描述前一时间步的gru网络输出的状态信息被写入到当前时间步的gru网络的状态的程度。
50.示例性地,重置门控r
t
可以通过以下公式(2)进行计算:
51.r
t
=σ(x
t
×wxr
h
t-1
×whr
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
52.其中σ表示sigmoid函数,即对x
t
×wxr
h
t-1
×whr
的计算结果通过sigmoid函数将其转换至(0,1)之间。w
xr
表示第t个时间步的gru网络的输入数据x
t
的权重系数矩阵,w
hr
表示第t-1个时间步的gru网络的输出数据h
t-1
的权重系数矩阵,
×
表示矩阵相乘, 表示矩阵拼接。
53.不难看出,使用第t个时间步的输入数据x
t
与权重系数矩阵w
xr
进行矩阵相乘的结果与第t-1个时间步的输出数据h
t-1
与权重系数矩阵w
hr
进行矩阵相乘的结果进行矩阵拼接,即x
t
×wxr
h
t-1
×whr
。x
t
×wxr
h
t-1
×whr
可以理解为图1c中的向量拼接运算t13。重置门控r
t
可以理解为图1c中的σ层t14的输出。
54.3.更新记忆阶段
55.更新记忆阶段可以对当前时间步的gru网络的输入数据进行更新记忆,即更新重要的。具体地,在第t个时间步的gru网络,更新阶段可以根据第t-1个时间步的gru网络的输出数据h
t-1
以及第t个时间步的gru网络输入数据x
t
,计算得到重置门控r
t
,然后利用重置门控r
t
实现对第t个时间步的中间输出结果c
t
的计算。
56.示例性地,第t个时间步的中间输出结果c
t
可以通过以下公式(3)进行计算:
57.c
t
=tanh(x
t
×wx
(h
t-1
·rt
)wh)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
58.其中,tanh表示tanh函数,即对x
t
×wx
(h
t-1
·rt
)wh的计算结果通过tanh函数将其转换至(-1,1)之间。w
x
表示第t个时间步的gru网络的输入数据x
t
的权重系数矩阵,wh表示第t-1个时间步的gru网络的输出h
t-1
与重置门的门值r
t
按位相乘的计算结果的权重系数矩阵。
·
表示两个矩阵中行列号相同的数据对应相乘,
×
表示矩阵相乘, 表示矩阵拼接。
59.不难看出,使用第t-1个时间步的gru网络的输出h
t-1
与重置门的门值r
t
按位相乘,即h
t-1
·rt
,h
t-1
·rt
可以理解为图1c的t15。使用第t个时间步的输入数据x
t
与权重系数矩阵w
xr
进行矩阵相乘的结果与第t-1个时间步的输出数据h
t-1
与重置门的门值r
t
按位相乘的计算结果与权重系数矩阵w
hr
进行矩阵相乘的结果进行矩阵拼接,即x
t
×wx
(h
t-1
·rt
)wh。x
t
×wx
(h
t-1
·rt
)wh可以理解为图1c中的向量拼接运算t16。第t个时间步的中间输出结果c
t
可以理解为图1c中的tanh层t17的输出。
60.4.输出阶段
61.输出阶段可以确定第t个时间步的gru网络的输出和状态,并进行输出。具体地,输出阶段可以根据第t-1个时间步的gru网络的输出数据h
t-1
、更新门的门控z
t
以及第t个时间步的中间输出结果c
t
,计算得到第t个时间步的输出数据h
t

62.示例性地,第t个时间步的输出数据h
t
可以通过以下公式(4)进行计算:
63.h
t
=(1-z
t
)
·ct
z
t
·ht-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
64.其中,z
t
表示更新门的门控z
t
,h
t-1
表示第t-1个时间步的gru网络的输出h
t-1
,c
t
表示第t个时间步的中间输出结果c
t

·
表示两个矩阵中行列号相同的数据对应相乘, 表示向量求和。
65.不难看出,使用1减去更新门的门值z
t
即为1-z
t
,1-z
t
可以理解为图1c中的t18的运算。使用第t个时间步的中间输出结果c
t
与1-z
t
的运算结果进行向量按位乘积运算,即(1-z
t
)
·ct
,(1-z
t
)
·ct
可以理解为图1c中t19的运算。使用第t-1个时间步的gru网络的输出h
t-1
与更新门的门控z
t
进行向量按位乘积运算,即z
t
·ht-1
,z
t
·ht-1
可以理解为图1c中t20的运算。使用第t-1个时间步的gru网络的输出h
t-1
与更新门的门控z
t
进行向量按位乘积运算的结果与第t个时间步的中间输出结果c
t
与1-z
t
的运算结果进行向量按位乘积运算的结果进行向量求和运算,即(1-z
t
)
·ct
z
t
·ht-1
,(1-z
t
)
·ct
z
t
·ht-1
可以理解为图1c中的t21的运算。
66.可以理解,电子设备的处理器中设置有针对上述公式(1)至公式(4)中各运算项的运算单元,运算单元通过从处理器的存储单元中读取各运算项的输入数据,即可利用运算单元得到该运算项的运算结果。其中,运算项可以是上述各公式的至少部分项,例如公式(1)中的x
t
×wxz
h
t-1
×whz
、公式(2)中的x
t
×wxz
h
t-1
×whz
、sigmoid函数σ()等。
67.电子设备的处理器的运算单元在运行前述公式(1)至公式(4)定义的gru网络时,需要先从处理器的存储单元中将各公式中的运算项的输入数据,读取到运算单元相对应的运算逻辑电路中,再根据各运算项的运算逻辑得到各运算项的运算结果。也即是说,处理器的运算单元每运行一个运算项,都需要从处理器的存储单元中读取一次输入数据,增加了处理器的运算单元从存储单元读取数据的次数,降低了神经网络模型的运行速度。
68.例如,处理器的处理单元在运行x
×
h1 y
×
h2的矩阵运算逻辑,以计算出公式(1)的x
t
×wxz
h
t-1
×whz
的运算结果时,需要先从处理器的存储单元读取输入数据x
t
、权重系数矩阵w
xz
、权重系数矩阵w
hz
、以及第t-1个时间步的输出数据h
t-1
,处理单元读取到该数据后,运行x
×
h1 y
×
h2的矩阵运算逻辑,对x
t
×wxz
h
t-1
×whz
进行运算,得到x
t
×wxz
h
t-1
×whz
的运算结果。然后,处理器的处理单元再运行x
×
h1 y
×
h2的矩阵运算逻辑,以计算出公式(2)的x
t
×wxr
h
t-1
×whr
的运算结果时,并且需要再次从处理器的存储单元读取输入数据x
t
、权重系数矩阵w
xr
、权重系数矩阵w
hr
、以及第t-1个时间步的输出数据h
t-1
,处理单元读取到该
数据后,运行x
×
h1 y
×
h2的矩阵运算逻辑,对x
t
×wxr
h
t-1
×whr
进行运算,得到x
t
×wxr
h
t-1
×whr
的运算结果。不难看出,运算单元在计算x
t
×wxz
h
t-1
×whz
的运算结果以及x
t
×wxr
h
t-1
×whr
的运算结果时,需要从存储单元读取两次数据,才能得到x
t
×wxz
h
t-1
×whz
的运算结果以及x
t
×wxr
h
t-1
×whr
的运算结果。
69.为降低运算单元从存储单元读取数据的次数,本技术实施例提供了一种神经网络模型的运行方法,通过将具有相同运算形式和相同输入数据的运算项(如公式(1)中的“x
t
×wxz
h
t-1
×whz”和公式(2)中的“x
t
×wxr
h
t-1
×whr
运算形式相同,输入数据都为x
t
和h
t-1
)”中的权重矩阵(w
xz
和w
xr
以及w
hz
和w
hr
)进行拼接,再利用该形式的运算项对应的运算单元基于拼接后的权重矩阵,通过一次从存储单元中获取输入数据即可得到各运算项的运算结果。从而提高了电子设备运算神经网络模型的速度。
70.例如,处理器的运算单元通过一次从处理器的存储单元读取第t个时间步的输入数据x
t
、权重系数矩阵w
xz
、权重系数矩阵w
hz
、权重系数矩阵w
xr
、权重系数矩阵w
hr
以及第t-1个时间步的输出数据h
t-1
,将前述权重系数矩阵w
xz
和权重系数矩阵w
xr
进行拼接得到拼接权重矩阵w
xzr
、将前述权重系数矩阵w
hz
和权重系数矩阵w
hr
进行拼接得到拼接权重矩阵w
hzr
,运算单元通过运行x
×
h1 y
×
h2的矩阵运算逻辑,将拼接权重矩阵w
xzr
作为h1、拼接权重矩阵w
hzr
作为h2、第t个时间步的输入数据x
t
作为x、第t-1个时间步的输出数据h
t-1
作为y,进行对应的矩阵运算,即可一次运算得到公式(1)的x
t
×wxz
h
t-1
×whz
运算结果和x
t
×wxr
h
t-1
×whr
运算结果,然后根据权重系数矩阵w
xz
和权重系数矩阵w
xr
的维度值,将x
t
×wxz
h
t-1
×whz
运算结果和x
t
×wxr
h
t-1
×whr
运算结果进行拆分,分别得到x
t
×wxz
h
t-1
×whz
运算结果、x
t
×wxr
h
t-1
×whr
运算结果。
71.为便于理解本技术实施例的技术方案,下面对执行门限循环单元模型10的计算过程的电子设备20进行介绍。
72.图2根据本技术的一些实施例,示出了一种电子设备20的结构示意图,如图2所示,电子设备20包括处理器21、系统内存22、非易失性存储器23、输入/输出设备24、通信接口25以及用于耦接处理器21、系统内存22、非易失性存储器23、输入/输出设备24、通信接口25的系统控制逻辑26。其中:
73.处理器201可以包括一个或多个处理单元,例如可以包括中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)、数字信号处理器(digital signal processor,dsp)、微处理器(micro-programmed control unit,mcu)、可编程逻辑器件(field programmable gate array,fpga)、人工智能处理单元(artificial intelligence processing unit,aipu)、神经网络处理器(neural-network processing unit,npu)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,处理器201可以执行神经网络模型10的计算过程。
74.在一些实施例中,处理器21可以包括控制单元210、运算单元211和存储单元212,其中控制单元210用于对处理器21进行调度,在一些实施例中,控制单元210还包括直接存储器访问控制器(direct memory access controller,dmac)2101,用于将存储单元212中的数据传递给其他单元,例如传递给系统内存22。
75.运算单元211用于执行具体的算数和/或逻辑运算,在一些实施例中,运算单元211
可以包括算术逻辑单元,算术逻辑单元是指能实现多组算术运算与逻辑运算的组合逻辑电路,用于执行算术与逻辑操作。例如,运算单元211包括公式(1)至公式(4)的算子对应的算术逻辑单元。
76.在一些实施例中,运算单元211内部包括多个处理单元(process engine,pe)。在一些实现中,运算单元211是二维脉动阵列。运算单元211还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算单元211是通用的矩阵处理器。
77.例如,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算单元211从存储单元212中取输入矩阵a,权重矩阵b相应的数据,并缓存在运算电路中每一个pe上,运算电路将矩阵a中的数据与矩阵b中的数据进行矩阵运算,得到的矩阵的部分结果或最终结果。不难理解,运算单元211可以一次处理大小为100
×
100的矩阵运算,得到的矩阵运算最终的结果,也可以一次处理大小为10
×
10的矩阵运算,得到的矩阵运算最终的结果。
78.在另一些实施中,运算单元211还可以包括多个适于运行神经网络模型的专用集成电路(application specific integrated circuit,asic),例如卷积计算单元、向量计算单元等。在一些实施例中,运算单元211可以用于从存储单元212读取第t个时间步的输入数据、第一权重矩阵、第二权重矩阵、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据,通过算数运算,生成第t个时间步的重置门的门值以及更新门的门值。存储单元212用于临时存储运算单元211的输入和/或输出数据。例如,存储单元212可以用于存储第t个时间步的输入数据、第一权重矩阵、第二权重矩阵、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据。
79.可以理解,在另一些实施例中,dmac 2101也可以不集成在处理器21中,而是与系统控制逻辑26耦接的独立模块,本技术实施例不做限定。
80.系统内存22可以包括随机存取存储器(random-access memory,ram),双倍数据率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddr sdram)等存储器,用于临时存储电子设备20的数据或指令。
81.非易失性存储器23可以是包括用于永久性存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。非易失性存储器23可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(hard disk drive,hdd)、光盘(compact disc,cd)、数字通用光盘(digital versatile disc,dvd)、固态硬盘(solid-state drive,ssd)等。在一些实施例中,非易失性存储器23也可以是可移动存储介质,例如安全数字(secure digital,sd)存储卡等。在一些实施例中,非易失性存储器23用于永久地存储电子设备20的数据或指令,例如用于存储神经网络模型10的指令。
82.输入/输出(i/o)设备24可以包括输入设备,例如键盘、鼠标、触摸屏、等,用于将用户的操作转换为模拟或数字信号并传递给处理器21;以及输出设备,例如扬声器、打印机、显示器等,用于将电子设备20中的信息以声音、文字、图像等形式展示给用户。
83.通信接口25提供电子设备20与其他电子设备进行通信的软/硬件接口,使得电子设备20能够与其他电子设备20进行数据交换,例如电子设备20可以通过通信接口25从其他电子设备获取用于进行运行神经网络模型的数据,也可以通过通信接口25将神经网络模型的运算结果传递给其他电子设备。
84.系统控制逻辑26可以包括任意合适的接口控制器,以向电子设备20的其他模块提供任意合适的接口,使得电子设备20的各个模块可以相互通信。
85.在一些实施例中,处理器21中的至少一个可以与用于系统控制逻辑26的一个或多个控制器的逻辑封装在一起,以形成系统封装(system in package,sip)。在另一些实施例中,处理器21中的至少一个还可以与用于系统控制逻辑26的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(system-on-chip,soc)。
86.可以理解,图2示出的电子设备20的硬件结构只是一种示例,在另一些实施例中,电子设备20也可以包括更多或更少的模块,还可以组合或拆分部分模块,本技术实施例不做限定。
87.可以理解,电子设备20可以是能够运行gru模型10的任意电子设备,包括但不限于膝上型计算机、台式计算机、平板计算机、手机、服务器、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器的电视机,本技术实施例不做限定。
88.为便于理解,下面结合电子设备20的结构,说明电子设备运行gru模型10的过程。
89.可以理解,电子设备20运行gru模型10中每一个gru网络的过程类似,以下以第t个gru网络为例,介绍电子设备20运行gru模型10的过程。
90.本技术实施例提供一种gru模型运行方法,运算单元211根据从存储单元212第一次读取的第t个时间步的输入数据、第一权重矩阵(即公式(1)的权重系数矩阵w
xz
)、第二权重矩阵(即公式(1)的重系数矩阵w
hz
)以及第t-1个时间步的输出数据,通过运行更新门的非线性算子和线性算子,处理第t个时间步的输入数据、第一权重矩阵、第二权重矩阵以及第t-1个时间步的输出数据,运算单元211通过运行非线性算子,确定更新门的输出结果(即公式(1)的算子x
t
×wxz
h
t-1
×whz
的计算结果)。然后根据从存储单元212第二次读取的第t个时间步的输入数据xt、第三权重矩阵(即公式(2)的重系数矩阵w
xr
)、第四权重矩阵(即公式(2)的重系数矩阵w
hr
)以及第t-1个时间步的输出数据,通过运行重置门的线性算子,生成重置门的输出结果(即公式(2)的算子x
t
×wxr
h
t-1
×whr
的计算结果)。
91.下面以第t个时间步的输入数据x
t
为大小为1
×
2的矩阵、第t-1个时间步的输出数据h
t-1
为1
×
4的矩阵、第一权重矩阵为大小为2
×
4的矩阵以及第二权重矩阵为大小为4
×
4的矩阵为例,来说明运算单元211运行第t个时间步的gru网络的更新门的线性算子(即公式1中的算子x
t
×wxz
h
t-1
×whz
),生成第t个时间步的更新门的输出结果z
t

(大小为1
×
4的矩阵)的计算过程。
92.例如,如图3所示,第t个时间步的输入数据x
t
为大小为1
×
2的矩阵,其中,输入数据x
t
的第一行数据包括1、2。第t个时间步的第一权重矩阵w
xz
为大小为2
×
4的矩阵,其中,第一权重矩阵w
xz
的第一行数据包括3、2、5、4,第一权重矩阵w
xz
的第二行数据包括4、1、1、1。第t-1个时间步的输出数据h
t-1
为1
×
4的矩阵,其中,输出数据h
t-1
的第一行数据包括1、2、1、3。第t个时间步的第二权重矩阵w
hz
为大小为4
×
4的矩阵,其中,第二权重矩阵w
hz
的第一行数据包括3、2、1、0,第二权重矩阵w
hz
的第二行数据包括2、1、0、3,第三行数据包括1、0、1、2,第四行数据包括1、3、2、1。运算单元211运行更新门的线性算子,生成的更新门的输出结果z
t

为大小为1
×
4的矩阵,其中,更新门的输出结果z
t

的第一行数据包括22、17、15、17。
93.下面以第t个时间步的输入数据x
t
为大小为1
×
2的矩阵、第t-1个时间步的输出数
据h
t-1
为1
×
4的矩阵、第三权重矩阵w
xr
为大小为2
×
4的矩阵以及第四权重矩阵w
hr
为大小为4
×
4的矩阵为例,来说明运算单元211运行第t个时间步的gru网络的重置门的线性算子(即公式2中的算子x
t
×wxr
h
t-1
×whr
),生成第t个时间步的重置门的输出结果r
t

(大小为1
×
4的矩阵)的计算过程。
94.例如,如图4所示,第t个时间步的输入数据x
t
为大小为1
×
2的矩阵,其中,输入数据x
t
的第一行数据包括1、2。第t个时间步的第三权重矩阵w
xr
为大小为2
×
4的矩阵,其中,第三权重矩阵w
xr
第一行数据包括3、2、0、2,第三权重矩阵w
xr
的第二行数据包括2、1、1、1。第t-1个时间步的输出数据h
t-1
为1
×
4的矩阵,其中,输出数据h
t-1
的第一行数据包括1、2、1、3。第t个时间步的第四权重矩阵w
hr
为大小为4
×
4的矩阵,其中,第四权重矩阵w
hr
的第一行数据包括0、2、1、0,第四权重矩阵w
hr
的第二行数据包括2、1、0、0,第四权重矩阵w
hr
的第三行数据包括1、0、1、2,第四权重矩阵w
hr
的第四行数据包括1、0、2、1。运算单元211运行重置门的线性算子,生成的重置门的输出结果z
t

为大小为1
×
4的矩阵,其中,重置门的输出结果z
t

的第一行数据包括15、8、10、9。
95.由图3至图4的描述可知,运算单元211需要先从存储单元212读取第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第一权重矩阵w
xz
以及第二权重矩阵w
hz
,通过运行更新门的线性算子,生成的更新门的输出结果z
t

。然后,运算单元211再从存储单元212读取第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第三权重矩阵w
xr
以及第四权重矩阵w
hr
,通过运行重置门的线性算子,生成的重置门的输出结果r
t


96.不难看出,运算单元211在对一个时间步的输入数据进行推理,得到该时间步的语音数据对应的文字的过程中,需要通过从存储单元212读取的两次数据(即前述第一次读取的第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第一权重矩阵w
xz
以及第二权重矩阵w
hz
y以及第二次读取的第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第三权重矩阵w
xr
以及第四权重矩阵w
hr
),并对每次读取的数据进行矩阵运算,才能生成第t个时间步的更新门的输出结果z
t

和重置门的重置门的输出结果r
t

,降低了运算单元对输入数据进行推理的速度。
97.不难理解,gru模型10包括n个时间步的gru网络,在gru模型10的每个时间步的gru网络中,运算单元211都需要从存储单元212中读取两次数据,才能计算出每个时间步的gru网络的更新门的门值和重置门的门值。因此,在gru模型10处理一段语音时,运算单元211至少需要从存储单元212中读取2*n次数据,gru模型10处理10段语音时,运算单元211至少需要从存储单元212中读取20*n次数据。如此,运算单元211在运行gru模型10进行数据处理(例如,语音识别)时需要多次从存储单元212读取数据,影响处理器21进行语音处理的速度,进而影响电子设备20的语音识别的速度,导致语音识别的时间较长,影响用户体验。
98.由上述描述不难看出,更新门算子与重置门算子的矩阵运算结构相同,即均是x
×
h1 y
×
h2的矩阵运算,即运算单元211具有x
×
h1 y
×
h2的矩阵运算对应的算术逻辑单元。但是更新门算子与重置门算子的矩阵运算的两个输入数据的权重系数均不相同,即第一权重矩阵与第三权重矩阵不同以及第二权重矩阵与第四权重矩阵不同。
99.为了减少运算单元211从存储单元212读取数据的次数,本技术实施例提供另一种gru模型运行方法,运算单元211通过一次从存储单元212读取第t个时间步的输入数据x
t
、第一权重矩阵w
xz
、第二权重矩阵w
hz
、第三权重矩阵w
xr
、第四权重矩阵w
hr
以及第t-1个时间步
的输出数据h
t-1
,将前述第一权重矩阵w
xz
和第三权重矩阵w
xr
进行拼接得到第一拼接权重矩阵、将前述第二权重矩阵w
hz
和第四权重矩阵w
hr
进行拼接得到第二拼接权重矩阵,并将第一拼接权重矩阵、第二拼接权重矩阵和第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
进行x
×
h1 y
×
h2的矩阵运算,即可得到第t个时间步的更新门的输出结果z
t

和重置门的输出结果r
t

。如此,减少了运算单元211从存储单元212读取数据的次数,进而提高了运算单元运行神经网络模型的速度。
100.例如,若运算单元211的x
×
h1 y
×
h2的矩阵运算对应的算术逻辑单元能够一次处理数据量大于生成第t个时间步的更新门的输出结果以及生成第t个时间步的重置门的输出结果的数据处理量时,运算单元211可以从存储单元212上一次读取第t个时间步的输入数据x
t
、第一权重矩阵w
xz
、第二权重矩阵w
hz
、第三权重矩阵w
xr
、第四权重矩阵w
hr
以及第t-1个时间步的输出数据h
t-1
,然后,对第一权重矩阵w
xz
与第三权重矩阵w
xr
沿宽度方向进行拼接,生成第一拼接权重矩阵。对第二权重矩阵w
xz
与第四权重矩阵w
hr
沿宽度方向进行拼接,生成第二拼接权重矩阵。运算单元211通过运行x
×
h1 y
×
h2的矩阵运算对应的算术逻辑单元,即将第一拼接权重矩阵作为h1,将第二拼接权重矩阵作为h2输入到上述算术逻辑单元,从而使得运算单元211从存储单元212中读取一次数据,就能确定出第t个时间步的更新门的输出结果z
t

和重置门的输出结果r
t

。如此,减小了运算单元211从处理单元211从存储单元212读取数据的次数,当gru模型10处理一段待识别语音时,运算单元211只需要从存储单元212中读取n次数据(减少一倍的数据读取量),就能生成待识别语音对应的文字,从而提高了处理器21进行语音处理的速度,进而提高电子设备20的语音识别的速度,语音识别的时间变短,提升用户体验。
101.具体地,对于图3和图4所示的第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第一权重矩阵w
xz
、第二权重矩阵w
hz
的矩阵运算以及第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第三权重矩阵w
xr
以及第四权重矩阵w
hr
的矩阵运算,运算单元211可以同时从存储单元212读取第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
、第一权重矩阵w
xz
、第二权重矩阵w
hz
、第三权重矩阵w
xr
以及第四权重矩阵w
hr
,并将第一权重矩阵w
xz
和第三权重矩阵w
xr
拼接为图5所示的第一拼接权重矩阵w
xzr
,把第二权重矩阵w
hz
和第四权重矩阵w
hr
拼接为图6所示第二拼接权重矩阵w
hzr
;然后将第一拼接权重矩阵w
xzr
、第二拼接权重矩阵w
hzr
和第t个时间步的输入数据x
t
、第t-1个时间步的输出数据h
t-1
进行x
×
h1 y
×
h2的矩阵运算,得到图7所示的第t个时间步的第一输出数据zr
t

;参考图8,运算单元211再将图7得到的图3和图4的第t个时间步的更新门的输出结果z
t

和重置门的输出结果r
t

进行拆分,得到第t个时间步的更新门的输出结果z
t

和重置门的输出结果r
t

。具体地计算过程将在下文进行描述,在此不做赘述。
102.下面结合电子设备20的硬件结构,对电子设备20执行本技术实施例提供的gru模型10运行方法的过程,进行详细介绍。
103.图9根据本技术的一些实施例,示出了一种gru模型10运行方法的流程示意图。下面以gru模型10中的第t个时间步的gru网络(grut)为例,对本技术实施例进行介绍,该运行方法包括:
104.s901:运算单元211从存储单元212读取第t个时间步的输入数据、第一权重矩阵、第二权重矩阵以及第t-1个时间步的输出数据。其中,第一权重矩阵即为公式(1)中的权重
系数矩阵w
xz
,第二权重矩阵即为公式(1)中的权重系数矩阵w
hz

105.s902:运算单元211根据第t个时间步的输入数据、第一权重矩阵、第二权重矩阵以及第t-1个时间步的输出数据,通过运行第t个时间步的gru网络的更新门的线性算子,确定第t个时间步的更新门的输出结果。其中,第t个时间步的gru网络的更新门的线性算子可以是公式(1)中的算子x
t
×wxz
h
t-1
×whz

106.s903:运算单元211根据更新门的输出结果,通过运行第t个时间步的gru网络的更新门的非线性算子,确定第t个时间步的gru网络的更新门的门值。其中,gru网络的更新门的非线性算子可以是公式(1)中的σ()(即sigmoid函数)算子。
107.s904:运算单元211从存储单元212读取第t个时间步的输入数据、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据。其中,第三权重矩阵即为公式(2)中的权重系数矩阵w
xr
,第二权重矩阵即为公式(2)中的权重系数矩阵w
hr

108.s905:运算单元211根据第t个时间步的输入数据、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据,通过gru网络的重置门的线性算子确定重置门的输出结果。
109.s906:运算单元211根据重置门的输出结果,通过运行第t个时间步的gru网络的重置门的非线性算子,确定第t个时间步的gru网络的重置门的门值。其中,gru网络的重置门的非线性算子可以是公式(2)中的σ()(即sigmoid函数)算子。
110.s907:运算单元211根据第t个时间步的重置门的门值、第t个时间步的更新门的门值、第t个时间步的输入数据以及第t-1个时间步的输出数据,确定第t个时间步的输出数据。
111.在一些实施例中,运算单元211根据第t个时间步的重置门的门值、第t个时间步的更新门的门值、第t个时间步的输入数据以及第t-1个时间步的输出数据,确定第t个时间步的输出数据。具体地,第t个时间步的输出数据可以通过公式(3)和公式(4)计算得到,具体计算过程参考公式(3)和公式(4)的描述,在此不做赘述。
112.不难看出,在步骤s901至步骤s906中,运算单元211计算第t个时间步的gru网络的重置门的门值以及更新门的门值时,需要在步骤s901时读取一次数据,即读取第t个时间步的输入数据、第一权重矩阵、第二权重矩阵以及第t-1个时间步的输出数据,在步骤s903时再读取一次数据,即读取第t个时间步的输入数据、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据。
113.因此,为了减少运算单元211计算第t个时间步的重置门的门值以及更新门的门值的过程中,运算单元211从存储单元212中读取数据的次数。本技术还提供了一种gru模型10运行方法,运算单元211只需要从存储单元212中一次读取第t个时间步的输入数据、第一权重矩阵、第二权重矩阵、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据,通过将第一权重矩阵与第三权重矩阵进行拼接,第二权重矩阵与第四权重矩阵进行拼接,然后运算单元211根据拼接后的权重矩阵、第t个时间步的输入数据以及第t-1个时间步的输出数据,生成第t个时间步的重置门的门值、第t个时间步的更新门的门值。
114.图10根据本技术的一些实施例,示出了另一种gru模型10运行方法的流程示意图。下面以gru模型10中的第t个时间步的gru网络(grut)为例,对本技术实施例进行介绍,该运行方法包括:
115.s1001:运算单元211从存储单元212读取第t个时间步的输入数据、第一权重矩阵、
第二权重矩阵、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据。
116.例如,如图1a至图1c所示,以gru模型10中的第t个时间步的gru网络(grut)为例,为了计算更新门的门值和重置门的门值,运算单元211可以从存储单元212读取第t个时间步的输入数据、第一权重矩阵、第二权重矩阵、第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据,其中,第一权重矩阵即为公式(1)中的权重系数矩阵w
xz
,第二权重矩阵即为公式(1)中的权重系数矩阵w
hz
,第二权重矩阵即为公式(2)中的权重系数矩阵w
xr
,第二权重矩阵即为公式(2)中的权重系数矩阵w
hr

117.在一些实施例中,第t个时间步的输入数据x
t
为大小为h1
×
w1的矩阵,其中,h1表示第t个时间步的输入数据x
t
的行数,w1表示第t个时间步的输入数据x
t
的列数。第t个时间步的第一权重矩阵w
xz
和第三权重矩阵w
xr
均为大小为h2
×
w2的矩阵,h2表示第一权重矩阵w
xz
和第三权重矩阵w
xr
的行数。第t个时间步的第二权重矩阵w
hz
和第四权重矩阵w
hr
均为大小为h3
×
w3的矩阵,h3表示第二权重矩阵w
hz
和第四权重矩阵w
hr
的行数。w3表示第二权重矩阵w
hz
和第四权重矩阵w
hr
的列数。第t-1个时间步的输出数据h
t-1
为大小为h4
×
w4的矩阵,h4表示第t-1个时间步的输出数据h
t-1
的行数,w4表示第t-1个时间步的输出数据h
t-1
的列数。
118.不难理解,为了保证第t个时间步的gru网络的更新门的线性算子中输入数据x
t
与第一权重矩阵w
xz
的矩阵相乘、输出数据h
t-1
与第二权重矩阵w
hz
的矩阵相乘以及输入数据x
t
与第一权重矩阵w
xz
的矩阵相乘的结果与输出数据h
t-1
与第二权重矩阵w
hz
的矩阵相乘的结果实现矩阵相加,第t个时间步的输入数据的行数h1的值与第t-1个时间步的输出数据的行数h4的值相等。第一权重矩阵的行数h2的值与第t个时间步的输入数据的列w1的值相等。第二权重矩阵的行数h3的值与第t-1个时间步的输出数据的列数w4的值相等。第一权重矩阵的列数w2与第二权重矩阵的列数w3相等。同理,第t个时间步的gru网络的重置门的线性算子中的各矩阵的行数以及列数的对应关系参考第t个时间步的gru网络的更新门的线性算子中的各矩阵的行数以及列数的对应关系,在此不做赘述。
119.在一些实施例中,第t个时间步的输入数据、第一权重矩阵、第二权重矩阵第三权重矩阵、第四权重矩阵以及第t-1个时间步的输出数据中的数据可以是整型数,也可以是浮点数,根据实际的应用,本技术对第t个时间步的输入数据、第一权重矩阵、第二权重矩阵以及第t-1个时间步的输出数据的数据类型不做具体限定。
120.s1002:运算单元211将第t个时间步的第一权重矩阵与第t个时间步的第三权重矩阵沿矩阵的宽度方向进行拼接,生成拼接后的第一拼接权重矩阵。
121.在一些实施例中,第t个时间步的第一权重矩阵w
xz
为大小为h2
×
w2的矩阵,h2既表示w
xz
的行数,又表示w
xz
的矩阵的高度,w2既表示w
xz
的列数,又表示w
xz
的矩阵的宽度。第t个时间步的第三权重矩阵w
xr
为大小为h2
×
w2的矩阵,h2既表示w
xr
的行数,又表示w
xr
的矩阵的高度,w2既表示w
xr
的列数,又表示w
xr
的矩阵的宽度。
122.不难看出,第t个时间步的第一权重矩阵与第t个时间步的第三权重矩阵的高度值与宽度值分别相等,只是第t个时间步的第一权重矩阵与第t个时间步的第三权重矩阵中的数据不同。因此,运算单元211可以将第t个时间步的第一权重矩阵与第t个时间步的第三权重矩阵沿矩阵的宽度方向进行拼接,生成拼接后的第一拼接权重矩阵。
123.在一些实施例中,第t个时间步的第一权重矩阵为大小为h2
×
w2的矩阵,第t个时间步的第三权重矩阵为大小为h2
×
w2的矩阵,运算单元211将第t个时间步的第一权重矩阵
与第t个时间步的第三权重矩阵沿矩阵的宽度方向进行拼接,生成拼接后的第一拼接权重矩阵。拼接后的第一拼接权重矩阵为大小为h2
×
2*w2的矩阵。
124.例如,如图5所示,第t个时间步的第一权重矩阵w
xz
与第t个时间步的第三权重矩阵w
xr
均为大小为2
×
4的矩阵,第一权重矩阵w
xz
的第一行数据包括3、2、5、4,第一权重矩阵w
xz
的第二行数据包括4、1、1、1。第三权重矩阵w
xr
第一行数据包括3、2、0、2,第三权重矩阵w
xr
的第二行数据包括2、1、1、1。则运算单元211将第t个时间步的第一权重矩阵w
xz
与第三权重矩阵w
xr
沿矩阵的宽度方向进行拼接,生成的拼接后的第一拼接权重矩阵w
xzr
为大小为2
×
8的矩阵。如图5所示,第一拼接权重矩阵w
xzr
的第一行数据包括:3、2、5、4、3、2、0、2,第一拼接权重矩阵w
xzr
的第二行数据包括:4、1、1、1、2、1、1、1。
125.s1003:运算单元211将第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵沿矩阵的宽度方向进行拼接,生成拼接后的第二拼接权重矩阵。
126.在一些实施例中,第t个时间步的第二权重矩阵w
hz
为大小为h3
×
w3的矩阵,h3既表示w
hz
的行数,又表示w
hz
的矩阵的高度,w3既表示w
hz
的列数,又表示w
hz
的矩阵的宽度。第t个时间步的第三权重矩阵w
hr
为大小为h2
×
w2的矩阵,h2既表示w
hr
的行数,又表示w
hr
的矩阵的高度,w2既表示w
hr
的列数,又表示w
hr
的矩阵的宽度。
127.不难看出,第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵的宽度值与高度值分别相等,只是第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵中的数据不同。运算单元211可以将第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵沿矩阵的高度方向进行拼接,生成拼接后的第二拼接权重矩阵。
128.在一些实施例中,第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵均为大小为h3
×
w3的矩阵,因此,运算单元211可以将第t个时间步的第二权重矩阵与第t个时间步的第四权重矩阵沿矩阵的宽度方向进行拼接,生成拼接后的第二拼接权重矩阵。第二拼接权重矩阵为大小为h3
×
2*w3的矩阵。
129.例如,如图6所示,第t个时间步的第二权重矩阵w
hz
与第t个时间步的第四权重矩阵w
xr
均为大小为4
×
4的矩阵。其中,第二权重矩阵w
hz
的第一行数据包括:3、2、1、0,第二权重矩阵w
hz
的第二行数据包括:2、1、0、3,第三行数据包括:1、0、1、2,第四行数据包括1、3、2、1。第四权重矩阵w
hr
的第一行数据包括0、2、1、0,第四权重矩阵w
hr
的第二行数据包括:2、1、0、0,第四权重矩阵w
hr
的第三行数据包括:1、0、1、2,第四权重矩阵w
hr
的第四行数据包括:1、0、2、1。运算单元211将第t个时间步的第二权重矩阵w
hz
与第三权重矩阵w
hr
沿矩阵的宽度方向进行拼接,生成的拼接后的第二拼接权重矩阵w
hzr
为大小为4
×
8的矩阵。其中,第二拼接权重矩阵w
hzr
的第一行数据包括:3、2、1、0、0、2、1、0,第二权重矩阵w
hz
的第二行数据包括:2、1、0、3、2、1、0、0,第二权重矩阵w
hz
的第三行数据包括:1、0、1、2、1、0、1、2,第二权重矩阵w
hz
的第四行数据包括:1、3、2、1、1、0、2、1。
130.s1004:运算单元211根据第t个时间步的gru网络的重置门的线性算子以及更新门的线性算子,确定第t个时间步的gru网络的第一算子,根据第t个时间步的输入数据、第一拼接权重矩阵、第二拼接权重矩阵、以及第t-1个时间步的输出数据,运行第t个时间步的gru网络的第一算子,生成第t个时间步的gru网络的第一输出数据。
131.在一些实施例中,运算单元211根据gru网络的重置门的线性算子以及更新门的线性算子,确定第t个时间步的第一算子。运算单元211根据第t个时间步的输入数据、第一拼
接权重矩阵、第二拼接权重矩阵、以及第t-1个时间步的输出数据,运行第t个时间步的第一算子,生成第t个时间步的第一输出数据。具体地,第t个时间步的第一输出数据zr
t

可以通过如下公式(5)表示:
132.zr
t

=x
t
×wxzr
h
t-1
×whzr
ꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
133.公式(5)中,x
t
×wxzr
h
t-1
×whzr
表示第t个时间步的gru网络的第一算子,x
t
表示第t个时间步的输入数据,h
t-1
表示第t-1个时间步的输出数据,w
xzr
表示第t个时间步的第一拼接权重矩阵,w
hzr
表示第t个时间步的第二拼接权重矩阵,
×
表示矩阵相乘, 表示矩阵相加。
134.例如,如图7所示,第t个时间步的输入数据x
t
为大小为1
×
2的矩阵,其中,输入数据x
t
的第一行数据包括1、2。第t-1个时间步的输出数据h
t-1
为1
×
4的矩阵,其中,输出数据h
t-1
的第一行数据包括1、2、1、3。第一拼接权重矩阵w
xzr
为大小为2
×
8的矩阵。第一拼接权重矩阵w
xzr
中的具体数据参考图5的描述。第二拼接权重矩阵w
hzr
为大小为4
×
8的矩阵。第二拼接权重矩阵w
hzr
中的具体数据参考图6的描述。
135.具体地,运算单元211根据第t个时间步的输入数据x
t
、第一拼接权重矩阵w
xzr
、第二拼接权重矩阵w
hzr
、以及第t-1个时间步的输出数据h
t-1
,运行第t个时间步的gru网络的第一算子,生成第t个时间步的gru网络的第一输出数据zr
t

。如图7所示,第t个时间步的gru网络的第一输出数据zr
t

为大小为1
×
8的矩阵,第t个时间步的gru网络的第一输出数据zr
t

的第一行数据包括:22、17、15、17、15、8、10、9。
136.s1005:运算单元211根据第一权重矩阵和第三权重矩阵的宽度值,或第二权重矩阵和第四权重矩阵的宽度值,确定第t个时间步的gru网络的第一输出数据中的更新门的输出结果和重置门的输出结果。
137.例如,如图8所示,第一权重矩阵w
xz
和第三权重矩阵w
xr
的宽度值均为4,因此,运算单元211以第一输出数据zr
t

的第1列至第4列的数据作为更新门的输出结果z
t

,以第一输出数据的第5列至第8列的数据作为重置门的输出结果r
t

。如图8所示,第t个时间步的gru网络的更新门的输出结果z
t

为大小为1
×
4的矩阵,更新门的输出结果z
t

的第一行数据包括22、17、15、17。重置门的输出结果r
t

为大小为1
×
4的矩阵,重置门的输出结果z
t

的第一行数据包括15、8、10、9。
138.s1006:运算单元211根据重置门的输出结果以及更新门的输出结果,通过运行第t个时间步的gru网络的非线性算子,生成重置门的门值以及更新门的门值。
139.在一些实施例中,运算单元211根据更新门的输出结果,通过运行第t个时间步的gru网络的更新门的非线性算子,确定第t个时间步的gru网络的更新门的门值。具体地,第t个时间步的gru网络的更新门的门值z
t
可以通过如下公式(6)计算得到:
140.z
t
=σ(z

t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
141.公式(6)中,σ(z

t
)表示第t个时间步的gru网络的更新门的非线性算子,σ()表示sigmoid函数,sigmoid函数的计算公式可以表示为
142.在一些实施例中,运算单元211根据重置门的输出结果,通过运行第t个时间步的gru网络的重置门的非线性算子,确定第t个时间步的gru网络的重置门的门值。具体地,第t个时间步的gru网络的重置门的门值z
t
可以通过如下公式(7)计算得到:
143.r
t
=σ(r
t

)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
144.公式(7)中,σ(r
t

)表示第t个时间步的gru网络的重置门的非线性算子,σ()表示sigmoid函数,sigmoid函数的计算公式可以表示为
145.s1007:运算单元211根据第t个时间步的重置门的门值、第t个时间步的更新门的门值、第t个时间步的输入数据以及第t-1个时间步的输出数据,确定第t个时间步的输出数据。
146.在一些实施例中,运算单元211根据第第t个时间步的重置门的门值、第t个时间步的更新门的门值、第t个时间步的输入数据以及第t-1个时间步的输出数据,确定第t个时间步的输出数据。具体地,第t个时间步的输出数据可以通过公式(3)和公式(4)计算得到,具体计算过程参考公式(3)和公式(4)的描述,在此不做赘述。
147.由图10的gru模型10运行方法的过程可知,在运算单元211计算第t个时间步的gru网络的重置门的门值和更新门的门值的过程中,运算单元211通过对第一权重矩阵与第三权重矩阵沿宽度方向进行拼接,生成第一拼接权重矩阵。通过对第二权重矩阵与第四权重矩阵沿宽度方向进行拼接,生成第二拼接权重矩阵。运算单元211通过运行第一算子,将第一拼接权重矩阵作为第t个时间步的输入数据的权重参数,并将第二拼接权重矩阵作为第t-1个时间步的输出数据的权重参数进行矩阵运算,从而使得运算单元211从存储单元212中读取一次数据,就能确定出第t个时间步的更新门的门值和重置门的门值。如此,在gru模型10处理一段待识别语音时,相较于图9的需要运算单元211从存储单元212中至少读取2n次数据才能识别出语音对应的文字运算单元211只需要从存储单元212中读取n次数据就能识别出语音对应的文字,从而减少一倍的数据读取量,提高了处理器21进行语音处理的速度,进而提高电子设备20的语音识别的速度,语音识别的时间变短,提升用户体验。
148.本技术公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
149.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
150.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
151.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网
以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
152.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
153.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
154.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
155.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
再多了解一些

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

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

相关文献