一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于脉冲神经网络的信号处理装置及信号处理方法

2022-07-30 22:19:42 来源:中国专利 TAG:


1.本发明涉及脉冲神经网络和集成电路技术领域,尤其涉及一种基于脉冲神经网络的信号处理装置及信号处理方法。


背景技术:

2.随着脑科学和类脑计算技术的发展,脉冲神经网络(spiking neural network,snn)被认为是一种接近大脑信息处理方式的计算模型,可以模仿人类的大脑来处理图像或声音等信号,具有低功耗和结构简单的优点。
3.snn模型对输入的信号形成多个脉冲序列,对多个脉冲序列进行实时的脉冲计算是snn模型对输入信号进行处理的核心,snn模型的脉冲计算主要有脉冲积分操作和池化操作。脉冲积分操作和池化操作是基于脉冲频率编码的方式计算脉冲,但是计算效率低,在硬件资源受限的情况下很难做到对信号的实时处理。
4.因此,如何加速snn模型的脉冲计算效率来实现实时的信号处理是急需解决的技术问题。


技术实现要素:

5.本发明提供一种基于脉冲神经网络的信号处理装置及信号处理方法,用以解决现有技术中snn模型在资源有限的情况下很难实现实时的信号处理的缺陷。
6.本发明提供一种基于脉冲神经网络的信号处理装置,包括:第一寄存器、第二寄存器、第三寄存器、加法器和移位器;
7.所述第一寄存器的输出端和所述第二寄存器的输出端连接所述加法器的第一输入端;所述第一寄存器用于存储待处理信号对应的压缩编码脉冲序列;所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列进行压缩编码后的脉冲序列;所述第二寄存器用于存储与所述压缩编码脉冲序列对应的权重值;
8.所述加法器的输出端连接所述第三寄存器的输入端;所述第三寄存器的输出端连接所述移位器的输入端;所述第三寄存器用于存储所述加法器输出的脉冲积分值,并将上一个时钟周期对应的脉冲积分值输入所述移位器中;
9.所述移位器的输出端连接所述加法器的第二输入端;所述移位器用于对所述上一个时钟周期对应的脉冲积分值进行缩放;
10.所述加法器用于根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值获取当前时钟周期对应的脉冲积分值;
11.所述第三寄存器还用于将最后一个时钟周期对应的脉冲积分值作为所述待处理信号的处理结果进行输出。
12.可选地,所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码后的脉冲序列。
13.可选地,所述压缩编码脉冲序列的编码位数是根据最大的输入脉冲个数确定的。
14.可选地,所述移位器具体用于:
15.根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式对所述上一个时钟周期对应的脉冲积分值进行缩放。
16.本发明还提供一种基于任一种所述的基于脉冲神经网络的信号处理装置的信号处理方法,包括:
17.对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列;
18.基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果。
19.可选地,所述对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列,包括:
20.对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列。
21.可选地,对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列之前,包括:
22.确定最大的输入脉冲个数;
23.根据所述最大的输入脉冲个数确定所述压缩编码脉冲序列的编码位数。
24.可选地,所述基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果,包括:
25.在当前时钟周期内,根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值,获取当前时钟周期对应的脉冲积分值;
26.循环迭代直至最后一个时钟周期,将所述最后一个时钟周期对应的脉冲积分值确定为所述待处理信号的处理结果。
27.可选地,所述当前时钟周期对应的脉冲积分值的表达式如下所示:
[0028][0029]
式中,v
t
表示第t时钟周期对应的脉冲积分值,m表示缩放倍数,v
t-1
表示第t-1时钟周期对应的脉冲积分值,si(t)表示第i个压缩编码脉冲序列在第t时钟周期对应的脉冲表征值,wi表示第i个压缩编码脉冲序列对应的权重值,n表示输入脉冲序列的个数,t的取值范围为1至编码位数的自然数。
[0030]
可选地,所述缩放后的上一个时钟周期对应的脉冲积分值通过如下步骤获取:
[0031]
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式,对所述上一个时钟周期对应的脉冲积分值进行缩放,获取所述缩放后的上一个时钟周期对应的脉冲积分值。
[0032]
本发明提供的基于脉冲神经网络的信号处理装置及信号处理方法,通过脉冲压缩编码加速snn模型中的脉冲计算,可满足在有限硬件资源的情况下实现实时的信号处理。
附图说明
[0033]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1是本发明实施例提供的基于脉冲神经网络的信号处理装置的结构示意图;
[0035]
图2是本发明实施例提供的脉冲积分操作的示意图;
[0036]
图3是本发明实施例提供的池化操作的示意图;
[0037]
图4是本发明实施例提供的基于压缩编码脉冲序列计算脉冲积分的示意图;
[0038]
图5是本发明实施例提供的以四进制补码进行脉冲压缩时脉冲积分的计算示意图;
[0039]
图6是本发明实施例提供的基于脉冲神经网络的信号处理装置的信号处理方法的流程示意图。
具体实施方式
[0040]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]
图1是本发明实施例提供的基于脉冲神经网络的信号处理装置的结构示意图,如图1所示,本发明提供脉冲神经网络的信号处理装置,该装置包括:
[0042]
第一寄存器、第二寄存器、第三寄存器、加法器和移位器;
[0043]
所述第一寄存器的输出端和所述第二寄存器的输出端连接所述加法器的第一输入端;所述第一寄存器用于存储待处理信号对应的压缩编码脉冲序列;所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列进行压缩编码后的脉冲序列;所述第二寄存器用于存储与所述压缩编码脉冲序列对应的权重值;
[0044]
所述加法器的输出端连接所述第三寄存器的输入端;所述第三寄存器的输出端连接所述移位器的输入端;所述第三寄存器用于存储所述加法器输出的脉冲积分值,并将上一个时钟周期对应的脉冲积分值输入所述移位器中;
[0045]
所述移位器的输出端连接所述加法器的第二输入端;所述移位器用于对所述上一个时钟周期对应的脉冲积分值进行缩放;
[0046]
所述加法器用于根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值获取当前时钟周期对应的脉冲积分值;
[0047]
所述第三寄存器还用于将最后一个时钟周期对应的脉冲积分值作为所述待处理信号的处理结果进行输出。
[0048]
具体地,图2是本发明实施例提供的脉冲积分操作的示意图,如图2所示,用一个长度为n的0/1序列表示n个时刻内某个脉冲序列的输入情况,1表征该时刻有脉冲输入,0表征该时刻没有脉冲输入,用某个脉冲对应的权重w
α
表示突触强度。将n个脉冲序列的脉冲表征
值依次输入加法器中进行积分运算,输出脉冲积分结果。一个时钟周期内,一个脉冲序列只向加法器中输入一个脉冲表征值。再将积分结果输入加法器中,参与下一个时钟周期的脉冲积分运算,循环迭代直至最后一个时钟周期,获取脉冲积分运算的最终结果。最后一个时钟周期即脉冲序列向加法器中输入最后一位脉冲表征值的时钟周期。
[0049]
在时钟周期为p时,脉冲积分操作计算的脉冲积分结果的表达式如下所示:
[0050][0051]
式中,v
p
表示第p时钟周期对应的脉冲积分值,v
p-1
表示第p-1时钟周期对应的脉冲积分值,s
α
(p)表示第α个输入脉冲序列在第p时钟周期的脉冲表征值,w
α
表示第α个输入脉冲的权重,n表示输入脉冲序列的个数,p的取值范围为1至脉冲序列长度的自然数。
[0052]
可以看出,现有技术中snn模型的脉冲积分操作对n个时刻的脉冲输入值需要用长度为n的寄存器来存放,而且需要计算n次(或n个时钟周期)才能得到最终的积分结果。在实际应用中,n的值通常会比较大,例如n为512,或者n为1024等,这样会导致脉冲积分的效率很低,不能满足实时对信号进行处理的需求。
[0053]
图3是本发明实施例提供的池化操作的示意图,如图3所示,同样用一个长度为n的0/1序列表示n个时刻内某个脉冲序列的输入情况,1表征该时刻有脉冲输入,0表征该时刻没有脉冲输入,将n个脉冲序列依次输入池化神经元进行最大池化,即将脉冲数量最大的输入脉冲进行输出,这个过程需要对每一个输入池化神经元的脉冲序列进行脉冲计数然后比较出最大值。
[0054]
可以看出,现有技术中snn模型的池化操作过程复杂,不能满足实时对信号进行处理的需求。
[0055]
由现有技术中snn模型的脉冲积分操作和池化操作可知,脉冲频率编码用脉冲的个数表示信号的强度,而与脉冲的具体位置无关。因此,可以根据脉冲的个数对脉冲序列进行压缩编码,以缩小脉冲序列的存储空间和按指数级减少脉冲计算时间。
[0056]
对待处理的信号对应的脉冲序列进行压缩编码,获取待处理信号对应的压缩编码脉冲序列。
[0057]
例如,图像的像素值为200,则用脉冲序列里面随机产生200个脉冲来表示像素值200,像素值200对应的脉冲序列的长度最少为200位。可以对像素值200对应的脉冲序列进行压缩编码,以减少脉冲序列的长度。比如,将像素值200对应的脉冲序列压缩为脉冲序列长度为8位的脉冲序列,从而获取待处理信号对应的压缩编码脉冲序列。
[0058]
可选地,所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码后的脉冲序列。
[0059]
具体地,对待处理信号对应的脉冲序列进行压缩编码,压缩编码方式可以采用二进制补码的形式,也可以采用四进制补码的形式,也可以采用八进制补码的形式,还可以采用十六进制补码的形式等,也就是说,压缩编码方式可以采用2
x
进制的补码的形式,x为自然数。优选地,采用二进制补码的形式对待处理信号对应的脉冲序列进行压缩编码。
[0060]
在进行压缩编码之前需要知道编码位数,根据编码位数确定压缩编码脉冲序列的长度。
[0061]
可选地,所述压缩编码脉冲序列的编码位数是根据最大的输入脉冲个数确定的。
[0062]
具体地,根据最大的输入脉冲个数确定编码位数,再根据编码位数确定压缩编码脉冲序列的长度。最大的输入脉冲个数是设备允许单个输入脉冲序列的最大脉冲个数。
[0063]
编码位数的表达式如下所示:
[0064]
b=log2(m 1)
[0065]
式中,b为编码位数,m为最大的输入脉冲个数。
[0066]
常见的脉冲频率编码至少需要m位,脉冲积分也至少需要m个时钟周期。以二进制补码进行压缩编码后仅仅需要b位,脉冲积分也仅仅需要b个时钟周期。压缩倍数即为m/b,脉冲积分加速倍数也是m/b。
[0067]
通过最大的输入脉冲个数确定编码位数,编码位数的确定有利于进行后续的压缩编码。
[0068]
在确定编码位数之后,以二进制补码的形式对待处理信号对应的脉冲序列进行压缩编码,从而获取压缩编码脉冲序列。
[0069]
例如,当最大的输入脉冲个数m为255时,可知编码位数b为8。将脉冲个数为20的脉冲序列以二进制补码的形式进行压缩编码,压缩编码脉冲序列为00010100。
[0070]
例如,当最大的输入脉冲个数m为255时,可知编码位数b为8。将脉冲个数为255的脉冲序列以二进制补码的形式进行压缩编码,压缩编码脉冲序列为11111111。脉冲的存储空间压缩到原来的3.1%,积分速度提高到原来近32倍。
[0071]
通过对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,缩小了脉冲的存储空间,提高了脉冲计算速度。
[0072]
图4是本发明实施例提供的基于压缩编码脉冲序列计算脉冲积分的示意图,如图4所示,对脉冲序列采用二进制补码进行压缩编码,用一个长度为b的0/1序列表示b个时钟周期内某个压缩编码脉冲序列的输入情况,1表征该时刻有脉冲输入,0表征该时刻没有脉冲输入,用某个压缩编码脉冲序列对应的权重wi表示突触强度。将压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,输出脉冲积分结果,再将脉冲积分结果输入移位器中,移位器对脉冲积分结果进行放大,将放大后的脉冲积分结果与下一个时钟周期对应的脉冲积分运算结果相加,循环迭代直至最后一个时钟周期,获取脉冲积分运算的最终结果。
[0073]
若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器对脉冲积分结果进行缩小。
[0074]
将待处理信号对应的压缩编码脉冲序列存储在第一寄存器中,压缩编码脉冲序列对应的权重值存储在第二寄存器中。在开始计算积分脉冲之前,将加法器、第三寄存器和移位器进行初始化。
[0075]
第一寄存器将压缩编码脉冲序列按以最高阶位到最低阶位的顺序或者从最低阶位到最高阶位的顺序依次输入加法器中,第二寄存器将压缩编码脉冲序列对应的权重值也输入加法器中。
[0076]
在第一个时钟周期时,加法器根据压缩编码脉冲序列的脉冲表征值和压缩编码脉冲序列的权重值获取第一个时钟周期对应的脉冲积分值,加法器将第一个时钟周期对应的脉冲积分值输入第三寄存器,第三寄存器再将第一个时钟周期对应的脉冲积分值输入移位
器中,移位器对第一个时钟周期对应的脉冲积分值进行缩放,将缩放后的第一个时钟周期对应的脉冲积分值输入加法器中,在后续的时钟周期中,加法器根据当前时钟周期输入的压缩编码脉冲序列的脉冲表征值、压缩编码脉冲序列的权重值以及缩放的上一个时钟周期对应的脉冲积分值,得到当前时间周期的脉冲积分值。
[0077]
循环迭代直至最后一个时钟周期,加法器计算出最后一个时钟周期对应的脉冲积分值,加法器将最后一个时钟周期对应的脉冲积分值输入第三寄存器,第三寄存器将最后一个时钟周期对应的脉冲积分值作为待处理信号的处理结果进行输出。
[0078]
若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则最后一个时钟周期是第一寄存器将压缩编码脉冲序列的最低阶位对应的脉冲表征值输入加法器的时钟周期。
[0079]
若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则最后一个时钟周期是第一寄存器将压缩编码脉冲序列的最高阶位对应的脉冲表征值输入加法器的时钟周期。
[0080]
可选地,所述移位器具体用于:
[0081]
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式对所述上一个时钟周期对应的脉冲积分值进行缩放。
[0082]
具体地,移位器将脉冲积分值左移a位表示将脉冲积分值放大2a倍,移位器将脉冲积分值右移a位表示将脉冲积分值缩小1/2a倍。
[0083]
压缩编码方式采用2
x
进制的补码形式,x为自然数,移位器将脉冲积分值移x位。
[0084]
若压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序,则移位器对脉冲积分值进行左移,即放大脉冲积分值。若压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序,则移位器对脉冲积分值进行右移,即缩小脉冲积分值。
[0085]
根据移位数和移位方向,移位器对上一个时钟周期对应的脉冲积分值进行移位处理,以达到对上一个时钟周期对应的脉冲积分值的缩放。
[0086]
例如,在压缩编码方式为二进制补码的情况下,相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的2倍,即移位数为1位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移1位,即将上一个时钟周期对应的脉冲积分值放大2倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移1位,即将上一个时钟周期对应的脉冲积分值缩小1/2倍。
[0087]
例如,在压缩编码方式为四进制补码的情况下,相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的4倍,即移位数为2位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移2位,即将上一个时钟周期对应的脉冲积分值放大4倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移2位,即将上一个时钟周期对应的脉冲积分值缩小1/4倍。
[0088]
例如,在压缩编码方式为八进制补码的情况下,相邻高阶位对应的脉冲表征值是
相邻低阶位对应的脉冲表征值的8倍,即移位数为3位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移3位,即将上一个时钟周期对应的脉冲积分值放大8倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移3位,即将上一个时钟周期对应的脉冲积分值缩小1/8倍。
[0089]
例如,在压缩编码方式为十六进制补码的情况下,压缩编码脉冲序列的相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的16倍,即移位数为4位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移4位,即将上一个时钟周期对应的脉冲积分值放大16倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移4位,即将上一个时钟周期对应的脉冲积分值缩小1/16倍。
[0090]
通过压缩编码脉冲序列的压缩编码方式和压缩编码脉冲序列的输入方式对上一个时钟周期对应的脉冲积分值进行缩放,实现将上一个时钟周期对应的脉冲积分值参与到当前时钟周期的脉冲积分运算中,从而形成循环的脉冲积分计算。
[0091]
输入加法器的压缩编码脉冲序列的个数跟压缩编码方式也有关系。压缩编码方式采用2
x
进制的补码形式,输入加法器的压缩编码脉冲序列的个数为原来的脉冲序列的个数的x倍。
[0092]
例如,在压缩编码方式为二(21)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数还是为n。
[0093]
例如,在压缩编码方式为四(22)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数变为2n。
[0094]
例如,在压缩编码方式为八(23)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数变为3n。
[0095]
例如,在压缩编码方式为十六(24)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数变为4n。
[0096]
由此可见,只有在压缩编码方式为二进制补码的情况下,输入加法器的脉冲序列的个数才不发生改变,在其他的压缩编码方式情况下,一个脉冲序列会变成多个脉冲序列输入到加法器中,输入加法器的脉冲序列的个数发生了改变,导致了脉冲积分的运算过程与二进制补码压缩对应的脉冲积分运算过程有所不同。下面以压缩编码方式为四进制补码为例进行说明。
[0097]
图5是本发明实施例提供的以四进制补码进行脉冲压缩时脉冲积分的计算示意图,如图5所示,一个脉冲序列采用二进制补码进行压缩编码时,压缩编码脉冲序列的长度为b位,相同脉冲序列采用四进制补码进行压缩编码时,一个脉冲序列变为2个压缩编码脉冲序列,每个压缩编码脉冲序列的长度为b/2位,一个寄存器存储压缩编码脉冲序列中偶数阶位对应的脉冲表征值,一个寄存器存储压缩编码脉冲序列中奇数阶位对应的脉冲表征值。图5中0,2、、、b-2表示偶数阶位,1,3、、、b-1表示奇数阶位,偶数阶位正下方的0/1序列表示压缩编码脉冲序列中偶数阶位对应的脉冲表征值,奇数阶位正下方的0/1序列表示压缩
编码脉冲序列中奇数阶位对应的脉冲表征值。两个b/2位的压缩编码脉冲序列的脉冲表征值均按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,相对高的阶位对应的权重输入加法器之前需要进行移位操作,即将相对高的阶位对应的权重左移一位,低位补0或符号位,然后再输入到加法器中进行后续的脉冲积分运算。
[0098]
以八进制补码或十六进制补码进行脉冲压缩时脉冲积分的计算过程与四进制补码类似,不同之处在于,输入加法器的压缩编码脉冲序列的个数不同,以及在输入加法器之前对不同阶位对应的权重进行移位的过程不同。
[0099]
现有技术中的脉冲积分操作与本发明中的基于压缩编码计算脉冲积分最大的不同在于增加了一个移位器。实际上,增加该移位器根本不需要增加任何逻辑,而只需要在连线进行左移或右移,再补0或符号位即可。因此,编码后的脉冲积分不需要比编码前增加任何逻辑资源,但计算时间则缩短到原来的对数量级。
[0100]
本发明提供的基于脉冲神经网络的信号处理装置,通过脉冲压缩编码加速snn模型中的脉冲计算,可满足在有限硬件资源的情况下实现实时的信号处理。
[0101]
图6是本发明实施例提供的基于脉冲神经网络的信号处理装置的信号处理方法的流程示意图,如图6所示,本发明提供一种信号处理方法,应用上述任一种基于脉冲神经网络的信号处理装置,该方法包括:
[0102]
步骤601,对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列。
[0103]
具体地,待处理信号可以是待处理的图像信号或者是待处理的声音信号等信号。
[0104]
脉冲神经网络处理的是脉冲信号,输入的待处理信号存在对应的脉冲序列,对待处理信号对应的脉冲序列进行压缩编码。
[0105]
可选地,所述对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列,包括:
[0106]
对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列。
[0107]
具体地,先确定待处理信号对应的脉冲序列中的脉冲个数,再根据脉冲个数对待处理信号对应的脉冲序列进行压缩编码,压缩编码方式采用二进制补码的形式,从而获取待处理信号的压缩编码脉冲序列。
[0108]
压缩编码方式可以采用2的整数次方的补码的形式,因此,压缩编码方式还可以采用四进制补码、八进制补码或十六进制补码等。
[0109]
通过以二进制补码的形式对待处理信号对应的脉冲序列进行压缩编码,从而减小了压缩编码脉冲序列的长度,缩小了存储压缩编码脉冲序列的存储空间,提高了脉冲计算的速度。
[0110]
可选地,对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列之前,包括:
[0111]
确定最大的输入脉冲个数;
[0112]
根据所述最大的输入脉冲个数确定所述压缩编码脉冲序列的编码位数。
[0113]
具体地,在对待处理的信号对应的脉冲序列进行压缩编码之前,需要先确定最大的输入脉冲个数。最大的输入脉冲个数是设备允许单个输入脉冲序列的最大脉冲个数。
[0114]
根据最大的输入脉冲个数可以确定进行压缩编码时的编码位数。
[0115]
编码位数的表达式如下所示:
[0116]
b=log2(m 1)
[0117]
式中,b为编码位数,m为最大的输入脉冲个数。
[0118]
通过先确定最大的输入脉冲个数,再根据最大的输入脉冲个数确定编码位数,编码位数的确定有利于进行后续的压缩编码。
[0119]
步骤602,基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果。
[0120]
具体地,获取压缩编码脉冲序列之后,基于压缩编码脉冲序列进行脉冲积分运算,获取脉冲积分结果,根据脉冲积分结果获取待处理信号的处理结果。
[0121]
可选地,所述基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果,包括:
[0122]
在当前时钟周期内,根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值,获取当前时钟周期对应的脉冲积分值;
[0123]
循环迭代直至最后一个时钟周期,将所述最后一个时钟周期对应的脉冲积分值确定为所述待处理信号的处理结果。
[0124]
具体地,在当前时钟周期内,当前时钟周期对应的脉冲积分值与压缩编码脉冲序列在当前时钟周期的脉冲表征值、压缩编码脉冲序列对应的权重值以及缩放的上一个时钟周期对应的脉冲积分值有关。
[0125]
可选地,所述缩放后的上一个时钟周期对应的脉冲积分值通过如下步骤获取:
[0126]
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式,对所述上一个时钟周期对应的脉冲积分值进行缩放,获取所述缩放后的上一个时钟周期对应的脉冲积分值。
[0127]
具体地,确定对上一个时钟周期对应的脉冲积分值进行放大或缩小的,以及放大的倍数或缩小的倍数的确定,需要根据压缩编码脉冲序列的压缩编码方式和压缩编码脉冲序列的输入方式进行确定。不同的压缩编码脉冲序列的压缩编码方式和不同的压缩编码脉冲序列的输入方式对应着不同的对上一个时钟周期对应的脉冲积分值进行处理的方式。
[0128]
例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大2倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
[0129]
例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/2倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
[0130]
例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大4倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
[0131]
例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/4倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
[0132]
例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最高阶
位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大8倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
[0133]
例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/8倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
[0134]
例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大16倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
[0135]
例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/16倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
[0136]
通过根据压缩编码脉冲序列的压缩编码方式,对上一个时钟周期对应的脉冲积分值进行缩放,实现将上一个时钟周期对应的脉冲积分值参与到当前时钟周期的脉冲积分运算中,从而形成循环的脉冲积分计算。
[0137]
可选地,所述当前时钟周期对应的脉冲积分值的表达式如下所示:
[0138][0139]
式中,v
t
表示第t时钟周期对应的脉冲积分值,m表示缩放倍数,v
t-1
表示第t-1时钟周期对应的脉冲积分值,si(t)表示第i个压缩编码脉冲序列在第t时钟周期对应的脉冲表征值,wi表示第i个压缩编码脉冲序列对应的权重值,n表示输入脉冲序列的个数,t的取值范围为1至编码位数的自然数。
[0140]
具体地,缩放倍数m的值根据压缩编码脉冲序列的压缩编码方式和压缩编码脉冲序列的输入方式进行确定。
[0141]
例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为2;例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/2。
[0142]
例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为4;例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/4。
[0143]
例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为8;例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/8。
[0144]
例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为16;例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/16。
[0145]
时钟周期的个数与编码位数的大小相同,即每个时钟周期只处理每个脉冲序列中一个编码位数对应的脉冲表征值。
[0146]
通过明确了每个时钟周期对应的脉冲积分值的计算方法,进一步有利于实现加速
snn模型中的脉冲计算。
[0147]
循环迭代直至最后一个时钟周期,也即循环迭代到压缩编码脉冲序列中的最后一位编码位对应的脉冲表征值,将最后一个时钟周期对应的脉冲积分值确定为待处理信号的处理结果。
[0148]
通过先确定当前时钟周期的脉冲积分值,再通过循环迭代获取最后一个时钟周期的脉冲积分值,从而获取待处理信号的处理结果。
[0149]
本发明提供一种信号处理方法,通过先对待处理信号对应的脉冲序列进行压缩编码,再基于压缩编码脉冲序列进行脉冲积分运算,实现对snn模型计算的加速,从而实现对信号的实时处理。
[0150]
本发明实施例中术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
[0151]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献