CN110197260A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN110197260A CN110197260A CN201910492996.5A CN201910492996A CN110197260A CN 110197260 A CN110197260 A CN 110197260A CN 201910492996 A CN201910492996 A CN 201910492996A CN 110197260 A CN110197260 A CN 110197260A
- Authority
- CN
- China
- Prior art keywords
- data
- forward calculation
- neural network
- global
- retrospectively calculate
- 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.)
- Granted
Links
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
-
- 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
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
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,利用链式法对前向计算的公式进行推导可以得到反向公式如下:
针对RNN,目前普遍采用如下方法实现:
前向过程如下先计算公式1-4,将中间结果xt,yt,zt保存在全局内存中以供反向使用。
根据保存的中间变量,反向过程可以复用的中间结果对应表格如下:
表1
通过本发明实施例提供的方法,前向计算无需保存中间结果,前向过程可以省去xt,yt,zt几个中间结果的保存。反向的时候重新计算一下公式1-4。由于反向会在一个核函数上面实现,并且将中间结果存储在寄存器上面供后续计算使用,而寄存器读取只需要一个时钟周期,而计算指令也是个位数时钟周期量级,故其开销可忽略不计。所以只需要对比优化前后全局内存访问情况,即可分析出性能差异。
其中,前向过程全局内存访存的对照如下,R表示读取,W表示写入,优化前表示通常方法,优化后表示本发明实施例提供的方法。
表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 (12)
1.一种数据处理方法,其特征在于,包括:
利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;
将所述中间数据存入缓存单元;
从所述缓存单元中读取所述中间数据;
利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述反向计算结果存入全局内存单元。
3.根据权利要求1所述的方法,其特征在于,所述神经网络为递归神经网络RNN,所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
4.根据权利要求1所述的方法,其特征在于,利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据之前,还包括:
利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
将所述本次前向计算的输出数据存入全局内存单元。
5.根据权利要求1所述的方法,其特征在于,所述缓存单元为寄存器或高速缓冲存储器。
6.一种数据处理装置,其特征在于,包括:
前向复算模块:用于利用全局数据进行神经网络的前向计算,获得用于神经网络的反向计算的中间数据;
中间数据存储模块:用于将所述中间数据存入缓存单元;
中间数据读取模块:用于从所述缓存单元中读取所述中间数据;
反向计算模块:用于利用所述中间数据进行神经网络的反向计算,获得反向计算结果。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
反向计算结果存储模块:用于将所述反向计算结果存入全局内存单元。
8.根据权利要求6所述的装置,其特征在于,所述神经网络为递归神经网络RNN,所述全局数据包括:
前一次前向计算的输出数据、前一次前向计算的输出数据的权重、本次前向计算的输入数据、本次前向计算的输入数据的权重。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
前向计算模块:用于利用所述全局数据进行神经网络的前向计算,获得本次前向计算的输出数据;
前向计算结果存储模块:用于将所述本次前向计算的输出数据存入全局内存单元。
10.根据权利要求6所述的装置,其特征在于,所述缓存单元为寄存器或高速缓冲存储器。
11.一种数据处理设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的方法。
12.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的方法。
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 true CN110197260A (zh) | 2019-09-03 |
CN110197260B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730502A (zh) * | 2019-10-23 | 2020-01-24 | 珠海优特电力科技股份有限公司 | 一种定位方法及装置 |
CN111126596A (zh) * | 2019-12-17 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 神经网络训练中的信息处理方法、设备与存储介质 |
CN114492789A (zh) * | 2022-01-25 | 2022-05-13 | 天津工业大学 | 一种数据样本的神经网络模型构建方法及装置 |
CN115688893A (zh) * | 2022-10-19 | 2023-02-03 | 北京百度网讯科技有限公司 | 内存调度方法及装置、电子设备和存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12079658B2 (en) | 2021-06-17 | 2024-09-03 | International Business Machines Corporation | Detection of invalid machine-specific data types during data conversion |
US11269632B1 (en) | 2021-06-17 | 2022-03-08 | International Business Machines Corporation | Data conversion to/from selected data type with implied rounding mode |
US11734013B2 (en) | 2021-06-17 | 2023-08-22 | International Business Machines Corporation | Exception summary for invalid values detected during instruction execution |
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 |
US11669331B2 (en) | 2021-06-17 | 2023-06-06 | International Business Machines Corporation | Neural network processing assist instruction |
US11693692B2 (en) | 2021-06-17 | 2023-07-04 | International Business Machines Corporation | Program event recording storage alteration processing for a neural network accelerator instruction |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426962A (zh) * | 2015-11-18 | 2016-03-23 | 长安大学 | 一种不完全递归支集动态神经网络构建及训练方法 |
CN107480782A (zh) * | 2017-08-14 | 2017-12-15 | 电子科技大学 | 一种片上学习神经网络处理器 |
CN108154228A (zh) * | 2016-12-28 | 2018-06-12 | 上海寒武纪信息科技有限公司 | 一种人工神经网络计算装置和方法 |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
Family Cites Families (2)
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 |
-
2019
- 2019-06-06 CN CN201910492996.5A patent/CN110197260B/zh active Active
- 2019-11-21 US US16/691,130 patent/US11704538B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426962A (zh) * | 2015-11-18 | 2016-03-23 | 长安大学 | 一种不完全递归支集动态神经网络构建及训练方法 |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN108154228A (zh) * | 2016-12-28 | 2018-06-12 | 上海寒武纪信息科技有限公司 | 一种人工神经网络计算装置和方法 |
CN107480782A (zh) * | 2017-08-14 | 2017-12-15 | 电子科技大学 | 一种片上学习神经网络处理器 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730502A (zh) * | 2019-10-23 | 2020-01-24 | 珠海优特电力科技股份有限公司 | 一种定位方法及装置 |
CN110730502B (zh) * | 2019-10-23 | 2020-11-03 | 珠海优特电力科技股份有限公司 | 一种定位方法及装置 |
CN111126596A (zh) * | 2019-12-17 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 神经网络训练中的信息处理方法、设备与存储介质 |
CN114492789A (zh) * | 2022-01-25 | 2022-05-13 | 天津工业大学 | 一种数据样本的神经网络模型构建方法及装置 |
CN114492789B (zh) * | 2022-01-25 | 2024-05-14 | 天津工业大学 | 一种数据样本的神经网络模型构建方法及装置 |
CN115688893A (zh) * | 2022-10-19 | 2023-02-03 | 北京百度网讯科技有限公司 | 内存调度方法及装置、电子设备和存储介质 |
CN115688893B (zh) * | 2022-10-19 | 2024-09-03 | 北京百度网讯科技有限公司 | 内存调度方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110197260B (zh) | 2020-10-02 |
US11704538B2 (en) | 2023-07-18 |
US20200387772A1 (en) | 2020-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110197260A (zh) | 一种数据处理方法及装置 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN109522052B (zh) | 一种计算装置及板卡 | |
CN107341547A (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
CN109543832A (zh) | 一种计算装置及板卡 | |
CN111242289A (zh) | 一种规模可扩展的卷积神经网络加速系统与方法 | |
EP3451239A1 (en) | Apparatus and method for executing recurrent neural network and lstm computations | |
CN107590085B (zh) | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 | |
CN108647774A (zh) | 一种优化稀疏性矩阵运算的神经网络方法和电路 | |
WO2019128548A1 (zh) | 一种信号处理方法及装置 | |
CN115136115A (zh) | 使用共享便笺式存储器的向量简化 | |
CN110580519A (zh) | 一种卷积运算结构及其方法 | |
US20220164164A1 (en) | Method and apparatus with deep learning operations | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
Van Tuoc | On global existence of solutions to a cross-diffusion system | |
WO2019128248A1 (zh) | 一种信号处理方法及装置 | |
CN111610963B (zh) | 芯片结构及其乘加计算引擎 | |
CN109359542A (zh) | 基于神经网络的车辆损伤级别的确定方法及终端设备 | |
EP4009240A1 (en) | Method and apparatus for performing deep learning operations | |
CN112183732A (zh) | 卷积神经网络加速方法、装置和计算机设备 | |
CN109800867B (zh) | 一种基于fpga片外存储器的数据调用方法 | |
EP4180979A1 (en) | Neural network training with acceleration | |
WO2020042770A9 (zh) | 图像识别处理方法和装置 | |
CN116090530A (zh) | 可配置卷积核大小和并行计算数目的脉动阵列结构及方法 | |
CN107247944B (zh) | 基于深度学习的人脸检测速度优化方法及装置 |
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 |