CN116863490A - 面向FeFET存储阵列的数字识别方法及硬件加速器 - Google Patents
面向FeFET存储阵列的数字识别方法及硬件加速器 Download PDFInfo
- Publication number
- CN116863490A CN116863490A CN202311130216.5A CN202311130216A CN116863490A CN 116863490 A CN116863490 A CN 116863490A CN 202311130216 A CN202311130216 A CN 202311130216A CN 116863490 A CN116863490 A CN 116863490A
- Authority
- CN
- China
- Prior art keywords
- full
- connection layer
- signal
- neuron
- data
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 34
- 210000002569 neuron Anatomy 0.000 claims abstract description 108
- 238000013528 artificial neural network Methods 0.000 claims abstract description 57
- 238000007781 pre-processing Methods 0.000 claims abstract description 39
- 230000006870 function Effects 0.000 claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 230000004913 activation Effects 0.000 claims abstract description 10
- 230000005284 excitation Effects 0.000 claims abstract description 7
- 238000009825 accumulation Methods 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 1
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/226—Character recognition characterised by the type of writing of cursive writing
-
- 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/047—Probabilistic or stochastic 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/048—Activation functions
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/16—Image preprocessing
- G06V30/162—Quantising the image signal
-
- 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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种面向FeFET存储阵列的数字识别方法及硬件加速器,包括:状态机,用于控制数据预处理单元和二值神经网络计算模块;数据预处理单元,用于获取输入数据,并转换为二值数据,记为第一信号;二值神经网络计算模块,包括:第一全连接层模块,基于第一信号并根据权重、偏置计算每个神经元的输出信号;激活函数模块,用于对第一全连接层模块中每个神经元的输出信号经激励函数处理后,得到第二信号;第二全连接层模块,基于第二信号并根据权重、偏置计算每个神经元的输出信号;FeFET存储器,用于存储神经网络权重;数据输出单元,用于比较第二全连接层模块中每个神经元的输出信号,获取识别结果。
Description
技术领域
本发明涉及数字识别技术领域,特别涉及一种面向FeFET存储阵列的手写字识别方法及硬件加速器。
背景技术
目前商用的电荷型铁电存储器虽然可以实现非易失性存储,但是由于其基于电荷的破坏性的读取方式,读取之后需要重新写入,极大地限制了其后续的发展和应用。于是,人们将研究的重点方向转变为在具有非易失且非破坏性读取的铁电场效应晶体管(FeFET),并在这一领域开展了大量的研究,然而仍然存在许多亟待解决的问题,同时FeFET的应用场景仍不明确。
二值神经网络BNN(Binary Neural Network)是一种仅使用+1和-1两个值来表示权重和激励的神经网络,相比于全精度的神经网络,它可以用同或这样极简单的组合代替浮点的乘累加来实现卷积操作,从而节省了大量的内存和计算,大大方便了模型在资源受限设备上的部署。但同时,由于二值所能表达的信息量有限,所以BNN在模型精度方面一直都是远低于全精度模型,虽然最近的研究如MeliusNet,IRNet和ReActNet已经努力地将BNNs在ImageNet数据集上的Top-1拉到了0.70以上,与相应的全精度模型差距拉到3个点左右,但他们同时也增加了不少计算量,并且暂时还难以有效地推广到目标检测,语义分割等复杂任务上。虽然BNN网络无法处理复杂的任务,但是对于数字分辨的还是具有较好的效果。
因此,如何提升BNN的精度及如何有效地部署在低功耗且资源受限的平台上是亟待解决的技术问题。
发明内容
针对现有技术不足,本发明提供了一种面向FeFET存储阵列的手写字识别方法及硬件加速器。
第一方面,本发明实施例提供了一种面向FeFET存储阵列的硬件加速器,包括:
状态机,用于发送使能指令以控制数据预处理单元和二值神经网络计算模块;
数据预处理单元,用于获取输入数据,并将输入数据转换为二值数据,记为第一信号;
二值神经网络计算模块,包括依次连接的第一全连接层模块、激活函数模块、第二全连接层模块;其中,第一全连接层模块,基于第一信号根据第一全连接层对应神经网络权重与偏置计算第一全连接层模块中每个神经元的输出信号;激活函数模块,用于对第一全连接层模块中每个神经元的输出信号经归一化以及激励函数处理后,得到第二信号;第二全连接层模块,基于第二信号根据第二全连接层神经网络对应的权重计算第二全连接层模块中每个神经元的输出信号;
FeFET存储器,用于存储第一全连接层和第二全连接层对应的神经网络权重;
数据输出单元,用于比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为识别结果。
进一步地,数据预处理单元包括按流水线结构布置的两个选择器。
进一步地,二值神经网络计算模块包括:
计算第一全连接层模块中每个神经元的输出信号;其中,第一全连接层模块中单个神经元的输出信号的计算过程包括:获取第一信号,并将第一信号进行缓存;从FeFET存储器中获取第一全连接层对应的神经网络权重;通过累加器计算第一信号与第一全连接层对应的神经网络权重所有乘积之和,再叠加第一偏置量,得到单个神经元的输出信号;
对第一全连接层模块中每个神经元的输出信号经激励函数处理;
计算第二全连接层模块中每个神经元的输出信号;其中,第二全连接层模块中单个神经元的输出信号的计算过程包括:获取第二信号,并将第二信号进行缓存;从FeFET存储器中获取第二全连接层对应的神经网络权重;通过累加器计算第二信号与第二全连接层对应的神经网络权重所有乘积之和,得到单个神经元的输出信号。
进一步地,所述数据输出单元基于Softmax函数实现。
进一步地,所述硬件加速器还包括:
第一FIFO数据缓存器,用于缓存第一信号;
第二FIFO数据缓存器,用于缓存第二信号。
第二方面,本发明实施例提供了一种面向FeFET存储阵列的数字识别方法,基于上述的面向FeFET存储阵列的硬件加速器实现,所述方法包括:
获取手写字图像;
将手写字图像进行预处理转换成二值数据,记为第一信号;
将第一信号输入至硬件加速器中的第一全连接层模块,计算第一全连接层模块中每个神经元的输出信号;
将第一全连接层模块中每个神经元的输出信号经归一化以及激励函数处理后,得到第二信号;
将第二信号输入至硬件加速器中的第二全连接层模块,计算第二全连接层模块中每个神经元的输出信号;
比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为数字识别结果。
进一步地,将手写字图像进行预处理转换成二值数据,记为第一信号,包括:
do=<< (di/255)×128>/128>
式中,di表示输入的手写字图像,do表示输出的第一信号,<>表示四舍五入。
进一步地,计算第一全连接层模块中每个神经元的输出信号的过程包括:计算单个神经元的输出信号,包括:第一信号依次与神经元内的权重相乘,经累加运算后加上偏置量,得到单个神经元的输出信号;
计算第一全连接层模块中每个神经元的输出信号的过程包括:计算单个神经元的输出信号,包括:第二信号依次与神经元内的权重相乘,经累加运算后,得到单个神经元的输出信号。
第三方面,本发明实施例提供了一种电路,包括电路板主体和上述的面向FeFET存储阵列的硬件加速器,其中,所述硬件加速器设置于所述电路板主体上。
第四方面,本发明实施例提供了一种设备,包括外壳和上述的电路,其中,所述电路设置于所述外壳上。
与现有技术相比,本发明具有以下有益的技术效果:
本发明提供的面向FeFET存储阵列的硬件加速器通过硬件去实现数据处理,发挥了硬件的并行性,可以安装到计算机设备中。本发明首先将外部输入的数据进行预处理,转换成二值神经网络的输入,并通过数据的缓存;将缓存的数据进行乘累加、量化,最后通过比对数据得出最终的结果。本发明提高了算法的并行性,在使用尽可能少的器件以及低功耗的前提下,还原了原始算法的功能,缩短了该部分的计算时间;利用硬件数据为二进制的特点,通过截取位数替代了原始算法的预处理过程,降低了计算量,节省了一定的硬件资源;本发明优化了整体算法结构,加速了二值神经网络的运行速度,以更短的时间获取正确结果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的面向FeFET存储阵列的硬件加速器的结构示意图;
图2为本发明实施例提供的数据预处理单元的结构示意图;
图3为本发明实施例提供的二值神经网络的示意图;
图4为本发明实施例提供的二值神经网络计算模块二值神经网络计算模块
图5为本发明实施例提供的面向FeFET存储阵列的数字识别方法的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
如图1所示,本发明实施例提供了一种面向FeFET存储阵列的硬件加速器,包括:
状态机,用于发送使能指令以控制数据预处理单元和二值神经网络计算模块。
数据预处理单元,用于获取输入数据,并将输入数据转换为二值数据,记为第一信号。
进一步地,数据预处理单元(Data Pre-processing)的工作过程具体包括:当指示信号拉高时,数据预处理模块开始接收有效的图像数据(数据范围为0-255),之后先将输入的数据缩小256倍,再将缩小的后的数据乘以128,并对得到的数据进行四舍五入,最后再除以128,然后对其再进行一次四舍五入,从而获取最终输出的二值数据,记为第一信号。
由于数字电路所有数据均是由二进制数表示的特性,数据除或乘以2的指数倍数等同于向右或向左移位,所以除以256等同于向右移8位,乘以128等同于向左移7位;而四舍五入则可以根据小数点后一位是1还是0来判断,若小数点后一位为1则进位,若为0则不进。因此原本的预处理运算等同于,判断数据最低位的数值,若为1则加一,若为0则不进行操作,然后将最高位作为最终结果输出,从而将上述预处理过程进行简化。
需要说明的是,如图2所示,所述数据预处理单元采用了流水线(pipelinearchitecture)的结构,按流水线结构布置的两个选择器有效的缩短了该模块的处理时间;并且利用硬件数据均为二进制的特定,简化了计算方式,节省了硬件资源的消耗。
二值神经网络计算模块,包括依次连接的第一全连接层模块、激活函数模块、第二全连接层模块。
其中,第一全连接层模块,基于第一信号根据第一全连接层对应神经网络权重与偏置计算第一全连接层模块中每个神经元的输出信号。
激活函数模块,用于对第一全连接层模块中每个神经元的输出信号经归一化以及激励函数处理后,得到第二信号。
第二全连接层模块,基于第二信号根据第二全连接层神经网络对应的权重与偏置计算第二全连接层模块中每个神经元的输出信号。
进一步地,如图3和图4所示,二值神经网络计算模块包括:
计算第一全连接层模块中每个神经元的输出信号;其中,第一全连接层模块中单个神经元的输出信号的计算过程包括:
获取第一信号,并将第一信号进行缓存;从FeFET存储器中获取第一全连接层对应的神经网络权重;通过累加器计算第一信号与第一全连接层对应的神经网络权重所有乘积之和,再叠加第一偏置量,得到单个神经元的输出信号。
对第一全连接层模块中每个神经元的输出信号经激励函数处理。
计算第二全连接层模块中每个神经元的输出信号;其中,第二全连接层模块中单个神经元的输出信号的计算过程包括:
获取第二信号,并将第二信号进行缓存;从FeFET存储器中获取第二全连接层对应的神经网络权重;通过累加器计算第二信号与第二全连接层对应的神经网络权重所有乘积之和,再叠加第二偏置量,得到单个神经元的输出信号。
FeFET存储器,用于存储第一全连接层和第二全连接层对应的神经网络权重。
数据输出单元,用于比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为识别结果。进一步地,所述数据输出单元基于Softmax函数实现。
进一步地,所述硬件加速器还包括:
第一FIFO数据缓存器,用于缓存第一信号。
第二FIFO数据缓存器,用于缓存第二信号。
如图5所示,本发明提出了面向FeFET存储阵列的手写字识别方法,基于上述的面向FeFET存储阵列的硬件加速器实现,所述方法具体包括以下子步骤:
步骤S1:获取手写字图像;对手写字图像数据进行归一化处理,将原本处于[0,255]区间内的数据,量化为{0,1},记为第一信号。
进一步地,步骤S1的具体归一化量化方式如公式(1)所示:
do=<< (di/255)×128>/128>(1)
式中,di表示输入的手写字图像,do表示输出的第一信号,<>表示四舍五入。
步骤S2:将第一信号输入硬件加速器的第一全连接模块,依次与神经元内的权重相乘,在经过多次累加运算并加上偏置后获得单个神经元的输出,重复上述步骤生成所有神经元的输出。
进一步地,步骤S2中计算单个神经元的输出的运算过程如公式(2)所示:
(2)
式中:xj为第一信号;wij为权重;bi为偏置系数;yi为单个神经元的输出;i为神经元序号,其取值范围与预设的神经元数量有关;j为单个神经元内的权重序号,其取值范围与输入图片尺寸有关。
步骤S3:将第一全连接层模块中每个神经元的输出信号进行归一化以及激励函数tanh处理后,得到第二信号,将其作为加速器的第二层全连接层的输入。
进一步地,步骤S3的归一化及激励函数可归纳为式(3)所示:
(3)
式中:do为第二信号;di为第i个神经元的输出。
步骤S4:将第二信号输入至硬件加速器中的第二全连接层模块,计算第二全连接层模块中每个神经元的输出信号。
其中,计算单个神经元的输出信号,包括:第二信号依次与神经元内的权重相乘,经累加运算后,得到单个神经元的输出信号。
进一步地,步骤S4中,单个神经元输出的计算过程与式(2)类似,不同的是最后不需要在加上偏置,表达式如下:
(4)
式中:xj为第二信号;wij为权重;yi为神经元输出;i为神经元序号,其取值范围与设定的神经元数量有关;j为单个神经元内的权重序号,其取值范围与第一层神经元数量有关。
步骤S5,比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为数字识别结果。
具体地,通过如式(5)所示的softmax函数获取数字识别结果,表达式如下:
(5)
式中,e为自然常数;hi为神经元的输出结果;Si为softmax函数的输出;n为神经元总数。
综上,本发明方法将FeFET存储器件应用于手写字识别领域,提升了BNN的精度,将BNN的精度有效地部署在低功耗且资源受限的平台上。
实施例1
本发明公开了一种面向FeFET存储阵列的硬件加速器,所述硬件加速器包括:
状态机,用于发送使能指令以控制数据预处理单元和二值神经网络计算模块。
数据预处理单元,用于获取外部输入的图片数据,并对外部输入的图片数据进行预处理,转换成二值神经网络所需的二值数据。
二值神经网络计算模块,对输入的二值数据进行缓存,并通过构建二值神经网络的硬件电路,复现其全连接层及ReLU激活函数的功能,最终通过数据输出单元(Softmax层)输出最终识别结果。
FeFET存储器,用于存储第一全连接层和第二全连接层对应的神经网络权重;
数据输出单元,用于比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为识别结果。
数据预处理单元(Data Pre-processing)具体包括:当指示信号拉高时,数据预处理模块开始接收有效的图像数据(数据范围为0-255),之后先将输入的数据缩小256倍,再将缩小的后的数据乘以128,并对得到的数据进行四舍五入,最后再除以128,然后对其再进行一次四舍五入,从而获取最终输出的二值数据。
由于数字电路所有数据均是由二进制数表示的特性,数据除或乘以2的指数倍数等同于向右或向左移位,所以除以256等同于向右移8位,乘以128等同于向左移7位;而四舍五入则可以根据小数点后一位是1还是0来判断,若小数点后一位为1则进位,若为0则不进。因此原本的预处理运算等同于,判断数据最低位的数值,若为1则加一,若为0则不进行操作,然后将最高位作为最终结果输出,从而将上述预处理过程进行简化。
示例性地,以输入数据为8bit(0-255),输入图像尺寸为28×28为例。其输入和输出信号说明如下:
data_valid为数据有效指示信号,当其拉高是表示开始输入有效数据。
data_in为需要进行预处理的输入图像数据。
data_add为累加后的中间数据。
p_data为处理完成的数据。
p_out_valid为数据预处理完成信号。
数据预处理单元(Data Pre-processing)的数据预处理的过程如下:
数据有效指示信号data_valid为高电平时,数据预处理单元开始工作,每个时钟周期输入一个图像数据。判断输入图像数据data_in的最低位data_in[0]是否为1,若为1,则将输入图像数据data_in加1;若为0,则不做任何处理;
判断累加后的中间数据data_add最高位data_add[7]是否为1,若为1,则输出结果p_data 为1;若为0则输出结果p_data 为0,并将p_out_valid拉高。
所述数据预处理单元采用了流水线(pipeline architecture)的结构,有效的缩短了该模块的处理时间;并且利用硬件数据均为二进制的特定,简化了计算方式,节省了硬件资源的消耗。
二值神经网络计算模块的工作过程包括:将数据预处理单元输出的二值数据作为二值神经网络计算模块的输入,并依次与第一层全连接层中各神经元对应的权重相乘,将结果累加。当所有数据累加完成后,将其作为一个神经元的输出。该输出加上偏置并经过激活函数的量化后,寄存于存储器中。当所有的神经元输出都生成完毕,再从寄存器中依次将其读出,传输给第二层全连接层,重复第一层的累加过程,获得第二层的输出,并将结果输入到softmax层,再通过比较数值的大小,获得最终的识别结果。
在测试过程中发现,采用查找表的方式来实现softmax函数虽然能够满足精度要求,但是所需的存储空间较大,而softmax函数的本质是将数据映射到(0,1)的区间内从而将其转变为概率,并且原始数据越大其概率越高。因此本发明还可以将softmax函数略去,通过直接比较第二层神经元的数据结果,找出最大的输出值,将其对应的神经元序号作为识别结果输出,从而简化了计算流程,精简了硬件资源,降低了实际运行的功耗。
示例性地,设第一层全连接的神经元的数量为300,每个神经元包含的权重个数为784;第二层全连接层的神经元数量为10,每个神经元包含的权重个数为300。二值神经网络计算模块输入输出及关键信号说明如下所示:
BNN_Valid:由状态机生成的神经网络计算模块控制信号。
weight1:第一层全连接层权重。
fc1_data_in:第一层全连接层输入数据。
fc1_data_in_valid:第一层全连接层输入数据有效信号。
weight2:第二层全连接层权重。
final_out:神经网络计算模块最终输出,即识别结果。
final_out_valid:最终输出结果有效信号。
所述二值神经网络的计算过程如下所示:
当BNN_valid拉高时,二值神经网络计算模块开始工作。首先接收来自数据预处理单元的输出数据fc1_data_in将其缓存于第一FIFO数据缓存器中,并从FeFET器件中读取出预先存储的第一层神经网络权重,两者相乘后输入累加器中。当一个神经元的权重依次与输入相乘并累加后,生成神经元输出data_acc,该值与对应的第一偏置BIAS1相加,并通过激活函数ReLU后生成第二层神经网络的输入fc2_data_in,在本发明中第一层全连接层的神经元个数为300。
fc2_data_in作为第二层全连接层的输入,其处理流程fc1_data_in类似,也需要先缓存,缓存于第二FIFO数据缓存器中,然后与权重相乘并累加,不同的是处理之后的数据不需要通过激活函数的量化,本发明中第二层全连接层神经元的个数为10。
将第二层全连接层的输出,传输给Softmax函数。由于第二层全连接层神经元的个数为10,所以共需处理10个数据,通过依次比较这10个数的大小,找出其中的最大值,记录其是由第几个神经元输出的,并序号作为最终识别结果final_out输出,拉高final_out_valid信号,表示计算结束。
本发明实施例还提供了一种电路,包括电路板主体和上述的面向FeFET存储阵列的硬件加速器,其中,所述硬件加速器设置于所述电路板主体上。
本发明实施例还提供了一种设备,包括外壳和上述的电路,其中,所述电路设置于所述外壳上。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (10)
1.一种面向FeFET存储阵列的硬件加速器,其特征在于,包括:
状态机,用于发送使能指令以控制数据预处理单元和二值神经网络计算模块;
数据预处理单元,用于获取输入数据,并将输入数据转换为二值数据,记为第一信号;
二值神经网络计算模块,包括依次连接的第一全连接层模块、激活函数模块、第二全连接层模块;其中,第一全连接层模块,基于第一信号根据第一全连接层对应神经网络权重与偏置计算第一全连接层模块中每个神经元的输出信号;激活函数模块,用于对第一全连接层模块中每个神经元的输出信号经归一化以及激励函数处理后,得到第二信号;第二全连接层模块,基于第二信号根据第二全连接层神经网络对应的权重计算第二全连接层模块中每个神经元的输出信号;
FeFET存储器,用于存储第一全连接层和第二全连接层对应的神经网络权重;
数据输出单元,用于比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为识别结果。
2.根据权利要求1所述的一种面向FeFET存储阵列的硬件加速器,其特征在于,数据预处理单元包括按流水线结构布置的两个选择器。
3.根据权利要求1所述的一种面向FeFET存储阵列的硬件加速器,其特征在于,二值神经网络计算模块包括:
计算第一全连接层模块中每个神经元的输出信号;其中,第一全连接层模块中单个神经元的输出信号的计算过程包括:获取第一信号,并将第一信号进行缓存;从FeFET存储器中获取第一全连接层对应的神经网络权重;通过累加器计算第一信号与第一全连接层对应的神经网络权重所有乘积之和,再叠加第一偏置量,得到单个神经元的输出信号;
对第一全连接层模块中每个神经元的输出信号经激励函数处理;
计算第二全连接层模块中每个神经元的输出信号;其中,第二全连接层模块中单个神经元的输出信号的计算过程包括:获取第二信号,并将第二信号进行缓存;从FeFET存储器中获取第二全连接层对应的神经网络权重;通过累加器计算第二信号与第二全连接层对应的神经网络权重所有乘积之和,得到单个神经元的输出信号。
4.根据权利要求1所述的一种面向FeFET存储阵列的硬件加速器,其特征在于,所述数据输出单元基于Softmax函数实现。
5.根据权利要求1或3所述的一种面向FeFET存储阵列的硬件加速器,其特征在于,所述硬件加速器还包括:
第一FIFO数据缓存器,用于缓存第一信号;
第二FIFO数据缓存器,用于缓存第二信号。
6.一种面向FeFET存储阵列的数字识别方法,其特征在于,基于权利要求1-5任一项所述的面向FeFET存储阵列的硬件加速器实现,所述方法包括:
获取手写字图像;
将手写字图像进行预处理转换成二值数据,记为第一信号;
将第一信号输入至硬件加速器中的第一全连接层模块,计算第一全连接层模块中每个神经元的输出信号;
将第一全连接层模块中每个神经元的输出信号经归一化以及激励函数处理后,得到第二信号;
将第二信号输入至硬件加速器中的第二全连接层模块,计算第二全连接层模块中每个神经元的输出信号;
比较第二全连接层模块中每个神经元的输出信号,将最大输出值对应的神经元序号作为数字识别结果。
7.根据权利要求6所述的面向FeFET存储阵列的数字识别方法,其特征在于,将手写字图像进行预处理转换成二值数据,记为第一信号,包括:
do=<< (di/255)×128>/128>;
式中,di表示输入的手写字图像,do表示输出的第一信号,<>表示四舍五入。
8.根据权利要求6所述的面向FeFET存储阵列的数字识别方法,其特征在于,计算第一全连接层模块中每个神经元的输出信号的过程包括:计算单个神经元的输出信号,包括:第一信号依次与神经元内的权重相乘,经累加运算后加上偏置量,得到单个神经元的输出信号;
计算第一全连接层模块中每个神经元的输出信号的过程包括:计算单个神经元的输出信号,包括:第二信号依次与神经元内的权重相乘,经累加运算后,得到单个神经元的输出信号。
9.一种电路,其特征在于,包括电路板主体和如权利要求1-5任一项所述的面向FeFET存储阵列的硬件加速器,其中,所述硬件加速器设置于所述电路板主体上。
10.一种设备,其特征在于,包括外壳和权利要求9所述的电路,其中,所述电路设置于所述外壳上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311130216.5A CN116863490B (zh) | 2023-09-04 | 2023-09-04 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311130216.5A CN116863490B (zh) | 2023-09-04 | 2023-09-04 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116863490A true CN116863490A (zh) | 2023-10-10 |
CN116863490B CN116863490B (zh) | 2023-12-12 |
Family
ID=88222009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311130216.5A Active CN116863490B (zh) | 2023-09-04 | 2023-09-04 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116863490B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4771189A (en) * | 1986-05-02 | 1988-09-13 | Ford Microelectronics, Inc. | FET gate current limiter circuit |
FR3015068A1 (fr) * | 2013-12-18 | 2015-06-19 | Commissariat Energie Atomique | Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
KR20170023695A (ko) * | 2015-08-24 | 2017-03-06 | (주)뉴로컴즈 | 다중 계층 신경망 컴퓨팅 장치 및 방법 |
US20180157969A1 (en) * | 2016-12-05 | 2018-06-07 | Beijing Deephi Technology Co., Ltd. | Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network |
CN108256628A (zh) * | 2018-01-15 | 2018-07-06 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
FR3085517A1 (fr) * | 2018-08-31 | 2020-03-06 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Architecture de calculateur d'une couche de convolution dans un reseau de neurones convolutionnel |
US20200342301A1 (en) * | 2018-09-11 | 2020-10-29 | Huazhong University Of Science And Technology | Convolutional neural network on-chip learning system based on non-volatile memory |
WO2020224516A1 (zh) * | 2019-05-09 | 2020-11-12 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
US20210089874A1 (en) * | 2020-04-20 | 2021-03-25 | Southeast University | Ultra-low power keyword spotting neural network circuit |
CN113344179A (zh) * | 2021-05-31 | 2021-09-03 | 哈尔滨理工大学 | 基于fpga的二值化卷积神经网络算法的ip核 |
CN114897159A (zh) * | 2022-05-18 | 2022-08-12 | 电子科技大学 | 一种基于神经网络的快速推断电磁信号入射角的方法 |
CN114970838A (zh) * | 2022-04-29 | 2022-08-30 | 北京灵汐科技有限公司 | 神经元输出数据计算方法及装置、众核系统、介质 |
CN115423081A (zh) * | 2022-09-21 | 2022-12-02 | 重庆邮电大学 | 一种基于fpga的cnn_lstm算法的神经网络加速器 |
WO2023010244A1 (zh) * | 2021-08-02 | 2023-02-09 | 华为技术有限公司 | 神经网络加速器及神经网络加速器的数据处理方法 |
CN115985380A (zh) * | 2023-03-17 | 2023-04-18 | 之江实验室 | 一种基于数字电路控制的FeFET阵列数据校验方法 |
CN116094885A (zh) * | 2023-03-06 | 2023-05-09 | 青岛科技大学 | 基于One2ThreeNet的信号调制方式识别方法 |
CN116434035A (zh) * | 2023-04-03 | 2023-07-14 | 北京大学 | 一种二值神经网络模型的目标检测方法及其硬件加速方法 |
-
2023
- 2023-09-04 CN CN202311130216.5A patent/CN116863490B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4771189A (en) * | 1986-05-02 | 1988-09-13 | Ford Microelectronics, Inc. | FET gate current limiter circuit |
FR3015068A1 (fr) * | 2013-12-18 | 2015-06-19 | Commissariat Energie Atomique | Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal |
KR20170023695A (ko) * | 2015-08-24 | 2017-03-06 | (주)뉴로컴즈 | 다중 계층 신경망 컴퓨팅 장치 및 방법 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
US20180157969A1 (en) * | 2016-12-05 | 2018-06-07 | Beijing Deephi Technology Co., Ltd. | Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network |
CN108256628A (zh) * | 2018-01-15 | 2018-07-06 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
FR3085517A1 (fr) * | 2018-08-31 | 2020-03-06 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Architecture de calculateur d'une couche de convolution dans un reseau de neurones convolutionnel |
US20200342301A1 (en) * | 2018-09-11 | 2020-10-29 | Huazhong University Of Science And Technology | Convolutional neural network on-chip learning system based on non-volatile memory |
WO2020224516A1 (zh) * | 2019-05-09 | 2020-11-12 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
US20210089874A1 (en) * | 2020-04-20 | 2021-03-25 | Southeast University | Ultra-low power keyword spotting neural network circuit |
CN113344179A (zh) * | 2021-05-31 | 2021-09-03 | 哈尔滨理工大学 | 基于fpga的二值化卷积神经网络算法的ip核 |
WO2023010244A1 (zh) * | 2021-08-02 | 2023-02-09 | 华为技术有限公司 | 神经网络加速器及神经网络加速器的数据处理方法 |
CN114970838A (zh) * | 2022-04-29 | 2022-08-30 | 北京灵汐科技有限公司 | 神经元输出数据计算方法及装置、众核系统、介质 |
CN114897159A (zh) * | 2022-05-18 | 2022-08-12 | 电子科技大学 | 一种基于神经网络的快速推断电磁信号入射角的方法 |
CN115423081A (zh) * | 2022-09-21 | 2022-12-02 | 重庆邮电大学 | 一种基于fpga的cnn_lstm算法的神经网络加速器 |
CN116094885A (zh) * | 2023-03-06 | 2023-05-09 | 青岛科技大学 | 基于One2ThreeNet的信号调制方式识别方法 |
CN115985380A (zh) * | 2023-03-17 | 2023-04-18 | 之江实验室 | 一种基于数字电路控制的FeFET阵列数据校验方法 |
CN116434035A (zh) * | 2023-04-03 | 2023-07-14 | 北京大学 | 一种二值神经网络模型的目标检测方法及其硬件加速方法 |
Non-Patent Citations (4)
Title |
---|
SOYED TUHIN AHMED , KAMAL DANOUCHI , CHRISTOPHER MÜNCH , GUILLAUME PRENAT , LORENA ANGHEL, SENIOR MEMBER, IEEE, AND MEHDI B. TAHOO: "Dropout-Based Bayesian Binary Neural Networks With Spintronic Implementation", IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, vol. 13, no. 1, XP011936873, DOI: 10.1109/JETCAS.2023.3242146 * |
TANG HU , XIANGDI LI, XIAO YU, SONGNAN REN, LI YAN, XUYANG BAI, ZHIWEI XU , SENIOR MEMBER, IEEE, AND SHIQIANG ZHU: "A Novel Fully Hardware-Implemented SVD Solver Based on Ultra-Parallel BCV Jacobi Algorithm", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS, vol. 69, no. 12, XP011929051, DOI: 10.1109/TCSII.2022.3200750 * |
王昆;周骅;: "深度学习中的卷积神经网络系统设计及硬件实现", 电子技术应用, no. 05 * |
陈雨过, 王观涛, 黄文韬, 卓成, 尹勋钊: "铁电晶体管近似搜索存储器的电流模测量实现 陈", 计算机辅助设计与图形学学报, vol. 35, no. 5 * |
Also Published As
Publication number | Publication date |
---|---|
CN116863490B (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
CN110413255B (zh) | 人工神经网络调整方法和装置 | |
US8756174B2 (en) | Forward feature selection for support vector machines | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN111105017B (zh) | 神经网络量化方法、装置及电子设备 | |
CN112115973A (zh) | 一种基于卷积神经网络图像识别方法 | |
US20020039446A1 (en) | Pattern recognition based on piecewise linear probability density function | |
KR20220036330A (ko) | 데이터 없는 사후 훈련 네트워크 양자화 및 사전 훈련된 기계 학습 모델에 기반한 합성 데이터 생성을 위한 방법 및 장치 | |
US20210248456A1 (en) | Optimization methods for quantization of neural network models | |
CN115759237A (zh) | 端到端的深度神经网络模型压缩及异构转换系统及方法 | |
CN114549913A (zh) | 一种语义分割方法、装置、计算机设备和存储介质 | |
CN113919401A (zh) | 基于星座图特征的调制类型识别方法、装置、计算机设备 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN113255568B (zh) | 票据图像分类方法、装置、计算机设备和存储介质 | |
CN116863490B (zh) | 面向FeFET存储阵列的数字识别方法及硬件加速器 | |
CN113326887A (zh) | 文本检测方法、装置、计算机设备 | |
CN114155388B (zh) | 一种图像识别方法、装置、计算机设备和存储介质 | |
CN116401552A (zh) | 一种分类模型的训练方法及相关装置 | |
US20220405576A1 (en) | Multi-layer neural network system and method | |
CN112183669B (zh) | 图像分类方法和装置、设备及存储介质 | |
CN113688655B (zh) | 干扰信号的识别方法、装置、计算机设备和存储介质 | |
CN110321816B (zh) | 图像识别方法及装置 | |
US20230325665A1 (en) | Sparsity-based reduction of gate switching in deep neural network accelerators | |
Furuta et al. | An Efficient Implementation of FPGA-based Object Detection Using Multi-scale Attention | |
US11823043B2 (en) | Machine learning with input data domain transformation |
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 |