CN111582444B - 一种矩阵数据的处理方法、装置、电子设备及存储介质 - Google Patents
一种矩阵数据的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111582444B CN111582444B CN202010322720.5A CN202010322720A CN111582444B CN 111582444 B CN111582444 B CN 111582444B CN 202010322720 A CN202010322720 A CN 202010322720A CN 111582444 B CN111582444 B CN 111582444B
- Authority
- CN
- China
- Prior art keywords
- matrix data
- weight
- matrix
- vector
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公布了提供一种矩阵数据的处理方法,包括:获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;提取所述权重矩阵数据中的权重列式矢量;提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。提高了对硬件资源的利用率。
Description
技术领域
本发明涉及机器学习领域,更具体的说,是涉及一种矩阵数据的处理方法、装置、电子设备及存储介质。
背景技术
随着机器学习的快速发展,递归神经网络(RNN,Recurrent Neural Networks)已被证明具有许多重要应用程序的有用特性。由于它们可以记录先前的信息以提高预测精度,因此RNN被应用于诸如语音识别,自然语言处理和视频分类,并被开发研究出多种变体。其中,在许多RNN变体中,两个最受欢迎的是长短期记忆网络(LSTM)和门控循环单元(GRU)。但是,RNN计算中的数据依赖性使系统停滞,直到所需的隐藏向量从完整管道返回以开始下一个时间步长计算为止,如图1a所示,在图1a中,必需等隐藏向量ht返回才开始下一个时间步长计算。而且,通常使用较深的流水线来达到较高的工作频率,由于需要清空系统流水线,因此使停滞损失的情况更糟,在停滞的过程中使硬件资源闲置。因此,现有的RNN对硬件资源的利用率不高。
申请内容
本发明的目的是针对上述现有技术存在的缺陷,提供一种矩阵数据的处理方法,提高RNN对硬件资源的利用率。
本发明的目的是通过以下技术方案来实现的:
第一方面,提供一种矩阵数据的处理方法,用于递归神经网络,所述方法包括:
获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;
提取所述权重矩阵数据中的权重列式矢量;
提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;
将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;
将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。
可选的,所述方法还包括:
获取元素并行参数以及矢量并行参数;
根据所述元素并行参数以及矢量并行参数对所述权重矩阵数据进行分块,得到权重矢量块;
将所述权重矢量块与所述待处理矩阵元素进行乘法计算,得到第一处理结果。
可选的,所述递归神经网络包括处理单元,所述获取元素并行参数以及矢量并行参数,包括:
获取处理单元数量;
获取所述权重矩阵数据中的权重矩阵的矢量行数;
根据所述处理单元数量与元素并行参数的比值、及所述权重矩阵的矢量行数对矢量并行参数进行约束,并通过贪婪算法搜索得到所述元素并行参数以及矢量并行参数。
可选的,在所述将所述第一处理结果进行累加,得到第二处理结果之前,所述方法还包括:
对所述第一处理结果进行平衡性计算,以平衡所述权重矢量块的并行性。
第二方面,提供一种矩阵数据的处理装置,用于递归神经网络,其特征在于,所述装置包括:
第一获取模块,用于获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;
第一提取模块,用于提取所述权重矩阵数据中的权重列式矢量;
第二提取模块,用于提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;
第一计算模块,用于将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;
第二计算模块,用于将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。
可选的,所述装置还包括:
第二获取模块,用于获取元素并行参数以及矢量并行参数;
分块模块,用于根据所述元素并行参数以及矢量并行参数对所述权重矩阵数据进行分块,得到权重矢量块;
第三计算模块,用于将所述权重矢量块与所述待处理矩阵元素进行乘法计算,得到第一处理结果。
可选的,所述递归神经网络包括处理单元,所述第二获取模块,包括:
第一获取单元,用于获取处理单元数量;
第二获取单元,用于获取所述权重矩阵数据中的权重矩阵的矢量行数;
搜索单元,用于根据所述处理单元数量与元素并行参数的比值、及所述权重矩阵的矢量行数对矢量并行参数进行约束,并通过贪婪算法搜索得到所述元素并行参数以及矢量并行参数。
可选的,所述装置还包括:
平衡模块,用于对所述第一处理结果进行平衡性计算,以平衡所述权重矢量块的并行性。
第三方面,提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例提供的矩阵数据的处理方法中的步骤。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的矩阵数据的处理方法中的步骤。
本发明带来的有益效果:获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;提取所述权重矩阵数据中的权重列式矢量;提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。通过将权重矩阵数据的列式矢量与待处理矩阵的矩阵元素进行乘法计算后再进行累加,不用等待所述待处理矩阵数据的矢量完全复制,从而无需等待系统管道清空就可以开始下一时间步的计算,只需要部分的输入向量即可开始计算,形成数据流水线,避免产生停顿的情况,降低硬件资源闲置的情况,进而提高了对硬件资源的利用率。
附图说明
图1为本发明实施例提供的一种矩阵数据的处理方法的流程示意图;
图1a为本发明实施例提供的一种现有矩阵数据处理方法的示意图;
图1b为本发明实施例提供的一种长短期记忆网络的推理示意图;
图1c为本发明实施例提供的一种组合后的权重矩阵的示意图;
图1d为本发明实施例提供的一种矩阵数据的处理方法的流程示意图;
图1e为本发明实施例提供的一种行式矢量乘法的示意图;
图1f为本发明实施例提供的一种列式矢量乘法的示意图;
图2为本发明实施例提供的另一种矩阵数据的处理方法的流程示意图;
图3为本发明实施例提供的一种权重矢量块的示意图;
图4为本发明实施例提供的一种矩阵数据的处理装置的结构示意图;
图5为本发明实施例提供的另一种矩阵数据的处理装置的结构示意图;
图6为本发明实施例提供的一种第二获取模块的结构示意图;
图7为本发明实施例提供的另一种矩阵数据的处理装置的结构示意图。
具体实施方式
下面描述本发明的优选实施方式,本领域普通技术人员将能够根据下文所述用本领域的相关技术加以实现,并能更加明白本发明的创新之处和带来的益处。
本发明提供了一种矩阵数据的处理方法。本发明的目的是通过以下技术方案来实现的:
请参见图1,图1是本发明实施例提供的一种矩阵数据的处理方法的流程示意图,如图1所示,所述方法用于递归神经网络,所述方法包括以下步骤:
101、获取递归神经网络的待处理矩阵数据以及权重矩阵数据。
其中,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量。
所述待处理矩阵数据可以是语音矩阵数据、文本矩阵数据以及图像矩阵数据等。上述语音矩阵数据可以是将语音信息编码到矩阵空间得到,上述的文本矩阵数据可以是将文本信息编码到矩阵空间得到,上述的图像矩阵数据可以是图像本身的像素矩阵,也可以是将图像本身的像素矩阵编码到矩阵空间得到。
上述的权重矩阵数据是所述递归神经网络经过训练后的权重矩阵。在对待处理矩阵数据的处理中,通过权重矩阵来提取待处理矩阵的隐含信息,从而根据隐含信息得到对应的分类信息。
所述递归神经网络可以部署在CPU(中央处理器)、GPU(图像处理器)、FPGA(现场可编程门阵列)等硬件环境中。在本发明实施例中,所述递归神经网络优选部署在基于FPGA的硬件环境中,FPGA的硬件环境相较于CPU、GPU的硬件环境,由于具有逻辑门的硬件支持,可以使得运行在FPGA的硬件环境的递归神经网络具有低延迟和低功耗的优势。
所述递归神经网络可以是长短期记忆网络和门控循环单元(将输入门与遗忘门合并到一个更新门中)等递归神经网络。其中,本发明实施例中所述递归神经网络优选为长短期记忆网络。进一步的,本发明实施例中所述递归神经网络优选为部署在FPGA的硬件环境中的长短期记忆网络。需要说明的是,本发明实施例只是以长短期记忆网络作为实施例以便于阐述本发明的发明意图,对于其他形式的递归神经网络同样适用,在此,并不应当将长短期记忆网络作为是对本发明例中所范围的限定。
所述权重矩阵数据也为长短期记忆网络中门的权重矩阵数据。具体的,长短期记忆网络包括四个门,分别为输入门、遗忘门、输入调制门以及输出门。其中,输入调制门可以理解为输入门的一个子部分,用于将输入张量与隐含张量组合起来,使得对应的输入调制门权重矩阵表示输入单元和隐含单元的权重矩阵。其中,四个门分别对应各个的权重矩阵,比如输入门对应的输入门权重为Wi(n),遗忘门对应的遗忘门权重为Wf(n),输入调制门对应的输入调制门权重为Wg(n),输出门对应的输出门权重为Wo(n)。其中,Wi(n)、Wf(n)、Wg(n)、Wo(n)均为大小相同的矩阵。
在长短期记忆网络中,隐含状态可以通过四个门来进行计算,具体可以参照下述的公式:
it=σ(Wi[xt,ht-1]+bi) (1)
ft=σ(Wf[xt,ht-1]+bf) (2)
gt=tanh(Wf[xt,ht-1]+bu) (3)
ot=σ(Wo[xt,ht-1]+bo) (4)
ct=ft e ct-1+it e gt (5)
ht=ot e tanh(ct) (6)
其中,σ为归一化函数,xt为当前输入,ht-1为上一隐含状态,it为输入门的计算结果,W为各个门的权重矩阵,b为偏置,ft为输入门的计算结果,gt为输入门的计算结果,ot为输入门的计算结果,ct为内存单元状态,ht为当前输入的隐含状态。其中,上述的隐含状态可以通过张量进行表示,即为隐含张量,可以用于下一时间步或下一计算层的输入,如图1b所示,图1b中,it,ft,gt,ot的计算可以称为门计算(LSTM-Gates),ct,ht的计算可以称为尾计算(LSTM-Tail)。
进一步的,在本发明实施例中,上述的权重矩阵数据可以由上述的四个门对应的权重矩阵数据进行组合,即是将Wi(n)、Wf(n)、Wg(n)、Wo(n)组合为W(n)。假设四个门对应的权重矩阵数据的张量为Lh*Lk,组合后的权重矩阵数据W(n)的张量为Hw*Lw,其中,Lh为四个门对应的权重矩阵数据的行数,Lk为四个门对应的权重矩阵数据的列数,同理,Hw为权重矩阵数据W(n)的行数,Lw为权重矩阵数据W(n)的列数,则有Hw=4*Lh,Lw=Lk。在一种可能的实施例中,在规定了输入矩阵数据所对应的张量大小时,上述的Lk=Lh+Lx,Lx为待处理矩阵数据的行数,此时,Lw=Lk=Lh+Lx。如图1c所示,在图1c中,Wi(0)、Wf(0)、Wg(0)、Wo(0)分别为输入门权重的第一行的行式矢量,遗忘门权重的第一行的行式矢量,输入调制门权重的第一行的行式矢量,输出门权重的第一行的行式矢量,同时,也为权重矩阵数据W(n)的前四行的行式矢量。
具体的,上述的四个门对应的权重矩阵数据的组合可以是将对应的行式矢量进行组合,比如,将四个门对应的权重矩阵数据中第一行的行式矢量进行组合,得到的权重矩阵数据W(n)中,前四行的行式矢量分别对应四个门对应的权重矩阵数据中第一行的行式矢量。
将四个门对应的权重矩阵数据进行组合后,得到一个更大张量的权重矩阵数据W(n),这样,在一个时间步内对权重矩阵进行优化时,只需要用该权重矩阵数据W(n)乘以一个矢量来进行优化,而不需要通过四个矢量分别对四个门对应的权重矩阵进行优化,节省了优化的计算量和优化的时间。
102、提取权重矩阵数据中的权重列式矢量。
该步骤中,上述的权重矩阵数据为步骤101中的权重矩阵数据W(n),上述的权重列式矢量也可以称为权重列向量,每一个权重列式矢量可以表达权重矩阵数据中的一列数据。
通过情况下,权重矩阵数据与待处理矩阵数据的乘法是通过行式矢量进行,这时,需要全部提取待处理矩阵数据的列向量才能完成矢量乘法的计算。比如:权重矩阵数据的张量为n*m,待处理矩阵数据的张量应为j*k,则需要满足j=m,才能进行矢量乘法的计算。因此,需要提取待处理矩阵数据完整的一列才能进行矢量乘法的计算。如图1d所示,在图1d中,Weights Matrix为权重矩阵,W0、W1、WHw-2、W Hw-1均为权重行式矢量,权重矩阵总共有Hw行,总共有Lw列,0、1、…、Lx-1为待处理矩阵数据,共有Lx行,0、1、…、Lh-1为上一隐含张量,共有Lh行,此时,需要满足Lw=Lx+Lh才能开始矢量乘法的计算,即是需要读取Lx+Lh个矩阵元素才能开始矢量乘法的计算,在没有读取完成之前,硬件计算资源都处于闲置状态。
103、提取待处理矩阵数据与权重列式矢量对应的待处理矩阵元素。
该步骤中,上述的待处理矩阵数据被以矩阵元素为单位进行提取,而不用以矢量为单位进行提取,一个矢量包括多个矩阵元素,从而缩短了计算开始的时间。具体的,若以矢量为单位进行提取,则需要等待读取完该矢量包含的所有矩阵元素,才会开始计算,而以矩阵元素为单位,则读取一个矩阵元素后就会开始计算,不用等待所述待处理矩阵数据的矢量完全复制,从而无需等待系统管道清空就可以开始下一时间步的计算,只需要部分的输入向量即可开始计算。
需要说明的是,上述的待处理矩阵元素为待处理矩阵数据中的矩阵元素。
104、将权重列式矢量与待处理矩阵元素进行乘法计算,得到第一处理结果。
该步骤中,以权重矩阵数据的张量为3*3来说,待处理矩阵为3*1,假设权重矩阵数据中的第一列为第一权重列式矢量,待处理矩阵第一行为第一矩阵元素,依次假设得到权重矩阵数据中的第二列为第二权重列式矢量,权重矩阵数据中的第三列为第三权重列式矢量,待处理矩阵第二行为第二矩阵元素,待处理矩阵第三行为第三矩阵元素,则根据步骤104,可以将第一权重列式与第一矩阵元素进行相乘,将第二权重列式与第二矩阵元素进行相乘,将第三权重列式与第三矩阵元素进行相乘。第一权重列式矢量、第二权重列式、第三权重列式的张量均为3*1,第一矩阵元素、第二矩阵元素、第三矩阵元素的张量也均可以看成1*1,则对应的3*1与1*1相乘,最后得到的是三个3*1张量的第一处理结果。相较于权重矩阵数据与待处理矩阵直接相乘,即3*3与3*1相乘来说,不用等待一次性3*1整个张量的提取完毕再进行计算,每提取一个1*1张量(矩阵元素)后,就可以计算,使数据更接近于流式,降低硬件资源的闲置时长。如图1e所示,在图1e中,权重矩阵的列式矢量与待处理矩阵数据中的一个矩阵元素直接相乘,由于权重矩阵的列式矢量的列数为1,矩阵元素的行数为1,满足矢量乘法的计算。
105、将第一处理结果进行累加,得到第二处理结果,并输出第二处理结果作为待处理矩阵数据的处理结果。
该步骤中,以步骤104中权重矩阵数据的张量为3*3,待处理矩阵为3*1来说,得到的第一处理结果为三个3*1的张量,将三个3*1的张量进行累加,得到一个3*1张量的第二处理结果。相较于权重矩阵数据与待处理矩阵直接相乘,即3*3与3*1相乘来说,3*3与3*1相乘的结果是一个3*1的张量,也可以称为隐含张量或隐含状态,权重列式矢量与矩阵元素的相乘,即3*1与1*1相乘,最后累加得到3*1的张量,也可以称为隐含张量或隐含状态,而通过权重列式矢量与矩阵元素的相乘每提取一个1*1张量(矩阵元素)后,就可以计算,使数据更接近于流式,降低硬件资源的闲置时长。如图1e以及图1f所示,在图1f中,可以看出,不需要等待隐含张量ht的完成,所有的数据都如流水线一般进行计算,没有停滞等待。
在本实施例中,获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;提取所述权重矩阵数据中的权重列式矢量;提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。通过将权重矩阵数据的列式矢量与待处理矩阵的矩阵元素进行乘法计算后再进行累加,不用等待所述待处理矩阵数据的矢量完全复制,从而无需等待系统管道清空就可以开始下一时间步的计算,只需要部分的输入向量即可开始计算,形成数据流水线,避免产生停顿的情况,降低硬件资源闲置的情况,进而提高了对硬件资源的利用率。
请参见图2,图2是本发明实施例提代的另一种矩阵数据的处理方法的流程图,如图2所示,所述方法用于递归神经网络,所述方法还包括以下步骤:
201、获取元素并行参数以及矢量并行参数。
该步骤中,可以元素并行参数(EP)以及矢量并行参数(VP)进一步的开发可用的并行性,以使处理过程中计算周期数大于延迟。需要说明的是,元素并行参数表示矩阵元素的并行处理数量,矢量并行参数表示列式矢量的行数量。
进一步的,矢量并行参数受权重矩阵数据以及元素并行参数的约束。具体获取矢量并行参数可以是先获取处理单元数量(NPE);获取所述权重矩阵数据中的权重矩阵的矢量行数;根据所述处理单元数量与元素并行参数的比值、及所述权重矩阵宽度对矢量并行参数进行约束,并通过贪婪算法搜索得到所述元素并行参数以及矢量并行参数。具体的,上述的约束可以是:
VP≤Hw=4*Lh (7)
VP≤NPE/EP (8)
通过上述的两个式子,将元素并行参数作为变量,从元素并行参数EP=1开始,进行贪婪算法,搜索出最佳的矢量并行参数以及元素并行参数。
202、根据元素并行参数以及矢量并行参数对权重矩阵数据进行分块,得到权重矢量块。
该步骤中,上述的权重矢量块可以如图3所示,其中,需要说明的是,上述的权重矢量块中的元素并行参数与待处理矩阵数据中的元素并行参数具有相同的矩阵元素数量,即是具有相同的EP。通过元素并行参数以及矢量并行参数得到的权重矢量块,可以提高递归神经网络的推理吞吐量。
203、将权重矢量块与待处理矩阵元素进行乘法计算,得到第一处理结果。
通过权重矩阵数据分块得到权重矢量块与待处理矩阵中元素并行参数相对依然矩阵元素进行乘法计算,得到第一处理结果。这样可以提高递归神经网络的推理吞吐量。
进一步的,对第一处理结果进行平衡性计算,以平衡权重矢量块的并行性。
具体的,递归神经网络的架构中乘法器以及累加器,累加器连接在乘法器之后,其中,乘法器用于矢量乘法的计算,具体用于上述列式矢量与矩阵元素间矢量乘法的计算,或者用于权重矢量块与待处理矩阵中元素并行参数相对依然矩阵元素间矢量乘法的计算。上述的累加器用于对第一处理结果进行累加处理。
可选的,在乘法器与累加器之间,还可以设置一个平衡加法器树对第一处理结果进行平衡性计算,具体的,是对元素并行参数以及矢量并行参数的并行性进行平衡,以进一步增加递归神经网络的推理吞吐量。
在本实施例中,获取元素并行参数以及矢量并行参数;根据所述元素并行参数以及矢量并行参数对所述权重矩阵数据进行分块,得到权重矢量块;将所述权重矢量块与所述待处理矩阵元素进行乘法计算,得到第一处理结果。通过将权重矢量块与所述待处理矩阵元素进行乘法计算,可以提高推理过程中每个计算周期的推理数据吞吐量,避免计算周期数小于系统延迟而导致系统停顿,进而提高对硬件资源的利用率。
请参见图4,图4是本发明实施例提供的一种矩阵数据的处理装置,用于递归神经网络,其特征在于,所述装置包括:
第一获取模块401,用于获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;
第一提取模块402,用于提取所述权重矩阵数据中的权重列式矢量;
第二提取模块403,用于提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;
第一计算模块404,用于将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;
第二计算模块405,用于将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。
可选的,如图5所示,所述装置还包括:
第二获取模块406,用于获取元素并行参数以及矢量并行参数;
分块模块407,用于根据所述元素并行参数以及矢量并行参数对所述权重矩阵数据进行分块,得到权重矢量块;
第三计算模块408,用于将所述权重矢量块与所述待处理矩阵元素进行乘法计算,得到第一处理结果。
可选的,如图6所示,所述递归神经网络包括处理单元,所述第二获取模块406,包括:
第一获取单元4061,用于获取处理单元数量;
第二获取单元4062,用于获取所述权重矩阵数据中的权重矩阵的矢量行数;
搜索单元4063,用于根据所述处理单元数量与元素并行参数的比值、及所述权重矩阵宽度对矢量并行参数进行约束,并通过贪婪算法搜索得到所述元素并行参数以及矢量并行参数。
可选的,如图7所示,所述装置还包括:
平衡模块409,用于对所述第一处理结果进行平衡性计算,以平衡所述权重矢量块的并行性。
本发明实施例中,通过指数预测网络对矩阵数据的指数进行预测,通过预测得到的预测指数值对矩阵数据进行对齐,避免块浮点数和浮点数的转化以及求最大指数值的操作,提高指数值的获取速度,从而提高卷积神经网络推理速度。
本发明实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例提供的矩阵数据的处理方法中的步骤。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的矩阵数据的处理方法中的步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的
另外,在本发明各个实施例中的处理器、芯片可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上硬件集成在一个单元中。计算机可读存储介质或计算机可读程序可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种矩阵数据的处理方法,用于递归神经网络,其特征在于,所述方法包括:
获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;
提取所述权重矩阵数据中的权重列式矢量;
提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;
将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;
将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。
2.如权利要求1所述的矩阵数据的处理方法,其特征在于,所述方法还包括:
获取元素并行参数以及矢量并行参数;
根据所述元素并行参数以及矢量并行参数对所述权重矩阵数据进行分块,得到权重矢量块;
将所述权重矢量块与所述待处理矩阵元素进行乘法计算,得到第一处理结果。
3.如权利要求2所述的矩阵数据的处理方法,其特征在于,所述递归神经网络包括处理单元,所述获取元素并行参数以及矢量并行参数,包括:
获取处理单元数量;
获取所述权重矩阵数据中的权重矩阵的矢量行数;
根据所述处理单元数量与元素并行参数的比值、及所述权重矩阵的矢量行数对矢量并行参数进行约束,并通过贪婪算法搜索得到所述元素并行参数以及矢量并行参数。
4.如权利要求3所述的矩阵数据的处理方法,其特征在于,在所述将所述第一处理结果进行累加,得到第二处理结果之前,所述方法还包括:
对所述第一处理结果进行平衡性计算,以平衡所述权重矢量块的并行性。
5.一种矩阵数据的处理装置,用于递归神经网络,其特征在于,所述装置包括:
第一获取模块,用于获取所述递归神经网络的待处理矩阵数据以及权重矩阵数据,所述待处理矩阵数据以及权重矩阵数据均由矩阵元素构成,所述矩阵数据包括由所述矩阵元素构建的列式矢量;
第一提取模块,用于提取所述权重矩阵数据中的权重列式矢量;
第二提取模块,用于提取所述待处理矩阵数据与所述权重列式矢量对应的待处理矩阵元素;
第一计算模块,用于将所述权重列式矢量与所述待处理矩阵元素进行乘法计算,得到第一处理结果;
第二计算模块,用于将所述第一处理结果进行累加,得到第二处理结果,并输出所述第二处理结果作为所述待处理矩阵数据的处理结果。
6.如权利要求5所述的矩阵数据的处理装置,其特征在于,所述装置还包括:
第二获取模块,用于获取元素并行参数以及矢量并行参数;
分块模块,用于根据所述元素并行参数以及矢量并行参数对所述权重矩阵数据进行分块,得到权重矢量块;
第三计算模块,用于将所述权重矢量块与所述待处理矩阵元素进行乘法计算,得到第一处理结果。
7.如权利要求6所述的矩阵数据的处理装置,其特征在于,所述递归神经网络包括处理单元,所述第二获取模块,包括:
第一获取单元,用于获取处理单元数量;
第二获取单元,用于获取所述权重矩阵数据中的权重矩阵的矢量行数;
搜索单元,用于根据所述处理单元数量与元素并行参数的比值、及所述权重矩阵的矢量行数对矢量并行参数进行约束,并通过贪婪算法搜索得到所述元素并行参数以及矢量并行参数。
8.如权利要求7所述的矩阵数据的处理装置,其特征在于,所述装置还包括:
平衡模块,用于对所述第一处理结果进行平衡性计算,以平衡所述权重矢量块的并行性。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的矩阵数据的处理方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的矩阵数据的处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010322720.5A CN111582444B (zh) | 2020-04-22 | 2020-04-22 | 一种矩阵数据的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010322720.5A CN111582444B (zh) | 2020-04-22 | 2020-04-22 | 一种矩阵数据的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111582444A CN111582444A (zh) | 2020-08-25 |
CN111582444B true CN111582444B (zh) | 2023-05-05 |
Family
ID=72124511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010322720.5A Active CN111582444B (zh) | 2020-04-22 | 2020-04-22 | 一种矩阵数据的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111582444B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580787B (zh) * | 2020-12-25 | 2023-11-17 | 北京百度网讯科技有限公司 | 神经网络加速器的数据处理方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090560A (zh) * | 2018-01-05 | 2018-05-29 | 中国科学技术大学苏州研究院 | 基于fpga的lstm递归神经网络硬件加速器的设计方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529669A (zh) * | 2016-11-10 | 2017-03-22 | 北京百度网讯科技有限公司 | 用于处理数据序列的方法和装置 |
US10762425B2 (en) * | 2017-09-26 | 2020-09-01 | Nvidia Corporation | Learning affinity via a spatial propagation neural network |
-
2020
- 2020-04-22 CN CN202010322720.5A patent/CN111582444B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090560A (zh) * | 2018-01-05 | 2018-05-29 | 中国科学技术大学苏州研究院 | 基于fpga的lstm递归神经网络硬件加速器的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111582444A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11574195B2 (en) | Operation method | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
US20180260709A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
EP3340129B1 (en) | Artificial neural network class-based pruning | |
US20180336458A1 (en) | Asynchronous neural network training | |
US20220156508A1 (en) | Method For Automatically Designing Efficient Hardware-Aware Neural Networks For Visual Recognition Using Knowledge Distillation | |
US20220414443A1 (en) | Compute in memory-based machine learning accelerator architecture | |
Pietron et al. | Retrain or not retrain?-efficient pruning methods of deep cnn networks | |
CN112651485A (zh) | 识别图像的方法和设备以及训练神经网络的方法和设备 | |
CN114298329A (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN111582444B (zh) | 一种矩阵数据的处理方法、装置、电子设备及存储介质 | |
US20230042327A1 (en) | Self-supervised learning with model augmentation | |
Du et al. | Efficient perturbation inference and expandable network for continual learning | |
CN118115229A (zh) | 一种基于强化学习的跨行为信息推荐方法 | |
CN114548352A (zh) | 一种矩阵数据的处理方法、装置、电子设备及存储介质 | |
CN113678124A (zh) | 处理速率受限系统的矩阵操作 | |
WO2022105348A1 (zh) | 神经网络的训练方法和装置 | |
CN116090518A (zh) | 基于脉动运算阵列的特征图处理方法、装置以及存储介质 | |
CN114357371A (zh) | 一种矩阵数据的处理方法、装置、电子设备及存储介质 | |
CN114372560A (zh) | 一种神经网络训练方法、装置、设备及存储介质 | |
CN112633464A (zh) | 用于识别图像的计算系统和方法 | |
Passov et al. | Gator: customizable channel pruning of neural networks with gating | |
US20240220571A1 (en) | Vectorized sparse convolution | |
US20240046098A1 (en) | Computer implemented method for transforming a pre trained neural network and a device therefor | |
US20240095493A1 (en) | Desparsified convolution for sparse tensors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |