CN110347506B - 基于lstm的数据处理方法、装置、存储介质与电子设备 - Google Patents
基于lstm的数据处理方法、装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN110347506B CN110347506B CN201910580228.5A CN201910580228A CN110347506B CN 110347506 B CN110347506 B CN 110347506B CN 201910580228 A CN201910580228 A CN 201910580228A CN 110347506 B CN110347506 B CN 110347506B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- memory
- lstm
- computing unit
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
本公开提供了一种基于LSTM的数据处理方法、装置、存储介质与电子设备,属于人工智能技术领域。该方法包括:将待处理数据输入长短期记忆网络的输入单元,所述长短期记忆网络还包括多个计算单元;基于所述长短期记忆网络的连接关系,对所述待处理数据进行计算;当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并以所述中间数据和所述下一计算单元连接的输入单元中的数据在所述下一计算单元进行计算;在所述长短期记忆网络的输出单元输出所述待处理数据对应的结果数据。本公开可以降低运行LSTM所需的内存资源,实现工程阶段的优化,有利于在终端上的应用。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及一种基于LSTM的数据处理方法、基于LSTM的数据处理装置、计算机可读存储介质与电子设备。
背景技术
LSTM(Long Short Term Memory,长短期记忆网络)是一种时间循环的神经网络,主要用于处理和预测时间序列中间隔和延迟相对较长的事件,已广泛应用于深度学习中的图像分析、语言识别等领域。
现有的LSTM框架大多是将LSTM拆分为一个个计算单元,每个计算单元进行一次计算操作,其输出的数据需要占用一定的内存,导致整个LSTM的计算过程占用大量的内存,对硬件性能产生影响。相关技术对于LSTM的优化主要集中在前期的网络结构优化或训练过程优化,对于工程实现阶段如何减少LSTM的资源消耗则鲜有涉及。因此,上述问题是目前亟待解决的。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种基于LSTM的数据处理方法、基于LSTM的数据处理装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善现有的LSTM占用大量内存的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种基于LSTM的数据处理方法,包括:将待处理数据输入LSTM的输入单元,所述LSTM还包括多个计算单元;基于所述LSTM的连接关系,对所述待处理数据进行计算;当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并将所述内存中存储的所述中间数据复制到所述下一计算单元中进行计算;在所述LSTM的输出单元输出所述待处理数据对应的结果数据。
可选的,所述连接至少一个输入单元的下一计算单元包括:所述LSTM中每个细胞的第一个计算单元。
可选的,所述每个细胞的第一个计算单元为拼接单元。
可选的,所述方法还包括:当当前计算单元及其连接的下一计算单元位于不同的细胞时,将所述当前计算单元输出的中间数据存储至内存中。
可选的,所述将待处理数据输入LSTM的输入单元,包括:加载所述LSTM,从所述内存中分配内存单元;将所述待处理数据写入被分配的所述内存单元。
可选的,所述LSTM的每个细胞为一个集成计算单元,每个细胞连接至少一个输入单元;所述当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并将所述内存中存储的所述中间数据复制到所述下一计算单元中进行计算,包括:将每个细胞输出的中间数据存储至所述内存中,并将所述内存中存储的所述中间数据复制到所述下一细胞中进行计算。
可选的,所述LSTM包括GRU(Gated Recurrent Unit,门控循环单元网络)。
根据本公开的第二方面,提供一种基于LSTM的数据处理装置,包括:数据输入模块,用于将待处理数据输入LSTM的输入单元,所述LSTM还包括多个计算单元;数据计算模块,用于基于所述LSTM的连接关系,对所述待处理数据进行计算;内存管理模块,用于当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并将所述内存中存储的所述中间数据复制到所述下一计算单元中进行计算;结果输出模块,用于在所述LSTM的输出单元输出所述待处理数据对应的结果数据。
可选的,所述连接至少一个输入单元的下一计算单元包括:所述LSTM中每个细胞的第一个计算单元。
可选的,所述每个细胞的第一个计算单元为拼接单元。
可选的,所述内存管理模块,还用于当当前计算单元及其连接的下一计算单元位于不同的细胞时,将所述当前计算单元输出的中间数据存储至内存中。
可选的,所述数据输入模块,还用于加载所述LSTM,从所述内存中分配内存单元,并将所述待处理数据写入被分配的所述内存单元。
可选的,所述LSTM的每个细胞为一个集成计算单元,每个细胞连接至少一个输入单元;所述内存管理模块,还用于将每个细胞输出的中间数据存储至所述内存中,并将所述内存中存储的所述中间数据复制到所述下一细胞中进行计算。
可选的,所述LSTM包括GRU。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种基于LSTM的数据处理方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种基于LSTM的数据处理方法。
本公开具有以下有益效果:
在LSTM处理数据的过程中,无需对每个计算单元输出的中间数据都进行存储,仅当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将当前计算单元输出的中间数据存储至内存中。在不影响数据处理准确度的前提下,减少了中间数据的存储量,降低了运行LSTM所需的内存资源;并且减少了多个计算单元之间的内存数据复制的过程,加快了运行速度,从而实现了在工程阶段对LSTM的优化。进一步的,由于一部分中间数据无需存储,可以简化LSTM的变量配置,再加上LSTM所需的内存资源降低,这些都有利于LSTM应用于终端,如离线翻译文本等场景,从而推进深度学习技术在终端上的普及。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中一种基于LSTM的数据处理方法的流程图;
图2示出本示例性实施方式中一种LSTM网络结构的示意图;
图3示出本示例性实施方式中一种LSTM细胞结构的示意图;
图4示出本示例性实施方式中一种LSTM细胞算法结构的示意图;
图5示出本示例性实施方式中一种简化的LSTM细胞结构的示意图;
图6示出本示例性实施方式中一种基于LSTM的数据处理装置的结构框图;
图7示出本示例性实施方式中一种用于实现上述方法的计算机可读存储介质;
图8示出本示例性实施方式中一种用于实现上述方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
本公开的示例性实施方式首先提供一种基于LSTM的数据处理方法,可以应用于服务器或手机、个人电脑等终端。图1示出了本示例性实施方式的一种流程,可以包括步骤S110~S140:
步骤S110,将待处理数据输入LSTM的输入单元。
LSTM的网络结构可以如图2所示,包括输入单元、计算单元和输出单元。输入单元用于输入数据,如图2中的Xt-1、Xt、Xt+1,计算单元用于对数据进行计算处理,一定数量的计算单元组成LSTM的一个细胞,如图2中的A,A内部所包含的节点为计算单元,每个计算单元进行一次计算操作;输出单元用于输出结果数据,如图2中ht-1、ht、ht+1。
本示例性实施例中,待处理数据可以是多个数据按照一定顺序排列而成的序列,例如一段文本编码而成的词序列,在输入时,按照顺序分别输入对应的输入单元。
在一种可选的实施方式中,以终端为例,可以先加载LSTM,加载LSTM时读取其配置文件或相应的代码,通常包含输入变量的声明的内容,因此可以从终端的内存中分配相应数量或大小的内存单元,用于存放输入变量的数据;然后可以将待处理数据写入被分配的内存单元,即对输入变量赋值,使得LSTM获得输入数据,以进行后续处理。
步骤S120,基于LSTM的连接关系,对待处理数据进行计算。
与一般的神经网络类似,LSTM对数据的处理也是基于各种计算操作的排列与组合,其中,各种计算操作的先后顺序在LSTM中尤为重要,这是通过LSTM内各单元之间的连接关系而实现的。如图3所示,是对图2中细胞结构的进一步展示,每个细胞包括01~12共12个计算单元,每个细胞输入3个数据,其中ht-1为上一细胞输出的激活数据(即结果数据),ct-1为上一细胞输出的状态数据,Xt为当前细胞输入的待处理数据,经过12个计算单元的计算后,输出激活数据ht和状态数据ct,再与待处理数据Xt+1进入下一个细胞中,继续进行计算。因此,LSTM对待处理数据的处理是一个有序的过程,LSTM在整体上可以看作是串行计算的网络(在局部也有并行计算的方式)。
下面结合图4对每个细胞中的计算单元以及处理顺序做进一步说明。图4示出了利用TensorFlow(基于数据流的机器学习框架)搭建的LSTM中,每个细胞的算法结构。图中黑色的为输入单元,共有5个,虚线框的为输出单元,共有2个,其他的是计算单元,共有12个,与图3中的12个计算单元相同,每个计算单元对数据进行一次计算操作。先对图4中的概念进行如下解释:
Tensor:张量,是LSTM处理的数据的形式,包括向量(一维张量)、矩阵(二维张量)等;
Data:在图4中表示输入的待处理数据;
Prev_active:上一细胞输出的激活数据;
Weights:权重,LSTM中的参数;
Bias:偏置,LSTM中的参数;
Concat:拼接操作,表示将多个Tensor合并为一个Tensor
Full/Fully_Connected:全连接操作;
Split:分割操作,图4中表示将全连接输出的Tensor分割为4份;
Logistic:利用Sigmoid(S型函数)或ReLu(Rectified Linear Unit,线性激活单元)函数等进行的激活操作;
State_forget:遗忘门的状态数据;
State_remember:记忆门的状态数据;
Tanh:双曲函数,表示利用Tanh函数进行的激活操作;
Prev_state:上一细胞输出的状态数据;
Mul:乘法操作;
Add:加法操作;
Current_state:当前细胞输出的状态数据;
Current_active:当前细胞输出的激活数据。
图4与图3中示出的细胞结构是对应的。在处理时,weights和bias是模型训练过程中确定的参数,prev_active和prev_state由上一细胞输出,data是当前细胞输入的待处理数据;首先将data和prev_active拼接为concat_inputs,然后通过weights和bias进行全连接计算,得到fully_connected;将fc_output分割为4个Tensor,即4个fc_output_split,其中的第一个、第二个和第四个分别进行sigmoid激活操作,对应得到state_forget_sigmoid、state_remember_sigmoid和fc_output_sigmoid,第三个进行Tanh激活操作,得到state_info_tanh;state_forget_sigmoid和prev_state进行乘法操作,得到state_forget_mul;state_remember_sigmoid和state_info_tanh进行乘法操作,得到state_remember_mul;state_forget_mul和state_remember_mul进行加法操作,得到state_combine_add,即为当前细胞输出的状态数据current_state;state_combine_add进行Tanh激活操作,得到state_output_tanh;state_output_tanh再与fc_output_sigmoid进行乘法操作,得到final_output_mul,即为当前细胞输出的激活数据current_active。
步骤S130,当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将当前计算单元输出的中间数据存储至内存中,并将内存中存储的该中间数据复制到下一计算单元中进行计算。
由图4可见,每个计算单元都会输出一个数据,该数据通常为下一计算单元的输入值,因此是中间数据,图4中每个计算单元的括号内的变量是中间数据,例如concat_inputs、fully_connected、fc_output_split等。相关技术中,在加载LSTM时,对于每个计算单元输出的中间数据,都从内存中分配了相应的内存单元来存储。基于图4的LSTM细胞,每个细胞需要分配至少12个内存单元,以存储12个计算单元输出的中间数据;实际上有的计算单元输出不止1个中间数据,因此12个计算单元可能需要超过12个内存单元,图4中由于fc_output_split是4个中间数据,因此每个细胞需要15个内存单元。这导致LSTM占用大量内存。
本示例性实施方式中,可以根据LSTM的顺序计算关系,查找计算过程中非必需的中间数据,省略对这部分中间数据的存储。具体而言,若下一计算单元所需的输入数据全部是中间数据,即下一计算单元不与输入单元连接,则在当前计算单元计算出中间数据后,可以直接输入下一计算单元进行计算,无需对该中间数据进行存储;若下一计算单元与输入单元连接,表示下一计算单元所需的输入数据包括外部输入的数据(通常是待处理数据),也就是当前计算单元输出的中间数据需要在下一计算单元中和待处理数据进行计算,因此需要分配内存来存储该中间数据。
以图4为例具体说明,图4中包括5个黑色的输入单元。开始计算后,先进入计算单元01(Concat),其下一计算单元02(FullConnected)连接了两个输入单元,符合步骤S130的条件,因此01输出的中间数据concat_inputs需要内存;然后到达计算单元02,其下一计算单元03(Split)未连接输入单元,因此02输出的中间数据fully_connected无需存储;然后到达计算单元03,03实际上输出了4个中间数据,从左到右分别对应下一计算单元为04、05、06、07,都未连接输入单元,因此03输出的4个中间数据都不需要存储……按照这样的方式逐个分析,后续的计算单元中,04输出的中间数据state_forget_sigmoid需要存储,其他中间数据无需存储;需要说明的是,10输出的state_combine_add和12输出的final_output_mul实际是细胞输出的两个数据,state_combine_add为状态数据,final_output_mul为激活数据,因此这两个数据也需要存储。统计后,LSTM的每个细胞需要存储的中间数据为4个,相比于相关技术中的15个,所需内存大大减少。
步骤S140,在LSTM的输出单元输出待处理数据对应的结果数据。
按照上述方式对待处理数据进行计算,不会对每个细胞输出的数据产生影响,即LSTM进行数据计算的准确度不变,最终由LSTM输出待处理数据对应的结果数据,例如图2所示,LSTM输出的结果数据可以是每个细胞输出的激活数据ht-1、ht、ht+1等排列而成的数据序列,或者对ht-1、ht、ht+1等再通过后续的隐藏层处理而得到的结果数据,本公开对此不做限定。至此完成通过LSTM对待处理数据处理的过程。
基于上述内容,在LSTM处理数据的过程中,无需对每个计算单元输出的中间数据都进行存储,仅当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将当前计算单元输出的中间数据存储至内存中。在不影响数据处理准确度的前提下,减少了中间数据的存储量,降低了运行LSTM所需的内存资源;并且减少了多个计算单元之间的内存数据复制的过程,加快了运行速度,从而实现了在工程阶段对LSTM的优化。进一步的,由于一部分中间数据无需存储,可以简化LSTM的变量配置,再加上LSTM所需的内存资源降低,这些都有利于LSTM应用于终端,如离线翻译文本等场景,从而推进深度学习技术在终端上的普及。
在一种可选的实施方式中,连接至少一个输入单元的下一计算单元可以是LSTM中每个细胞的第一个计算单元,参考上述图4所示,通常是拼接(Concat)单元,连接该拼接单元的计算单元为上一细胞中的计算单元12,即上一细胞中的最后一个乘法单元,因此计算单元12输出的中间数据需要存储至内存中,该中间数据即为每个细胞输出的激活数据。
在一种可选的实施方式中,数据处理方法还可以包括以下步骤:
当当前计算单元及其连接的下一计算单元位于不同的细胞时,将当前计算单元输出的中间数据存储至内存中。参考上述图3所示,计算单元10除了连接同一细胞中的计算单元11外,其输出的中间数据state_combine_add是下一细胞的prev_state,因此计算单元10还连接到下一细胞中的计算单元08,中间数据state_combine_add可以存储至内存中;计算单元12也满足该条件,因此中间数据final_output_mul可以存储至内存中。实际上,state_combine_add和final_output_mul是当前细胞输出的状态数据和激活数据,将这两个数据加以存储,有利于维持LSTM处理数据的准确度。
在一种可选的实施方式中,参考上述图4所示,每个细胞包括5个输入单元,实际上其中prev_avtive和prev_state是上一细胞输出的激活数据和状态数据,这两个输入单元是上一细胞的计算单元,weights和bias是LSTM本身的参数,在训练中确定的,并非输入的数据,这两个输入单元是参数单元,因此,真正意义上的输入单元只有data一个,即用于输入待处理数据的单元。从这个角度来说,在LSTM中,只有每个细胞的第一个计算单元(即Concat单元)是连接输入单元的,从而可以以细胞为单位对计算单元进行合并,使每个细胞中的全部计算单元合并为一个集成计算单元。相应的,在数据处理过程中,可以将每个细胞输出的中间数据存储至内存中,并以该中间数据和下一细胞连接的输入单元中的数据在下一细胞进行计算。
通过上述方式,实际将LSTM进行了简化,如图5所示,将一个细胞的全部计算单元合并为一个集成计算单元,为图中的LSTM Cell,运行时,将当前细胞对应的待处理数据(data)、当前细胞的参数(weights、bias)、上一细胞输出的状态数据(prev_state)和激活数据(prev_active)输入到当前细胞LSTM Cell中,进行计算,计算过程中的中间数据不进行存储,直接输出当前细胞的状态数据(current_state)和激活数据(current_active)。由此,整个LSTM所需的内存包括下面几种:存放待处理数据的内存;存放LSTM模型参数的内存;存放每个细胞输出的状态数据的内存;存放每个细胞输出的激活数据的内存。从而进一步减少了内存资源的消耗,提高了效率。
上述数据处理方法还可以应用于LSTM的各种变体,如GRU,方法的原理、过程等与LSTM的情况类似。以GRU为例,可以将GRU每个细胞的计算单元合并为一个集成计算单元,输入对应的待处理数据和上一细胞的激活数据,输出当前细胞的激活数据,在处理过程中仅存储每个细胞输出的激活数据,而无需存储中间数据,以此减少内存占用。
本公开的示例性实施方式还提供了一种基于LSTM的数据处理装置,如图6所示,该数据处理装置600可以包括:数据输入模块610,用于将待处理数据输入LSTM的输入单元,LSTM还包括多个计算单元;数据计算模块620,用于基于LSTM的连接关系,对待处理数据进行计算;内存管理模块630,用于当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将当前计算单元输出的中间数据存储至内存中,并将内存中存储的中间数据复制到下一计算单元中进行计算;结果输出模块640,用于在LSTM的输出单元输出待处理数据对应的结果数据。
在一种可选的实施方式中,上述连接至少一个输入单元的下一计算单元可以包括:LSTM中每个细胞的第一个计算单元。
在一种可选的实施方式中,上述每个细胞的第一个计算单元可以是拼接单元。
在一种可选的实施方式中,内存管理模块630,还可以用于当当前计算单元及其连接的下一计算单元位于不同的细胞时,将当前计算单元输出的中间数据存储至内存中。
在一种可选的实施方式中,数据输入模块610,还可以用于加载LSTM,从内存中分配内存单元,并将待处理数据写入被分配的内存单元。
在一种可选的实施方式中,LSTM的每个细胞可以是一个集成计算单元,每个细胞连接至少一个输入单元;内存管理模块630,还可以用于将每个细胞输出的中间数据存储至内存中,并将内存中存储的中间数据复制到下一细胞中进行计算。
在一种可选的实施方式中,LSTM可以包括GRU。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的方案细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图7所示,描述了根据本公开的示例性实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种能够实现上述方法的电子设备。下面参照图8来描述根据本公开的这种示例性实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
如图8所示,电子设备800可以以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830和显示单元840。
存储单元820存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元810可以执行图1所示的方法步骤等。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)821和/或高速缓存存储单元822,还可以进一步包括只读存储单元(ROM)823。
存储单元820还可以包括具有一组(至少一个)程序模块825的程序/实用工具824,这样的程序模块825包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。
此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (10)
1.一种基于LSTM的数据处理方法,其特征在于,包括:
将待处理数据输入长短期记忆网络的输入单元,所述长短期记忆网络还包括多个计算单元;
基于所述长短期记忆网络的连接关系,对所述待处理数据进行计算;
当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并将所述内存中存储的所述中间数据复制到所述下一计算单元中进行计算;
在所述长短期记忆网络的输出单元输出所述待处理数据对应的结果数据。
2.根据权利要求1所述的方法,其特征在于,所述连接至少一个输入单元的下一计算单元包括:所述长短期记忆网络中每个细胞的第一个计算单元。
3.根据权利要求2所述的方法,其特征在于,所述每个细胞的第一个计算单元为拼接单元。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当当前计算单元及其连接的下一计算单元位于不同的细胞时,将所述当前计算单元输出的中间数据存储至内存中。
5.根据权利要求1所述的方法,其特征在于,所述将待处理数据输入长短期记忆网络的输入单元,包括:
加载所述长短期记忆网络,从所述内存中分配内存单元;
将所述待处理数据写入被分配的所述内存单元。
6.根据权利要求1所述的方法,其特征在于,所述长短期记忆网络的每个细胞为一个集成计算单元,每个细胞连接至少一个输入单元;
所述当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并将所述内存中存储的所述中间数据复制到所述下一计算单元中进行计算,包括:
将每个细胞输出的中间数据存储至所述内存中,并将所述内存中存储的所述中间数据复制到下一细胞中进行计算。
7.根据权利要求1所述的方法,其特征在于,所述长短期记忆网络包括门控循环单元网络。
8.一种基于LSTM的数据处理装置,其特征在于,包括:
数据输入模块,用于将待处理数据输入长短期记忆网络的输入单元,所述长短期记忆网络还包括多个计算单元;
数据计算模块,用于基于所述长短期记忆网络的连接关系,对所述待处理数据进行计算;
内存管理模块,用于当当前计算单元连接的下一计算单元还连接至少一个输入单元时,将所述当前计算单元输出的中间数据存储至内存中,并将所述内存中存储的所述中间数据复制到所述下一计算单元中进行计算;
结果输出模块,用于在所述长短期记忆网络的输出单元输出所述待处理数据对应的结果数据。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580228.5A CN110347506B (zh) | 2019-06-28 | 2019-06-28 | 基于lstm的数据处理方法、装置、存储介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580228.5A CN110347506B (zh) | 2019-06-28 | 2019-06-28 | 基于lstm的数据处理方法、装置、存储介质与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347506A CN110347506A (zh) | 2019-10-18 |
CN110347506B true CN110347506B (zh) | 2023-01-06 |
Family
ID=68177195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910580228.5A Active CN110347506B (zh) | 2019-06-28 | 2019-06-28 | 基于lstm的数据处理方法、装置、存储介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347506B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018058452A1 (zh) * | 2016-09-29 | 2018-04-05 | 北京中科寒武纪科技有限公司 | 一种执行人工神经网络运算的装置和方法 |
CN108090560A (zh) * | 2018-01-05 | 2018-05-29 | 中国科学技术大学苏州研究院 | 基于fpga的lstm递归神经网络硬件加速器的设计方法 |
CN108268939A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
CN108510065A (zh) * | 2018-03-30 | 2018-09-07 | 中国科学院计算技术研究所 | 应用于长短时记忆神经网络的计算装置和计算方法 |
CN109491938A (zh) * | 2018-11-27 | 2019-03-19 | 济南浪潮高新科技投资发展有限公司 | 一种面向卷积神经网络加速的多通道dma控制器和卷积神经网络加速方法 |
CN109615449A (zh) * | 2018-10-25 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种预测方法及装置、一种计算设备及存储介质 |
CN109726797A (zh) * | 2018-12-21 | 2019-05-07 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、计算机系统及存储介质 |
CN109815162A (zh) * | 2019-01-28 | 2019-05-28 | Oppo广东移动通信有限公司 | 内存管理方法、装置、移动终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930347B2 (en) * | 2011-12-14 | 2015-01-06 | International Business Machines Corporation | Intermediate result set caching for a database system |
US10803379B2 (en) * | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
-
2019
- 2019-06-28 CN CN201910580228.5A patent/CN110347506B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018058452A1 (zh) * | 2016-09-29 | 2018-04-05 | 北京中科寒武纪科技有限公司 | 一种执行人工神经网络运算的装置和方法 |
CN108268939A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
CN108090560A (zh) * | 2018-01-05 | 2018-05-29 | 中国科学技术大学苏州研究院 | 基于fpga的lstm递归神经网络硬件加速器的设计方法 |
CN108510065A (zh) * | 2018-03-30 | 2018-09-07 | 中国科学院计算技术研究所 | 应用于长短时记忆神经网络的计算装置和计算方法 |
CN109615449A (zh) * | 2018-10-25 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种预测方法及装置、一种计算设备及存储介质 |
CN109491938A (zh) * | 2018-11-27 | 2019-03-19 | 济南浪潮高新科技投资发展有限公司 | 一种面向卷积神经网络加速的多通道dma控制器和卷积神经网络加速方法 |
CN109726797A (zh) * | 2018-12-21 | 2019-05-07 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、计算机系统及存储介质 |
CN109815162A (zh) * | 2019-01-28 | 2019-05-28 | Oppo广东移动通信有限公司 | 内存管理方法、装置、移动终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
FINN-L: Library Extensions and Design Trade-Off Analysis for Variable Precision LSTM Networks on FPGAs;Vladimir Rybalkin et al;《2018 28th International Conference on Field Programmable Logic and Applications (FPL)》;20181206;全文 * |
学习长短时记忆网络的紧密结构;陈皇等;《小型微型计算机系统》;20181231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110347506A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640528B2 (en) | Method, electronic device and computer readable medium for information processing for accelerating neural network training | |
CN110807515B (zh) | 模型生成方法和装置 | |
CN110852438B (zh) | 模型生成方法和装置 | |
CN109300179B (zh) | 动画制作方法、装置、终端和介质 | |
US10048934B2 (en) | Learning intended user actions | |
CN111133458B (zh) | 增强神经网络 | |
US20220101194A1 (en) | Method, electronic device, and computer program product for processing machine learning model | |
JP7285977B2 (ja) | ニューラルネットワークトレーニング方法、装置、電子機器、媒体及びプログラム製品 | |
CN111966361A (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
US11651198B2 (en) | Data processing method and apparatus for neural network | |
Zhang et al. | η-lstm: Co-designing highly-efficient large lstm training via exploiting memory-saving and architectural design opportunities | |
CN112394982B (zh) | 生成语音识别系统的方法、装置、介质及电子设备 | |
CN111813721B (zh) | 神经网络数据处理方法、装置、设备及存储介质 | |
US11023101B2 (en) | System and method for implementing a self service machine learning framework | |
US11023530B2 (en) | Predicting user preferences and requirements for cloud migration | |
CN110347506B (zh) | 基于lstm的数据处理方法、装置、存储介质与电子设备 | |
US20220198153A1 (en) | Model training | |
CN116957006A (zh) | 预测模型的训练方法、装置、设备、介质及程序产品 | |
CN117011118A (zh) | 模型参数更新方法、装置、计算机设备以及存储介质 | |
CN115688917A (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
US11520783B2 (en) | Automated validity evaluation for dynamic amendment | |
CN116848580A (zh) | 用于针对多方对话的话语解析的结构自感知模型 | |
CN111950600B (zh) | 一种预测逾期用户资源返还表现的方法、装置和电子设备 | |
CN113111303B (zh) | 数据读取方法、装置、介质和计算设备 | |
US20230169354A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics to Support Distributed Lineage Tracking |
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 |