WO2022017498A1 - 数值转脉冲的方法、装置、电子设备、存储介质 - Google Patents
数值转脉冲的方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- WO2022017498A1 WO2022017498A1 PCT/CN2021/108134 CN2021108134W WO2022017498A1 WO 2022017498 A1 WO2022017498 A1 WO 2022017498A1 CN 2021108134 W CN2021108134 W CN 2021108134W WO 2022017498 A1 WO2022017498 A1 WO 2022017498A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pulse sequence
- data
- moments
- address
- buffer
- Prior art date
Links
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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
Abstract
一种数值转脉冲的方法,所述方法包括:根据输入数值生成初始脉冲序列(S110),其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲串中的一者,所有所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列(S120)。上述方法可以生成生物特性符合度高、低代价的随机脉冲序列。还提供一种数值转脉冲的装置、一种电子设备和一种计算机可读存储介质。
Description
本发明涉及神经网络技术领域,具体而言,涉及一种数值转脉冲的方法、一种数值转脉冲的装置、一种电子设备和一种计算机可读存储介质。
目前对于脉冲神经网络,一般采用期望为n的泊松分布产生随机脉冲序列,虽然泊松分布与生物特性较为符合,但由于复杂度较高,硬件实现不友好,导致脉冲产生速度慢,且功耗效率不足。
发明内容
为解决上述问题,本发明的目的在于提供一种数值转脉冲的方法、一种数值转脉冲的装置、一种电子设备和一种计算机可读存储介质,可以生成生物特性符合度高、低代价的随机脉冲序列。
作为本公开的第一个方面,提供一种数值转脉冲的方法,其中,所述方法用于将输入数值转换为脉冲神经网络的脉冲序列,所述方法包括:
根据输入数值生成初始脉冲序列,其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲串中的一者,所有所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;
随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列。
作为本公开的第二个方面,提供一种数值转脉冲的装置,其中,所述装置用于将输入数值转换为脉冲神经网络的脉冲序列,所述装置包括:
缓冲区,所述缓冲区用于根据输入数值所产生的初始脉冲序列并存储所述初始脉冲序列,其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲串中的一者,所有所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;
更改器,所述更改器用于对所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列。
作为本公开的第三个方面,提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现所述的方法。
作为本公开的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现所述的方法。
本发明的有益效果为:
可适配于短时间段,有助于降低计算时域时刻的数量,从而降低运算量;
产生的脉冲序列是随机的,疏密均匀的,提高了生物特性符合度;
降低硬件复杂度,节省硬件资源提高硬件的效率。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中 所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开所提供的数值转脉冲的方法的一种实施方式的流程示意图;
图2是本公开所提供的数值转脉冲的方法的另一种实施方式中,步骤S110的流程示意图;
图3是本公开所提供的数值转脉冲的方法的另一种实施方式中,步骤S120中一个交换周期的流程示意图;
图4是步骤S122的一种实施方式的流程示意图;
图5为本公开一示例性实施例生成的连续脉冲序列的示意图;
图6为本公开一示例性实施例的多次数据交换过程的示意图;
图7为本公开一示例性实施例形成的目标脉冲序列的示意图;
图8为本公开所提供的数值转脉冲的方法的还一种实施方式的流程图;
图9是步骤S120’的一种实施方式的流程图;
图10是归零步骤的一种实施方式的流程图;
图11是置一步骤的一种实施方式的流程图;
图12是本公开所提供的数值转脉冲的装置的一种实施方式的模块示意图;
图13是本公开所提供的装置的另一种实施方式的模块示意图;
图14是本公开所提供的装置的还一种实施方式的模块示意图。
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明,若本公开实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本公开的描述中,所用术语仅用于说明目的,并非旨在限制本公开的范围。术语“包括”和/或“包含”用于指定元件、步骤、操作和/或组件的存在,但并不排除存在或添加一个或多个其他元件、步骤、操作和/或组件的情况。术语“第一”、“第二”等可能用于描述各种元件,不代表顺序,且不对这些元件起限定作用。此外,在本公开的描述中,除非另有说明,“多个”的含义是两个及两个以上。这些术语仅用于区分一个元素和另一个元素。结合以下附图,这些和/或其他方面变得显而易见,并且,本领域普通技术人员更容易理解关于本公开实施例的说明。附图仅出于说明的目的用来描绘本公开实施例。本领域技术人员将很容易地从以下说明中认识到,在不背离本公开原理的情况下,可以采用本公开所示结构和方法的替代实施例。
为了降低产生脉冲的复杂度、提高硬件效率,一种可选的方式为直接产生连续的n个脉冲,之后不发送任何脉冲。但是,这种方式生成的脉冲序列疏密交替,不够随机,与生物特性符合度较低,对脉冲神经网络的性能会造成一定影响。
有鉴于此,作为本公开的第一个方面,提供一种数值转脉冲的方法,所述方法用于将输入数值转换为脉冲神经网络的脉冲序列,如图1所示,所述方法包括:
在步骤S110中,根据输入数值产生初始脉冲序列,其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲串中的一者,所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;
在步骤S120中,随机选择所述初始脉冲序列中数据的进行改变,得到所述目标脉冲序列。
其中,脉冲神经网络是一种带有时间维度编码信息的网络。举例来说,脉冲神经网络的运行过程的最小时间单位为一个时刻。每个时刻可能出现脉冲或不出现脉冲,每个时刻的脉冲信息是一个二值变量,即有脉冲或者无脉冲。例如,一个时间段包含T个时刻。可以通过随机发放的脉冲个数预期值来表示脉冲神经网络的编码信息。
其中,输入数值例如可以是图像的像素数值、语音波形转换的数值、文本转换的数值、图像预处理后的计算结果等。本公开对输入数值不做具体限定。
在输入数值为图像的像素数值的情况中,目标脉冲序列的脉冲个数预期值(脉冲总个数)与图像像素值呈正相关,目标脉冲序列是时间维度随机的脉冲序列,每个图像的像素数值转换为一个时间维度随机的目标脉冲序列。
上文中“连续脉冲串”是指,连续的多个数据均为脉冲(可用数值1表示);上文中“连续非脉冲串”是指连续连续的多个数据均为非脉冲(可用数值0表示)。
在本公开所提供的数值转脉冲的方法中,在步骤S110中,所述数据串为连续脉冲、或者连续非脉冲,生成任意一个数据串的效率均比较高。再通过步骤S120中对初始脉冲序列中的数据进行随机改变,可以打破初始脉冲序列中疏密有序的脉冲顺序、获得随机性高、符合生物特性的目标脉冲序列。也就是说,本公开所提供的数值转脉冲方法可适配于短时间段,有助于降低计算时域时刻的数量,从而降低运算量;产生的脉冲序列是随机的,疏密均匀的,提高了生物特性符合度;降低硬件复杂度,节省硬件资源提高硬件的效率。
在本公开中,对所述初始脉冲序列中数据串的数量并不做特殊的限定。也就是说,所述初始脉冲序列中既可以包括一个数据串、也可以包括多个数据串。
下面结合附图介绍本公开的一种可选实施方式。在该实施方式中,所述初始脉冲序列中包括多个数据串。作为一种可选实施方式,多个数据串分别为连续脉冲串和连续非脉冲串。
所述随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列的步骤S120具体包括:
随机交换所述初始脉冲序列中数据的位置,形成所述目标脉冲序列。
对所述初始脉冲序列中的数据的位置进行随机交换可以提高最终生成的目标脉冲序列的随机性,以使得所述目标脉冲序列更符合生物学特性。并且,无需复杂算法即可实现对数据的位置交换,提高了本公开所提供的方法的效率。
在本公开中,对如何生成初始脉冲序列不做特殊限定。例如,在一种可选的实施方式中,如图2所示,根据输入数值生成初始脉冲序列的步骤S110可以包括:
在步骤S111中,根据所述输入数值,确定所述待生成的目标脉冲序列的时刻数量T和脉冲发生频率n,其中,T为大于0的整数,n大于或等于0,且n小于1;
在步骤S112中,产生包括连续n*T个脉冲的连续脉冲串和连续T-n*T个非脉冲的连续非脉冲串,形成所述初始脉冲序列。
如上文中所述,目标脉冲序列的脉冲个数预期值与图像像素值呈正相关,目标脉冲序列是时间维度随机的脉冲序列,每个图像的像素数值转换为一个时间维度随机的目标脉冲序列。例如,目标脉冲序列的时刻数量T为12,脉冲发生频率n为67%,生成的初始脉冲序列如图5所示,包括连续8个脉冲(1值)和连续4个非脉冲(0值)。
在一种可选的实施方式中,所述随机交换所述初始脉冲序列中数据的位置,形成所述目标脉冲序列的步骤,包括交换周期。具体地,如图3所示,每个交换周期都可以包括:
在步骤S121中,随机产生当前周期中处理的脉冲序列中的两个地址;
在步骤S122中,将当前周期中处理的脉冲序列中所述两个地址对应的数据进行交换。
其中,所述两个地址互不相同。第一个交换周期中处理的脉冲序列为所述初始脉冲序列,从第i个交换周期中处理的脉冲序列为第i-1个交换周期中经过数据交换后形成的脉冲序列,i为不小于2的自然数。
循环上述步骤S121和步骤S122,在多次数据交换后得到所述目标脉冲序列。
其中,在所述交换周期中,随机产生的地址位于有效地址区间[0,T)内,T为目标脉冲序列的时刻数量。对于任意一个交换周期而言,当前周期中处理的脉冲序列中各地址对应的数据可以为脉冲(1值)或非脉冲(0值)。
如上文中所述,通过产生连续的脉冲可以提高脉冲产生的速度,降低硬件复杂度,提高硬件的效率,可适配于短时间段,有助于降低计算时域时刻的数量,从而降低运算量。多次数据交换过程如图6所示,多次数据交换后的脉冲序列即为目标脉冲序列。形成的目标脉冲序列如图7所示,通过随机交换连续脉冲序列中的数据的位置,产生的新的脉冲序列是随机的,疏密均匀的,生物特性符合度高。本公开对数据交换的次数不做限制。
在一种可选的实施方式中,所述随机产生当前周期中处理的脉冲序列中的两个地址的步骤S121,可以具体被执行为:
随机产生第一地址和第二地址。
相应地,如图4所示,所述将当前周期中处理的脉冲序列中所述两个地址对应的数据进行交换的步骤S122可以具体包括:
在步骤S122a中,将当前周期中处理的脉冲序列中的所述第一地址对应的第一地址数据写当前周期中处理的脉冲序列中的第二地址,获得中间脉冲序列;
在步骤S122b中,将当前周期中处理的脉冲序列中的所述第二地址对应的第二地址数据写入所述中间脉冲序列中的第一地址。
下面对包括上述实施方式进行举例说明。一次数据交换过程中(即,一个交换周期)需要产生两个地址,每次随机产生一个地址,先随机产生地址addrA(第一地址),再随机产生地址addrB(第二地址);先将当前周期处理的脉冲序列中的地址addrA对应的数据dataA(第一地址数据)写入连续脉冲序列中的地址addrB,并获得中间脉冲序列,同时输出连续脉冲序列中的地址addrB原始对应的数据dataB(第二地址数据);再将数据dataB写入中间脉冲序列中的地址addrA,完成一次数据交换过程。
在一种可选的实施例中,在一次数据交换过程中,随机产生的第一地址和第二地址不同。
在一种可选的实施例中,随机产生连续脉冲序列中的两个地址还可以是同时产生位于有效地址区间[0,T)内的两个地址,并将两个地址对应的数据进行交换,本公开对随机产生连续脉冲序列中地址的方式、数据交换的方式均不做限制。
下面结合附图介绍本公开的另一种实施例,在该实施例中,所述初始脉冲序列包括一个数据串。
在本实施方式中,如图8所示,所述根据输入数值生成初始脉冲序列的步骤S110可以包括:
在步骤S111’中,根据输入数值,确定待生成的目标脉冲序列中产生脉冲的时刻数量n1和不产生脉冲的时刻数量n2,其中,n1和n2均为不小于0的整数,且n2和n2不同时为0,待生成的目标脉冲序列为脉冲神经网络在一个时间段内的脉冲序列;
在步骤S112’中,根据时刻数量n1和时刻数量n2,在当前时间段内形成所述初始脉冲序列,所述初始脉冲序列选自连续脉冲串和连续非脉冲串中的一者。
相应地,如图9所示,所述随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列的步骤S120可以包括:
在步骤S121’中,根据所述时刻数量n1和所述时刻数量n2确定所述初始脉冲序列中当前时间段内需要更改数据的时刻数量n3,其中,n3为不小于0的整数;
在步骤S122’中,随机对所述初始脉冲序列中当前时间段内n3个时刻对应的数据进行更改,形成所述目标脉冲序列。
在本实施例中,输入数值例如可以是图像的像素数值、语音波形转换的数值、文本转换的数值、图像预处理后的计算结果等。本公开对输入数值不做具体限定。需要更改数据的n3个时刻为不同的时刻。
如上文中所述,脉冲神经网络是一种带有时间维度编码信息的网络,在本公开中,脉冲神经网络的运行过程的最小时间单位为一个时刻。每个时刻可能出现脉冲或不出现脉冲,每个时刻的脉冲信息是一个二值变量,即有脉冲或无脉冲。例如,一个时间段包含R个时刻。R=n1+n2,其中n1个时刻有脉冲,n2个时刻无脉冲,且在此时间段内脉冲的时刻位置尽量随机。需要更改的数据可以为脉冲(例如,值为1)或者非脉冲(例如,值为0)。
其中,待生成的目标脉冲序列的脉冲总个数n1与输入数值呈正相关,目标脉冲序列是时间维度随机的脉冲序列,每个输入数值转换为一个时间维度随机的目标脉冲序列。
在本公开中,对所述初始脉冲序列中包括的数据串是连续脉冲串还是连续非脉冲串没有特殊的限定。在本公开中,可以根据n1和n2二者之间的大小关系来确定初始脉冲序列中的数据串的具体类型。
在一种可选的实施方式中,根据时刻数量n1和时刻数量n2,在当前时间段内形成所述初始脉冲序列,的步骤S112’可以包括:
若时刻数量n1大于等于时刻数量n2,在当前时间段内对每个时刻都产生一个脉冲,形成包括连续脉冲串的所述初始脉冲序列。
相应地,在根据所述时刻数量n1和所述时刻数量n2确定所述初始脉冲序列的步骤S121’中,将n3确定为与n2相等(即,n3=n2)。
在本公开中,对如何执行步骤S122’不做特殊的限定。针对上述n3=n2的情况,步骤S122’可以具体包括执行n3次的归零步骤。如图10所示,每次归零步骤都可以包括:
在步骤S122’a中,随机产生当前归零步骤中的脉冲序列中的拟归零时刻;
在步骤S122’b中,在所述当前归零步骤中处理的脉冲序列中的所述拟归零时刻对应的数据为1的情况下,将所述拟归零时刻对应的数据归零。
其中,第一次执行所述归零步骤时,所述当前归零步骤中处理的脉冲序列为所述初始脉冲序列,第j次执行所述归零步骤时,所述当前归零步骤中处理的脉冲序列为第j-1次执行所述归零步骤后的脉冲序列,且最后一次归零步骤结束后生成的脉冲序列为所述目标脉冲序列。需要指出的是,j为自然数,j=2,……n3。
上文中介绍了n1大于或等于n2时,该具体如何执行步骤S112和步骤S120,下文中介绍n1小于n2时,该具体如何执行步骤S112和步骤S120。
在一种可选的实施方式中,根据时刻数量n1和时刻数量n2,在当前时间段内形成初始脉冲序列的步骤S112’可以包括:
若时刻数量n1小于时刻数量n2,在当前时间段内对每个时刻都不产生脉冲,形成包括连续非脉冲串的所述初始脉冲序列。
在根据所述时刻数量n1和所述时刻数量n2确定所述初始脉冲序列中当前时间段内需要更改数据的时刻数量n3的步骤S121’中,将n3确定为与n1相等(即,n3=n1)。
针对上述n3=n2的情况,步骤S122’可以具体包括执行n3次的置一步骤。如图11所示,每次置一步骤都可以包括:
在步骤S122’c中,随机产生当前置一步骤中处理的脉冲序列中的拟置一时刻;
在步骤S122’d中,在所述当前置一步骤中处理的脉冲序列中的拟置一时刻对应的数据为0的情况下,将所述拟置一时刻对应的数据置1。
第一次执行所述置一步骤时,所述连续脉冲序列为所述初始脉冲序列,第j次执行所述置一步骤时,所述当前置一步骤中处理的脉冲序列为第j-1次执行所述置一步骤后的脉冲序列,且最后一次置一步骤结束后生成的脉冲序列为所述目标脉冲序列。需要指出的是,j为自然数,j=2,……n3。
本实施例所提供的方法,应用于脉冲神经网络,一个时间段包括多个时刻,每个时刻位置可以1(脉冲)或0(非脉冲),一个时间段内的所有时刻组成一个目标脉冲序列。例如一个时间段的总时刻数为R,R=n1+n2,其中n1个时刻有脉冲,n2个时刻无脉冲,且在此时间段内脉冲的时刻位置尽量随机。可以根据输入数值预先判断出时刻数量n1和时刻数量n2的数量,若时刻数量n1大于等于时刻数量n2,可以先将当前时段的所有时刻都先置1(即产生脉冲),再随机删除其中的n2个时刻对应的脉冲;若时刻数量n2大于时刻数量n1,可以先将所有时刻都先置0(即不产生脉冲),再随机对其中的n1个时刻产生脉冲。
本公开所述的方法,一方面通过产生连续的脉冲可以提高脉冲产生的速度,降低硬件复杂度提高硬件的效率,可适配于短时间段,有助于降低计算时域时刻的数量,从而降低运算量;另一方面通过随机更改其中的部分脉冲,产生的脉冲序列是随机的,疏密均匀的,可以提高生物特性符合度。
作为本公开的第二个方面,提供一种数值转脉冲的装置,所述装置用于将输入述之转换为脉冲神经网络的脉冲序列,如图12所示,所述装置包括:
缓冲区110,该缓冲区110用于根据输入数值产生初始脉冲序列并存储所述初始脉冲序列,其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲串中的一者,所有所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;
更改器120,该更改器120用于对所述初始脉冲序列中数据进行改变,以形成所述目标脉冲序列。
本公开所提供的装置用于执行本公开第一个方面所提供的方法。
其中,脉冲神经网络是一种带有时间维度编码信息的网络。举例来说,脉冲神经网络的运行过程的最小时间单位为一个时刻。每个时刻可能出现脉冲或不出现脉冲,每个时刻的脉冲信息是一个二值变量,即有脉冲或者无脉冲。例如,一个时间段包含T个时刻。可以通过随机发放的脉冲个数预期值来表示脉冲神经网络的编码信息。
上文中已经对所述方法的原理以及有益效果进行了详细描述,这里不再赘述。
在一种可选的实施方式中,缓冲区110还用于根据输入述之确定目标脉冲序列的时刻数量T和脉冲发生频率n,并产生包括连续n*T个脉冲的连续脉冲串和包括连续T-n*T个非脉冲的连续非脉冲串,以形成所述初始脉冲序列,其中,T为大于0的整数,n大于或等于0,且n小于1。
作为一种可选实施方式,所述输入数值可以为图像的像素值,其中,目标脉冲序列的脉冲个数预期值(脉冲总个数)与图像的像素值呈正相关,目标脉冲序列是时间维度随机的脉冲序列,每个图像的像素数值转换为一个时间维度随机的目标脉冲序列。例如,目标脉冲序列的时刻数量T为12,脉冲发生频率n为67%,生成的连续脉冲序列如图5所示,包括连续8个脉冲(1值)和4个非脉冲(0值)。
在一种可选的实施方式中,如图13所示,更改器120可以包括:
第一随机数发生模块121,该第一随机数发生模块121用于在各个交换周期过中随机产生相应周期中处理的脉冲序列中的两个地址;
第一控制逻辑模块122,该第一控制逻辑模块122用于在各个交换周期中,对相应周期中处理的脉冲序列中两个地址对应的数据进行交换。
其中,所述两个地址互不相同,第一个交换周期中处理的脉冲序列为所述初始脉冲序列,从第i个交换周期中处理的脉冲序列为第i-1个交换周期中经过数据交换后形成的脉冲序列,i为不小于2的自然数。
随机产生的地址位于有效地址区间[0,T)内,T为目标脉冲序列的时刻数量。通过产生连续的脉冲可以提高脉冲产生的速度,降低硬件复杂度提高硬件的效率,可适配于短时间段,有助于降低计算时域时刻的数量,从而降低运算量。多次数据交换过程如图6所示,多次数据交换后的脉冲序列即为目标脉冲序列。形成的目标脉冲序列如图7所示,通过随机交换各个周期中处理的脉冲序列中的脉冲位置,产生的新的脉冲序列是随机的,疏密均匀的,生物特性符合度高。
在一种可选的实施方式中,所述装置还包括:
第一寄存器B,该第一寄存器B用于存储第一随机数发生模块121产生的各个地址,其中,各个地址位于地址区间[0,T)内,T为目标脉冲序列的时刻数量,T大于0;
第二寄存器A,该第二寄存器A用于存储从缓冲区110中输出的各个地址对应的数据。
在一种可选的实施方式中,所述两个地址包括第一地址和第二地址。
第一随机数发生模块121用于产生各个交换周期中的第一地址并分别在各个交换周期中将相应的第一地址存储在第一寄存器B中,并且第一随机数发生模块121还用于产生各个交换周期中的第二地址并分别在各个交换周期中将相应的第二地址存储在第一寄存器B中。
第一寄存器B用于在各个交换周期中将相应的第一地址输出至缓冲区110,第一控制逻辑模块 122用于在各个交换周期中控制从缓冲区中读出相应的第一地址对应的第一地址数据并在各个交换周期中将相应的第一地址数据存储在第二寄存器A中。
第一寄存器B还用于在各个交换周期中将第二地址输出至缓冲区110中,第一控制逻辑模块122用于在各个交换周期中将第二寄存器A中的相应的第一地址数据写入缓冲区110中的相应的第二地址,同时从缓冲区110中读出相应的第二地址的第二地址数据,并将相应的第二地址数据存储在第二寄存器A中。
第一寄存器B还用于在各个交换周期中分别将相应的第一地址输出至缓冲区110,第一控制逻辑模块122还用于在各个交换周期中分别将第二寄存器A中的相应的第二地址数据写入缓冲区110中的相应的第一地址。
所有交换周期均执行完毕后,第一控制逻辑模块122可以控制从缓冲区110中输出多次数据交换后得到的所述目标脉冲序列。
举例说明,在一次数据交换过程中第一随机数发生模块需要产生两个地址,每次随机产生一个地址,先产生地址addrA(第一地址),再产生地址addrB(第二地址);第一控制逻辑模块控制先从缓冲区110中读出地址addrA对应的数据dataA(第一地址数据),再将数据dataA写入缓冲区110中的地址addrB,并同时从缓冲区110中读出地址addrB对应的数据dataB(第二地址数据),最后将数据dataB写入缓冲区110中的地址addrA,完成一次数据交换过程。
其中,在一次数据交换过程中,随机产生的第一地址和第二地址不同。
在一种可选的实施方式中,第一随机数产生模块采用线性反馈移位寄存器(LFSR)结构,可以减少硬件功耗。
本公开所述的装置在缓冲区110完成数据初始化,即产生初始脉冲序列后,由第一控制逻辑模块122控制进入交换周期,每个交换周期包括如下步骤:
在步骤S1中,第一控制逻辑模块122发送更新使能信号至第一随机数发生模块121,并关闭缓冲区110的写使能;
在步骤S2中,第一随机数发生模块121产生地址dataA,第一控制逻辑模块122发送更新使能信号至第一随机数发生模块121,并关闭缓冲区110的写使能,地址dataA同时存储在第一寄存器B中;
在步骤S3中,第一随机数发生模块121产生地址addrB,控制逻辑对缓冲区110输入步骤S2中产生的地址dataA(此地址由第一寄存器B输出),并从缓冲区110中读取地址dataA对应的数据dataA,第一控制逻辑模块122不发送更新使能信号至第一随机数发生模块121,数据dataA同时存储在第二寄存器A中;
在S4中,第一控制逻辑模块122打开缓冲区110的写使能,并对缓冲区110输入步骤S3中产生的地址dataB(此地址由第一寄存器B输出),第一控制逻辑模块122将第二寄存器A中的数据dataA写入缓冲区110中的地址addrB,同时第一控制逻辑122从缓冲区中读取地址addrB对应的数据dataB,并将数据dataB存储在第二寄存器A中;
在S5中,第一控制逻辑模块122打开缓冲区110的写使能,并对缓冲区输入步骤S2中产生的地址dataA(此地址由第一寄存器B输出),将第二寄存器A中的数据dataB写入缓冲区110中的地址dataA;
循环S1-S5多次(例如10次),之后顺序输出缓冲区110中各地址的数据,即为目标脉冲序 列。
下面对本公开实施例所述提供的另一种数值转脉冲的装置,在所述装置中,缓冲区110具体用于:
根据输入数值,确定待生成的目标脉冲序列中产生脉冲的时刻数量n1和不产生脉冲的时刻数量n2所形成的连续脉冲串或连续非脉冲串,其中,n1和n2均为不于0的整数,且n1和n2不同时为0;
根据所述时刻数量n1和所述时刻数量n2,在一个形成所述初始脉冲序列,其中,所述初始脉冲序列选自连续脉冲串和连续非脉冲串中的一者。
如图14所示,更改器120包括:
第二随机数发生模块121’,该第二随机数发生模块121’用于根据时刻数量n1和时刻数量n2确定初始脉冲序列中当前时间段内需要更改数据的时刻数量n3,且第二随机数发生模块121’还用于随机产生缓冲区110中存储的初始脉冲序列中需要更改数据的n3个时刻,其中,n3为不小于0的整数;
第二控制逻辑模块122’,该第二控制逻辑模块122’用于对缓冲区110中存储的初始脉冲序列在当前时间段内的n3个时刻对应的数据进行更改,形成目标脉冲序列。
其中,如上文中所述,脉冲神经网络是一种带有时间维度编码信息的网络。举例来说,脉冲神经网络的运行过程的最小时间单位为一个时刻。每个时刻可能出现脉冲或不出现脉冲,每个时刻的脉冲信息是一个二值变量,即有无脉冲。例如,一个时间段包含R个时刻。R=n1+n2,其中n1个时刻有脉冲,n2个时刻无脉冲,且在此时间段内脉冲的时刻位置尽量随机。
待生成的目标脉冲序列的脉冲总个数n1与输入数值呈正相关,目标脉冲序列是时间维度随机的脉冲序列,每个输入数值转换为一个时间维度随机的目标脉冲序列。
在一种可选的实施方式中,初始脉冲序列为根据目标脉冲序列产生脉冲的时刻数量n1和不产生脉冲的时刻数量n2所形成的连续脉冲串或连续非脉冲串。
缓冲区110可以根据输入数值,确定待生成的目标脉冲序列产生脉冲的时刻数量n1和不产生脉冲的时刻数量n2。
若时刻数量n1大于等于时刻数量n2,缓冲区110用于将该缓冲区110中当前时间段内的每个时刻都写入c值,形成包括连续脉冲串的初始脉冲序列,其中,c=1。
若所述时刻数量n1小于时刻数量n2,缓冲区110用于将该缓冲区110中在当前时间段内的每个时刻都写入c值,形成包括连续非脉冲串的初始脉冲序列,其中,c=0。
其中,c=1表示在当前时间段内对每个时刻都产生脉冲,c=0表示在当前时间段内对每个时刻都不产生脉冲。
其中,输入数值例如可以是图像的像素数值、语音波形转换的数值、文本转换的数值、图像预处理后的计算结果等。本公开对输入数值不做具体限定。
在另一种可选的实施方式中,若时刻数量n1大于等于时刻数量n2,c=1,第二随机数发生模块121’将n3确定为与n2相等;若时刻数量n1小于时刻数量n2,c=0,第二随机数发生模块121’将n3确定为与n1相等。
在一种可选的实施方式中,第二随机数发生模块121’用于分别在各个更改周期中产生缓冲区中需要更改数据的拟改写时刻,且更改周期的个数为n3个。也就是说,拟改写时刻的个数为n3个。
在一种可选的实施方式中,第二随机数发生模块121’也可以采用线性反馈移位寄存器(LFSR)结构,可以减少硬件功耗。
在一种可选的实施方式中,第二控制逻辑模块122’用于:
在各个更改周期中将缓冲区110中当前时间段内的相应拟改写时刻写入1-c值,遍历n3个拟改写时刻,直至缓冲区中当前时间段内的n3个拟改写时刻均写入1-c值,其中,1-c为0和1中的一者,且根据n1和n2之间的大小关系确定1-c的值。
具体地,若时刻数量n1大于等于所述时刻数量n2,1-c为0,即将缓冲区110中当前时间段内的拟改写时刻对应的脉冲进行删除;
若时刻数量n1小于所述时刻数量n2,1-c为1,即对缓冲区110中当前时间段内的拟改写时刻发送脉冲。
本公开所述的装置可以根据输入数值预先判断出时刻数量n1和时刻数量n2的数量,根据时刻数量n1和时刻数量n2的数量将缓冲区110中当前时间段内的每个时刻都写入c值。若时刻数量n1大于等于时刻数量n2,可以先将缓冲区中当前时段的所有时刻都先写入1(即产生脉冲),那么第二控制逻辑模块122’对其中n3个时刻写为0,即删除其中n3个时刻对应的脉冲;若时刻数量n2大于时刻数量n1,可以先将缓冲区110中当前时段的所有时刻都先写为0(即不产生脉冲),那么第二控制逻辑模块122’对其中n3个时刻写为1,即对其中n3个时刻发放脉冲。
在另一种可选的实施方式中,所述装置还包括循环控制计数器130,该循环计数器130用于对第二控制逻辑模块122’更改的数据个数进行计数,第二控制逻辑模块122’每更改一个数据,循环控制计数器130递减1,直至第二控制逻辑更改完脉冲序列存储区中当前时间段内的n3个时刻对应的数据。
作为一种可选实施方式,循环控制计数器130预先设置了数值n3。第二控制逻辑模块122’每更改一个数据,循环控制计数器中存储的数据减1。当第二控制逻辑模块122’完成n-3个数据的更改后,循环控制计数器130中的数据减为0。
通过随机数产生器每次产生一个随机数,该随机数即为需要更改数据的时刻位置(即,拟改写时刻),第二控制逻辑模块122’负责检查拟改写时刻是否已经更改过数据,如果拟改写时刻的数据已经更改,那么第二控制逻辑模块122’通知第二随机数发生模块121’重新产生随机数,也即重新确定需要更改数据的时刻位置(即,重新确定拟改写时刻),直至确定出未更改过数据的时刻为止。如果第二随机数发生模块121’生成的拟改写时刻对应的数据还未更改,那么第二控制逻辑模块122’对该拟改写时刻对应的数据进行更改后,通知第二随机数发生模块121’重新产生随机数,并通知循环控制计数器130将需要更改数据的个数减1,并重复循环的过程,直到需要更改数据的个数等于0后结束更改过程,将获得的脉冲序列作为结果输出。
在一种可选的实施方式中,如图14所示,循环控制计数器130包括:
为c判断模块131,该为c判断模块121用于对缓冲区110在当前时间段内的数据进行判断;
递减计数模块132,该递减计数模块132用于在各个更改周期中存储相应的剩余拟改写时刻的数量,递减计数模块132在为c判断模块131判定缓冲区110中写入全c值、并在第二控制逻辑模块122’对缓冲区110中当前时间段内的各个更改周期对应拟改写时刻写入1-c值后,对相应的剩余拟修改时刻的数量减1,其中,第一个更改周期对应的剩余拟改写时刻的数量为n3;
归零判断模块133,该归零判断模块133用于判断递减计数模块132中的剩余拟改写时刻的数 量是否为0。
如图14所示,本公开所述的装置可以有三种状态:
状态1,载入状态:
采用写入地址线遍历所有地址(每个时间段内的所有时刻),将缓冲区110写入全c值,将拟更改个数n3作为初始化值写入递减计数模块132。
状态2,更改状态:
第二随机数发生模块121’产生随机地址,根据此地址从缓冲区110中读取地址数据,为c判断模块131判断,如果为c,则通知递减计数模块132中存储的数值递减1,并打开写使能将1-c值写入缓冲区110的此地址位置,同时判断递减计数模块132中存储的数值是否已经归0,如果已经归0,则通知第二控制逻辑模块122’进入状态3,否则继续状态2,第二随机数发生模块122’继续产生新的地址并循环。
状态3,输出状态:
读取地址线遍历所有地址,将缓冲区中的数据输出。
作为本公开的第三个方面,提供一种电子设备,包括服务器、终端等。该电子设备包括:至少一个处理器;与至少一个处理器通信连接的存储器;以及与存储介质通信连接的通信组件,所述通信组件在处理器的控制下接收和发送数据;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行以实现上述实施例中的图像转脉冲的方法。
在一种可选的实施方式中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现图像转脉冲的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的图像转脉冲的方法。
上述产品可执行本申请实施例所提供的图像转脉冲的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的图像转脉冲的方法。
作为本公开的第四个方面,提供一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的图像转脉冲的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没 有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
此外,本领域普通技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本领域技术人员应理解,尽管已经参考示例性实施例描述了本发明,但是在不脱离本发明的范围的情况下,可进行各种改变并可用等同物替换其元件。另外,在不脱离本发明的实质范围的情况下,可进行许多修改以使特定情况或材料适应本发明的教导。因此,本发明不限于所公开的特定实施例,而是本发明将包括落入所附权利要求范围内的所有实施例。
Claims (29)
- 一种数值转脉冲的方法,其特征在于,所述方法用于将输入数值转换为脉冲神经网络的脉冲序列,所述方法包括:根据输入数值生成初始脉冲序列,其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲串中的一者,所有所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列。
- 根据权利要求1所述的方法,其特征在于,所述初始脉冲序列包括多个所述数据串,且多个所述数据串包括连续脉冲串和连续非脉冲串;所述随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列包括:随机交换所述初始脉冲序列中数据的位置,形成所述目标脉冲序列。
- 如权利要求2所述的方法,其中,所述根据输入数值生成初始脉冲序列包括:根据所述输入数值,确定所述待生成的目标脉冲序列的时刻数量T和脉冲发生频率n,其中,T为大于0的整数,n大于或等于0,且n小于1;产生包括连续n*T个脉冲的连续脉冲串和包括连续T-n*T个非脉冲的连续非脉冲串,以形成所述初始脉冲序列。
- 如权利要求2所述的方法,其中,所述随机交换所述初始脉冲序列中数据的位置,形成所述目标脉冲序列的步骤包括多个交换周期,每个交换周期都包括:随机产生当前周期中处理的脉冲序列中的两个地址;将当前周期中处理的脉冲序列中所述两个地址对应的数据进行交换,其中,所述两个地址互不相同,第一个交换周期中处理的脉冲序列为所述初始脉冲序列,从第i个交换周期中处理的脉冲序列为第i-1个交换周期中经过数据交换后形成的脉冲序列,i为不小于2的自然数。
- 如权利要求4所述的方法,其中,所述随机产生当前周期中处理的脉冲序列中的两个地址,包括:随机产生第一地址和第二地址;所述将当前周期中处理的脉冲序列中所述两个地址对应的数据进行交换,包括:将当前周期中处理的脉冲序列中的所述第一地址对应的数据写入当前周期中处理的脉冲序列中的第二地址,获得中间脉冲序列;将当前周期中处理的脉冲序列中的所述第二地址对应的数据写入所述中间脉冲序列中的第一地址。
- 根据权利要求1所述的方法,其特征在于,所述根据输入数值生成初始脉冲序列,包括:根据输入数值,确定待生成的目标脉冲序列中产生脉冲的时刻数量n1和不产生脉冲的时刻数量n2,其中,n1和n2均为不小于0的整数,且n1和n2不同时为0;根据所述时刻数量n1和所述时刻数量n2,在当前时间段内形成所述初始脉冲序列,其中,所述初始脉冲序列选自连续脉冲串和连续非脉冲串中的一者;所述随机选择所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列包括:根据所述时刻数量n1和所述时刻数量n2确定所述初始脉冲序列中当前时间段内需要更改数据的时刻数量n3,其中,n3为不小于0的整数;随机对所述初始脉冲序列中当前时间段内n3个时刻对应的数据进行更改,形成所述目标脉冲序列。
- 根据权利要求6所述的方法,其中,根据所述时刻数量n1和所述时刻数量n2,在当前时间段内形成初始脉冲序列,包括:若所述时刻数量n1大于或等于所述时刻数量n2,在当前时间段内对每个时刻都产生一个脉冲,形成包括连续脉冲串的所述初始脉冲序列;在根据所时刻数量n1和所述时刻数量n2确定所述初始脉冲序列中当前时间段内需要更改数据的时刻数量n3的步骤中,将n3确定为与n2相等。
- 根据权利要求7所述的方法,其中,所述随机对所述初始脉冲序列中当前时间段内n3个时刻对应的数据进行更改,形成所述目标脉冲序列,包括执行n3次的归零步骤,所述归零步骤包括:随机产生当前归零步骤中处理的脉冲序列中的拟归零时刻;在所述当前归零步骤中处理的脉冲序列中的所述拟归零时刻对应的数据为1的情况下,将所述拟归零时刻对应的数据归0,其中,第一次执行所述归零步骤时,所述当前归零步骤中处理的脉冲序列为所述初始脉冲序列,第j次执行所述归零步骤时,所述当前归零步骤中处理的脉冲序列为第j-1次执行所述归零步骤后的脉冲序列,且最后一次归零步骤结束后生成的脉冲序列为所述目标脉冲序列,j为自然数,j=2,……n3。
- 根据权利要求6所述的方法,其中,根据所述时刻数量n1和所述时刻数量n2,在当前时间段内形成初始脉冲序列,包括:若所述时刻数量n1小于所述时刻数量n2,在当前时间段内对每个时刻都不产生脉冲,形成包括连续非脉冲串的所述初始脉冲序列;在根据所述时刻数量n1和所述时刻数量n2确定所述初始脉冲序列中当前时间段内需要更改数据的时刻数量n3的步骤中,将n3确定为与n1相等。
- 根据权利要求9所述的方法,其中,所述随机对所述脉冲序列中当前时间段内n3个时刻对应的数据进行更改,形成所述目标脉冲序列,包括执行n3次的置一步骤,所述置一步骤包括:随机产生当前置一步骤中处理的脉冲序列中的拟置一时刻;在所述当前置一步骤中处理的脉冲序列中的拟置一时刻对应的数据为0的情况下,将所述拟置一时刻对应的数据置1,其中,第一次执行所述置一步骤时,所述连续脉冲序列为所述初始脉冲序列,第j次执行所述置一步骤时,所述当前置一步骤中处理的脉冲序列为第j-1次执行所述置一步骤后的脉冲序列,且最后一次置一步骤结束后生成的脉冲序列为所述目标脉冲序列,j为自然数,j=2,……n3。
- 如权利要求1至10中任意一项所述的方法,其特征在于,所述输入数值包括图像的像素数值,所述脉冲个数预期值与所述图像的像素数值正相关。
- 一种数值转脉冲的装置,其特征在于,所述装置用于将输入数值转换为脉冲神经网络的脉冲序列,所述装置包括:缓冲区,所述缓冲区用于根据输入数值所产生的初始脉冲序列并存储所述初始脉冲序列,其中,所述初始脉冲序列包括至少一个数据串,各个所述数据串各自独立地选自连续脉冲串和连续非脉冲 串中的一者,所有所述数据串中脉冲的个数与待生成的目标脉冲序列的脉冲个数预期值相等,所述待生成的目标脉冲序列为所述脉冲神经网络在一个时间段内的脉冲序列;更改器,所述更改器用于对所述初始脉冲序列中的数据进行改变,形成所述目标脉冲序列。
- 如权利要求12所述的装置,其特征在于,所述初始脉冲序列包括多个所述数据串,且多个所述数据串包括连续脉冲串和连续非脉冲串;所述更改器用于随机交换所述初始脉冲序列中数据的位置,形成所述目标脉冲序列。
- 如权利要求13所述的装置,其特征在于,所述缓冲区还用于根据所述输入数值确定所述待生成的目标脉冲序列的时刻数量T和脉冲发生频率n,并产生包括连续n*T个脉冲的连续脉冲串和包括连续T-n*T个非脉冲的连续非脉冲串,以形成所述初始脉冲序列,其中,T为大于0的整数,n大于或等于0,且n小于1。
- 如权利要求13所述的装置,其特征在于,所述更改器包括:第一随机数发生模块,所述第一随机数发生模块用于在各个交换周期中随机产生相应周期中处理的脉冲序列中的两个地址;第一控制逻辑模块,所述第一控制逻辑模块用于在各个交换周期中,对相应周期中处理的脉冲序列中所述两个地址对应的数据进行交换,其中,所述两个地址互不相同,第一个交换周期中处理的脉冲序列为所述初始脉冲序列,从第i个交换周期中处理的脉冲序列为第i-1个交换周期中经过数据交换后形成的脉冲序列,i为不小于2的自然数。
- 如权利要求15所述的装置,其特征在于,所述装置还包括:第一寄存器,所述第一寄存器用于存储所述第一随机数发生模块产生的各个地址,其中,所述各个地址位于地址区间[0,T)内;第二寄存器,所述第二寄存器用于存储从所述缓冲区中输出的所述各个地址对应的数据。
- 如权利要求16所述的装置,其特征在于,所述两个地址包括第一地址和第二地址,所述第一随机数发生模块用于产生各个交换周期中的所述第一地址并分别在各个交换周期中将相应的所述第一地址存储在所述第一寄存器中;所述第一随机数发生模块用于产生各个交换周期中的所述第二地址并分别在各个交换中期中将相应的所述第二地址存储在所述第一寄存器中;所述第一寄存器用于在各个交换周期中将相应的所述第一地址输出至所述缓冲区,所述第一控制逻辑模块用于在各个交换周期中控制从所述缓冲区中读出相应的所述第一地址对应的第一地址数据并在各个交换周期中将相应的所述第一地址数据存储在所述第二寄存器中;所述第一寄存器还用于在各个交换周期中将所述第二地址输出至所述缓冲区,所述第一控制逻辑模块还用于在各个交换周期中将所述第二寄存器中的相应的第一地址数据写入所述缓冲区中的相应的第二地址,同时从所述缓冲区中读出相应的所述第二地址的第二地址数据,并将相应的所述第二地址数据存储在所述第二寄存器中;所述第一寄存器还用于在各个交换周期中分别将相应的所述第一地址输出至所述缓冲区,所述第一控制逻辑模块还用于在各个交换周期中分别将所述第二寄存器中的相应的第二地址数据写入所述缓冲区中的相应的第一地址。
- 如权利要求15至17中任意一项所述的装置,其特征在于,所述第一随机数产生器采用线性反馈移位寄存器结构。
- 如权利要求12所述的装置,其特征在于,所述装置包括:所述缓冲区用于:根据输入数值,确定待生成的目标脉冲序列中产生脉冲的时刻数量n1和不产生脉冲的时刻数量n2,其中,n1和n2均为不小于0的整数,且n1和n2不同时为0;根据所述时刻数量n1和所述时刻数量n2,在一个时间段内形成所述初始脉冲序列,其中,所述初始脉冲序列选自连续脉冲串和连续非脉冲串中的一者;所述更改器包括:第二随机数发生模块,所述第二随机数发生模块用于根据所述时刻数量n1和所述时刻数量n2,确定所述初始脉冲序列中当前时间段内需要更改数据的时刻数量n3,且所述第二随机数发生模块还用于随机产生所述缓冲区中存储的初始脉冲序列中需要更改数据的n3个时刻,其中,n3为不小于0的整数;第二控制逻辑模块,所述第二控制逻辑模块用于对所述缓冲区中存储的初始脉冲序列在当前时间段内的n3个时刻对应的数据进行更改,形成所述目标脉冲序列。
- 如权利要求19所述的装置,其中,若所述时刻数量n1大于等于所述时刻数量n2,所述缓冲区用于将所述缓冲区中当前时间段内的每个时刻都写入c值,形成包括连续脉冲串的初始脉冲序列,其中,c=1;若所述时刻数量n1小于所述时刻数量n2,所述缓冲区用于将所述缓冲区中在当前时间段内的每个时刻都写入c值,形成包括连续非脉冲串的初始脉冲序列,其中,c=0。
- 如权利要求20所述的装置,其中,若所述时刻数量n1大于等于所述时刻数量n2,c=1,所述第二随机数发生模块将n3确定为与n2相等;若所述时刻数量n1小于所述时刻数量n2,c=0,所述第二随机数发生模块将n3确定为与n1相等。
- 如权利要求19所述的装置,其中,所述第二随机数发生模块用于分别在各个更改周期中产生所述缓冲区中需要更改数据的拟改写时刻,且所述拟改写时刻的个数为n3个。
- 如权利要求22所述的装置,其中,所述第二控制逻辑模块用于:在各个更改周期中将所述缓冲区中当前时间段内的相应的拟改写时刻写入1-c值,直至所述缓冲区中当前时间段内的n3个拟改写时刻均写入1-c值,其中,1-c选自0和1中的一者,且根据n1和n2之间的大小关系确定1-c的值。
- 如权利要求23所述的装置,其中,若所述时刻数量n1大于等于所述时刻数量n2,1-c为0;若所述时刻数量n1小于所述时刻数量n2,1-c为1。
- 如权利要求19所述的装置,其中,所述装置还包括:循环控制计数器,所述循环控制计数器用于对所述第二控制逻辑模块更改的数据个数进行计数,所述第二控制逻辑模块每更改一个数据,所述循环控制计数器递减1,直至所述第二控制逻辑模块更改完所述脉冲序列存储区中当前时间段内的n3个时刻对应的数据。
- 如权利要求25所述的装置,其中,所述循环控制计数器包括:为c判断模块,所述为c判断模块用于对所述缓冲区在当前时间段内的数据进行判断;递减计数模块,所述递减计数模块用于在各个更改周期中存储相应的剩余拟改写时刻的数量, 所述递减计数模块在所述为c判断模块判定所述缓冲区写入全c值、并在所述第二控制逻辑模块对所述缓冲区中当前时间段内的各个更改周期对应的拟改写时刻写入1-c值后,对相应的剩余拟改写时刻的数量递减1,其中,第一个更改周期对应的剩余拟改写时刻的数量为n3;归零判断模块,所述归零判断模块用于判断所述递减计数模块中的剩余拟改写时刻的数量是否为0。
- 如权利要求19至26中任意一项所述的装置,其中,所述第二随机数发生模块采用线性反馈移位寄存器结构。
- 一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现如权利要求1-11中任一项所述的方法。
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现如权利要求1-11中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/800,172 US11783166B2 (en) | 2020-07-24 | 2021-07-23 | Method and apparatus for converting numerical values into spikes, electronic device and storage medium |
EP21846143.2A EP4089582A4 (en) | 2020-07-24 | 2021-07-23 | METHOD AND APPARATUS FOR CONVERTING DIGITAL VALUES INTO PEAKS, ELECTRONIC DEVICE AND STORAGE MEDIA |
JP2022549708A JP7438500B2 (ja) | 2020-07-24 | 2021-07-23 | 数値をパルスに変換する方法、装置、電子デバイス、記憶媒体 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725977.5 | 2020-07-24 | ||
CN202010725094.4 | 2020-07-24 | ||
CN202010725094.4A CN111898737B (zh) | 2020-07-24 | 2020-07-24 | 一种图像转脉冲的方法及装置 |
CN202010725977.5A CN111860786B (zh) | 2020-07-24 | 2020-07-24 | 一种数值转脉冲的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022017498A1 true WO2022017498A1 (zh) | 2022-01-27 |
Family
ID=79728523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/108134 WO2022017498A1 (zh) | 2020-07-24 | 2021-07-23 | 数值转脉冲的方法、装置、电子设备、存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11783166B2 (zh) |
EP (1) | EP4089582A4 (zh) |
JP (1) | JP7438500B2 (zh) |
WO (1) | WO2022017498A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150122421A1 (en) * | 2013-11-05 | 2015-05-07 | Tokyo Electron Limited | Plasma processing apparatus |
CN107733566A (zh) * | 2016-08-12 | 2018-02-23 | 法国矿业电信学校联盟/法国国立高等电信布列塔尼学院 | 数字编码器及编码方法 |
CN108574535A (zh) * | 2017-03-09 | 2018-09-25 | 深圳光启智能光子技术有限公司 | 用于光通信的编码方法、信号发送装置和接收装置及方法 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN111860786A (zh) * | 2020-07-24 | 2020-10-30 | 北京灵汐科技有限公司 | 一种数值转脉冲的方法及装置 |
CN111898737A (zh) * | 2020-07-24 | 2020-11-06 | 北京灵汐科技有限公司 | 一种图像转脉冲的方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4984176A (en) * | 1988-01-11 | 1991-01-08 | Den Heuvel Raymond C Van | VDH biocomputer |
US4893255A (en) * | 1988-05-31 | 1990-01-09 | Analog Intelligence Corp. | Spike transmission for neural networks |
WO2002054951A2 (en) * | 2001-01-12 | 2002-07-18 | The Government Of The United States Of America As Represented By The Secretary, Department Of Health And Human Services | Decoding algorithm for neuronal responses |
KR100718081B1 (ko) * | 2005-04-18 | 2007-05-16 | 삼성전자주식회사 | 의사윤곽 제거장치 및 그 방법 |
US8756183B1 (en) * | 2010-06-14 | 2014-06-17 | Hrl Laboratories, Llc | System for representing, storing, and reconstructing an input signal |
US8856055B2 (en) * | 2011-04-08 | 2014-10-07 | International Business Machines Corporation | Reconfigurable and customizable general-purpose circuits for neural networks |
WO2014011907A2 (en) * | 2012-07-13 | 2014-01-16 | The Trustees Of Columbia University In The City Of New York | Systems and methods for identification of spike-processing circuits |
US9189729B2 (en) * | 2012-07-30 | 2015-11-17 | International Business Machines Corporation | Scalable neural hardware for the noisy-OR model of Bayesian networks |
GB2518880A (en) * | 2013-10-04 | 2015-04-08 | Glasswall Ip Ltd | Anti-Malware mobile content data management apparatus and method |
US10341669B2 (en) | 2016-12-20 | 2019-07-02 | Intel Corporation | Temporally encoding a static spatial image |
US10740686B2 (en) * | 2017-01-13 | 2020-08-11 | Regents Of The University Of Minnesota | Stochastic computation using pulse-width modulated signals |
US11941719B2 (en) * | 2018-01-23 | 2024-03-26 | Nvidia Corporation | Learning robotic tasks using one or more neural networks |
US11270191B2 (en) | 2018-08-29 | 2022-03-08 | International Business Machines Corporation | On-chip Poisson spike generation |
US20200293860A1 (en) * | 2019-03-11 | 2020-09-17 | Infineon Technologies Ag | Classifying information using spiking neural network |
-
2021
- 2021-07-23 WO PCT/CN2021/108134 patent/WO2022017498A1/zh unknown
- 2021-07-23 US US17/800,172 patent/US11783166B2/en active Active
- 2021-07-23 JP JP2022549708A patent/JP7438500B2/ja active Active
- 2021-07-23 EP EP21846143.2A patent/EP4089582A4/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150122421A1 (en) * | 2013-11-05 | 2015-05-07 | Tokyo Electron Limited | Plasma processing apparatus |
CN107733566A (zh) * | 2016-08-12 | 2018-02-23 | 法国矿业电信学校联盟/法国国立高等电信布列塔尼学院 | 数字编码器及编码方法 |
CN108574535A (zh) * | 2017-03-09 | 2018-09-25 | 深圳光启智能光子技术有限公司 | 用于光通信的编码方法、信号发送装置和接收装置及方法 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN111860786A (zh) * | 2020-07-24 | 2020-10-30 | 北京灵汐科技有限公司 | 一种数值转脉冲的方法及装置 |
CN111898737A (zh) * | 2020-07-24 | 2020-11-06 | 北京灵汐科技有限公司 | 一种图像转脉冲的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4089582A1 (en) | 2022-11-16 |
US11783166B2 (en) | 2023-10-10 |
JP7438500B2 (ja) | 2024-02-27 |
US20230104942A1 (en) | 2023-04-06 |
JP2023521540A (ja) | 2023-05-25 |
EP4089582A4 (en) | 2023-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111898737B (zh) | 一种图像转脉冲的方法及装置 | |
CN111860786B (zh) | 一种数值转脉冲的方法及装置 | |
JP5989790B2 (ja) | ニューラルネットワークのシナプス重みを記憶するために確率的方法でメモリを使用するための方法および装置 | |
JP2018014114A (ja) | ニューロプロセッサにおける交換可能なシナプス荷重記憶装置に関する方法及びシステム | |
CN102341815B (zh) | 使用记忆切换元件的具有尖峰-时间依赖塑性的电子学习突触 | |
CN111464154A (zh) | 一种控制脉冲的计算方法及装置 | |
JP6783824B2 (ja) | 量子メモリシステムにおけるタイミング制御 | |
CN101894591B (zh) | 一种基于lfsr的外部存储接口的随机测试装置 | |
CN110956258B (zh) | 一种神经网络加速电路和方法 | |
WO2022017498A1 (zh) | 数值转脉冲的方法、装置、电子设备、存储介质 | |
CN106354243A (zh) | 一种微控制器芯片的低功耗管理方法 | |
JP2006303863A (ja) | パルス信号生成装置 | |
KR20220052355A (ko) | 인공지능 모드를 가진 메모리 시스템의 데이터 복사 | |
CN112418429B (zh) | 一种实现cz门的方法及系统 | |
JP2009104605A (ja) | メモリアクセス動作を改善するための、バンクを用いたヒストグラム生成 | |
CN111026258B (zh) | 处理器及降低电源纹波的方法 | |
CN103210449B (zh) | 存储器上用于可扩展性能的管线架构 | |
KR100927772B1 (ko) | 왜곡 없는 펄스 폭 변조 파 발생 장치 및 그 방법 | |
US6189054B1 (en) | System for operating a circulating memory which can be addressed via a write and/or read pointer by outputting a signal upon an occurrence of a jump of the pointer | |
CN116755639B (zh) | 闪存接口的性能评估方法及相关装置 | |
CN114400032B (zh) | 一种动态加速阻变存储器阻值设置的方法、装置和介质 | |
RU2447503C1 (ru) | Устройство аппаратной реализации эволюционного алгоритма с нечеткими операторами | |
CN111033532B (zh) | 生成对抗网络的训练方法和系统、电子设备和存储介质 | |
CN112711295A (zh) | 时序产生器、时序产生方法以及控制芯片 | |
RU2045778C1 (ru) | Устройство для моделирования нейронных сетей |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21846143 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022549708 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2021846143 Country of ref document: EP Effective date: 20220812 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |