CN113222107A - 数据处理方法、装置、设备及存储介质 - Google Patents
数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113222107A CN113222107A CN202110252679.3A CN202110252679A CN113222107A CN 113222107 A CN113222107 A CN 113222107A CN 202110252679 A CN202110252679 A CN 202110252679A CN 113222107 A CN113222107 A CN 113222107A
- Authority
- CN
- China
- Prior art keywords
- layer
- convolution
- data corresponding
- convolutional layer
- computing chip
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000003062 neural network model Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 38
- 239000000872 buffer Substances 0.000 claims description 38
- 230000004913 activation Effects 0.000 claims description 24
- 238000011176 pooling Methods 0.000 claims description 19
- 238000007781 pre-processing Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 238000005265 energy consumption Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 34
- 238000007667 floating Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000013139 quantization Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005669 field effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 241001164374 Calyx Species 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000002784 hot electron Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
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
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种数据处理方法、装置、设备及存储介质,该方法包括:针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量;将所述第i层卷积层对应的输入特征数据发送给存内计算芯片,以使所述存内计算芯片对所述第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果;根据第N卷积结果,确定所述目标神经网络模型的输出结果,大大减少处理器与存储器之间的数据传输,降低数据搬运开销,从而降低延时和能耗,提高数据处理速度及系统能效比。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
随着电子信息技术的发展,当今社会处于信息爆炸的大数据时代,海量的图像、视频等非结构化数据对处理器的数据处理能力提出了严苛的要求。且随着人工智能的发展,基于深度学习神经网络推理的图像分类、目标检测、行为识别等技术日益成熟,然而神经网络的前向推理依赖大量计算,现有的冯·诺依曼架构的计算机设备进行卷积运算时需要频繁的数据传输,导致延时和能耗较高。
发明内容
本发明实施例提供一种数据处理方法、装置、设备及存储介质,以解决现有技术卷积运算延时和能耗较高的缺陷。
第一个方面,本发明实施例提供一种数据处理方法,包括:
针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量;
将所述第i层卷积层对应的输入特征数据发送给存内计算芯片,以使所述存内计算芯片对所述第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果;
根据第N卷积结果,确定所述目标神经网络模型的输出结果。
第二个方面,本发明实施例提供一种数据处理装置,包括:
获取模块,用于针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量;
发送模块,用于将所述第i层卷积层对应的输入特征数据发送给存内计算芯片,以使所述存内计算芯片对所述第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果;
处理模块,用于根据第N卷积结果,确定所述目标神经网络模型的输出结果。
第三个方面,本发明实施例提供一种电子设备,包括:收发器及至少一个处理器;
所述处理器与所述收发器通过电路互联;
所述收发器,用于接收输入设备发送的原待处理数据;
所述至少一个处理器执行存储器和/或存内计算芯片存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
第四个方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本发明实施例提供的数据处理方法、装置、设备及存储介质,将目标神经网络模型中复杂的卷积运算部署到存内计算芯片,将原本需要处理器进行的复杂计算过程转化为处理器传输待计算数据至存内计算芯片即可得到计算后的结果,从而大大减少处理器与存储器之间的数据传输,降低数据搬运开销,从而降低延时和能耗,提高数据处理速度及系统能效比,并且有效降低了处理器的工作量,使得基于该处理器的嵌入式系统对处理器性能的依赖性降低,有利于替换为性能较低的处理器来降低系统成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数据处理方法的流程示意图;
图2a为本发明一实施例提供的NOR FLASH单元示意图;
图2b为本发明一实施例提供的NOR FLASH单元的特性示意图;
图2c为本发明一实施例提供的基于NOR FLASH单元的相乘运算示意图;
图2d为本发明一实施例提供的3*8bit(位)的NOR FLASH单元阵列的原理结构示意图;
图2e为本发明一实施例提供的基于NOR FLASH单元阵列进行权重加和计算的示意图;
图3为本发明一实施例提供的双缓存机制的原理示意图;
图4为本发明一实施例提供的卷积运算的原理示意图;
图5为本发明一实施例提供的与图4对应的卷积权重写入存内计算芯片的示例性原理示意图;
图6为本发明一实施例提供的手写数字识别神经网络模型的网络结构示意图;
图7为本发明一实施例提供的手写数字识别神经网络模型的完整网络架构示意图;
图8为本发明一实施例提供的数据处理装置的结构示意图;
图9为本发明另一实施例提供的数据处理装置的结构示意图;
图10为本发明一实施例提供的电子设备的结构示意图;
图11为现有的冯·诺依曼体系结构的嵌入式设备结构示意图;
图12为本发明一实施例提供的嵌入式设备的一种示例性结构示意图;
图13为本发明一实施例提供的嵌入式设备的另一种示例性结构示意图;
图14为本发明一实施例提供的嵌入式设备的再一种示例性结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明所涉及的名词进行解释:
SPI:SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。SPI总线是一种4线总线,因其硬件功能很强,所以与SPI有关的软件就相当简单,使中央处理器(Central Processing Unit,CPU)有更多的时间处理其他事务。SPI通常由一个主模块和一个或多个从模块组成,主模块选择一个从模块进行同步通信,从而完成数据的交换。SPI的4线分别是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选):(1)SDI–SerialData In,串行数据输入;(2)SDO–SerialDataOut,串行数据输出;(3)SCLK–Serial Clock,时钟信号,由主设备产生;(4)CS–Chip Select,从设备使能信号,由主设备控制。其中,CS是从芯片是否被主芯片选中的控制信号,也即只有片选信号为预先规定的使能信号时(高电位或低电位),主芯片对此从芯片的操作才有效,从而使得在同一条总线上连接多个SPI设备成为可能。在本发明中,中央处理器与存内计算芯片之间的通信使用通用的SPI接口:主模块(中央处理器)通过SPI接口将指令以及待计算的数据传至从模块(存内计算芯片),之后再通过SPI接口读取计算后的结果。利用SPI能够共用总线的性质,实现中央处理器驱动n块存内计算芯片只需要3+n条线。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个及两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
本发明一实施例提供一种数据处理方法,用于基于神经网络模型的数据处理。本实施例的执行主体为数据处理装置,该数据处理装置可以为处理器CPU,该数据处理装置可以设置在电子设备中,该电子设备可以是嵌入式设备。
如图1所示,为本实施例提供的数据处理方法的流程示意图,该方法包括:
步骤101,针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量。
具体的,目标神经网络模型可以是预先训练好的用于目标检测、图像分类、行为识别、语音识别等的神经网络模型,具体神经网络模型可以根据实际需求设置;目标神经网络模型包括N层卷积层,N可以根据实际需求设置,比如3层、4层、7层等,可以预先将目标神经网络模型的卷积运算部署到存内计算芯片,由存内计算芯片进行卷积运算,数据处理装置与存内计算芯片进行交互,进行整体调控及目标神经网络模型的其他网络层的运算,获取存内计算芯片卷积运算需要的输入特征数据。
可选地,为了适配存内计算芯片,数据处理装置获取的第i层卷积层对应的输入特征数据可以为二值化数据。
示例性的,目标神经网络模型为目标检测模型,用于检测图像中目标对象的位置,目标对象可以为人脸、某种动物、某种物体等等,具体可以根据实际需求设置,数据处理装置则可以从摄像头或其他输入设备或相应的存储区域获取原图像数据(可以称为原待处理数据),对原图像数据进行预处理,比如提取亮度、图像大小缩放等,获得符合目标神经网络模型的特征图像(可以称为第一特征数据),将特征图像进行二值化,获得存内计算芯片第一层卷积运算需要的输入特征图(即输入特征数据)。
示例性的,目标神经网络模型为语音识别模型,用于各种场景的语音识别处理,数据处理装置则可以从语音输入设备或其他输入设备或相应的存储区域获取原语音数据,对原语音数据进行特征提取获得第一特征数据,将第一特征数据进行二值化获得存内计算芯片第一层卷积运算需要的输入特征数据。
步骤102,将第i层卷积层对应的输入特征数据发送给存内计算芯片,以使存内计算芯片对第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果。
具体的,数据处理装置在获取到第i层卷积层对应的输入特征数据后,发送给存内计算芯片,存内计算芯片采用预先写入的第i层卷积层对应的卷积权重数据对第i层卷积层对应的输入特征数据进行卷积运算,获得第i卷积结果,存内计算芯片将第i卷积结果传输给数据处理装置,数据处理装置将第i卷积结果进行缓存,并基于第i卷积结果获取第i+1层卷积层对应的输入特征数据进行缓存,具体比如对第i卷积结果进行阶跃激活,获得第i+1层卷积层对应的输入特征数据,当需要进行池化时,则对第i卷积结果进行阶跃激活及池化后获得第i+1层卷积层对应的输入特征数据,将第i+1层卷积层对应的输入特征数据发送给存内计算芯片,以使存内计算芯片进行第i+1层卷积运算,以此类推,将卷积运算部署到存内计算芯片实现。
由于存内计算芯片是存算一体的芯片,将存储单元与计算逻辑集成到一起进行本地计算,使得存储单元具备计算能力,将原本需要处理器进行的复杂计算过程转化为处理器传输待计算数据至存内计算芯片即可得到计算后的结果,从而大大减少处理器与存储器之间的数据传输,降低数据搬运开销,从而避免了冯·诺依曼瓶颈和存储墙问题,降低延时和能耗,提高数据处理速度及系统能效比,并且有效降低了处理器的工作量,使得基于该处理器的嵌入式系统对处理器性能的依赖性降低,有利于替换为性能较低的处理器来降低系统成本。
可选地,数据处理装置可以采用通用的SPI接口及协议与存内计算芯片进行通信,提高存内计算芯片的通用性,有利于存内计算芯片应用于各种场景的嵌入式设备。
可选地,存内计算芯片卷积运算的实现可以采用任意可实施的实现方式,本实施例不做限定。
示例性的,存内计算芯片可以基于NOR FLASH(NOR闪存)技术实现卷积运算,NORFLASH使用浮栅场效应管(Floating Gate FET)作为基本存储单元来存储数据,如图2a所示,为本实施例提供的NOR FLASH单元示意图,浮栅场效应管共有4个端电极,分别为源极(Source,简称S)、漏极(Drain,简称D)、控制栅极(Control Gate,简称G)和浮置栅极(简称浮栅,Floating Gate,简称F),浮栅结构与外界没有电气连接,被包裹在二氧化硅介质层中,是浮空的,浮栅可以捕捉电子并储存,并且由于没有对外的回路,即使掉电之后,电子也不会流失,而浮栅结构中存储的电子的量,可以改变场效应管的导通电压,即Vth。不同的Vth可以代表不同的状态,实现了信息的存储,NOR FLASH利用浮栅是否存储电荷来表征数字‘0’和‘1’,当向浮栅注入电荷后,源极和漏极之间存在导电沟道,则在漏极读到‘0’;若浮栅中没有电荷,源极和漏极之间没有导电沟道,则在漏极读到‘1’;写操作就是向浮栅注入电荷的过程,NOR FLASH通过热电子注入方式向浮栅注入电荷;读出操作时,控制栅极上施加的电压很小,不会改变浮栅中的电荷量,即读出操作不会改变FLASH中原有的数据;如图2b所示,为本实施例提供的NOR FLASH单元的特性示意图,其中,Vth_low和Vth_high分别为低阈值电压和高阈值电压,Vg为控制栅极电压,Id为漏极电流,cell表示单元,如图2c所示,为本实施例提供的基于NOR FLASH单元的相乘运算示意图,Input-A和Input-B分别表示输入A和输入B,Output表示输出,Ids为源漏电流,由于控制栅极电流很小,所以源漏电流Ids等于漏极电流Id,因此,Ids也可表示输出的漏极电流,不同的控制栅极电压与不同的浮栅状态可以实现1×1=1、1×0=0、0×1=0、0×0=0四种状态,即单个NOR FLASH单元即可完成二值(0和1)乘法运算,如图2d所示,为本实施例提供的3*8bit(位)的NOR FLASH单元阵列的原理结构示意图,每个Bit Line(即位线)下的基本存储单元是并联的,当某个Word Line(即字线)被选中后,就可以实现对该Word的读取,也就是可以实现位读取(即Random Access),且具有较高的读取速率。基本存储单元的并联结构决定了NOR FLASH具有存储单元可独立寻址且读取效率高的特性;如图2e所示,为本实施例提供的基于NOR FLASH单元阵列进行权重加和计算的示意图,WL即Word Line,表示字线,SL即Source Line表示源线,基于NOR FLASH单元的特性,实现采用NOR FLASH单元阵列进行权重加和计算。
步骤103,根据第N卷积结果,确定目标神经网络模型的输出结果。
具体的,数据处理装置与存内计算芯片不断交互,完成N层卷积运算后,存内计算芯片将第N卷积结果传输给数据处理装置,数据处理装置对第N卷积结果进行后处理获得目标神经网络模型的最终输出结果,并可以基于目标神经网络模型的输出结果进行后续的处理,比如对于目标检测模型,输出结果为检测到的目标对象的位置,可以基于该目标对象的位置,从原图像数据中提取出该目标对象对应的图像,用于后续应用需求,比如基于人脸识别的权限验证,判断是否通过验证,再比如基于人脸识别的门禁系统,判断是否开门等。
可选地,数据处理装置还可以将输出结果发送给其他设备,比如发送给显示设备进行显示,具体可以根据实际需求设置。
本实施例提供的数据处理方法,将目标神经网络模型中复杂的卷积运算部署到存内计算芯片,将原本需要处理器进行的复杂计算过程转化为处理器传输待计算数据至存内计算芯片即可得到计算后的结果,从而大大减少处理器与存储器之间的数据传输,降低数据搬运开销,从而降低延时和能耗,提高数据处理速度及系统能效比,并且有效降低了处理器的工作量,使得基于该处理器的嵌入式系统对处理器性能的依赖性降低,有利于替换为性能较低的处理器来降低系统成本。
为了使本发明的技术方案更加清楚,本发明另一实施例对上述实施例提供的数据方法做进一步补充说明。
作为一种可实施的方式,在上述实施例的基础上,可选地,存内计算芯片中预先写入有第i层卷积层对应的三值化卷积权重数据,存内计算芯片基于第i层卷积层对应的三值化卷积权重数据对第i层卷积层对应的输入特征数据进行第i层卷积运算。
具体的,为了降低模型参数占用存储空间的大小,使目标神经网络模型卷积运算能够部署在存内计算芯片中,根据存内计算芯片的向量矩阵乘法计算架构的需求及特性,将目标神经网络模型各卷积层对应的卷积权重数据进行三值化,获得三值化卷积权重数据,写入存内计算芯片,在应用目标神经网络模型时,由存内计算芯片基于各卷积层对应的三值化卷积权重数据对输入特征数据进行卷积运算。
卷积权重三值化可以采用任意可实施的三值量化方式,比如三值量化模型(Ternary Weight Networks,简称TWN)。示例性的,采用如下公式一进行三值量化:
其中,Δ表示三值量化阈值,表示量化后的模型参数(比如三值化卷积权重),当待量化模型参数(比如待量化的卷积权重)Wi>Δ时,将其量化为+1;当待量化模型参数|Wi|≤Δ时,将其量化为0;当待量化模型参数Wi<-Δ时,将其量化为-1;三值量化中,三值量化阈值Δ可以根据待量化模型参数按照预设规则设置,示例性的,可以采用如下公式二确定三值量化阈值Δ:
其中,n表示待量化模型参数的个数。对于三值量化,可以采用STE(StraightThrough Estimator,直接近似估计)或者其他可实施方式来完成梯度的估计。
作为另一种可实施的方式,在上述实施例的基础上,可选地,输入特征数据为二值化输入特征数据。
具体的,为了降低模型参数占用存储空间的大小,且能够使获得的各卷积层对应的输入特征数据能够适用于存内计算芯片的运算,根据存内计算芯片的向量矩阵乘法计算架构的需求及特性,数据处理装置获取的第i层卷积层对应的输入特征数据为二值化数据,即目标神经网络模型设置有阶跃激活部分,对于第i卷积结果进行阶跃激活获得二值化结果,对二值化结果进行最大池化获得二值化池化结果作为第i+1层卷积层的输入特征数据;对于第i=1层卷积层,则基于原待处理数据进行预处理及二值化后获得其输入特征数据。
二值化可以采用任意可实施的二值量化方式,比如二值化网络(BinarizedNeural Networks,BNN)方式,具体可以采用如下公式三进行二值量化:
其中,xb表示二值量化参数(比如各卷积层的二值化输入特征数据),x表示待量化参数(比如各卷积层的待量化输入特征数据),二值量化模型反向传播过程中,针对公式三中的不可导运算,可以采用直接近似估计(Straight Through Estimator,STE)来完成梯度的近似。如下公式四所示,当参数|x|≤1时,将损失函数L对二值量化参数xb的梯度近似成对待量化参数x的梯度,否则二值量化参数xb梯度为零:
将目标神经网络模型设计为二值阶跃激活和三值化权重,可有效节省内存,降低计算量,大大方便了目标神经网络模型在资源受限设备上的部署,比如在嵌入式设备结合存内计算芯片的部署。
作为另一种可实施的方式,在上述实施例的基础上,可选地,针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,包括:
针对第1层卷积层,获取原待处理数据,并根据原待处理数据,确定第1层卷积层对应的二值化输入特征数据;针对第i>1层卷积层,根据存内计算芯片返回的第i-1卷积结果确定第i层卷积层对应的二值化输入特征数据。
具体的,数据处理装置获得第i-1卷积结果后,可以对第i-1卷积结果进行阶跃激活,获得二值化结果,若第i-1层卷积层后有池化层,则对二值化结果进行池化,获得第i层卷积层对应的二值化输入特征数据,若第i-1层卷积层后没有池化层,直接为第i层卷积层,则将第i-1卷积结果的上述二值化结果作为第i层卷积层对应的二值化输入特征数据。
可选地,针对第i>1层卷积层,根据存内计算芯片返回的第i-1卷积结果确定第i层卷积层对应的二值化输入特征数据,包括:
针对第i>1层卷积层,对第i-1卷积结果进行阶跃激活并进行池化处理,获得第i层卷积层对应的二值化输入特征数据;或者,针对第i>1层卷积层,对第i-1卷积结果进行阶跃激活,获得第i层卷积层对应的二值化输入特征数据。
具体的,由于目标神经网络模型中可能有的卷积层后需要池化,有的卷积层后不需要池化,因此对于第i-1层卷积层后有池化层的情况,则对二值化结果进行池化,获得第i层卷积层对应的二值化输入特征数据,对于第i-1层卷积层后没有池化层,直接为第i层卷积层的情况,则将第i-1卷积结果的上述二值化结果作为第i层卷积层对应的二值化输入特征数据。
可选地,针对第1层卷积层,获取原待处理数据,并根据原待处理数据,确定第1层卷积层对应的二值化输入特征数据,包括:
接收输入设备发送的原待处理数据;
对原待处理数据进行预处理,获得第一特征数据;
对第一特征数据进行阶跃激活,获得第1层卷积层对应的二值化输入特征数据。
具体的,数据处理装置可以从输入设备或相应存储区域获取原待处理数据,针对不同类型的目标神经网络模型,原待处理数据可以为图像数据、语音数据等,经预处理及二值化获得第1层卷积层对应的二值化输入特征数据;针对第i>1层卷积层,则对存内计算芯片返回的第i-1卷积结果进行二值化(即阶跃激活)并进行池化后获得第i层卷积层对应的二值化输入特征数据。
示例性的,目标神经网络模型为目标检测模型,用于检测图像中目标对象的位置,目标对象为人脸,数据处理装置则可以从摄像头获取拍摄的原图像数据(即原待处理数据),对原图像数据进行预处理,比如提取亮度、图像大小缩放等,获得符合目标神经网络模型的特征图像(即第一特征数据),将特征图像进行二值化,获得存内计算芯片第1层卷积运算需要的二值化输入特征图(即二值化输入特征数据),将第1层卷积层对应的二值化输入特征图发送给存内计算芯片,由存内计算芯片进行第1层卷积运算,并向数据处理装置返回第1卷积结果,数据处理装置对第1卷积结果进行阶跃激活并池化后获得第2层卷积层对应的二值化输入特征图,并发送给存内计算芯片,存内计算芯片进行第2层卷积运算并返回第2卷积结果,数据处理装置对第2卷积结果进行阶跃激活并池化后获得第3层卷积层对应的二值化输入特征图,并发送给存内计算芯片,以此类推,直至数据处理装置接收到存内计算芯片发送的第N卷积结果,数据处理装置则可以对第N卷积结果进行后处理,获得目标神经网络模型的最终输出结果,并可以基于输出结果进行后续处理。
为了进一步节省内存,作为另一种可实施的方式,在上述实施例的基础上,可选地,在运算过程中,采用双缓存机制,将第i=2j+1层卷积层对应的输入特征数据缓存到第一缓存区域,将第i=2j+1卷积结果缓存到第二缓存区域,将第i=2j+2层卷积层对应的输入特征数据缓存到第二缓存区域,将第2j+2卷积结果缓存到第一缓存区域,若N为偶数,则j=0,1,…,(N-2)/2,若N为奇数,则j=0,1,…,(N-1)/2。
具体的,在数据处理过程中,采用双缓存机制来进一步节省内存,具体来说,公用两个内存缓存来存储数据,如图3所示,为本实施例提供的双缓存机制的原理示意图,以N=3为例,采用的两个内存缓存分别为缓存A和缓存B,缓存A可以为第一缓存区域,则缓存B为第二缓存区域,缓存A也可以为第二缓存区域,则缓存B为第一缓存区域,第1层卷积层的输入特征数据缓存到缓存A,缓存A的数据作为待计算数据输入至存内计算芯片,经第1层卷积运算后,将接收到的存内计算芯片发送的第1卷积结果缓存到缓存B,在进行第2层卷积运算时,数据处理装置基于缓存B的第1卷积结果确定第2层卷积层对应的输入特征数据缓存到缓存B,缓存B的第2层卷积层对应的输入特征数据输入到存内计算芯片进行第2层卷积运算,数据处理装置将接收到的第2卷积结果缓存到缓存A,进一步基于第2卷积结果确定第3层卷积层对应的输入特征数据缓存到缓存A,以此类推,将奇数层(1、3、5等层)卷积层的输入特征数据缓存到缓存A,将奇数层卷积层的卷积结果缓存到缓存B,将偶数层(2、4、6等层)的卷积层的输入特征数据缓存到缓存B,将偶数层的卷积层的卷积结果缓存到缓存A,后面缓存的数据可以覆盖前面的缓存数据,有效节省内存需求,对于嵌入式设备,有利于进一步节约成本降低功耗。
作为另一种可实施的方式,在上述实施例的基础上,可选地,将第i层卷积层对应的输入特征数据发送给存内计算芯片,包括:
通过SPI接口将第i层卷积层对应的输入特征数据发送给存内计算芯片。
具体的,数据处理装置采用通用的SPI与存内计算芯片进行通信,提高存内计算芯片的通用性,有利于存内计算芯片应用于各种场景的嵌入式设备。
作为另一种可实施的方式,在上述实施例的基础上,可选地,存内计算芯片采用NOR FLASH闪存来存储数据。
示例性的,如图4所示,为本实施例提供的卷积运算的原理示意图,如图5所示,为本实施例提供与图4对应的卷积权重写入存内计算芯片的示例性原理示意图,其中,图4表示要进行运算的3×3卷积,Input表示输入,即待卷积数据,Kernel表示卷积核,Output表示卷积结果,图5展示了卷积权重的部署状态,Xij表示图4中输入Input中第i行第j列的输入值,i=1,2,3,j=1,2,3,图5中圈住的单元表示浮栅中没有电荷,即该单元写“1”,第一个加法器得到的结果1×1+1×1+1×1+0+0=3,第二个加法器得到的结果是1×1+1×0+0+0+0=1,经过减法器运算得到y=3+1×(-1)=2,与图4卷积结果一致。
基于上述部署原理,将目标神经网络模型的卷积运算部分部署到存内计算芯片,其他运算由处理器完成,从而可以大大减少处理器的计算量,且避免了处理器与存储器之间频繁的数据传输,实现低功耗的神经网络推理。
需要说明的是,对于不同卷积层可以采用不同的存内计算芯片实现卷积运算,也可以采用一个存内计算芯片中NOR FLASH单元阵列的不同区域实现,具体可以根据实际需求设置,本发明实施例不做限定。
作为一种示例性的实施方式,针对MNIST数据集设计的手写数字识别神经网络模型,是一种低比特神经网络模型,低比特神经网络模型能够使存内计算芯片在执行过程中更高效的发挥作用,引入批正则化以及增加网络规模后,通过低比特化方式降低神经网络模型的数据位宽,并且保持可观的准确率,具体采用三值权重神经网络并将其卷积运算部分部署在存内计算芯片中,如图6所示,为本实施例提供的手写数字识别神经网络模型的网络结构示意图,其中,INPUT表示输入,Ci(i=1,3,4,5)表示第i层为卷积层(Convolutions),S2表示第2层为下采样(Subsampling)层,feature maps(即f.maps)表示特征图,OUTPUT表示输出层,Average Pooling表示平均池化,a@b×b表示a个b×b卷积核,如图7所示,为本实施例提供的手写数字识别神经网络模型的完整网络架构示意图,其中,data表示第1层卷积层对应的输入特征数据,convi(CONVOLUTION)表示第i(i=1,2,3,4)层卷积层,convi表示第i(i=1,2,3,4)卷积结果,stepi(STEP)表示阶跃激活,(i=1,2,3,4),poolj(POOLING)表示池化层,poolj表示池化结果,j=1,2,prob(SOFTMAX)输出层采用SOFTMAX激励函数,prob表示模型输出结果,数据处理装置获取原待处理图像,将原待处理图像缩放为20x20像素大小的特征图像(可以称为第一特征图),送入存内计算芯片,存内计算芯片进行第一层卷积运算,第一层卷积层有4个3x3的卷积核,输出第二特征图(即第1卷积结果)大小为18x18,数据处理装置对第二特征图进行阶跃激活后进行下采样得到9x9大小的第三特征图(即第2层卷积层对应的输入特征数据),后三个卷积层均有4个3x3的卷积核,卷积运算部分同样由存内计算芯片实现,数据处理装置与存内计算芯片的具体交互过程不再赘述,数据处理装置对存内计算芯片最后一个卷积层输出的3x3大小的特征图(第N=4卷积结果)进行平均池化后得到最终的十个预测结果,通过SOFTMAX得到各类的预测概率。
作为另一种示例性的实施方式,目标神经网络模型为图像分类模型,目的是实现鸢尾花的分类,输入花瓣的长度和宽度、花萼的长度和宽度,对鸢尾花进行品种分类,目标神经网络模型包括2层卷积层,模型参数量为129个,模型规模为0.3135KB,计算量为576次乘加运算(存内计算芯片占70.83%),首先将花瓣的长度和宽度、花萼的长度和宽度形成第1层卷积层的输入特征数据输入到存内计算芯片,第1层卷积层有6个3x3的卷积核,输出特征图(第一卷积结果)大小为2x2,数据处理装置接收存内计算芯片输出的第一卷积结果,经过阶跃激活后获得第2层卷积层的输入特征数据,第2层卷积层有3个2x2的卷积核,输出特征图(第2卷积结果)大小为1x1,数据处理装置根据存内计算芯片输出的第2卷积结果得到最终的三个预测结果,进而判断出鸢尾花的品种种类,经验证,准确率为100%。
在嵌入式系统的实际运行中,神经网络模型的前向推理计算有70.83%的计算量由存内计算芯片完成,大大减小了CPU的计算负担,提高了系统的数据处理速度和能效比。
数据处理装置(处理器)与存内计算芯片通过SPI协议进行通信,数据处理装置向存内计算芯片发送相应的指令,控制存内计算芯片开始卷积运算以及返回卷积结果,比如READ ID command(9FH)指令表示读取存内计算芯片ID,Data Load(DL)(02H)表示CPU向存内计算芯片传输数据,COMPUTEEXECUTE(CE)(10H)表示CPU向存内计算芯片传输数据后,发送执行计算指令,将数据从缓存寄存器(cache register)转移到存内计算芯片的主阵列(main array)。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本发明不做限定。
本实施例提供的数据处理方法,目标神经网络模型采用二值阶跃激活和三值化权重,可有效节省内存,降低计算量,大大方便了目标神经网络模型在资源受限设备上的部署;还通过采用双缓存机制,分别用于存储存内计算芯片的输入特征数据和输出的卷积结果,进一步节省内存需求,对于嵌入式设备,有利于进一步节约成本降低功耗;且处理器与存内计算芯片采用通用的SPI进行通信,提高存内计算芯片的通用性,有利于存内计算芯片应用于各种场景的嵌入式设备;并且存内计算芯片采用Flash存储器件进行神经网络的计算,将权重存在内存单元中,使内存单元具备计算能力,相对于阻变存储器、相变存储器等新型存储器件(新型存储器件工艺不成熟、成本较高、在嵌入式终端应用较困难,不利于嵌入式终端的应用和推广),Flash存储器件成本低、工艺成熟、可靠性强,更有利于应用在低成本的边缘设备上,有效降低成本。
本发明再一实施例提供一种数据处理装置,用于执行上述实施例的数据处理方法。
如图8所示,为本实施例提供的数据处理装置的结构示意图。该数据处理装置30包括:获取模块31、发送模块32和处理模块33。
其中,获取模块,用于针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量;发送模块,用于将第i层卷积层对应的输入特征数据发送给存内计算芯片,以使存内计算芯片对第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果;处理模块,用于根据第N卷积结果,确定目标神经网络模型的输出结果。
具体的,获取模块可以获取原待处理数据,对原待处理数据进行预处理及阶跃激活后获得第1层卷积层对应的二值化输入特征数据,并将第1层卷积层对应的二值化输入特征数据发送给发送模块,发送模块将第1层卷积层对应的二值化输入特征数据发送给存内计算芯片,存内计算芯片对第1层卷积层对应的二值化输入特征数据进行第1层卷积运算,获得第1卷积结果发送给数据处理装置,发送模块接收存内计算芯片发送的第1卷积结果,并发送给获取模块,获取模块根据第1卷积结果获取第2卷积层对应的二值化输入特征数据,并发送给发送模块,发送模块将第2层卷积层对应的二值化输入特征数据发送给存内计算芯片,存内计算芯片对第2层卷积层对应的二值化输入特征数据进行第2层卷积运算,获得第2卷积结果发送给数据处理装置,发送模块接收存内计算芯片发送的第2卷积结果,并发送给获取模块,获取模块根据第2卷积结果获取第3卷积层对应的二值化输入特征数据,以此类推,直至发送模块接收到存内计算芯片发送的最后一层卷积层(即第N层卷积层)的卷积结果(即第N卷积结果),发送模块将第N卷积结果发送给处理模块,处理模块根据第N卷积结果,确定目标神经网络模型的输出结果,具体的,处理模块对第N卷积结果进行后处理,获得目标神经网络模型的输出结果。
可选地,数据处理装置还可以包括接收模块,用于接收存内计算芯片返回的第i卷积结果。
可选地,处理模块还可以根据输出结果进行后续处理,比如对于人脸识别应用,可以根据输出结果中人脸的位置提取人脸图像,通过与预设图像库对比来确定该人脸所属人的身份。
可选地,处理模块还可以将输出结果发送给其他设备,比如发送给显示设备进行显示,具体可以根据实际需求设置。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,且能够达到相同的技术效果,此处将不做详细阐述说明。
本发明又一实施例对上述实施例提供的数据处理装置做进一步补充说明。
作为一种可实施的方式,在上述实施例的基础上,可选地,存内计算芯片中预先写入有第i层卷积层对应的三值化卷积权重数据,存内计算芯片基于第i层卷积层对应的三值化卷积权重数据对第i层卷积层对应的输入特征数据进行第i层卷积运算。
作为另一种可实施的方式,在上述实施例的基础上,可选地,输入特征数据为二值化输入特征数据;获取模块,具体用于:针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的二值化输入特征数据。
可选地,获取模块,具体用于:
针对第1层卷积层,获取原待处理数据,并根据原待处理数据,确定第1层卷积层对应的二值化输入特征数据;针对第i>1层卷积层,根据存内计算芯片返回的第i-1卷积结果确定第i层卷积层对应的二值化输入特征数据。
可选地,获取模块,具体用于:
针对第i>1层卷积层,对第i-1卷积结果进行阶跃激活并进行池化处理,获得第i层卷积层对应的二值化输入特征数据;或者,针对第i>1层卷积层,对第i-1卷积结果进行阶跃激活,获得第i层卷积层对应的二值化输入特征数据。
需要说明的是,对于不需要进行池化的第i-1卷积结果,直接进行阶跃激活即可获得第i层卷积层对应的二值化输入特征数据。
可选地,获取模块,具体可以包括接收子模块、预处理子模块和二值化子模块;其中,接收子模块,用于接收输入设备发送的原待处理数据;预处理子模块,用于对原待处理数据进行预处理,获得第一特征数据;二值化子模块,用于对第一特征数据进行阶跃激活,获得第1层卷积层对应的二值化输入特征数据。
具体的,接收子模块可以是通过数据处理装置与输入设备的连接接口接收输入设备发送的原待处理数据,并将原待处理数据发送给预处理子模块,预处理子模块对原待处理数据进行特征提取、图像缩放等预处理,获得第一特征数据,并发送给二值化子模块,二值化子模块对第一特征数据通过阶跃激活进行二值化,获得第1层卷积层对应的二值化输入特征数据。
如图9所示,为本实施例提供的数据处理装置的结构示意图,作为另一种可实施的方式,在上述实施例的基础上,可选地,该数据处理装置还包括接收模块34,用于接收存内计算芯片返回的第i卷积结果;在运算过程中,采用双缓存机制,获取模块还用于将第i=2j+1层卷积层对应的输入特征数据缓存到第一缓存区域,接收模块还用于将第i=2j+1卷积结果缓存到第二缓存区域,获取模块,还用于将第i=2j+2层卷积层对应的输入特征数据缓存到第二缓存区域,接收模块还用于将第2j+2卷积结果缓存到第一缓存区域,若N为偶数j=0,1,…,(N-2)/2,若N为奇数j=0,1,…,(N-1)/2。
作为另一种可实施的方式,在上述实施例的基础上,可选地,发送模块,具体用于通过SPI接口将第i层卷积层对应的输入特征数据发送给存内计算芯片。
作为另一种可实施的方式,在上述实施例的基础上,可选地,存内计算芯片采用NOR FLASH闪存来存储数据。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本发明不做限定。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,且能够达到相同的技术效果,此处将不做详细阐述说明。
本发明再一实施例提供一种电子设备,用于执行上述实施例提供的数据处理方法,该电子设备可以是嵌入式设备。
如图10所示,为本实施例提供的电子设备的结构示意图。该电子设备50包括:收发器51及至少一个处理器52。
其中,处理器与收发器通过电路互联;收发器,用于接收输入设备发送的原待处理数据;至少一个处理器执行存储器和/或存内计算芯片存储的计算机执行指令,使得至少一个处理器执行如上任一实施例提供的方法。
具体的,收发器可以接收输入设备发送的原待处理数据,比如原图像数据、原语音数据等,并将原待处理数据发送给处理器,或者将原待处理器数据存储到存储器和/或存内计算芯片,处理器在需要的时候从存储器和/或存储计算芯片获取,存储器和/或存内计算芯片中还存储有计算机执行指令,处理器从存储器和/或存内计算芯片读取相应的计算机执行指令并执行,从而实现上述任一实施例提供的方法。
在一些实施例中,该电子设备本身可以包括存储器,存内计算芯片作为独立于该电子设备的存算一体设备通过SPI与该电子设备连接,电子设备处理器执行的计算机执行指令存储在其本身的存储器中。
在另一些实施例中,该存内计算芯片作为独立于该电子设备的存算一体设备通过SPI与该电子设备连接,并作为该电子设备的存储器,电子设备处理器执行的计算机执行指令存储在存内计算芯片中。
在另一些实施例中,该存内计算芯片作为给电子设备的内部部件,也即该电子设备包括存内计算芯片,且该存内计算芯片作为该电子设备的内部存储器,电子设备处理器执行的计算机执行指令存储在存内计算芯片中。
如图11所示,为现有的冯·诺依曼体系结构的嵌入式设备结构示意图,该结构把要执行的程序及要处理的数据存储在存储器中,在执行程序时,处理器CPU与存储器之间需要频繁地传输数据,造成信息处理的瓶颈,且存储器数据访问速度跟不上CPU的数据处理速度,导致了存储墙问题;作为一种示例性的实施方式,如图12所示,为本实施例提供的嵌入式设备的一种示例性结构示意图,存内计算芯片作为嵌入式设备的内部存储器,存内计算芯片包括了存储器部分和计算逻辑部分;如图13所示,为本实施例提供的嵌入式设备的另一种示例性结构示意图,存内计算芯片作为独立于嵌入式设备的个体与嵌入式设备连接,并作为嵌入式设备的存储器;如图14所示,为本实施例提供的嵌入式设备的再一种示例性结构示意图,存内计算芯片作为独立于嵌入式设备的个体与嵌入式设备连接用于神经网络计算,还可以作为嵌入式设备的外部存储器,而嵌入式设备内部还包括自己的存储器。
本发明实施例提供的电子设备可以应用于目标检测、图像分类、行为识别、语音识别等任意的应用场景,将训练好的目标神经网络模型部署到嵌入式系统中,将卷积运算部分部署到存内计算芯片,从而将运算量较大的卷积运算由存内计算芯片实现,大大减少处理器与存储器之间的数据传输,降低数据搬运开销,从而避免了冯·诺依曼瓶颈和存储墙问题,降低延时和能耗,提高数据处理速度及系统能效比,并且有效降低了处理器的工作量,使得基于该处理器的嵌入式系统对处理器性能的依赖性降低,有利于替换为性能较低的处理器来降低系统成本。
需要说明的是,本实施例的电子设备能够实现上述任一实施例提供的方法,且能够达到相同的技术效果,在此不再赘述。
本发明又一实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的方法。
需要说明的是,本实施例的计算机可读存储介质能够实现上述任一实施例提供的方法,且能够达到相同的技术效果,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量;
将所述第i层卷积层对应的输入特征数据发送给存内计算芯片,以使所述存内计算芯片对所述第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果;
根据第N卷积结果,确定所述目标神经网络模型的输出结果。
2.根据权利要求1所述的方法,其特征在于,所述存内计算芯片中预先写入有第i层卷积层对应的三值化卷积权重数据,所述存内计算芯片基于所述第i层卷积层对应的三值化卷积权重数据对所述第i层卷积层对应的输入特征数据进行第i层卷积运算。
3.根据权利要求1所述的方法,其特征在于,所述输入特征数据为二值化输入特征数据;
所述针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,包括:
针对第1层卷积层,获取原待处理数据,并根据所述原待处理数据,确定第1层卷积层对应的二值化输入特征数据;
针对第i>1层卷积层,根据存内计算芯片返回的第i-1卷积结果确定第i层卷积层对应的二值化输入特征数据。
4.根据权利要求3所述的方法,其特征在于,针对第i>1层卷积层,根据存内计算芯片返回的第i-1卷积结果确定第i层卷积层对应的二值化输入特征数据,包括:
针对第i>1层卷积层,对第i-1卷积结果进行阶跃激活并进行池化处理,获得第i层卷积层对应的二值化输入特征数据;或者,
针对第i>1层卷积层,对第i-1卷积结果进行阶跃激活,获得第i层卷积层对应的二值化输入特征数据。
5.根据权利要求3所述的方法,其特征在于,针对第1层卷积层,获取原待处理数据,并根据所述原待处理数据,确定第1层卷积层对应的二值化输入特征数据,包括:
接收输入设备发送的原待处理数据;
对所述原待处理数据进行预处理,获得第一特征数据;
对所述第一特征数据进行阶跃激活,获得第1层卷积层对应的二值化输入特征数据。
6.根据权利要求1所述的方法,其特征在于,在运算过程中,采用双缓存机制,将第i=2j+1层卷积层对应的输入特征数据缓存到第一缓存区域,将第i=2j+1卷积结果缓存到第二缓存区域,将第i=2j+2层卷积层对应的输入特征数据缓存到第二缓存区域,将第2j+2卷积结果缓存到第一缓存区域,若N为偶数,则j=0,1,…,(N-2)/2,若N为奇数,则j=0,1,…,(N-1)/2。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述将所述第i层卷积层对应的输入特征数据发送给存内计算芯片,包括:
通过SPI接口将所述第i层卷积层对应的输入特征数据发送给存内计算芯片。
8.一种数据处理装置,其特征在于,包括:
获取模块,用于针对目标神经网络模型的第i层卷积层,获取第i层卷积层对应的输入特征数据,i=1,2,…,N,N为目标神经网络模型的卷积层数量;
发送模块,用于将所述第i层卷积层对应的输入特征数据发送给存内计算芯片,以使所述存内计算芯片对所述第i层卷积层对应的输入特征数据进行第i层卷积运算,并返回第i卷积结果;
处理模块,用于根据第N卷积结果,确定所述目标神经网络模型的输出结果。
9.一种电子设备,其特征在于,包括:收发器及至少一个处理器;
所述处理器与所述收发器通过电路互联;
所述处理器与存内计算芯片连接;
所述收发器,用于接收输入设备发送的原待处理数据;
所述至少一个处理器执行存储器和/或所述存内计算芯片存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110252679.3A CN113222107A (zh) | 2021-03-09 | 2021-03-09 | 数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110252679.3A CN113222107A (zh) | 2021-03-09 | 2021-03-09 | 数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113222107A true CN113222107A (zh) | 2021-08-06 |
Family
ID=77084897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110252679.3A Pending CN113222107A (zh) | 2021-03-09 | 2021-03-09 | 数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113222107A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723044A (zh) * | 2022-04-07 | 2022-07-08 | 杭州知存智能科技有限公司 | 用于存内计算芯片的误差补偿方法、装置、芯片、设备 |
CN115860079A (zh) * | 2023-01-30 | 2023-03-28 | 深圳市九天睿芯科技有限公司 | 神经网络加速装置、方法、芯片、电子设备及存储介质 |
WO2023116314A1 (zh) * | 2021-12-23 | 2023-06-29 | 哲库科技(上海)有限公司 | 一种神经网络加速装置、方法、设备和计算机存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009640A (zh) * | 2017-12-25 | 2018-05-08 | 清华大学 | 基于忆阻器的神经网络的训练装置及其训练方法 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN108496188A (zh) * | 2017-05-31 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 神经网络训练的方法、装置、计算机系统和可移动设备 |
CN110597555A (zh) * | 2019-08-02 | 2019-12-20 | 北京航空航天大学 | 非易失性存内计算芯片及其运算控制方法 |
CN110991608A (zh) * | 2019-11-25 | 2020-04-10 | 合肥恒烁半导体有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN111126579A (zh) * | 2019-11-05 | 2020-05-08 | 复旦大学 | 一种适用于二值卷积神经网络计算的存内计算装置 |
CN111582465A (zh) * | 2020-05-08 | 2020-08-25 | 中国科学院上海高等研究院 | 基于fpga的卷积神经网络加速处理系统、方法以及终端 |
CN111681263A (zh) * | 2020-05-25 | 2020-09-18 | 厦门大学 | 基于三值量化的多尺度对抗性目标跟踪算法 |
CN111950718A (zh) * | 2019-05-16 | 2020-11-17 | 北京知存科技有限公司 | 利用存算一体芯片实现递进式cnn运算的方法 |
CN111967586A (zh) * | 2020-07-15 | 2020-11-20 | 北京大学 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
CN112424798A (zh) * | 2018-05-15 | 2021-02-26 | 东京工匠智能有限公司 | 神经网络电路装置、神经网络处理方法和神经网络的执行程序 |
-
2021
- 2021-03-09 CN CN202110252679.3A patent/CN113222107A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108496188A (zh) * | 2017-05-31 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 神经网络训练的方法、装置、计算机系统和可移动设备 |
CN108009640A (zh) * | 2017-12-25 | 2018-05-08 | 清华大学 | 基于忆阻器的神经网络的训练装置及其训练方法 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN112424798A (zh) * | 2018-05-15 | 2021-02-26 | 东京工匠智能有限公司 | 神经网络电路装置、神经网络处理方法和神经网络的执行程序 |
CN111950718A (zh) * | 2019-05-16 | 2020-11-17 | 北京知存科技有限公司 | 利用存算一体芯片实现递进式cnn运算的方法 |
CN110597555A (zh) * | 2019-08-02 | 2019-12-20 | 北京航空航天大学 | 非易失性存内计算芯片及其运算控制方法 |
CN111126579A (zh) * | 2019-11-05 | 2020-05-08 | 复旦大学 | 一种适用于二值卷积神经网络计算的存内计算装置 |
CN110991608A (zh) * | 2019-11-25 | 2020-04-10 | 合肥恒烁半导体有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN111582465A (zh) * | 2020-05-08 | 2020-08-25 | 中国科学院上海高等研究院 | 基于fpga的卷积神经网络加速处理系统、方法以及终端 |
CN111681263A (zh) * | 2020-05-25 | 2020-09-18 | 厦门大学 | 基于三值量化的多尺度对抗性目标跟踪算法 |
CN111967586A (zh) * | 2020-07-15 | 2020-11-20 | 北京大学 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116314A1 (zh) * | 2021-12-23 | 2023-06-29 | 哲库科技(上海)有限公司 | 一种神经网络加速装置、方法、设备和计算机存储介质 |
CN114723044A (zh) * | 2022-04-07 | 2022-07-08 | 杭州知存智能科技有限公司 | 用于存内计算芯片的误差补偿方法、装置、芯片、设备 |
CN115860079A (zh) * | 2023-01-30 | 2023-03-28 | 深圳市九天睿芯科技有限公司 | 神经网络加速装置、方法、芯片、电子设备及存储介质 |
CN115860079B (zh) * | 2023-01-30 | 2023-05-12 | 深圳市九天睿芯科技有限公司 | 神经网络加速装置、方法、芯片、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113222107A (zh) | 数据处理方法、装置、设备及存储介质 | |
US20210004935A1 (en) | Image Super-Resolution Method and Apparatus | |
CN110738090B (zh) | 使用神经网络进行端到端手写文本识别的系统和方法 | |
WO2020238293A1 (zh) | 图像分类方法、神经网络的训练方法及装置 | |
US20230153619A1 (en) | Method for training neural network and related device | |
US20200320369A1 (en) | Image recognition method, apparatus, electronic device and storage medium | |
WO2021218517A1 (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
Wang et al. | TRC‐YOLO: A real‐time detection method for lightweight targets based on mobile devices | |
CN111210019B (zh) | 一种基于软硬件协同加速的神经网络推断方法 | |
CN113326930A (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN110991630A (zh) | 一种面向边缘计算的卷积神经网络处理器 | |
CN114742225A (zh) | 一种基于异构平台的神经网络推理加速方法 | |
CN114239859B (zh) | 基于迁移学习的用电量数据预测方法、装置及存储介质 | |
CN112163601A (zh) | 图像分类方法、系统、计算机设备及存储介质 | |
JP7452679B2 (ja) | 処理システム、処理方法及び処理プログラム | |
CN117037215B (zh) | 人体姿态估计模型训练方法、估计方法、装置及电子设备 | |
CN111582465B (zh) | 基于fpga的卷积神经网络加速处理系统、方法以及终端 | |
CN116401552A (zh) | 一种分类模型的训练方法及相关装置 | |
CN114926636A (zh) | 一种点云语义分割方法、装置、设备及存储介质 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN111813721B (zh) | 神经网络数据处理方法、装置、设备及存储介质 | |
CN114298289A (zh) | 一种数据处理的方法、数据处理设备及存储介质 | |
US20210319249A1 (en) | Image recognition method and apparatus | |
US20210224632A1 (en) | Methods, devices, chips, electronic apparatuses, and storage media for processing data | |
CN109993286A (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 |