CN108549930A - 基于脉冲神经膜系统的有符号整数求和方法和终端设备 - Google Patents
基于脉冲神经膜系统的有符号整数求和方法和终端设备 Download PDFInfo
- Publication number
- CN108549930A CN108549930A CN201810351329.0A CN201810351329A CN108549930A CN 108549930 A CN108549930 A CN 108549930A CN 201810351329 A CN201810351329 A CN 201810351329A CN 108549930 A CN108549930 A CN 108549930A
- Authority
- CN
- China
- Prior art keywords
- neuron
- membranous system
- true form
- pulse
- summation
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于脉冲神经膜系统的有符号整数求和方法和终端设备,所述方法包括:终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算;响应于用户输入的转化指令,将求和结果转化为原码格式,并进行显示。通过预设脉冲神经膜系统能够实现任意负整数或非负整数的加法运算,操作简便,准确度高。
Description
技术领域
本发明涉及脉冲神经膜系统领域,尤其涉及一种基于脉冲神经膜系统的有符号整数求和方法和终端设备。
背景技术
脉冲神经膜系统是受生物神经元处理与传递信息的方式启发设计的神经型计算系统,是一种分布式、并行的且离散的计算模型。当前,针对脉冲神经膜系统的研究,理论成果较多,而应用研究相对不足。在为数不多的应用研究中,算术运算是脉冲神经膜系统研究的热点。目前,这类研究已经取得一些成果,为生物型CPU的设计打下了一定基础。
然而,作为计算终端设备中最重要的加法运算,脉冲神经膜系统只能执行无符号整数的加法运算,而有符号整数的加法运算虽有涉及但设计的不充分,需要更多的人工干预,才能实现有符号的加法运算,而这样就失去脉冲神经膜系统自动计算的本意。因此,设计不需要人工干预的基于脉冲神经膜系统的全自动有符号加法器,是实现用脉冲神经膜系统进行其它算法运算的基础和关键。
发明内容
本发明的主要目的在于提供一种基于脉冲神经膜系统的有符号整数求和方法和终端设备,旨在解决现有技术中不能通过脉冲神经膜系统自动进行有符号整数加法运算的技术问题。
为实现上述目的,本发明提供一种基于脉冲神经膜系统的有符号整数求和方法,所述方法包括以下步骤:
终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;
通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;
通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示。
优选地,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码之前,所述方法还包括:
通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性;
相应地,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码,具体包括:
根据所述正负性通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码。
优选地,所述通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性,具体包括:
将所述待处理原码输入至所述判断模块的第一输入神经元,以使所述第一输入神经元根据所述待处理原码的符号位确定待发送脉冲数目,根据所述待发送脉冲数目向所述判断模块的第一输出神经元发送脉冲;
通过所述第一输出神经元统计第一当前脉冲数,根据所述第一当前脉冲数确定第一激发规则,根据所述第一激发规则输出所述加数的正负性。
优选地,所述终端设备接收用户输入的若干加数的待处理原码之前,所述方法还包括:
确定各模块中神经元的需求数目和各神经元的激发规则;
根据所述需求数目获取神经元,根据所述激发规则对所述神经元进行配置;
获取神经元之间的突触关系,根据所述突触关系对配置后的神经元进行连接,建立预设脉冲神经膜系统。
优选地,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码,具体包括:
通过所述第一输出神经元将所述待处理原码从低位到高位逐步输入至所述转化模块的第二输入神经元;
通过所述第二输入神经元将所述待处理原码传递至所述转化模块的第二输出神经元;
通过所述第二输出神经元根据第二激发规则对所述待处理原码进行转化,生成对应的补码。
优选地,所述通过所述第二输出神经元根据第二激发规则对所述待处理原码进行转化,生成对应的补码之前,所述方法还包括:
获取所述第二输出神经元的第二当前脉冲数,根据所述第二当前脉冲数选取对应的第二激发规则。
优选地,所述通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示,具体包括:
通过所述第二输出神经元将所述补码输入至所述求和模块的第三输入神经元;
通过所述第三输入神经元将所述补码传递至所述求和模块的第三输出神经元;
通过所述第三输出神经元根据第三激发规则从低位到高位对所述补码进行逐位求和运算,并对求和结果进行显示。
优选地,所述通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示之后,所述方法还包括:
响应于用户输入的转化指令,将所述求和结果转化为原码格式,并进行显示。
优选地,所述终端设备获取若干加数的待处理原码,具体包括:
所述终端设备接收用户输入的二进制加数的待处理原码;
或,
所述终端设备接收用户输入的十进制加数,将所述十进制加数转化为二进制的待处理原码。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于脉冲神经膜系统的有符号整数求和程序,所述基于脉冲神经膜系统的有符号整数求和程序被所述处理器执行时实现如上述基于脉冲神经膜系统的有符号整数求和方法的步骤。
在本发明中,通过终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算;响应于用户输入的转化指令,将求和结果转化为原码格式,并进行显示。通过预设脉冲神经膜系统能够实现任意负整数或非负整数的加法运算,操作简便,准确度高。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;
图2为本发明基于脉冲神经膜系统的有符号整数求和方法第一实施例的流程示意图;
图3为本发明基于脉冲神经膜系统的有符号整数求和方法第二实施例的流程示意图;
图4为本发明预设脉冲神经膜系统的判断模块示意图;
图5为本发明预设脉冲神经膜系统的判断模块的仿真示意图;
图6为本发明负整数转化单元示意图;
图7为本发明预设脉冲神经膜系统的转化模块的仿真示意图;
图8为本发明预设脉冲神经膜系统的判断模块与转化模块示意图;
图9为本发明预设脉冲神经膜系统的求和模块示意图;
图10为本发明预设脉冲神经膜系统的求和模块的仿真示意图;
图11为本发明基于脉冲神经膜系统的有符号整数求和方法第三实施例的流程示意图;
图12为本发明预设脉冲神经膜系统示意图;
图13为本发明预设脉冲神经膜系统的和转化模块示意图;
图14为本发明预设脉冲神经膜系统的仿真示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。
如图1所示,所述终端设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储服务器。
本领域技术人员可以理解,图1中示出的结构并不构成对所述终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于脉冲神经膜系统的求和程序。
所述终端设备通过处理器1001调用存储器1005中存储的基于脉冲神经膜系统的求和程序,并执行以下操作:
获取若干加数的待处理原码,所述加数包括负整数和非负整数;
通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;
通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性;
相应地,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码,具体包括:
根据所述正负性通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
将所述待处理原码输入至所述判断模块的第一输入神经元,以使所述第一输入神经元根据所述待处理原码的符号位确定待发送脉冲数目,根据所述待发送脉冲数目向所述判断模块的第一输出神经元发送脉冲;
通过所述第一输出神经元统计第一当前脉冲数,根据所述第一当前脉冲数确定第一激发规则,根据所述第一激发规则输出所述加数的正负性。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
确定各模块中神经元的需求数目和各神经元的激发规则;
根据所述需求数目获取神经元,根据所述激发规则对所述神经元进行配置;
获取神经元之间的突触关系,根据所述突触关系对配置后的神经元进行连接,建立预设脉冲神经膜系统。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
通过所述第一输出神经元将所述待处理原码从低位到高位逐步输入至所述转化模块的第二输入神经元;
通过所述第二输入神经元将所述待处理原码传递至所述转化模块的第二输出神经元;
通过所述第二输出神经元根据第二激发规则对所述待处理原码进行转化,生成对应的补码。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
获取所述第二输出神经元的第二当前脉冲数,根据所述第二当前脉冲数选取对应的第二激发规则。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
通过所述第二输出神经元将所述补码输入至所述求和模块的第三输入神经元;
通过所述第三输入神经元将所述补码传递至所述求和模块的第三输出神经元;
通过所述第三输出神经元根据第三激发规则从低位到高位对所述补码进行逐位求和运算,并对求和结果进行显示。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
响应于用户输入的转化指令,将所述求和结果转化为原码格式,并进行显示。
进一步地,处理器1001可以调用存储器1005中存储的基于脉冲神经膜系统的求和程序,还执行以下操作:
接收用户输入的二进制加数的待处理原码;
或,
接收用户输入的十进制加数,将所述十进制加数转化为二进制的待处理原码。
在本实施例中,通过终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算;响应于用户输入的转化指令,将求和结果转化为原码格式,并进行显示。通过预设脉冲神经膜系统能够实现任意负整数或非负整数的加法运算,操作简便,准确度高。
基于上述硬件结构,提出本发明基于脉冲神经膜系统的有符号整数求和方法的实施例。
参照图2,图2为本发明基于脉冲神经膜系统的有符号整数求和方法第一实施例的流程示意图。
在第一实施例中,所述基于脉冲神经膜系统的有符号整数求和方法包括以下步骤:
步骤S10:终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数。
需要说明的是,所述终端设备为经由通信设施向计算机输入程序和数据或接收计算机输出处理结果的设备,包括但不限于计算机、智能手机等设备。所述加数为本实施例中用于求和的数据,所述加数包括负整数和非负整数,原码是计算机中对数字的二进制的一种表示方法,指一个二进制数左边加上符号位后所得到的码,且当二进制数大于0时,符号位为0;二进制数小于0时,符号位为1;二进制数等于0时,符号位可以为0或1。所述待处理原码是各加数对应的原码,是所述加数的二进制表示方法,表示所述加数的数值大小以及正负性。
进一步地,所述步骤S10,具体包括:
所述终端设备接收用户输入的二进制加数的待处理原码;
或,
所述终端设备接收用户输入的十进制加数,将所述十进制加数转化为二进制的待处理原码。
步骤S20:通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码。
可以理解的是,所述预设脉冲神经膜系统为预先建立的用于求和的计算模型,当两个加数进行相加时,若其中一个加数为负数,则该加法运算相当于减法运算,通过将原码转化为补码,可以方便地将减法运算转化为加法运算,使得运算过程得到简化。因此,在所述预设脉冲神经膜系统中设置转化模块,所述转化模块用于将所述待处理原码转化为对应的补码,在所述转换模块中,根据所述待处理原码传递一定数目的脉冲,根据神经元的激发规则和脉冲数目进行转化,输出对应的补码。
步骤S30:通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示。
需要说明的是,所述求和模块用于对所述补码进行求和运算,得出求和结果,将所述补码输入至所述求和模块,在所述求和模块中,根据所述补码传递一定数目的脉冲,根据神经元的激发规则和脉冲数目进行求和运算,并输出所述求和结果,所述终端设备对输出的求和结果进行显示。
在本实施例中,通过终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示。通过预设脉冲神经膜系统能够实现任意负整数或非负整数的加法运算,操作简便,准确度高。
参照图3,图3为本发明基于脉冲神经膜系统的有符号整数求和方法第二实施例的流程示意图,基于上述图2所示的实施例,提出本发明基于脉冲神经膜系统的有符号整数求和方法的第二实施例。
在第二实施例中,步骤S20之前,所述方法还包括:
步骤S200:通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性。
相应地,所述步骤S20,具体包括:
步骤S201:根据所述正负性通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码。
需要说明的是,由于负整数和非负整数将原码转化为补码的转化方式不同,其中,对于负整数,转化方式为将原码取反码,将反码进行加1即可得到原码对应的补码,而对于非负整数,补码就是其原码,因此,在对所述待处理原码进行转化之前,需对所述加数的正负性进行判断。通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性,所述判断模块用于对所述加数的正负性进行判断,在所述判断模块中,根据所述待处理原码传递一定数目的脉冲,根据神经元的激发规则和脉冲数目进行正负性判断,并将判断所得出的正负性输入至所述转化模块。
进一步地,所述步骤S200,具体包括:
将所述待处理原码输入至所述判断模块的第一输入神经元,以使所述第一输入神经元根据所述待处理原码的符号位确定待发送脉冲数目,根据所述待发送脉冲数目向所述判断模块的第一输出神经元发送脉冲。
通过所述第一输出神经元统计第一当前脉冲数,根据所述第一当前脉冲数确定第一激发规则,根据所述第一激发规则输出所述加数的正负性。
如图4所示,图4为本发明预设脉冲神经膜系统的判断模块示意图,所述判断模块的定义如下:
syn={(a1,a2),(a1,b1),(a1,c1),(bi,bi+1)|i=1,2,…m,(ci,ci+1)|i=1,2,…,m,(bm+1,bm+2),
(cm+1,cm+2),(a2,a3),(a2,a4),(a3,a4),(a3,bm+2),(a3,cm+2),(a4,a3),(a5,a2)}。
判断模块中的输入神经元是a1,神经元bm+2和cm+2是两个输出神经元。辅助神经元bi和ci(i=1,2,…,m+1)起着传递脉冲的作用。神经元a5已事先预置了1个脉冲,在延时了m步后,通过激发规则a→a,在m+1步向神经元a2发送了一个脉冲。同时,输入神经元在m+1步也可能向神经元a2发送一个脉冲。如果二进制原码是负整数,则表示符号位的第m位是1码,故此时输入神经元a1在m+1步向神经元a2发送一个脉冲。此时,辅助神经元a2由于在m+1步接收到两个脉冲,故通过激发规则a2→a分别向神经元a3和a4发送一个脉冲。在t=m+2,神经元a3和a4由于都从神经元a2接收到一个脉冲,而自身本来就有一个脉冲,故都会激发规则a2→a2。因此,神经元a3和a4在m+2步会彼此向对方发射两个脉冲,故从m+2步开始,神经元a3和a4会永不停息地向对方发射两个脉冲,使得这两个神经元在此后的时刻总是有两个脉冲。同时,从m+2步开始,神经元a3会永不停息地分别向输出神经元bm+2和cm+2发射两个脉冲。因此,从m+3步开始,输出神经元bm+2和cm+2在随后的每个时刻都能从神经元a3接收到两个脉冲。在m+3步,输出神经元bm+2开始接收来自神经元bm+1发射的脉冲,而输出神经元cm+2开始接收来自神经元cm+1发射的脉冲。由于神经元bm+1和cm+1只是起着传递脉冲的作用,故在m+3步,输出神经元bm+2和cm+2都是接收到输入神经元a1传递过来的脉冲。如果输入神经元a1传递过来一个脉冲,则输出神经元bm+2由于总共有3个脉冲,故激发规则a3→a而向外部环境中发送一个脉冲。因此,外部环境Output1步在m+4步接收到一个脉冲。虽然此时输出神经元cm+2也有3个脉冲,但由于激发规则a3→λ而无法向外部环境Output2发送脉冲。如果输入神经元在t=m+3以后的某一步没有传递过来脉冲,则输出神经元bm+2和cm+2由于都只有两个脉冲,故均激发规则a2→λ而不向外部环境发送脉冲。从t=m+4开始,这样过程需要进行m步,直到t=2m+3,该分离过程结束。从该过程可以发现,如果输入神经元传递的是负整数,则输出神经元bm+2向外部环境Output1发送的脉冲实质是输入神经元a1发送脉冲的复制,而输出神经元cm+2在任何时刻都不会向外部环境Output2发送脉冲,相当于输出神经元cm+2被屏蔽。
反之,如果二进制原码是非负整数,则表示符号位的第m位是0码,故此时输入神经元a1在m+1步向神经元a2不发送脉冲。因此,辅助神经元a2由于在m+1步接收到一个脉冲来自神经元a5的脉冲,故通过遗忘规则a→λ将该脉冲消耗掉。神经元a3和a4由于未能从神经元a2接收到脉冲,而自身只有一个脉冲,故永远不会激发规则a2→a2。因此,神经元a3和a4在任何时刻都没有机会向其他神经元发送脉冲。从m+3步开始,输出神经元bm+2和cm+2在随后的m个时刻都只能接收从输入神经元a1传递过来的脉冲。如果输入神经元a1传递过来一个脉冲,则输出神经元bm+2由于总只有1个脉冲,故通过遗忘规则a→λ将该脉冲消耗掉,故它不会向外部环境中发送脉冲。因此,外部环境Output1步在m+4步每有接收到脉冲。同时,输出神经元cm+2也只有1个脉冲,但由于激发规则a→a而向外部环境Output2发送一个脉冲。如果输入神经元在t=m+3以后的某一步没有传递过来脉冲,则输出神经元bm+2和cm+2由于都没有脉冲,故都不会向外部环境发送脉冲。从t=m+4开始,这样过程需要进行m步,直到t=2m+3,该分离过程结束。从该过程可以发现,如果输入神经元传递的是非负整数,则输出神经元bm+2无法向外部环境Output1发送脉冲,而输出神经元cm+2在这m步向外部环境Output2发送的脉冲相当于输入神经元的复制,而输出神经元bm+2由于无法向外部环境发送脉冲而相当于被屏蔽。
因此,所述判断模块能将负整数和非负整数准确地分离出来,实现对所述加数的正负性判断。
在具体实现中,以十进制加数-6的待处理原码10110为例进行说明,图5为预设脉冲神经膜系统的判断模块的仿真示意图,当在图5的仿真器中输入整数原码10110,然后点击“归类”,可以得到图5所示的判断结果以及表1所示的判断模块中各个不同神经元在各个时刻所包含的脉冲数。
Step | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
input | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
a1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
a2 | 0 | 0 | 0 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
a3 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
a4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
a5 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
b1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
b2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
b3 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
b4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
b5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
b6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
b7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 3 | 3 | 2 | 3 | 2 |
c1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
c2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
c3 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
c4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
c5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
c6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
c7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 3 | 3 | 2 | 3 | 2 |
output1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
output2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
表1
进一步地,所述步骤S10之前,所述方法还包括:
步骤S01:确定各模块中神经元的需求数目和各神经元的激发规则。
步骤S02:根据所述需求数目获取神经元,根据所述激发规则对所述神经元进行配置。
步骤S03:获取神经元之间的突触关系,根据所述突触关系对配置后的神经元进行连接,建立预设脉冲神经膜系统。
进一步地,所述转化模块包括负整数转化单元与非负整数转化单元,如图6所示,图6为负整数转化单元示意图,基于图6,所述负整数转化单元的定义如下:
σCom=(3,{a5→a,a4/a→λ,a2→λ,a→a}),
syn={(aux6,aux1),(aux1,Com),(aux2,aux3),(aux2,aux4),(aux2,aux5),(aux3,aux4),(aux4,aux3),(aux5,aux4),(aux5,aux3),(aux3,Com)}
在具体实现中,图6中的输入神经元是aux1,输出神经元是Com。在辅助神经元aux2,aux3,aux4和aux5的共同作用下,能保证在t=2和t=m+1步内向输出神经元Com连续输入m个脉冲。与此同时,长度为m位的负二进制原码从t=1到t=m步内从低位到高位被逐步输入到输入神经元。辅助神经元aux5在系统中起着延时计数器的作用,即在延时激发规则a→a;m-1作用下,在第1步时被激发,经过m-1步延时后,在m步时分别向神经元aux3和aux4发送一个脉冲,神经元aux3和aux4在第m步时激发规则a2→λ,故神经元从第m+1步开始停止向输出神经元Com发送脉冲,因此,辅助神经元aux2,aux3,aux4和aux5在m+1步后都停止工作。输出神经元Com在初始状态预置了3个脉冲,从第3步到第m+2步会陆续从神经元aux1和aux3收到脉冲。在第3步到第m+2步内,如果输出神经元Com收到一个脉冲,则该脉冲一定来自于辅助神经元aux3,故立即激发规则a4/a→λ,在下一步会消耗一个脉冲而不向外部环境发送脉冲。反之,如果输出神经元Com在第3步到第m+2步内收到两个脉冲,则一定是一个脉冲来自输入神经元aux1,而另一个脉冲来自辅助神经元aux3,故输出神经元Com激发规则a5→a,从而在下一个时刻消耗5个脉冲而向外部环境中发生一个脉冲。输出神经元Com一旦使用规则a5→a,将不再拥有脉冲,由于其后所接收的脉冲不会超过2个,故输出神经元Com所能使用的规则不外乎是a2→λ或a→a,而这正好就是原码对应位的取反过程。对于一个负整数而言,其二进制原码除符号位是1以外,其m-1个数值位中至少有一个1,这意味着输出神经元Com一定会执行规则a5→a一次且仅一次,而这就相当于反码的最低位加1的效果。当神经元aux6延时m-1步后,在第m步向输入神经元aux1发送一个脉冲,故在m步输入神经元aux1从外界环境中接收到负数原码的符号位1个脉冲和辅助神经元aux6接收一个脉冲,从而激发规则a2→λ。所以,输出神经元Com在m-1时刻仅从辅助神经元接收到一个脉冲,故此时激发规则a→a,这意味着补码的符号位是1。因此,图6所示的转化模块能够准确地求出负整数的补码。
在具体实现中,以待处理原码1100001为例进行说明,图7为本发明预设脉冲神经膜系统的转化模块的仿真示意图,当在图7的仿真器中输入整数原码1100001,然后点击“求补码”,可以得到图7所示的转化结果以及表2所示的转化模块中各个不同神经元在各个时刻所包含的脉冲数。
Step | input | aux1 | aux2 | aux3 | aux4 | aux5 | aux6 | com | output |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 3 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 3 | 0 |
2 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 5 | 0 |
3 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
4 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
5 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
6 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
7 | 0 | 2 | 0 | 1 | 1 | 1 | 0 | 2 | 1 |
8 | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 1 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
表2
进一步地,所述步骤S20,具体包括:
通过所述第一输出神经元将所述待处理原码从低位到高位逐步输入至所述转化模块的第二输入神经元。
通过所述第二输入神经元将所述待处理原码传递至所述转化模块的第二输出神经元。
获取所述第二输出神经元的第二当前脉冲数,根据所述第二当前脉冲数选取对应的第二激发规则。
通过所述第二输出神经元根据第二激发规则对所述待处理原码进行转化,生成对应的补码。
需要说明的是,基于上述判断模块和负整数转化单元,图8设计了将加数进行分离,并将分离后的负整数或非负整数均转化为补码,如图8所示,图8为预设脉冲神经膜系统的判断模块与转化模块示意图,所述判断模块与转化模块由2m+23个神经元组成,定义如下:
syn={(a1,a2),(a1,b1),(a1,c1),(bi,bi+1)|i=1,2,…m,(ci,ci+1)|i=1,2,…,m,(bm+1,bm+2),(cm+1,cm+2),(a2,a3),(a2,a4),(a3,a4),(a3,bm+2),(a3,cm+2),(a4,a3),(a5,a2),(a5,a6),(a6,a7),(a7,aux2),(aux2,aux6),(cm+2,aux7),(aux7,aux8),(aux8,aux9),(aux6,aux9),(a3,a8),(a8,aux9),(bm+2,aux1),(aux1,Com),(Com,aux9),(aux2,aux3),(aux2,aux4),(aux2,aux5),(a5,a3),(a5,aux4),(aux3,aux4),(aux4,aux3),(aux2,aux4),(aux3,Com),a3)}。
当发送到输入神经元的二进制原码是负整数时,从t=m+3开始,神经元开始向神经元发射脉冲,而神经元在任何时刻都不会向神经元发射脉冲。从t=m+5开始,神经元σCom开始向发射脉冲。因此,从t=m+6开始,输出神经元接收到神经元σCom发送过来的补码脉冲。从图8中可以看出,从t=m+7到t=2m+5,输出神经元向环境中发送了数值位的补码脉冲。当t=2m+5,输出神经元从神经元接收到两个脉冲,从神经元接收到两个脉冲,故在t=2m+5时通过激发规则a4→a向环境发送一个脉冲。因此,在t=2m+6步时,外界环境从输出接收到一个脉冲。由此可见,该系统可以将负整数的原码转化为负整数的补码。
反之,如果发送输入神经元的是非负整数的补码,神经元被屏蔽,求负整数的所有神经元的工作都没有启动。因此,输出神经向外部环境发送的脉冲实质上就是对二进制原码的复制。
进一步地,所述步骤S30,具体包括:
通过所述第二输出神经元将所述补码输入至所述求和模块的第三输入神经元。
通过所述第三输入神经元将所述补码传递至所述求和模块的第三输出神经元。
通过所述第三输出神经元根据第三激发规则从低位到高位对所述补码进行逐位求和运算,并对求和结果进行显示。
如图9所示,图9为预设脉冲神经膜系统的求和模块示意图。
需要说明的是,如果两个输入神经元被同时输入1,则输出神经元Add将收到4个脉冲,分别来自神经元aux1,aux2,aux4和aux5。如果输出神经元Add在此之前已有一个进位脉冲,则激发规则a5/a4→a。否则,输出神经元Add激发规则a4/a3→λ。
如果一个输入神经元被输入1,而另一个输入神经元被输入0,则输出神经元Add将收到3个脉冲。如果输出神经元Add在此之前已有一个进位脉冲,则激发规则a4/a3→λ,否则,激发规则a3→a。
如果两个输入神经元被同时输入0,输出神经元Add将收到2个脉冲。如果输出神经元Add在此之前已有一个进位脉冲,则激发规则a3→a。否则,激发规则a2→λ。
至于出神经元Add中的规则a→λ,则是用来删除溢出位。
在具体实现中,以求-2与-3的补码和为例进行说明,图10为本发明预设脉冲神经膜系统的求和模块的仿真示意图,-2的补码为1110,-3的补码为1101,在图10的仿真器中输入补码并求补码和,可以得到图10所示的求和结果以及表3所示的求和模块中各个不同神经元在各个时刻所包含的脉冲数。
表3
在本实施例中,通过终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示。通过预设脉冲神经膜系统能够实现任意负整数或非负整数的加法运算,操作简便,准确度高。
进一步地,如图11所示,基于第一实施例及第二实施例提出本发明基于脉冲神经膜系统的有符号整数求和方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤S30之后,所述方法还包括:
步骤S40:响应于用户输入的转化指令,将所述求和结果转化为原码格式,并进行显示。
需要说明的是,由于对所述补码进行求和运算,所得的所述求和结果也为补码,用户可输入转化指令,终端设备通过预设脉冲神经膜系统的和转化模块响应于用户输入的转化指令,将所述求和结果由补码转化为原码。可以理解的是,所述预设脉冲神经膜系统示意图如图12所示,其中,C1为一个加数的判断模块和转化模块,C2为另一个加数的判断模块和转化模块,C3为和转化模块,其中,如图13所示,图13为本发明预设神经膜系统的和转化模块示意图。
在具体实现中,以求6和-11的和的原码为例进行说明,图14为本发明预设脉冲神经膜系统的仿真示意图,在图14的仿真器中输入6和-11的原码,可以得到图14所示的和的原码。
在本实施例中,通过响应于用户输入的转化指令,将所述求和结果转化为原码格式,并进行显示。根据用户需求将补码形式的求和结果转化为原码形式,操作简便,提高了用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
单词第一、第二、以及第三等的使用不表示任何顺序,可将这些单词解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述方法包括以下步骤:
终端设备获取若干加数的待处理原码,所述加数包括负整数和非负整数;
通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码;
通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示。
2.如权利要求1所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码之前,所述方法还包括:
通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性;
相应地,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码,具体包括:
根据所述正负性通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码。
3.如权利要求2所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述通过所述预设脉冲神经膜系统的判断模块判断所述加数的正负性,具体包括:
将所述待处理原码输入至所述判断模块的第一输入神经元,以使所述第一输入神经元根据所述待处理原码的符号位确定待发送脉冲数目,根据所述待发送脉冲数目向所述判断模块的第一输出神经元发送脉冲;
通过所述第一输出神经元统计第一当前脉冲数,根据所述第一当前脉冲数确定第一激发规则,根据所述第一激发规则输出所述加数的正负性。
4.如权利要求3所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述终端设备接收用户输入的若干加数的待处理原码之前,所述方法还包括:
确定各模块中神经元的需求数目和各神经元的激发规则;
根据所述需求数目获取神经元,根据所述激发规则对所述神经元进行配置;
获取神经元之间的突触关系,根据所述突触关系对配置后的神经元进行连接,建立预设脉冲神经膜系统。
5.如权利要求4所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述通过预设脉冲神经膜系统的转化模块将所述待处理原码转化为对应的补码,具体包括:
通过所述第一输出神经元将所述待处理原码从低位到高位逐步输入至所述转化模块的第二输入神经元;
通过所述第二输入神经元将所述待处理原码传递至所述转化模块的第二输出神经元;
通过所述第二输出神经元根据第二激发规则对所述待处理原码进行转化,生成对应的补码。
6.如权利要求5所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述通过所述第二输出神经元根据第二激发规则对所述待处理原码进行转化,生成对应的补码之前,所述方法还包括:
获取所述第二输出神经元的第二当前脉冲数,根据所述第二当前脉冲数选取对应的第二激发规则。
7.如权利要求6所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示,具体包括:
通过所述第二输出神经元将所述补码输入至所述求和模块的第三输入神经元;
通过所述第三输入神经元将所述补码传递至所述求和模块的第三输出神经元;
通过所述第三输出神经元根据第三激发规则从低位到高位对所述补码进行逐位求和运算,并对求和结果进行显示。
8.如权利要求7所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述通过所述预设脉冲神经膜系统的求和模块对所述补码进行求和运算,对求和结果进行显示之后,所述方法还包括:
响应于用户输入的转化指令,将所述求和结果转化为原码格式,并进行显示。
9.如权利要求1至8中任一项所述的基于脉冲神经膜系统的有符号整数求和方法,其特征在于,所述终端设备获取若干加数的待处理原码,具体包括:
所述终端设备接收用户输入的二进制加数的待处理原码;
或,
所述终端设备接收用户输入的十进制加数,将所述十进制加数转化为二进制的待处理原码。
10.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于脉冲神经膜系统的有符号整数求和程序,所述基于脉冲神经膜系统的有符号整数求和程序被所述处理器执行时实现如权利要求1至9中任一项所述的基于脉冲神经膜系统的有符号整数求和方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810351329.0A CN108549930A (zh) | 2018-04-18 | 2018-04-18 | 基于脉冲神经膜系统的有符号整数求和方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810351329.0A CN108549930A (zh) | 2018-04-18 | 2018-04-18 | 基于脉冲神经膜系统的有符号整数求和方法和终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108549930A true CN108549930A (zh) | 2018-09-18 |
Family
ID=63515500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810351329.0A Pending CN108549930A (zh) | 2018-04-18 | 2018-04-18 | 基于脉冲神经膜系统的有符号整数求和方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108549930A (zh) |
-
2018
- 2018-04-18 CN CN201810351329.0A patent/CN108549930A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457068B (zh) | 用于深度学习加速的非常低精度浮点表示 | |
EP4350572A1 (en) | Method, apparatus and system for generating neural network model, devices, medium and program product | |
CN110020616B (zh) | 一种目标识别方法及设备 | |
CN113222132B (zh) | 乘法器、数据处理方法、芯片、计算机设备及存储介质 | |
WO2020190546A1 (en) | Outlier quantization for training and inference | |
US11651198B2 (en) | Data processing method and apparatus for neural network | |
US11620105B2 (en) | Hybrid floating point representation for deep learning acceleration | |
JP7058202B2 (ja) | 情報処理方法及び情報処理システム | |
CN109325357A (zh) | 基于rsa的信息值计算方法、设备及可读存储介质 | |
CN115292046A (zh) | 算力分配方法、装置、存储介质及电子设备 | |
CN117215646A (zh) | 一种浮点运算方法、处理器、电子设备及存储介质 | |
CN114819163A (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
CN109697083B (zh) | 数据的定点化加速方法、装置、电子设备及存储介质 | |
CN111914987A (zh) | 基于神经网络的数据处理方法及装置、设备和可读介质 | |
CN109284826A (zh) | 神经网络处理方法、装置、设备及计算机可读存储介质 | |
CN108549930A (zh) | 基于脉冲神经膜系统的有符号整数求和方法和终端设备 | |
CN116401602A (zh) | 事件检测方法、装置、设备及计算机可读介质 | |
CN110515591A (zh) | 基于区块链的随机数生成方法及装置 | |
CN109829004A (zh) | 基于无人车的数据处理方法、装置、设备以及存储介质 | |
CN116579380A (zh) | 一种数据处理方法以及相关设备 | |
CN115809707A (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN111291893A (zh) | 调度方法、调度系统、存储介质和电子装置 | |
CN114997401B (zh) | 自适应推理加速方法、装置、计算机设备和存储介质 | |
CN108596332A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180918 |