CN110197260B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN110197260B
CN110197260B CN201910492996.5A CN201910492996A CN110197260B CN 110197260 B CN110197260 B CN 110197260B CN 201910492996 A CN201910492996 A CN 201910492996A CN 110197260 B CN110197260 B CN 110197260B
Authority
CN
China
Prior art keywords
data
calculation
neural network
forward calculation
global
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
Application number
CN201910492996.5A
Other languages
English (en)
Other versions
CN110197260A (zh
Inventor
郑焕鑫
王桂彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910492996.5A priority Critical patent/CN110197260B/zh
Publication of CN110197260A publication Critical patent/CN110197260A/zh
Priority to US16/691,130 priority patent/US11704538B2/en
Application granted granted Critical
Publication of CN110197260B publication Critical patent/CN110197260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本发明实施例提出一种数据处理方法及装置。所述方法包括:利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;将所述中间数据存入缓存单元;从所述缓存单元中读取所述中间数据;利用所述中间数据进行神经网络的反向计算,获得反向计算结果。本发明实施例在执行神经网络的反向计算时,读全局内存的次数减少,从而计算时间消耗减少,提高了数据处理速度。

Description

一种数据处理方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法及装置。
背景技术
人工神经网络(Artificial Neural Network,ANN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(Activation Function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展。例如,在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。由于神经网络中涉及到大量的数据处理,例如前向传播计算(前向计算)、反向传播计算(反向计算),减少数据处理时间,提高数据处理速度,对于提高神经网络的性能而言,具有极高的重要性。
发明内容
本发明实施例提供一种数据处理方法及装置,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种数据处理方法,包括:
利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;
将所述中间数据存入缓存单元;
从所述缓存单元中读取所述中间数据;
利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
在一种实施方式中,所述还包括:
将所述反向计算结果存入全局内存单元。
在一种实施方式中,所述神经网络为递归神经网络RNN(Recurrent NeuralNetwork),所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
在一种实施方式中,利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据之前,还包括:
利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
将所述本次前向计算的输出数据存入全局内存单元。
在一种实施方式中,所述缓存单元为寄存器或高速缓冲存储器。
第二方面,本发明提供一种数据处理装置,包括:
前向复算模块:用于利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;
中间数据存储模块:用于将所述中间数据存入缓存单元;
中间数据读取模块:用于从所述缓存单元中读取所述中间数据;
反向计算模块:用于利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
在一种实施方式中,所述装置还包括:
反向计算结果存储模块:用于将所述反向计算结果存入全局内存单元。
在一种实施方式中,所述神经网络为递归神经网络RNN,所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
在一种实施方式中,所述装置还包括:
前向计算模块:用于利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
前向计算结果存储模块:用于将所述本次前向计算的输出数据存入全局内存单元。
在一种实施方式中,所述缓存单元为寄存器或高速缓冲存储器。
第三方面,本发明实施例提供了一种数据处理装置,所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述装置的结构中包括处理器和存储器,所述存储器用于存储支持所述装置执行上述数据处理方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述装置还可以包括通信接口,用于与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储数据处理装置所用的计算机软件指令,其包括用于执行上述数据处理方法所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:本发明实施例中,在执行反向计算时,首先获取全局数据进行前向计算,然后根据本次进行前向计算获得的结果进行反向计算,相当于除了前向计算时对数据采用前向传播算法进行前向计算之外,在反向计算时还要再对数据执行一次前向计算。虽然计算次数增加,但是无需前向计算时将数据存储在全局内存,且由于全局数据的数据量小于前向计算的中间数据的数据量,在反向计算时,读全局内存的次数减少,从而计算时间消耗减少,提高了数据处理速度。
上述技术方案中的另一个技术方案具有如下优点或有益效果:在本发明实施例中,在前向计算时,仅仅需要将前向计算的输出数据存入全局内存,无需将中间结果存入全局内存,不仅减少了全局内存的写数据次数,提高数据处理速度,而且节省了全局内存空间。当前向计算中间结果数据量大时,无需预备大空间的内存存储这些中间数据,也优化了神经网络的结构。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1示出根据本发明实施例的数据处理方法的流程图。
图2示出根据本发明实施例的数据处理方法的流程图。
图3示出根据本发明实施例的数据处理方法的流程图。
图4示出根据本发明实施例的数据处理方法的流程图。
图5示出根据本发明实施例的数据处理方法的流程图。
图6示出根据本发明实施例的数据处理装置的结构框图。
图7示出根据本发明实施例的数据处理装置的结构框图。
图8示出根据本发明实施例的数据处理装置的结构框图。
图9A、图9B、图9C、图9D示出采用本发明实施例的数据处理方法改进前后的数据读写示意图。
图10示出根据本发明实施例的数据处理设备的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
图1示出根据本发明实施例的数据处理方法的流程图。如图1所示,该数据处理方法包括:
步骤S11:利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据。
步骤S12:将所述中间数据存入缓存单元。
步骤S13:从所述缓存单元中读取所述中间数据。
步骤S14:利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
神经网络包含多层架构,每一层数据处理都包括前向计算和反向计算。通常,神经网络先执行前向计算,后执行反向计算。反向计算会依赖于前向计算的中间数据。进行前向计算之后,会将前向计算的结果存入全局内存,结果包括前向计算的输出数据和中间数据。在进行反向计算的时候,从全局内存中读出反向计算所需要的中间数据和前一次前向计算的输出数据,直接进行反向计算。然而,全局内存的读写操作需要占用数百始终周期量级,执行前向计算仅仅需要个位数的时钟周期,节省的计算开销弥补不了全局内存访问造成的开销。
本发明实施例中,在执行反向计算时,首先获取全局数据进行前向计算,然后根据本次进行前向计算获得的结果进行反向计算。相当于除了前向计算时对数据采用前向传播算法进行前向计算之外,在反向计算时还要再对数据执行一次前向计算。虽然计算次数增加,但是无需前向计算时将数据存储在全局内存,且由于全局数据的数据量小于前向计算的中间数据的数据量,在反向计算时,读全局内存的次数减少,从而计算时间消耗减少,提高了数据处理速度。
图2示出根据本发明实施例的数据处理方法的流程图。本实施例中的步骤S11-S14可以参见上述实施例中的相关描述,在此不再赘述。
与上述实施例的不同之处在于,如图2所示,该数据处理方法还包括:
步骤S21:将所述反向计算结果入全局内存单元。
在本发明实施例中,在NVIDIA GPU(Graphics Processing UnitGPU)硬件体系结构中,片上共享显存、寄存器的访存延时,以及计算指令延迟都比全局显存小100倍左右。因此通过重复计算来减少全局内存访问,减少中间结果保存对于提高数据处理速度具有非常显著的效果。
在一种实施方式中,所述神经网络为递归神经网络RNN,所述全局数据包括:前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
假设某个RNN神经网络中,前向计算可以采用下述公式。其中w1,w2表示神经网络权重,at表示输入,ft表示输出,xt,yt,zt为中间结果,t表示t时刻。对应前向公式如下:
xt=atw1+ft-1w2, 公式1
yt=xtft-1, 公式2
zt=xtyt, 公式3
ft=ytzt, 公式4
假设代价函数为L,利用链式法对前向计算的公式进行推导可以得到反向公式如下:
Figure BDA0002087645260000061
Figure BDA0002087645260000062
Figure BDA0002087645260000063
Figure BDA0002087645260000064
针对RNN,目前普遍采用如下方法实现:
前向过程如下先计算公式1-4,将中间结果xt,yt,zt保存在全局内存中以供反向使用。
根据保存的中间变量,反向过程可以复用的中间结果对应表格如下:
Figure BDA0002087645260000065
表1
通过本发明实施例提供的方法,前向计算无需保存中间结果,前向过程可以省去xt,yt,zt几个中间结果的保存。反向的时候重新计算一下公式1-4。由于反向会在一个核函数上面实现,并且将中间结果存储在寄存器上面供后续计算使用,而寄存器读取只需要一个时钟周期,而计算指令也是个位数时钟周期量级,故其开销可忽略不计。所以只需要对比优化前后全局内存访问情况,即可分析出性能差异。
其中,前向过程全局内存访存的对照如下,R表示读取,W表示写入,优化前表示通常方法,优化后表示本发明实施例提供的方法。
Figure BDA0002087645260000071
表2
反向过程全局内存访存如下:
a<sub>t</sub> w<sub>1</sub> w<sub>2</sub> f<sub>t-1</sub> x<sub>t</sub> y<sub>t</sub> z<sub>t</sub> f<sub>t</sub>
优化前 R R R R R
优化后 R R R R
表3
根据表2和表3可知,优化前总访问存储次数为13次,优化后变为9次。可以初略估计出该实现速度性能提升44%,中间结果xt,yt,zt全部不需要保存,节省全局显存开销。
在本发明实施例中,数据处理方法适用于常见RNN及其变种,如LSTM(Long Short-Term Memory,长短期记忆网络),LSTMP(LSTM Projection Layer,LSTM投射层网络),GPU(Graphics Processing Unit,图形处理器),SRU(Simple Recurrent Units,简单循环单元网络),WaveRNN(波RNN)等,具有极强的泛化性。
图3示出根据本发明实施例的数据处理方法的流程图。本实施例中的步骤S11-S14可以参见上述实施例中的相关描述,在此不再赘述。
与上述实施例的不同之处在于,如图3所示,利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据之前,还包括:
S31:利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据。例如,参见上述的公式1-4,本次前向计算的输出数据包括ft
S32:将所述本次前向计算的输出数据存入全局内存单元。例如,参见上述的公式可以是公式1-4中的ft,本次前向计算结果包括ft
在本发明实施例中,在前向计算时,仅将前向计算的输出数据存入全局内存,无需将中间结果存入全局内存,不仅减少了全局内存的写数据次数,提高数据处理速度,而且节省了全局内存空间。当前向计算中间结果数据量大时,无需预备大空间的内存存储这些中间数据,也优化了神经网络的结构。
在一种实施方式中,所述缓存单元为寄存器或高速缓冲存储器。
在反向计算的过程中,执行前向计算时,可以只计算中间数据,不计算输出数据。在本发明一种示例中,如图4所示,数据处理方法包括:
步骤S41:利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据。例如,输出数据可以是公式1-4中的ft
步骤S42:将所述本次前向计算的输出数据存入全局内存单元。
步骤S43:利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据。
步骤S44:将所述中间数据存入缓存单元。
步骤S45:从所述缓存单元中读取所述中间数据。
步骤S46:利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
步骤S47:将所述反向计算结果存入全局内存单元。
在反向计算的过程中,执行前向计算时,可以既计算中间数据,又计算输出数据。在本发明另一种示例中,如图5所示,数据处理方法包括:
步骤S51:利用所述全局数据进行神经网络的前向计算,获得本次前向计算的中间数据和输出数据。例如,输出数据可以是公式1-4中的ft,中间数据可以是公式1-4中的xt,yt,zt
步骤S52:将所述本次前向计算的输出数据存入全局内存单元。
步骤S53:利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据和本次前向计算的输出数据。
步骤S54:将所述中间数据存入缓存单元。
步骤S55:从所述缓存单元中读取所述中间数据。
步骤S56:利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
步骤S57:将所述反向计算结果存入全局内存单元。
本发明还提供一种数据处理装置,如图6所示,该装置可以包括:
前向复算模块61:用于利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;
中间数据存储模块62:用于将所述中间数据存入缓存单元;
中间数据读取模块63:用于从所述缓存单元中读取所述中间数据;
反向计算模块64:用于利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
图7示出根据本发明实施例的数据处理方法的流程图。本实施例中的前向复算模块61、中间数据存储模块62、中间数据读取模块63、反向计算模块64可以参见上述实施例中的相关描述,在此不再赘述。
与上述实施例的不同之处在于,如图7所示,所述装置还包括:
反向计算结果存储模块71:用于将所述反向计算结果存入全局内存单元。
在一种实施方式中,所述神经网络为递归神经网络RNN,所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
图8示出根据本发明实施例的数据处理方法的流程图。本实施例中的前向复算模块61、中间数据存储模块62、中间数据读取模块63、反向计算模块64可以参见上述实施例中的相关描述,在此不再赘述。
与上述实施例的不同之处在于,如图8所示,所述装置还包括:
前向计算模块81:用于利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
前向计算结果存储模块82:用于将所述本次前向计算的输出数据存入全局内存单元。
在一种实施方式中,所述缓存单元为寄存器或高速缓冲存储器。
本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
图9A、图9B、图9C、图9D示出采用本发明实施例的数据处理方法改进前后的数据读写示意图。图9A为改进前的前向计算数据读写和处理示意图,图9B为改进前的反向计算的数据读写和处理示意图,图9C为改进后的前向计算数据读写和处理示意图,图9D为改进后的反向计算数据读写和处理示意图。采用本发明实施例提供的数据处理方法,反向计算时,无需从全局内存中读取中间数据,只需要读取全局数据,反向计算时使用的全局数据的数据量小于前向计算时的中间数据的数据量。前向计算时,无需将中间数据存入全局内存,只需要将输出数据存入全局内存。因而能够减少全局内存的访问次数,减少全局数据的读写次数,提高数据处理速度。
图10示出根据本发明实施例的数据处理设备的结构框图。如图10所示,该设备包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。所述处理器920执行所述计算机程序时实现上述实施例中的数据处理方法。所述存储器910和处理器920的数量可以为一个或多个。
该设备还包括:
通信接口930,用于与外界设备进行通信,进行数据交互传输。
存储器910可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent Interconnect)总线或扩展工业标准体系结构(EISA,Extended IndustryStandard Architecture)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据,所述神经网络为递归神经网络RNN;
将所述中间数据存入缓存单元;
从所述缓存单元中读取所述中间数据;
利用所述中间数据进行神经网络的反向计算,获得反向计算结果,
其中,利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据之前,还包括:
利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
将所述本次前向计算的输出数据存入全局内存单元。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述反向计算结果存入全局内存单元。
3.根据权利要求1所述的方法,其特征在于,所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
4.根据权利要求1所述的方法,其特征在于,所述缓存单元为寄存器或高速缓冲存储器。
5.一种数据处理装置,其特征在于,包括:
前向复算模块:用于利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;
中间数据存储模块:用于将所述中间数据存入缓存单元;
中间数据读取模块:用于从所述缓存单元中读取所述中间数据;
反向计算模块:用于利用所述中间数据进行神经网络的反向计算,获得反向计算结果,
其中,所述神经网络为递归神经网络RNN,并且
所述装置还包括:
前向计算模块:用于在利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据之前,利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
前向计算结果存储模块:用于将所述本次前向计算的输出数据存入全局内存单元。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
反向计算结果存储模块:用于将所述反向计算结果存入全局内存单元。
7.根据权利要求5所述的装置,其特征在于,所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
8.根据权利要求5所述的装置,其特征在于,所述缓存单元为寄存器或高速缓冲存储器。
9.一种数据处理设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至4中任一项所述的方法。
10.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述的方法。
CN201910492996.5A 2019-06-06 2019-06-06 一种数据处理方法及装置 Active CN110197260B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910492996.5A CN110197260B (zh) 2019-06-06 2019-06-06 一种数据处理方法及装置
US16/691,130 US11704538B2 (en) 2019-06-06 2019-11-21 Data processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910492996.5A CN110197260B (zh) 2019-06-06 2019-06-06 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN110197260A CN110197260A (zh) 2019-09-03
CN110197260B true CN110197260B (zh) 2020-10-02

Family

ID=67754119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910492996.5A Active CN110197260B (zh) 2019-06-06 2019-06-06 一种数据处理方法及装置

Country Status (2)

Country Link
US (1) US11704538B2 (zh)
CN (1) CN110197260B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110730502B (zh) * 2019-10-23 2020-11-03 珠海优特电力科技股份有限公司 一种定位方法及装置
CN111126596B (zh) * 2019-12-17 2021-03-19 百度在线网络技术(北京)有限公司 神经网络训练中的信息处理方法、设备与存储介质
US11669331B2 (en) 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11693692B2 (en) 2021-06-17 2023-07-04 International Business Machines Corporation Program event recording storage alteration processing for a neural network accelerator instruction
US11797270B2 (en) 2021-06-17 2023-10-24 International Business Machines Corporation Single function to perform multiple operations with distinct operation parameter validation
US11675592B2 (en) 2021-06-17 2023-06-13 International Business Machines Corporation Instruction to query for model-dependent information
US11269632B1 (en) 2021-06-17 2022-03-08 International Business Machines Corporation Data conversion to/from selected data type with implied rounding mode
CN114492789A (zh) * 2022-01-25 2022-05-13 天津工业大学 一种数据样本的神经网络模型构建方法及装置
CN115688893A (zh) * 2022-10-19 2023-02-03 北京百度网讯科技有限公司 内存调度方法及装置、电子设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629190A (zh) 2012-02-29 2012-08-08 华为技术有限公司 一种寄存器的读写方法及装置
US10140572B2 (en) * 2015-06-25 2018-11-27 Microsoft Technology Licensing, Llc Memory bandwidth management for deep learning applications
CN105426962A (zh) * 2015-11-18 2016-03-23 长安大学 一种不完全递归支集动态神经网络构建及训练方法
CN108154237B (zh) * 2016-12-06 2022-04-05 华为技术有限公司 一种数据处理系统及方法
WO2018121472A1 (zh) * 2016-12-28 2018-07-05 上海寒武纪信息科技有限公司 一种运算方法
CN107480782B (zh) * 2017-08-14 2020-11-10 电子科技大学 一种片上学习神经网络处理器

Also Published As

Publication number Publication date
US20200387772A1 (en) 2020-12-10
US11704538B2 (en) 2023-07-18
CN110197260A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
CN110197260B (zh) 一种数据处理方法及装置
EP3944157A1 (en) Device and method for performing training of convolutional neural network
CN109375951B (zh) 一种用于执行全连接层神经网络正向运算的装置和方法
US20180260709A1 (en) Calculating device and method for a sparsely connected artificial neural network
US20190065958A1 (en) Apparatus and Methods for Training in Fully Connected Layers of Convolutional Networks
US20190087709A1 (en) Apparatus and method for executing recurrent neural network and lstm computations
JPWO2016194248A1 (ja) 推論装置及び推論方法
US10831861B2 (en) Apparatus and methods for vector operations
CN112488908B (zh) 一种计算装置、计算方法、存储介质及终端
US11704556B2 (en) Optimization methods for quantization of neural network models
CN114742225A (zh) 一种基于异构平台的神经网络推理加速方法
WO2018185725A1 (en) Conditional graph execution based on prior simplified graph execution
CN113868187A (zh) 处理神经网络的方法和电子装置
CN111860814B (zh) 一种用于执行batch normalization运算的装置和方法
US20210125033A1 (en) Apparatus and method for neural network processing
CN109685208B (zh) 一种用于神经网络处理器数据稀梳化加速的方法及装置
CN116227599A (zh) 一种推理模型的优化方法、装置、电子设备及存储介质
CN114692745A (zh) 数据处理方法、装置、集成芯片、电子设备及存储介质
CN110969259B (zh) 具有数据关联自适应舍入的处理核心
CN111626913B (zh) 一种图像处理方法、装置及存储介质
WO2022020386A1 (en) Elastic bottleneck architectures for variable convolution operations
CN116757260B (zh) 一种大型预训练模型的训练方法和系统
US20220222538A1 (en) Method and apparatus with neural network processing
CN112749799B (zh) 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法
EP3968238A1 (en) Operation method of host processor and accelerator, and electronic device including the same

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