CN110059800B - 脉冲神经网络转换方法及相关转换芯片 - Google Patents

脉冲神经网络转换方法及相关转换芯片 Download PDF

Info

Publication number
CN110059800B
CN110059800B CN201910079637.7A CN201910079637A CN110059800B CN 110059800 B CN110059800 B CN 110059800B CN 201910079637 A CN201910079637 A CN 201910079637A CN 110059800 B CN110059800 B CN 110059800B
Authority
CN
China
Prior art keywords
neural network
neuron
converted
pulse
clock
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.)
Active
Application number
CN201910079637.7A
Other languages
English (en)
Other versions
CN110059800A (zh
Inventor
张磊
杜子东
陈云霁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201910079637.7A priority Critical patent/CN110059800B/zh
Publication of CN110059800A publication Critical patent/CN110059800A/zh
Application granted granted Critical
Publication of CN110059800B publication Critical patent/CN110059800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical 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)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种人工神经网络转换为脉冲神经网络的脉冲神经网络转换方法及相关转换芯片,该脉冲神经网络转换方法包括:根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,该转换激活函数的结果与该人工神经网络的输入数据正相关;训练该待转换人工神经网络,得到训练后待转换人工神经网络;以及根据该训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。

Description

脉冲神经网络转换方法及相关转换芯片
技术领域
本申请涉及数据处理领域,尤其涉及一种脉冲神经网络转换方法及相关转换芯片。
背景技术
随着信息技术的不断发展和人们日益增长的需求,人们对信息及时性的要求越来越高了。目前,神经网络模型应用于各种任务场景下,例如图像识别、语音识别、自然语言处理等,但是,传统的神经网络模型运算量过大,如何有效降低神经网络模型处理任务时的运算量的问题亟待解决。
发明内容
本申请实施例提供一种脉冲神经网络转换方法及相关转换芯片,能够降低神经网络模型的运算量。
第一方面,本申请实施例提供一种神经网络转换方法,所述方法包括:
根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关;
训练所述待转换人工神经网络,得到训练后待转换人工神经网络;
根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。
在一个可能的示例中,所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
在一个可能的示例中,所述待转换层包括以下网络层中的至少一种:卷积层、全连接层、池化层。
在一个可能的示例中,所述待转换层为所述人工神经网络中的N个网络层,N为正整数。
在一个可能的示例中,所述转换激活函数为分段函数,其中:
当所述转换激活函数的输入数据小于指定数值时,所述转换激活函数的结果为指定常数;
当所述转换激活函数的输入数据大于等于所述指定数值时,所述转换激活函数的结果与所述输入数据正相关。
在一个可能的示例中,当所述待转换层为待转换卷积层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,包括:
根据所述训练后待转换人工神经网络中的待转换卷积层、修正线性单元激活函数和所述转换激活函数得到转换卷积层;
根据所述转换卷积层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换全连接层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,包括:
根据所述训练后待转换人工神经网络中的待转换全连接层、修正线性单元激活函数和所述转换激活函数得到转换全连接层;
根据所述转换全连接层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换池化层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,包括:
在所述待转换池化层为平均值池化层或者线性池化层时,根据所述训练后待转换人工神经网络中的待转换池化层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,所述时钟神经元和与所述时钟神经元对应的输出神经元之间的连接权值根据所述第一时间确定。
在一个可能的示例中,所述脉冲神经网络的脉冲编码方式为:所述脉冲神经网络输入数据的数值越大,脉冲编码后的脉冲发送时间越晚。
在一个可能的示例中,所述方法还包括:除最后一层外所述脉冲神经网络的权值取反。
在一个可能的示例中,所述方法还包括:
所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。
在一个可能的示例中,所述第一时间晚于与所述时钟神经元对应的输入神经元的输入脉冲发送时间。
在一个可能的示例中,所述方法还包括:
监控与所述时钟神经元对应的输入神经元的输入脉冲发送时间;
根据监控到的输入脉冲发送时间中的最晚时间,确定所述第一时间。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,包括:
获取与所述时钟神经元对应的输出神经元,根据该与所述输出神经元对应的输入神经元的输入脉冲、所述输出神经元与输入神经元之间的连接权值、所述时钟脉冲和所述输出神经元与所述时钟神经元之间的连接权值,确定输出脉冲。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,还包括:
与所述时钟神经元对应的输出神经元在所述第一时间以内不发送输出脉冲。
在一个可能的示例中,所述脉冲神经网络中的各网络层分别对应一个时钟神经元。
在一个可能的示例中,所述脉冲神经网络中的多个网络层对应一个时钟神经元。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由最先发放脉冲的输出神经元发送。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由累计电位最大的输出神经元发送。
第二方面,本申请实施例还提供了一种脉冲神经网络转换装置,所述装置包括:转换单元、训练单元和确定单元,其中,
所述转换单元,用于根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关;
所述训练单元,用于训练所述待转换人工神经网络,得到训练后待转换人工神经网络;
所述确定单元,用于根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。
第三方面,本申请实施例还提供了一种神经网络芯片,所述神经网络芯片包括如第二方面所述的脉冲神经网络转换装置,或者,用于执行如第一方面所述的方法。
第四方面,本申请实施例还提供了一种电子设备,所述电子设备包括如第三方面所述的芯片,或者,用于执行如第一方面所述的方法。
第五方面,本申请实施例还提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如第三方面所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
第六方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第七方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,在本申请实施例的方案中,根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,转换激活函数的结果与人工神经网络的输入数据正相关,训练待转换人工神经网络,得到训练后待转换人工神经网络,根据训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,如此,通过将人工神经网络转换脉冲神经网络进行运算,有效降低了运算量。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种脉冲神经网络转换方法的结构示意图;
图1B为本申请实施例提供的由CNN转换为SNN的处理过程示意图;
图1C为本申请实施例提供的时钟神经元的实现机制的处理过程示意图;
图2为本申请实施例提供的另一种神经网络转换方法的结构示意图;
图3为本申请实施例提供的另一种神经网络转换方法的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图;
图5是本申请实施例提供的一种脉冲神经网络转换装置的功能单元组成框图。
具体实施方式
以下分别进行详细说明。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
电子设备可以包括各种具有无线通信功能的手持设备、车载设备、无线耳机、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,UE),移动台(mobile station,MS),终端设备(terminal device)等等,电子设备例如可以为智能手机、平板电脑、耳机盒等等。为方便描述,上面提到的设备统称为电子设备。
上述电子设备可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
请参阅图1A,图1A是本申请实施例提供的一种脉冲神经网络转换方法的流程示意图,如图所示,本脉冲神经网络转换方法包括步骤101-步骤103,具体如下:
步骤101、根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关。
其中,本申请实施例中,人工神经网络可以为深度神经网络,具体可以为卷积神经网络(Convolutional Neural Network,CNN)。上述神经网络可以为用户指定的初始化的神经网络,也可以为预处理后、进行若干次迭代训练后的或者训练完毕的神经网络。上述神经网络可以为修正线性激活函数,可以为其他激活函数,如Sigmoid,TanH等。
上述转换激活函数的结果与人工神经网络的输入数据正相关,转换激活函数可以为以下至少一种:与人工神经网络的输入数据正相关的线性函数、与人工神经网络的输入数据正相关的连续函数、与人工神经网络的输入数据正相关的分段函数,在此不做限定。
本申请实施例中可以以G(x)表示转换激活函数,x为人工神经网络的输入数据。当转换激活函数为正相关的线性函数时,转换激活函数的具体形式可以为:
G(x)=ax+b
其中,a和b为预设常数。
当转换激活函数为正相关的连续函数时,转换激活函数的具体形式可为:
G(x)=cx
其中,c为预设正数。
可选地,所述转换激活函数也可以为分段函数,其中:
当所述转换激活函数的输入数据小于指定数值时,所述转换激活函数的结果为指定常数;
当所述转换激活函数的输入数据大于等于所述指定数值时,所述转换激活函数的结果与所述输入数据正相关。
其中指定数值和指定常数均可以由用户自行设置或者系统默认。譬如指定数值为1,指定常数为0,即:
当所述转换激活函数的输入数据小于1时,所述转换激活函数的结果为预设常数,譬如恒为数值0;
当所述转换激活函数的输入数据大于或等于1时,所述转换激活函数的结果与所述输入数据正相关。
其中,转换激活函数的具体形式可以为:
Figure BDA0001958967470000071
如下提供一种转换激活函数构成方式,转换激活函数可以基于预设的泄露常数以及输入数据构成,譬如,指定数值为0,指定常数为1,即:
转换激活函数的具体形式可以如下:
Figure BDA0001958967470000072
其中,L表示泄露常数,L>0,x为输入数据。
在一个可能的示例中,所述待转换层包括以下网络层中的至少一种:卷积层、全连接层、池化层。
其中,本申请实施例中,可以将人工神经网络中的卷积层、全连接层或者池化层中的一层或者多层作为待转换层,利用本申请实施例中的神经网络转换方法进行转换。
在一个可能的示例中,所述待转换层为所述人工神经网络中的N个网络层,N为正整数。
如此,可以实现对人工神经网络中的一个或者多个网络层进行转换,例如,当卷积层包括4层时,即N为4,可以利用本申请实施例中的神经网络转换方法,对其中的1层卷积层、2层卷积层等进行转换,也可以依据实际情况确定。
步骤102、训练所述待转换人工神经网络,得到训练后待转换人工神经网络。
其中,可以利用传统的人工神经网络训练方法,对待转换人工神经网络进行训练,得到训练后待转换人工神经网络。
步骤103、根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。
其中,通过从对训练后的待转换人工神经网络和时钟神经元进行转换,能够有效保证得到的脉冲神经网络的精度。
脉冲神经网络(Spiking Neuron Networks,SNN)能够有效处理空间和时间信息。脉冲神经网络可以用于图像识别、语音识别、自然语言处理。通过将人工神经网络转换脉冲神经网络进行运算,有效降低了运算量。
在一个可能的示例中,所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
其中,上述第一时间、第二时间均可以自行设置或采用系统默认的值。上述第二时间为一个时间间隔,可以理解为一个节拍。
可选地,本申请实施例中,脉冲神经网络可以使用LIF(leaky integrate-and-fire neuron)神经元作为时钟神经元,它的电位可以服从以下方程:
Figure BDA0001958967470000091
其中,V(t)表示神经元数据在t时刻的电位,L是泄露常数,且为大于0的数,ωi为与该神经元连接的第i个权值的大小,Ii(t)表示输入的第i个神经元数据在t时刻是否发放脉冲。
在一个可能的示例中,当所述待转换层为待转换卷积层时,上述步骤103,根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,可包括如下步骤:
根据所述训练后待转换人工神经网络中的待转换卷积层、修正线性单元激活函数和所述转换激活函数得到转换卷积层;
根据所述转换卷积层和所述时钟神经元,得到脉冲神经网络。
其中,可以根据训练后待转换人工神经网络中的待转换卷积层、修正线性单元激活函数和转换激活函数映射得到转换卷积层。可以根据映射得到的转换卷积层和训练后待转换人工神经网络中的其他层,例如全连接层等,以及时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换全连接层时,上述步骤103,根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,可包括如下步骤:
根据所述训练后待转换人工神经网络中的待转换全连接层、修正线性单元激活函数和所述转换激活函数得到转换全连接层;
根据所述转换全连接层和所述时钟神经元,得到脉冲神经网络。
其中,可以根据训练后待转换人工神经网络中的待转换全连接层、修正线性单元激活函数和转换激活函数映射得到转换全连接层。可以根据映射得到的转换全连接层和训练后待转换人工神经网络中的其他层,例如卷积层等,以及时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换池化层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,可以按照如下方式实施:
在所述待转换池化层为平均值池化层或者线性池化层时,根据所述训练后待转换人工神经网络中的待转换池化层和所述时钟神经元,得到脉冲神经网络。
其中,可以根据训练后待转换人工神经网络中的待转换池化层、修正线性单元激活函数和转换激活函数映射得到转换池化层。可以根据映射得到的转换池化层和训练后待转换人工神经网络中的其他层,例如全连接层等,以及时钟神经元,得到脉冲神经网络。
上述步骤103之后,还可以包括如下步骤:
A1、监控与所述时钟神经元对应的输入神经元的输入脉冲发送时间;
A2、根据监控到的输入脉冲发送时间中的最晚时间,确定所述第一时间。
在一个可能的示例中,第一时间可以根据需求进行预设。第一时间也可以通过监控各输入神经元的输入脉冲发送时间,得到网络层各输入神经元中的脉冲发送时间中的最晚时间,并根据最晚时间确定第一时间。第一时间晚于最晚时间。各输入神经元会在第一时间前输入脉冲发送完毕。
在一个可能的示例中,所述时钟神经元和与所述时钟神经元对应的输出神经元之间的连接权值根据所述第一时间确定。
其中,上述时钟神经元与该时钟神经元所在层对应的输出神经元之间的连接权值可以记为ωtick,ωtick可为与T_il负相关的正数,举例说明下,ωtick的具体形式可以如下三种形式:
ωtick的第一种形式:
Figure BDA0001958967470000101
ωtick的第二种形式:
ωtick=aT_il
其中,a为大于0且小于1的常数。
ωtick的第三种形式:
Figure BDA0001958967470000102
其中,ωtick表示连接权值,上述T_il为第一时间,上述L表示泄露常数,L大于0。
在一个可能的示例中,所述脉冲神经网络中除最后一层外所述脉冲神经网络的权值取反,以满足最初的设定编码规则。最后一层的结果用于作为网络的输出,不进行转化。
在一个可能的示例中,所述脉冲神经网络的脉冲编码方式为:所述脉冲神经网络输入数据的数值越大,脉冲编码后的脉冲发送时间越晚。
其中,针对脉冲神经网络的所有输入数据,输入数据可以为浮点数。输入数据的数值越大,则脉冲编码后的脉冲发送时间越晚。例如,5个输入数据的数值分别为a1,a2,a3,a4,a5,a1对应的脉冲发送时间为T1,a2对应的脉冲发送时间为T2,a3对应的脉冲发送时间为T3,a4对应的脉冲发送时间为T4,a5对应的脉冲发送时间为T5。若a3的数值最大,则T3最晚。采用这样的编码规则,一方面充分脉冲神经网络的脉冲发放时间来完成信息的传输,另一方面转换后的脉冲神经网络的运算结果的准确度损失更小。
采用新的编码准则,与LIF神经元的特性保持一致,即最近发放脉冲的输入神经元(包括输入神经元和时钟神经元)对输出神经元的贡献更大。
在一个可能的示例中,上述步骤103之后,还可以包括如下步骤:
所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。如此,转换后的脉冲神经网络的运算结果的准确度损失更小。
在一个可能的示例中,所述第一时间晚于与所述时钟神经元对应的输入神经元的输入脉冲发送时间。能够保证所有的输入神经元的信息都能够顺利往后传递。
在一个可能的示例中,上述步骤,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,可按照如下方式实施:
获取与所述时钟神经元对应的输出神经元,根据该与所述输出神经元对应的输入神经元的输入脉冲、所述输出神经元与输入神经元之间的连接权值、所述时钟脉冲和所述输出神经元与所述时钟神经元之间的连接权值,确定输出脉冲。如此,相对于CNN,保证输入神经元的信息传递,并且运算量大大减小。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,还包括:
与所述时钟神经元对应的输出神经元在所述第一时间以内不发送输出脉冲。由于在第一时间之前,时钟神经元的权值都是负值,因此,在第一时间以内不发送输出脉冲。
在一个可能的示例中,所述脉冲神经网络中的各网络层分别对应一个时钟神经元。
例如,脉冲神经网络包括卷积层、全连接层和池化层。卷积层可以对应时钟神经元1,全连接层对应时钟神经元2,池化层对应时钟神经元3,如此,能够根据各网络层的特性确定改成对应的时钟神经元的第一时间,等待时延小,且信息传递时灵活性高。
在一个可能的示例中,所述脉冲神经网络中的多个网络层对应一个时钟神经元。例如,脉冲神经网络包括卷积层、全连接层和池化层,其中卷积层、全连接层和池化层共同对应时钟神经元4。如此,采用同一个时钟神经元,能够降低网络整体脉冲的数量,从而节省网络运算的能耗开销。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由最先发放脉冲的输出神经元发送。如此,在具体运算过程中,能够快速输出结果,能够降低运算量。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由累计电位最大的输出神经元发送。
如此,能够降低输出结果的误差,尤其是在图像识别,路径寻优,语音识别方面,提升识别精度。
举例说明下,如图1B所示,如下提供一种由CNN转换为SNN的示意图,可以包括如下三个步骤:
1、提供一个人工神经网络CNN,该CNN包括卷积层、全连接层和池化层,将CNN转换为SNN;
2、调整该CNN的结构,具体为在权值连接层(包括卷积层(CONV)和全连接层(IP)等)之前添加转换激活函数G(x),得到待转换人工神经网络,上述权值连接层可以理解为依靠权值来连接的层。如下提供一种G(x)的具体形式:
Figure BDA0001958967470000131
其中,L是泄露常数(the leaky constant),L>0,x是输入数据。
3、训练待转换人工神经网络,得到训练后待转换人工神经网络,以及依据训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,即SNN。
其中,G(x)+CONV+ReLU可被映射为SNN中的SNN-CONV层,POOL层可被映射为SNN-POOL层,G(x)+IP+ReLU可被映射为SNN中的SNN-IP层。上述脉冲神经网络的权值在除了最后一层外都会被取反。
具体实现中,人工神经网络的输入数据均可被函数T(x)转换成脉冲时间,或者,也可以是人工神经网络中的任一层的输入数据被函数T(x)转换成脉冲时间,则该任一层之后的所有层也会被函数T(x)转换成脉冲时间,其中,T(x)的具体形式可以如下:例如,上述T(x)可为与x正相关的函数关系,如,T(x)=x+k,k为常数,又例如,上述T(x)可为非线性关系,如T(x)=log(x+3),又例如,T(x)可与L相关,具体形式如下:
T(x)=L·1n(x+1)
其中,L为泄露系数,L>0,x是输入数据。
如图1C所示,在这个机制下,输入神经元代表原始网络(原始的人工神经网络)中存在的神经元数据,可以在这个基础上增加一个与该输入神经元对应的时钟神经元,即为ticking neuron。输入神经元只会发放一次脉冲,在所有的输入神经元发放完脉冲之前,输出神经元处于抑制期,在时间点T_il后,时钟神经元将会发放脉冲,并且将每拍都发放,就像“时钟”一样,因此,本申请实施例中,将其命名为ticking neuron。
在时钟神经元的持续脉冲下,该时钟神经元对应的输出神经元将会发放脉冲,然后按照同样的方式向下传递。
具体实现中,针对SNN-POOL层的运算方式取决于原先的人工神经网络中的类型。如果映射前的类型是平均值池化层(Average Pool)或是其它的线性池化层(LinearPool),那么它会被当作有权值连接的层来处理。平均值池化层(Average Pool)或是其它的线性池化层的权值是一个常数,该常数与滑动窗口的尺寸相关。
如果映射前的类型是最大值池化层(Max Pool)或是最小值池化层(Min POOL),那么映射后的SNN按照正常的方式运算,不需要像权值连接层一样处理和运算。
本申请实施例采用时间编码的方式,实现了将人工神经网络向脉冲神经网络的转换方法,采用本申请实施例中的编码准则和运算模式,转换得到的脉冲神经网络不仅具有原始人工神经网络的精度,还能够实现运算量的显著降低。
具体实现中,设置ticking neuron,可以在时间点T_il后,每拍都发送脉冲,从而能够使得具有负电位的输出神经元也能在至少一拍发射脉冲。
可以看出,在本申请实施例的方案中,根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,转换激活函数的结果与人工神经网络的输入数据正相关,训练待转换人工神经网络,得到训练后待转换人工神经网络,根据训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,如此,由于该脉冲神经网络基于人工神经网络转换得到,因此,具备人工神经网络的精度,另外,也具备脉冲神经网络的特性,能够有效降低运算量。
与上述图1A所示的实施例一致地,请参阅图2,图2是本申请实施例提供的一种神经网络转换方法的流程示意图,所述方法应用于脉冲神经网络,该脉冲神经网络包括时钟神经元,所述脉冲神经网络包括时钟神经元,如图所示,本神经网络转换方法包括:
步骤201、所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
步骤202、所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。
其中,上述步骤201-步骤202的具体描述可以参照上述图1A所描述的神经网络转换方法的相应步骤,在此不再赘述。
可以看出,在本申请实施例的方案中,时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲,脉冲神经网络中与时钟神经元对应的输出神经元根据时钟脉冲发送输出脉冲,如此,能够保证脉冲神经网络在降低运算量的同时,达到计算误差小的目的。
与上述图1A所示的实施例一致地,请参阅图3,图3是本申请实施例提供的一种神经网络转换方法的流程示意图,如图所示,本神经网络转换方法包括:
步骤301、根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关。
步骤302、训练所述待转换人工神经网络,得到训练后待转换人工神经网络。
步骤303、根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。
步骤304、所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
步骤305、所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。
其中,上述步骤301-步骤305的具体描述可以参照上述图1A所描述的神经网络转换方法的相应步骤,在此不再赘述。
可以看出,在本申请实施例的方案中,根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,转换激活函数的结果与人工神经网络的输入数据正相关,训练待转换人工神经网络,得到训练后待转换人工神经网络,根据训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲,脉冲神经网络中与时钟神经元对应的输出神经元根据时钟脉冲发送输出脉冲,如此,由于该脉冲神经网络基于人工神经网络转换得到,因此,具备人工神经网络的精度,另外,也具备脉冲神经网络的特性,能够提升计算速度,以及能够保证脉冲神经网络在降低运算量的同时,达到计算误差小的目的。
与上述实施例一致地,请参阅图4,图4是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,本申请实施例中,上述程序包括用于执行以下步骤的指令:
根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关;
训练所述待转换人工神经网络,得到训练后待转换人工神经网络;
根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。
在一个可能的示例中,所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
在一个可能的示例中,所述待转换层包括以下网络层中的至少一种:卷积层、全连接层、池化层。
在一个可能的示例中,所述待转换层为所述人工神经网络中的N个网络层,N为正整数。
在一个可能的示例中,所述转换激活函数为分段函数,其中:
当所述转换激活函数的输入数据小于指定数值时,所述转换激活函数的结果为指定常数;
当所述转换激活函数的输入数据大于等于所述指定数值时,所述转换激活函数的结果与所述输入数据正相关。
在一个可能的示例中,当所述待转换层为待转换卷积层时,在所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络方面,上述程序包括用于执行以下步骤的指令:
根据所述训练后待转换人工神经网络中的待转换卷积层、修正线性单元激活函数和所述转换激活函数得到转换卷积层;
根据所述转换卷积层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换全连接层时,在所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络方面,上述程序包括用于执行以下步骤的指令:
根据所述训练后待转换人工神经网络中的待转换全连接层、修正线性单元激活函数和所述转换激活函数得到转换全连接层;
根据所述转换全连接层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换池化层时,在所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络方面,上述程序包括用于执行以下步骤的指令:
在所述待转换池化层为平均值池化层或者线性池化层时,根据所述训练后待转换人工神经网络中的待转换池化层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,所述时钟神经元和与所述时钟神经元对应的输出神经元之间的连接权值根据所述第一时间确定。
在一个可能的示例中,所述脉冲神经网络的脉冲编码方式为:所述脉冲神经网络输入数据的数值越大,脉冲编码后的脉冲发送时间越晚。
在一个可能的示例中,上述程序还包括用于执行以下步骤的指令:除最后一层外所述脉冲神经网络的权值取反。
在一个可能的示例中,上述程序还包括用于执行以下步骤的指令:
所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。
在一个可能的示例中,所述第一时间晚于与所述时钟神经元对应的输入神经元的输入脉冲发送时间。
在一个可能的示例中,上述程序还包括用于执行以下步骤的指令:
监控与所述时钟神经元对应的输入神经元的输入脉冲发送时间;
根据监控到的输入脉冲发送时间中的最晚时间,确定所述第一时间。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,上述程序包括用于执行以下步骤的指令:
获取与所述时钟神经元对应的输出神经元,根据该与所述输出神经元对应的输入神经元的输入脉冲、所述输出神经元与输入神经元之间的连接权值、所述时钟脉冲和所述输出神经元与所述时钟神经元之间的连接权值,确定输出脉冲。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,上述程序还包括用于执行以下步骤的指令:
与所述时钟神经元对应的输出神经元在所述第一时间以内不发送输出脉冲。
在一个可能的示例中,所述脉冲神经网络中的各网络层分别对应一个时钟神经元。
在一个可能的示例中,所述脉冲神经网络中的多个网络层对应一个时钟神经元。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由最先发放脉冲的输出神经元发送。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由累计电位最大的输出神经元发送。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图5是本申请实施例中所涉及的脉冲神经网络转换装置500的功能单元组成框图。该脉冲神经网络转换装置500,应用于电子设备,所述装置500包括:转换单元501、训练单元502和确定单元503,其中,
所述转换单元501,用于根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关;
所述训练单元502,用于训练所述待转换人工神经网络,得到训练后待转换人工神经网络;
所述确定单元503,用于根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络。
可以看出,在本申请实施例所描述的脉冲神经网络转换装置,根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,转换激活函数的结果与人工神经网络的输入数据正相关,训练待转换人工神经网络,得到训练后待转换人工神经网络,根据训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,如此,由于该脉冲神经网络基于人工神经网络转换得到,因此,具备人工神经网络的精度,另外,也具备脉冲神经网络的特性,能够提升计算速度。
在一个可能的示例中,所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
在一个可能的示例中,所述待转换层包括以下网络层中的至少一种:卷积层、全连接层、池化层。
在一个可能的示例中,所述待转换层为所述人工神经网络中的N个网络层,N为正整数。
在一个可能的示例中,所述转换激活函数为分段函数,其中:
当所述转换激活函数的输入数据小于指定数值时,所述转换激活函数的结果为指定常数;
当所述转换激活函数的输入数据大于等于所述指定数值时,所述转换激活函数的结果与所述输入数据正相关。
在一个可能的示例中,当所述待转换层为待转换卷积层时,在所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络方面,所述确定单元503具体用于:
根据所述训练后待转换人工神经网络中的待转换卷积层、修正线性单元激活函数和所述转换激活函数得到转换卷积层;
根据所述转换卷积层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换全连接层时,在所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络方面,所述确定单元503具体用于:
根据所述训练后待转换人工神经网络中的待转换全连接层、修正线性单元激活函数和所述转换激活函数得到转换全连接层;
根据所述转换全连接层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,当所述待转换层为待转换池化层时,在所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络方面,所述确定单元503具体用于:
在所述待转换池化层为平均值池化层或者线性池化层时,根据所述训练后待转换人工神经网络中的待转换池化层和所述时钟神经元,得到脉冲神经网络。
在一个可能的示例中,所述时钟神经元和与所述时钟神经元对应的输出神经元之间的连接权值根据所述第一时间确定。
在一个可能的示例中,所述脉冲神经网络的脉冲编码方式为:所述脉冲神经网络输入数据的数值越大,脉冲编码后的脉冲发送时间越晚。
在一个可能的示例中,除最后一层外所述脉冲神经网络的权值取反。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。
在一个可能的示例中,所述第一时间晚于与所述时钟神经元对应的输入神经元的输入脉冲发送时间。
在一个可能的示例中,所述确定单元503还具体用于监控与所述时钟神经元对应的输入神经元的输入脉冲发送时间;以及根据监控到的输入脉冲发送时间中的最晚时间,确定所述第一时间。
在一个可能的示例中,在所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲方面,具体为:
获取与所述时钟神经元对应的输出神经元,根据该与所述输出神经元对应的输入神经元的输入脉冲、所述输出神经元与输入神经元之间的连接权值、所述时钟脉冲和所述输出神经元与所述时钟神经元之间的连接权值,确定输出脉冲。
在一个可能的示例中,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,还包括:
与所述时钟神经元对应的输出神经元在所述第一时间以内不发送输出脉冲。
在一个可能的示例中,所述脉冲神经网络中的各网络层分别对应一个时钟神经元。
在一个可能的示例中,所述脉冲神经网络中的多个网络层对应一个时钟神经元。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由最先发放脉冲的输出神经元发送。
在一个可能的示例中,所述脉冲神经网络的输出脉冲由累计电位最大的输出神经元发送。
在一些实施例里,还申请了一种芯片,其包括了上述脉冲神经网络转换装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。上述板卡除了包括上述芯片、以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件、接口装置和控制器件;
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。可选的,当采用PCIE 3.0X16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本发明实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元可以采用硬件的形式实现。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。

Claims (23)

1.一种脉冲神经网络转换方法,其特征在于,所述方法包括:
根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关;
训练所述待转换人工神经网络,得到训练后待转换人工神经网络;
根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络;
其中,监控与所述时钟神经元对应的输入神经元的输入脉冲发送时间;
根据监控到的输入脉冲发送时间中的最晚时间,确定第一时间;
所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲。
2.根据权利要求1所述的方法,其特征在于,所述待转换层包括以下网络层中的至少一种:卷积层、全连接层、池化层。
3.根据权利要求1所述的方法,其特征在于,所述待转换层为所述人工神经网络中的N个网络层,N为正整数。
4.根据权利要求1所述的方法,其特征在于,所述转换激活函数为分段函数,其中:
当所述转换激活函数的输入数据小于指定数值时,所述转换激活函数的结果为指定常数;
当所述转换激活函数的输入数据大于等于所述指定数值时,所述转换激活函数的结果与所述输入数据正相关。
5.根据权利要求1-4任一项所述的方法,其特征在于,当所述待转换层为待转换卷积层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,包括:
根据所述训练后待转换人工神经网络中的待转换卷积层、修正线性单元激活函数和所述转换激活函数得到转换卷积层;
根据所述转换卷积层和所述时钟神经元,得到脉冲神经网络。
6.根据权利要求1-4任一项所述的方法,其特征在于,当所述待转换层为待转换全连接层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,包括:
根据所述训练后待转换人工神经网络中的待转换全连接层、修正线性单元激活函数和所述转换激活函数得到转换全连接层;
根据所述转换全连接层和所述时钟神经元,得到脉冲神经网络。
7.根据权利要求1-4任一项所述的方法,其特征在于,当所述待转换层为待转换池化层时,所述根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络,包括:
在所述待转换池化层为平均值池化层或者线性池化层时,根据所述训练后待转换人工神经网络中的待转换池化层和所述时钟神经元,得到脉冲神经网络。
8.根据权利要求1所述的方法,其特征在于,所述时钟神经元和与所述时钟神经元对应的输出神经元之间的连接权值根据所述第一时间确定。
9.根据权利要求1所述的方法,其特征在于,所述脉冲神经网络的脉冲编码方式为:所述脉冲神经网络输入数据的数值越大,脉冲编码后的脉冲发送时间越晚。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:除最后一层外所述脉冲神经网络的权值取反。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲。
12.根据权利要求1所述的方法,其特征在于,所述第一时间晚于与所述时钟神经元对应的输入神经元的输入脉冲发送时间。
13.根据权利要求11所述的方法,其特征在于,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,包括:
获取与所述时钟神经元对应的输出神经元,根据该与所述输出神经元对应的输入神经元的输入脉冲、所述输出神经元与输入神经元之间的连接权值、所述时钟脉冲和所述输出神经元与所述时钟神经元之间的连接权值,确定输出脉冲。
14.根据权利要求11所述的方法,其特征在于,所述脉冲神经网络中与所述时钟神经元对应的输出神经元根据所述时钟脉冲发送输出脉冲,还包括:
与所述时钟神经元对应的输出神经元在所述第一时间以内不发送输出脉冲。
15.根据权利要求1所述的方法,其特征在于,所述脉冲神经网络中的各网络层分别对应一个时钟神经元。
16.根据权利要求1所述的方法,其特征在于,所述脉冲神经网络中的多个网络层对应一个时钟神经元。
17.根据权利要求1所述的方法,其特征在于,所述脉冲神经网络的输出脉冲由最先发放脉冲的输出神经元发送。
18.根据权利要求1所述的方法,其特征在于,所述脉冲神经网络的输出脉冲由累计电位最大的输出神经元发送。
19.一种脉冲神经网络转换装置,其特征在于,所述装置包括:转换单元、训练单元和确定单元,其中,
所述转换单元,用于根据人工神经网络的待转换层和转换激活函数,得到待转换人工神经网络,所述转换激活函数的结果与所述人工神经网络的输入数据正相关;
所述训练单元,用于训练所述待转换人工神经网络,得到训练后待转换人工神经网络;
所述确定单元,用于根据所述训练后待转换人工神经网络和时钟神经元,得到脉冲神经网络;
其中,所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲
根据监控到的输入脉冲发送时间中的最晚时间,确定所述第一时间;
所述时钟神经元在第一时间后,以第二时间为间隔发送时钟脉冲
20.一种神经网络芯片,其特征在于,所述神经网络芯片包括权利要求19所述的脉冲神经网络转换装置,或者,用于执行权利要求1-18任一项所述的方法。
21.一种电子设备,其特征在于,所述电子设备包括所述权利要求20所述的神经网络芯片,或者,用于执行权利要求1-18任一项所述的方法。
22.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及权利要求20所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
23.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行权利要求1-18任一项所述的方法。
CN201910079637.7A 2019-01-26 2019-01-26 脉冲神经网络转换方法及相关转换芯片 Active CN110059800B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910079637.7A CN110059800B (zh) 2019-01-26 2019-01-26 脉冲神经网络转换方法及相关转换芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910079637.7A CN110059800B (zh) 2019-01-26 2019-01-26 脉冲神经网络转换方法及相关转换芯片

Publications (2)

Publication Number Publication Date
CN110059800A CN110059800A (zh) 2019-07-26
CN110059800B true CN110059800B (zh) 2021-09-14

Family

ID=67316452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910079637.7A Active CN110059800B (zh) 2019-01-26 2019-01-26 脉冲神经网络转换方法及相关转换芯片

Country Status (1)

Country Link
CN (1) CN110059800B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111260054B (zh) * 2020-01-13 2023-05-30 清华大学 一种提高联想记忆脉冲神经网络准确度的学习方法
CN113656751B (zh) * 2021-08-10 2024-02-27 上海新氦类脑智能科技有限公司 无符号dac实现有符号运算的方法、装置、设备和介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103201610A (zh) * 2010-10-29 2013-07-10 国际商业机器公司 带有使用模拟学习的突触权重的神经形态-突触器脉冲神经网络
CN105095961A (zh) * 2015-07-16 2015-11-25 清华大学 一种人工神经网络和脉冲神经网络的混合系统
CN105095965A (zh) * 2015-07-16 2015-11-25 清华大学 人工神经网络和脉冲神经网络神经的混合通信方法
CN106845632A (zh) * 2017-01-25 2017-06-13 清华大学 脉冲神经网络信息转换为人工神经网络信息的方法和系统
CN106845633A (zh) * 2017-01-25 2017-06-13 清华大学 神经网络信息转换方法和系统
CN107798384A (zh) * 2017-10-31 2018-03-13 泰山医学院 可进化脉冲神经网络构建方法和装置
CN108334933A (zh) * 2018-03-02 2018-07-27 广东工业大学 一种神经元激活函数参数调节方法及其装置
CN108985252A (zh) * 2018-07-27 2018-12-11 陕西师范大学 改进的脉冲深度神经网络的图像分类方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671912B2 (en) * 2016-09-13 2020-06-02 Sap Se Spatio-temporal spiking neural networks in neuromorphic hardware systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103201610A (zh) * 2010-10-29 2013-07-10 国际商业机器公司 带有使用模拟学习的突触权重的神经形态-突触器脉冲神经网络
CN105095961A (zh) * 2015-07-16 2015-11-25 清华大学 一种人工神经网络和脉冲神经网络的混合系统
CN105095965A (zh) * 2015-07-16 2015-11-25 清华大学 人工神经网络和脉冲神经网络神经的混合通信方法
CN106845632A (zh) * 2017-01-25 2017-06-13 清华大学 脉冲神经网络信息转换为人工神经网络信息的方法和系统
CN106845633A (zh) * 2017-01-25 2017-06-13 清华大学 神经网络信息转换方法和系统
CN107798384A (zh) * 2017-10-31 2018-03-13 泰山医学院 可进化脉冲神经网络构建方法和装置
CN108334933A (zh) * 2018-03-02 2018-07-27 广东工业大学 一种神经元激活函数参数调节方法及其装置
CN108985252A (zh) * 2018-07-27 2018-12-11 陕西师范大学 改进的脉冲深度神经网络的图像分类方法

Also Published As

Publication number Publication date
CN110059800A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN109993296B (zh) 量化实现方法及相关产品
CN109062612B (zh) 神经网络处理装置及其执行平面旋转指令的方法
JP6761134B2 (ja) プロセッサ制御装置、方法及びデバイス
US20200097795A1 (en) Processing apparatus and processing method
CN111381871B (zh) 运算方法、装置及相关产品
CN110059800B (zh) 脉冲神经网络转换方法及相关转换芯片
CN110059812B (zh) 脉冲神经网络运算芯片及相关运算方法
CN110750351A (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
CN106155301A (zh) 一种家庭物联网控制方法、装置及系统
CN109754084A (zh) 网络结构的处理方法、装置及相关产品
CN110909870A (zh) 训练装置及方法
CN111930681B (zh) 一种计算装置及相关产品
CN111193916B (zh) 运算方法
CN109213581B (zh) 一种数据处理装置和方法
WO2021185262A1 (zh) 计算装置、方法、板卡和计算机可读存储介质
CN111523653B (zh) 运算装置及方法
CN109740746B (zh) 运算方法、装置及相关产品
CN111382847B (zh) 数据处理装置及相关产品
CN110309877A (zh) 一种特征图数据的量化方法、装置、电子设备及存储介质
CN112166441A (zh) 数据处理方法、装置及计算机可读存储介质
CN109376856B (zh) 数据处理方法及处理装置
CN110020720B (zh) 算子拼接方法及装置
CN111047023B (zh) 一种计算装置及相关产品
CN111260051B (zh) 神经网络运算方法及相关装置
CN210006083U (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
GR01 Patent grant
GR01 Patent grant