1.一种基于概率计算的脉冲神经网络实现方法,其特征在于,包括以下步骤:S1、搭建并训练CNN网络,得到CNN网络的神经元权重;CNN网络包括至少一层卷积层、一层池化层和两层全连接层;其中CNN网络的神经元为ReLU神经元;池化层为均值池化;
S2、将训练后的CNN网络的全连接层和卷积层的偏置均置为0;
S3、采用基于概率计算的IF神经元代替ReLU神经元;
S4、采用基于概率计算的加法器树来执行CNN网络中的求和操作;
S5、采用基于数据选择器的加法器来执行CNN网络中的池化操作;
S6、采用内积运算电路和概率加法器来执行卷积操作;
S7、将训练得到的CNN网络的神经元权重赋给当前神经网络,得到基于概率计算的脉冲神经网络;
每个IF神经元结构包括一个第一随机数生成器,并包括以下处理过程:A1、通过第一随机数生成器生成与输入当前IF神经元结构的数的个数相同的随机数;
A2、通过比较器将生成的随机数与输入当前IF神经元结构的数进行比较,得到比较结果;
A3、通过SC乘法器将比较结果与相应的权重相乘,得到第一相乘结果;
A4、将同一个IF神经元结构中的所有第一相乘结果和位移寄存器中的膜电压进行累加,得到膜电压;
A5、判断当前膜电压是否大于阈值电压,若是则使该IF神经元结构产生脉冲,并将当前IF神经元结构的位移寄存器中的膜电压置为0;否则将当前膜电压存储在位移寄存器中,待下一时刻调用;
每个加法器树包括一个第二随机数生成器,并包括以下处理过程:B1、通过第二随机数生成器生成与输入当前加法器树的数的个数相同的随机数;
B2、通过比较器将生成的随机数与输入当前加法器树的数进行比较,当输入IF神经元结构的数大于相应的随机数时,将高电平“1”作为比较结果;反之将低电平“0”作为比较结果;
B3、通过与门组将比较结果和对应权重相乘,得到第二相乘结果;与门组包括若干个与门;
B4、通过第一级或门组对第二相乘结果进行处理,得到第一级处理结果;
B5、通过第n级或门组对第n‑1级或门组得到的处理结果进行处理,直至一个加法器树仅输出一个处理结果,即得到单个求和操作的结果;
其中第n级或门组中或门的数量是第n‑1级或门组的一半;
步骤S6中采用内积运算电路和概率加法器来执行卷积操作的具体方法包括以下步骤:D1、将需要进行卷积操作的数据存入基于FIFO的行缓存结构;
D2、将基于FIFO的行缓存结构中每一行的数据输入到位于同一行的不同寄存器中,分别得到不同行中不同寄存器对应的reg值;
D3、将不同寄存器对应的reg值与相应的权重值通过与门相乘,得到第三相乘结果;
D4、将同一行数据对应的所有第三相乘结果通过加法器进行相加,得到与每一行数据对应的相加结果;
D5、将每一行数据对应的相加结果通过加法器进行相加,得到与需要进行卷积操作的数据对应的相加结果;
D6、将与需要进行卷积操作的数据对应的相加结果输入寄存器,得到相应的reg值,即得到卷积结果。
2.根据权利要求1所述的基于概率计算的脉冲神经网络实现方法,其特征在于,第一随机数生成器为基于线性反馈移位寄存器的随机数生成器;当输入IF神经元结构的数大于相应的随机数时,比较结果为高电平,即输出“1”;反之比较结果为低电平,即输出“0”,进而得到一串由1和0组成的序列。
3.根据权利要求1所述的基于概率计算的脉冲神经网络实现方法,其特征在于,步骤S5的具体方法为:当需要进行池化操作的输入序列为2n个时,采用 个基于数据选择器的加法器来进行一次池化操作:采用n个基于数据选择器的加法器通过概率值为0.5的选择序列分别对2n个输入序列进行均值计算;采用数量逐级缩半的基于数据选择器的加法器对上一级均值计算结果进行处理,直至仅得到一个均值计算结果,即得到均值池化结果。
4.一种基于权利要求1 3任一所述的基于概率计算的脉冲神经网络实现方法得到的基~于概率计算的脉冲神经网络,其特征在于,包括至少一层卷积层、一层池化层和两层全连接层;其中神经元为基于概率计算的IF神经元;求和操作由基于概率计算的加法器树来执行;
池化操作由基于数据选择器的加法器来执行;卷积操作由内积运算电路和概率加法器来执行。