CN110458284A - 一种模拟神经网芯片的设计方法及模拟神经网芯片 - Google Patents
一种模拟神经网芯片的设计方法及模拟神经网芯片 Download PDFInfo
- Publication number
- CN110458284A CN110458284A CN201910742288.2A CN201910742288A CN110458284A CN 110458284 A CN110458284 A CN 110458284A CN 201910742288 A CN201910742288 A CN 201910742288A CN 110458284 A CN110458284 A CN 110458284A
- Authority
- CN
- China
- Prior art keywords
- analog neuron
- net
- analog
- steel wire
- precision
- 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
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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种模拟神经网芯片的设计方法及模拟神经网芯片,方法包括:设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型;根据所述模拟神经网架构设计并制作模拟神经网电路;对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪;将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片。本发明实施例通过设计模拟神经网架构并建立与其相同的数字神经网模型,对数字神经网进行训练后得到符合精度要求的神经网参数,将该神经网参数导入至模拟神经网芯片内并运行,得到具有目标精度的模拟神经网芯片,实现了高精度、高速、低功耗的神经网芯片。
Description
技术领域
本发明涉及模拟计算技术领域,尤其涉及一种模拟神经网芯片的设计方法及模拟神经网芯片。
背景技术
目前,数字神经网已经在各个领域得到广泛的应用,包括人脸识别、语音识别等等。大型神经网对于计算量的要求很高。数字芯片的算力一般用“每秒万亿次运算”(TOPS)来衡量。当前,100TOPS算力的数字芯片或芯片集群十分昂贵,而且功耗至少需要几十瓦。由于数字计算机和数字电路的特点,运算通过指令集完成,计算结果一般需要在毫秒(mS)级别以上,无法达到微秒或纳秒级别。
由于数字技术的兴起,人们在近些年没有对模拟计算有太多关注,对于模拟神经网的设计、实施、训练方法等具体技术研发较少,模拟神经网在速度上可以达到数字神经网的百倍甚至千倍以上,同时功耗远远低于数字神经网,但是模拟神经网在精度方面还有所欠缺,导致模拟神经网芯片的发展和应用范围受限。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种模拟神经网芯片的设计方法及模拟神经网芯片,旨在解决现有技术中如何提高模拟神经网芯片的精度,实现高速、高精度和低功耗的模拟神经网芯片的问题。
本发明的技术方案如下:
一种模拟神经网芯片的设计方法,其包括如下步骤:
设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型;
根据所述模拟神经网架构设计并制作模拟神经网电路;
对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪;
将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片。
所述的模拟神经网芯片的设计方法中,所述设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型,包括:
根据模拟神经网的目标精度设计单个模拟神经元的计算精度和模拟神经网的矩阵结构完成模拟神经网架构的设置;
建立与所述模拟神经网架构相同的数字神经网模型。
所述的模拟神经网芯片的设计方法中,对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪,包括:
利用预先获取的训练样本对所述数字神经网模型进行训练;
训练完成后根据模拟神经元的计算精度对数字神经网中的每个数字神经元进行参数裁剪,得到修剪后的神经网参数。
所述的模拟神经网芯片的设计方法中,对所述数字神经网模型进行参数裁剪具体为对每个数字神经元的权重参数进行量化处理。
所述的模拟神经网芯片的设计方法中,所述训练完成后根据模拟神经元的计算精度对数字神经网中的每个数字神经元进行参数裁剪,得到修剪后的神经网参数,之后还包括:
对裁剪后的数字神经网模型进行仿真,验证当前数字神经网的精度是否达到所述目标精度,若否,则重新训练并进行参数裁剪,直到当前数字神经网的精度达到所述目标精度。
所述的模拟神经网芯片的设计方法中,所述将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片,包括:
将裁剪后的神经网参数输入至所述模拟神经网电路并运行;
测试当前模拟神经网电路的运行精度是否达到所述目标精度,若否,则重新对所述数字神经网模型进行训练和参数裁剪,直到当前模拟神经网电路的运行精度达到所述目标精度,获得具有目标精度的模拟神经网芯片。
所述的模拟神经网芯片的设计方法中,所述模拟神经网架构至少包括状态输入模块、指令输入模块、模拟神经网和输出模块;所述状态输入模块和指令输入模块均连接所述模拟神经网,所述模拟神经网还连接所述输出模块。
所述的模拟神经网芯片的设计方法中,所述模拟神经网至少包括由若干个模拟神经元组成的输入层、隐藏层和输出层,所述输入层、隐藏层和输出层通过网络连接线连接形成相应的模拟神经网架构。
所述的模拟神经网芯片的设计方法中,所述模拟神经元至少包括求和电路、乘法电路和存储单元,所述求和电路、乘法电路和存储单元依次连接。
本发明的另一实施例还提供了一种模拟神经网芯片,所述模拟神经网芯片采用如上所述的模拟神经网芯片的设计方法设计制作完成。
有益效果:本发明公开了一种模拟神经网芯片的设计方法及模拟神经网芯片,相比于现有技术,本发明实施例通过设计模拟神经网架构并建立与其相同的数字神经网模型,根据模拟神经网的目标精度对数字神经网进行训练,得到裁剪后的符合精度要求的神经网参数,将该神经网参数导入至模拟神经网芯片内并运行,得到具有目标精度的模拟神经网芯片,成功兼顾了模拟神经网芯片的计算速度和计算精度,实现高精度、高速、低功耗的神经网芯片,大大拓宽了模拟神经网芯片的应用范围。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明提供的模拟神经网芯片的设计方法较佳实施例的流程图;
图2为本发明提供的模拟神经网芯片的设计方法较佳实施例中步骤S100的流程图;
图3为本发明提供的模拟神经网芯片的设计方法较佳实施例中步骤S300的流程图;
图4为本发明提供的模拟神经网芯片的设计方法较佳实施例中步骤S400的流程图;
图5为本发明提供的模拟神经网架构第一实施例的示意图;
图6为本发明提供的模拟神经网架构第二实施例的示意图;
图7为本发明提供的模拟神经网架构第三实施例的示意图;
图8为本发明提供的模拟神经元第一实施例的示意图;
图9为本发明提供的模拟神经元第二实施例的示意图;
图10为本发明提供的模拟神经网芯片的设计方法应用实施例中模型训练和运行流程图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
请参阅图1,图1为本发明提供的模拟神经网芯片的设计方法较佳实施例的流程图。如图1所示,其包括如下步骤:
S100、设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型;
S200、根据所述模拟神经网架构设计并制作模拟神经网电路;
S300、对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪;
S400、将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片。
由于神经网络的设计可以在网络结构和节点的运算精度之间做平衡,这给模拟神经网的设计带来很大的空间,因此本实施例中,先根据实际应用需求设计模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型,之后根据该模拟神经网架构设计并制作模拟神经网电路,具体可根据具体的模拟集成电路工艺所提供的基础模拟元器件来确认电路设计并实施,以适应不同规模的模拟神经网芯片要,在建立了与模拟神经网架构相同的数字神经网模型后,对所述数字神经网模型进行训练,其训练目的是根据模拟神经网的目标精度来对数字神经网模型的参数进行裁剪,以此获取能达到目标精度的神经网参数,之后将裁剪后的神经网参数导入至上述模拟神经网电路中并运行,实现具有目标精度的模拟神经网芯片的设计,由于模拟神经网相对于数字神经网具有运算速度快且功耗低的优点,而本实施例中进一步结合数字神经网进行训练和参数剪裁,使得模拟神经网的输出精度同样可达到目标精度的要求,因此成功实现了高精度、高速且低功耗的模拟神经网芯片。
进一步地,如图2所示,所述设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型,包括步骤:
S101、根据模拟神经网的目标精度设计单个模拟神经元的计算精度和模拟神经网的矩阵结构完成模拟神经网架构的设置;
S102、建立与所述模拟神经网架构相同的数字神经网模型。
神经网有很多不同的架构,不是所有的架构都适合在模拟集成电路中实施,本实施例中需要根据应用需求即目标精度设计模拟神经网架构,在架构设计时还需要考虑到的因素影响包括模拟神经元的计算结构适合模拟电路实施、模拟神经网的结构适合模拟电路工艺的实施、模拟神经网的精度对单个模拟神经元精度的依赖性、半导体工艺所能提供的模拟器件等等,大规模模拟神经网一般采用开环设计,模拟电路的非线性特质和噪声会造成计算精度一般低于10bit,因此权衡模拟神经元计算精度和网络架构设计是模拟神经网芯片设计的重要环节,在一个模拟神经网中,整体神经网的准确率与模拟神经元的个数、每个模拟神经元的计算精度存在一定的关系,因此本实施例进一步根据模拟神经网的目标精度设计单个模拟神经元的计算精度和模拟神经网的矩阵结构完成模拟神经网架构的设置,在完成了模拟神经网的建模设计后进一步建立与所述模拟神经网架构相同的数字神经网模型,以用于后续对模拟神经网的仿真以及训练和参数裁剪等等。
具体来说,以一个有L层的前馈神经网模型为例,其由于神经元权重W(i,j)的错误干扰(Weight Perturbation)对神经网输出造成的影响可以表示为:
其中,PEL是第L层的某个输出因为权重错误而出现错误的几率,dW是权重错误的占比,约等于,W是权重,△W是权重出现的错误或不确定的范围,。上述公式的开平方项有L-1项,L是神经网的层数。
从上述公式可以看出,按统计分布,神经元对神经网输出的精度干扰可以保持在一定的范围,而不是无限地增加。具体地说,一个由精度为8bit的神经元组成的神经网,要求其输出的精度保持在略低一些的水平,如6bit是完全可以实现的。在实际的模拟神经网设计中,输出多会通过S函数(Sigmoid)做量化,以0和1的数字形式输出。这样对神经元的精度要求就可以更低。
在建模设计时,开环的模拟电路自带S函数(Sigmoid),,假如一个模拟神经网的输入或上一层神经元的数值为Vin(i),权重是W(i,j),我们可以把模拟神经元输出的计算公式表示为,其中Vout(j)是每个神经元的计算结果,Q是量化函数,即将模拟或连续的数值转换成一定比特精度的数值,例如8bit的256级,10bit的1024级等,W(i,j)是矩阵中的权重,D是一个DC值,或称为DC偏置(DC Bias)。一般S函数的输出范围是0到1,中心值为0.5,对于很多网络计算,需要加入DC偏置,保证输出的中心点为0。
进一步地,在半导体工艺中,晶体管的电流-电压特性(I-V曲线)接近上述的S函数,当进一步使用差分模拟电路时,可实现以0为中心点的S函数曲线。这主要是通过晶体管的线性区和电压幅度限制的特性组合形成的。因此,用差分模拟电路来实现S函数时,模拟神经元的计算公式可以表示为:,其中,Vin(i)是矩阵的输入,也可以认为是上一层神经网的节点数值,Vout(j)是每个模拟神经元的计算结果,Q是量化函数,W(i,j)是矩阵中的权重。通过上述方式进行相应的建模并设计模拟神经元的计算精度,并配合模拟神经网的矩阵结构调整,进而将单个模拟神经元的计算精度对模拟神经网的整体性能影响控制在一定范围,达到目标精度要求,实现高精度的模拟神经网设计。
进一步地,如图3所示,对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪,包括步骤:
S301、利用预先获取的训练样本对所述数字神经网模型进行训练;
S302、训练完成后根据模拟神经元的计算精度对数字神经网中的每个数字神经元进行参数裁剪,得到修剪后的神经网参数。
本实施例中,在获得了模拟神经网架构后需要对其进行训练以满足精度要求,具体通过数字和***仿真在移植到模拟神经网运行的方式,即利用预先获取的训练样本,该训练样本为事先打标(Labeling)好的已经确认正确有效的数据,通过所述训练样本对所述数字神经网模型进行训练,大多数神经网的训练过程中,为了保证收敛,一般确立一个较小的收敛步骤,在经过大量的运算周期(epoch),使得神经网的错误率低于一个预先设置的数值则训练完成。当训练完成,即数字神经网的输出结果达到预期时则根据所设计的模拟神经网的目标精度对数字神经网中的每个数字神经元进行参数裁剪,得到修剪后的神经网参数,以用于后续的参数导入移植,得到高精度的模拟神经网芯片。
具体来说,对所述数字神经网模型进行参数裁剪具体为对每个数字神经元的权重参数进行量化处理。例如,设计的模拟神经元的计算精度为8bit,可以将数字神经网中的权重W(i,j),从原来的64位高精度数值做8bit(256个等级)的量化,由于当计算错误和噪声低于每个神经元的量化阈值时,量化后的结果可以与理想值保持不变,这样可以在一定程度上抑制错误的计算结果向下一层网络传递,因此量化可以作为一个有效的消除噪声的机制。在训练后的应用过程中,对每个神经元的权重W(i,j)做量化(Quantization),当权重W(i,j)保持在一定精度时,例如10bit,8bit或6bit等,神经网的精度依然可以保持在允许的范围内,进而可以将这个经过量化后的数字神经网移植至模拟神经网芯片里实施运行。
进一步地,所述步骤S302之后还包括:
对裁剪后的数字神经网模型进行仿真,验证当前数字神经网的精度是否达到所述目标精度,若否,则重新训练并进行参数裁剪,直到当前数字神经网的精度达到所述目标精度。
即本实施例中,在对数字神经网中的每个数字神经元的权重参数进行量化处理后,进一步仿真验证,验证其精度是否达到了所设计的模拟神经网的目标精度,如果达不到,则返回重新训练并重新裁剪参数后再验证,直到当前数字神经网的精度能到达所述目标精度,以确保裁剪后的数字神经网满足目标精度的要求,使得在后续的神经网参数导入后,模拟神经网的精度也能满足要求。
进一步地,如图4所示,所述将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片,包括:
S401、将裁剪后的神经网参数输入至所述模拟神经网电路并运行;
S402、测试当前模拟神经网电路的运行精度是否达到所述目标精度,若否,则重新对所述数字神经网模型进行训练和参数裁剪,直到当前模拟神经网电路的运行精度达到所述目标精度,获得具有目标精度的模拟神经网芯片。
本实施例中,在对数字神经网模型进行训练并参数裁剪后,得到符合目标精度的神经网参数,之后将裁剪后的神经网参数移植到模拟神经网,即输入至上述模拟神经网电路并运行,由于数字神经网模型的结构与模拟神经网架构相同,因此此时的神经网参数应该符合模拟神经网的精度要求,但是由于模拟神经网电路实际运行时除去网络本身还具有其它因素例如器件非线性、不对称(mismatch)、噪声等影响,因此需要进一步测试当前模拟神经网电路的运行精度是否达到所述目标精度,若否,则重新对所述数字神经网模型进行训练和参数裁剪,直到当前模拟神经网电路的运行精度达到所述目标精度,获得具有目标精度的模拟神经网芯片,确保最终得到的模拟神经网芯片的精度符合目标精度要求,实现高精度、高速、高吞吐量、超低功耗的计算和控制芯片。
具体地,本发明提供的模拟神经网芯片的设计方法中,所述模拟神经网架构至少包括状态输入模块、指令输入模块、模拟神经网和输出模块;所述状态输入模块和指令输入模块均连接所述模拟神经网,所述模拟神经网还连接所述输出模块,实现输入、计算和输出的过程。
进一步地,所述模拟神经网至少包括由若干个模拟神经元组成的输入层、隐藏层和输出层,所述输入层、隐藏层和输出层通过网络连接线连接形成相应的模拟神经网架构,其中所述模拟神经元至少包括求和电路、乘法电路和存储单元,所述求和电路、乘法电路和存储单元依次连接。
为更好地理解本发明中模拟神经网架构以及神经网模型训练和运行过程,以下结合具体的实施例对模拟神经网架构以及神经网模型训练和运行过程进行说明:
如图5所示,本发明提供的所述模拟神经网架构第一实施例中,该模拟神经网架构包括状态输入模块110、指令输入模块115、模拟神经网100和输出模块190。本实施例中,将输入分成了两类,状态输入和指令输入,状态输入指***的内部状态和外部环境状态等作为输入项,指令输入是指,指挥***实施一定动作的指令或指令集,一般是高优先级输入,但是在某些应用中,指令必须服从状态因素,例如,无人机飞行时的壁障功能就是外部环境状态因素阻止或干预了当前飞行指令,同时,这种判断一般需要越快越好,以便留给机械部分足够的时间做快速响应。100模拟神经网包括若干模拟神经元101和网络连接线105,模拟神经元101组成了输入层120、隐藏层130和输出层140。模拟神经元101通过模拟电路实现求和、乘除法的运算,网络连接现105将神经元分层地连接在一起,形成网络,网络的连接可以通过开关实施重构,在一定范围内,调整神经网的结构。输入层120对应输入的状态数据和指令数据,输出层对应需要的输出项140,中间为隐藏层130。例如,利用该模拟神经网实施16种信息分类的任务,则输出层140支持16个类别的输出,例如,利用该模拟神经网控制4个电机驱动的无人机,则4个输出可以对应4个电机的控制,其中隐藏层130是由n层组成,一般隐藏层130的层数越多,对单个模拟神经元的精度依赖就越小。
如图6所示,本发明提供的所述模拟神经网架构第二实施例中,对模拟神经网100进行了重构,神经网类似一个黑匣子,每个神经元的意义很难诠释,因此,被认为是不可监督的,存在一定的不确定性。在很多应用中,由于状态和指令属于不同的两类输入,将状态和指令作为平等的输入项处理,有一定的风险和不确定性。因此所述模拟神经网架构第二实施例中,第一神经元区域210和第二神经元区域220在前面的输入层120和部分隐藏层130中不形成交叉,保持这两种输入作为两类不对等信息的独立性,在后续的某个隐藏层130,用融合层230表示,两类信息开始交叉,这样大大减少了不确定性,提升了***的可靠性、稳定性和可测性。
如图7所示,本发明提供的所述模拟神经网架构第三实施例中,对模拟神经网100进行了另一种重构,所述模拟神经网架构第三实施例中,指令输入模块115对应的第二神经元区域220物理层数被减少,这样的架构有效地提升了指令信息的直通率,降低了延时,并保持指令信息的原始性,提升了指令信息优先级,这样使得***对指令的响应进一步作为高优先级任务做处理。
具体实施时,每个模拟神经元101的实施电路可根据需要调整,如图8所示,所述模拟神经元第一实施例采用了COMS工艺,每个模拟神经元101均包括了电流求和电路410、乘法器420和存储单元430。该电路采用全差分设计(Fully-Differential),电流求和电路410可以将上一层各个神经元的电流输出汇总,实现求和(Sum)的功能,并通过电流镜,在电阻上产生差分电压,该电压为Vin(i),即上一层神经网对本矩阵的输入;所述乘法器420采用差分吉尔伯特(Gilbert)电路,实现输入信号与权重W(i,j)的乘法运算;所述存储单元430用于存储训练并裁剪后的权重W(i,j)参数。本实施例中具体采用8bit的权重W(i,j)精度,每个神经元的耗电量可以控制在10uA以内,一个用有1000个神经元的模拟神经网,网络的耗电量在10mA左右,每层的计算时间不超过1一个时钟周期(Ts),最高时钟可以达到1GHz,整个模拟神经网的计算时间<100Ts,也就是说计算结果在数百纳秒内完成,同时,采用的管道传递(Pipeline)技术可以使得芯片在每个时钟周期都可以输出新的结果,芯片的吞吐量(Throughput)保持在超高水平,使得本发明提供的所述的模拟神经网在数据吞吐量、计算速度、耗电量等技术指标上较同等算力的数字芯片有绝对的优势。
如图9所示,本发明提供的所述模拟神经元第二实施例基于Memristor工艺,精度为6bit。Memristor是一种有存储记忆功能的半导体器件,例如,一个6bit精度的Memristor可以存储64个不同数值,这种特性可以用于存储模拟神经网的权重W(i,j),在***层面可以简单地按电阻表示。当电压通过时,产出的电流与Memristor551存储的数值成反比,这样可以通过Memristor551的网络结构实施乘法,并将电流汇总,等同于实现求和的运算。在本实施例中,通过电阻555实现电流求和并转换成电压Vout(j)。当电阻555远远小于Memristor551的阻值的数量级时,电阻555两端的电压很小,基本等同于每个Memristor551上的电压就是矩阵的输入电压,如Vi,Vi+1等,因此神经网的基本公式就得到了满足 ,其中,Vin(i)是矩阵的输入,也可以认为是上一层神经网的节点数值。Vout(j)是每个模拟神经元的计算结果。W(i,j)是矩阵中的权重,本实施例中并没有特意实施量化方程,这是因为模拟电路的设计精度只能保证在一定比特内,无需像模型仿真那样特意地做量化计算。除了使用电阻555,在其它实施中也可以采用其他钳位电路,保证Memristor551上的电压或激励不受到其他非线性因素影响。
进一步地,在具体应用进行神经网模型训练和运行时,如图10所示,本发明提供的应用实施例中,在确定了模拟神经网架构后开始步骤610开始流程。首先,在设计模拟神经网架构时,步骤615建立并修改与模拟神经网架构对应的数字神经网模型可以用于训练和仿真;之后步骤620开始对数字神经网进行训练;步骤625当数字神经网模型的训练结束后,步骤630验证结果;步骤635判断当前数字神经网的结果是否达标,若否,则重新回到步骤615修改神经网模型,若是,则进入步骤640按模拟神经网的目标精度裁剪数字神经网的神经网参数,例如若模拟神经单元精度是8bit,则在这个环节将数字神经元的权重W(i,j)的精度降至8bit;之后步骤645再次在数字神经网中验证结果;步骤650判断裁剪后的数字神经网的结果是否达标,若否,则重新回到步骤615修改神经网模型;若是,则进入步骤655将神经网参数输入模拟神经网芯片,开始步骤660测试模拟神经网,并进入步骤655判断当前模拟神经网的结果是否达标,若否,则重新回到步骤615修改神经网模型,若是,则完成模拟神经网训练和运行的流程,得到具有高精度的模拟神经网芯片。
本发明另一实施例提供一种模拟神经网芯片,所述模拟神经网芯片采用如上所述的模拟神经网芯片的设计方法设计制作完成,具体请参阅上述方法对应的实施例。
综上所述,本发明公开的模拟神经网芯片的设计方法及模拟神经网芯片中,所述方法包括:设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型;根据所述模拟神经网架构设计并制作模拟神经网电路;对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪;将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片。本发明实施例通过设计模拟神经网架构并建立与其相同的数字神经网模型,根据模拟神经网的目标精度对数字神经网进行训练,得到裁剪后的符合精度要求的神经网参数,将该神经网参数导入至模拟神经网芯片内并运行,得到具有目标精度的模拟神经网芯片,成功兼顾了模拟神经网芯片的计算速度和计算精度,实现高精度、高速、低功耗的神经网芯片,大大拓宽了模拟神经网芯片的应用范围。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供模拟神经网芯片的设计方法及模拟神经网芯片的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。
Claims (10)
1.一种模拟神经网芯片的设计方法,其特征在于,包括如下步骤:
设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型;
根据所述模拟神经网架构设计并制作模拟神经网电路;
对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪;
将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片。
2.根据权利要求1所述的模拟神经网芯片的设计方法,其特征在于,所述设置模拟神经网架构并建立与所述模拟神经网架构相同的数字神经网模型,包括:
根据模拟神经网的目标精度设计单个模拟神经元的计算精度和模拟神经网的矩阵结构完成模拟神经网架构的设置;
建立与所述模拟神经网架构相同的数字神经网模型。
3.根据权利要求2所述的模拟神经网芯片的设计方法,其特征在于,所述对所述数字神经网模型进行训练,并根据模拟神经网的目标精度对所述数字神经网模型进行参数裁剪,包括:
利用预先获取的训练样本对所述数字神经网模型进行训练;
训练完成后根据模拟神经元的计算精度对数字神经网中的每个数字神经元进行参数裁剪,得到修剪后的神经网参数。
4.根据权利要求3所述的模拟神经网芯片的设计方法,其特征在于,对所述数字神经网模型进行参数裁剪具体为对每个数字神经元的权重参数进行量化处理。
5.根据权利要求3所述的模拟神经网芯片的设计方法,其特征在于,所述训练完成后根据模拟神经元的计算精度对数字神经网中的每个数字神经元进行参数裁剪,得到修剪后的神经网参数,之后还包括:
对裁剪后的数字神经网模型进行仿真,验证当前数字神经网的精度是否达到所述目标精度,若否,则重新训练并进行参数裁剪,直到当前数字神经网的精度达到所述目标精度。
6.根据权利要求1所述的模拟神经网芯片的设计方法,其特征在于,所述将裁剪后的神经网参数输入至所述模拟神经网电路并运行,获得具有目标精度的模拟神经网芯片,包括:
将裁剪后的神经网参数输入至所述模拟神经网电路并运行;
测试当前模拟神经网电路的运行精度是否达到所述目标精度,若否,则重新对所述数字神经网模型进行训练和参数裁剪,直到当前模拟神经网电路的运行精度达到所述目标精度,获得具有目标精度的模拟神经网芯片。
7.根据权利要求1-6任意一项所述的模拟神经网芯片的设计方法,其特征在于,所述模拟神经网架构至少包括状态输入模块、指令输入模块、模拟神经网和输出模块;所述状态输入模块和指令输入模块均连接所述模拟神经网,所述模拟神经网还连接所述输出模块。
8.根据权利要求7所述的模拟神经网芯片的设计方法,其特征在于,所述模拟神经网至少包括由若干个模拟神经元组成的输入层、隐藏层和输出层,所述输入层、隐藏层和输出层通过网络连接线连接形成相应的模拟神经网架构。
9.根据权利要求8所述的模拟神经网芯片的设计方法,其特征在于,所述模拟神经元至少包括求和电路、乘法电路和存储单元,所述求和电路、乘法电路和存储单元依次连接。
10.一种模拟神经网芯片,其特征在于,所述模拟神经网芯片采用如权利要求1-9任意一项所述的模拟神经网芯片的设计方法设计制作完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910742288.2A CN110458284A (zh) | 2019-08-13 | 2019-08-13 | 一种模拟神经网芯片的设计方法及模拟神经网芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910742288.2A CN110458284A (zh) | 2019-08-13 | 2019-08-13 | 一种模拟神经网芯片的设计方法及模拟神经网芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110458284A true CN110458284A (zh) | 2019-11-15 |
Family
ID=68486120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910742288.2A Pending CN110458284A (zh) | 2019-08-13 | 2019-08-13 | 一种模拟神经网芯片的设计方法及模拟神经网芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110458284A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114065939A (zh) * | 2021-11-22 | 2022-02-18 | 北京百度网讯科技有限公司 | 量子芯片设计模型的训练方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1076536A (zh) * | 1992-03-13 | 1993-09-22 | 皮尔金顿电子有限公司 | 改进的模拟数字神经元、神经网络及网络调试算法 |
CN105224986A (zh) * | 2015-09-29 | 2016-01-06 | 清华大学 | 基于忆阻器件的深度神经网络*** |
CN109303556A (zh) * | 2018-08-28 | 2019-02-05 | 中国人民解放军军事科学院军事医学研究院 | 一种高通量植入式神经信号无线传输装置 |
US20190122105A1 (en) * | 2017-10-24 | 2019-04-25 | International Business Machines Corporation | Training of artificial neural networks |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习*** |
-
2019
- 2019-08-13 CN CN201910742288.2A patent/CN110458284A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1076536A (zh) * | 1992-03-13 | 1993-09-22 | 皮尔金顿电子有限公司 | 改进的模拟数字神经元、神经网络及网络调试算法 |
CN105224986A (zh) * | 2015-09-29 | 2016-01-06 | 清华大学 | 基于忆阻器件的深度神经网络*** |
US20190122105A1 (en) * | 2017-10-24 | 2019-04-25 | International Business Machines Corporation | Training of artificial neural networks |
CN109303556A (zh) * | 2018-08-28 | 2019-02-05 | 中国人民解放军军事科学院军事医学研究院 | 一种高通量植入式神经信号无线传输装置 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习*** |
Non-Patent Citations (1)
Title |
---|
KAIGE JIA ET.AL: "Calibrating Process Variation at System Level with In-Situ Low-Precision Transfer Learning for Analog Neural Network Processors", 《DAC 18: PROCEEDINGS OF THE 55TH ANNUAL DESIGN AUTOMATION CONFERENCE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114065939A (zh) * | 2021-11-22 | 2022-02-18 | 北京百度网讯科技有限公司 | 量子芯片设计模型的训练方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111130839B (zh) | 一种流量需求矩阵预测方法及其*** | |
US20210295163A1 (en) | Neural architecture search | |
Li et al. | Prediction for tourism flow based on LSTM neural network | |
Zhang et al. | Short-term rainfall forecasting using multi-layer perceptron | |
CN106781489B (zh) | 一种基于递归神经网络的路网状态预测方法 | |
JP6092477B2 (ja) | ニューラルダイナミクスを修正するための自動化された方法 | |
EP3583553A1 (en) | Neural architecture search for convolutional neural networks | |
CN110223517A (zh) | 基于时空相关性的短时交通流量预测方法 | |
CN107153874A (zh) | 水质预测方法及*** | |
US20150269480A1 (en) | Implementing a neural-network processor | |
CN104636985A (zh) | 一种改进bp神经网络的输电线路无线电干扰预测方法 | |
CN110309911A (zh) | 神经网络模型验证方法、装置、计算机设备和存储介质 | |
CN107705556A (zh) | 一种基于支持向量机和bp神经网络结合的交通流预测方法 | |
CN104239659A (zh) | 一种bp神经网络的碳钢腐蚀速率预测方法 | |
CN111199270A (zh) | 一种基于深度学习的区域波高预报方法及终端 | |
CN110232444A (zh) | 地质监测bp神经网络的优化方法、装置、设备及存储介质 | |
CN115577436B (zh) | 一种求解不确定结构风致振动响应的组合深度学习方法 | |
CN110443419A (zh) | 基于iceemdan与极限学习机的中长期径流预测方法 | |
CN114490065A (zh) | 一种负载预测方法、装置及设备 | |
CN105550747A (zh) | 一种新型卷积神经网络的样本训练方法 | |
US20140310216A1 (en) | Method for generating compact representations of spike timing-dependent plasticity curves | |
CN110110406B (zh) | 一种基于Excel计算平台实现LS-SVM模型的边坡稳定性预测方法 | |
CN112036598A (zh) | 一种基于多信息耦合的充电桩使用信息预测方法 | |
CN110458284A (zh) | 一种模拟神经网芯片的设计方法及模拟神经网芯片 | |
CN105787265A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191115 |