CN105989408A - 用于将神经网络映射到神经突触基板上的系统和方法 - Google Patents
用于将神经网络映射到神经突触基板上的系统和方法 Download PDFInfo
- Publication number
- CN105989408A CN105989408A CN201610024915.5A CN201610024915A CN105989408A CN 105989408 A CN105989408 A CN 105989408A CN 201610024915 A CN201610024915 A CN 201610024915A CN 105989408 A CN105989408 A CN 105989408A
- Authority
- CN
- China
- Prior art keywords
- substrate
- synapse
- mapping
- mapped
- nerve synapse
- 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.)
- Granted
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
-
- 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
-
- 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
-
- 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
- G06N3/065—Analogue 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)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种用于将神经网络映射到神经突触基板上的系统和方法。所述系统包括重新排序单元,其用于对所述神经网络的邻接矩阵表示的至少一个维度进行重新排序。所述系统进一步包括映射单元,其用于选择适合于将所述矩阵表示的至少一个部分映射到所述基板上的映射方法,并且利用所选择的映射方法将所述矩阵表示的所述至少一个部分映射到所述基板上。所述系统进一步包括细化单元,其用于接收与至少一个准则有关的用户输入,所述至少一个准则涉及所述基板的准确性或资源利用。所述系统进一步包括评估单元,其用于对照每个准则评估每个被映射部分。未能满足准则的每个被映射部分能够被重新映射,以便允许所述基板的准确性与资源利用之间的权衡。
Description
技术领域
本发明的实施例涉及神经形态和神经突触计算,具体地说,涉及基于与神经突触基板相关的准则,在神经突触基板上实现神经网络算法。
背景技术
神经形态和神经突触计算(也称为人工神经网络)是受生物大脑启发的计算系统。例如,神经形态和神经突触计算可以包括各种电子电路和/或在受生物大脑的神经元启发的处理元件之间创建连接。
在生物系统中,神经元的轴突与另一个神经元上的树突之间的接触点称为突触,并且相对于该突触,这两个神经元分别称为突触前和突触后神经元。我们个人经历的精华存储在突触的电导中。突触电导按照尖峰脉冲时序相关可塑性(STDP),作为突触前和突触后神经元的相对尖峰脉冲时间的函数而随时间改变。如果在触发突触的突触前神经元之后触发突触的突触后神经元,则STDP规则增加该突触的电导,并且如果两个触发的顺序相反,则减小该突触的电导。
发明内容
本发明的一个实施例提供一种用于将神经网络映射到神经突触基板上的系统。所述系统包括重新排序单元,其用于对所述神经网络的邻接矩阵表示的至少一个维度进行重新排序。所述系统进一步包括映射单元,其用于选择适合于将所述矩阵表示的至少一个部分映射到所述基板上的映射方法,并且利用所选择的映射方法将所述矩阵表示的所述至少一个部分映射到所述基板上。所述系统进一步包括细化单元,其用于接收与至少一个准则有关的用户输入,所述至少一个准则涉及所述基板的准确性或资源利用。所述系统进一步包括评估单元,其用于对照每个准则评估每个被映射部分。未能满足准则的每个被映射部分能够被重新映射,以便允许所述基板的准确性与资源利用之间的权衡。
本发明的另一个实施例提供一种用于将神经网络映射到神经突触基板上的方法。所述方法包括对所述神经网络的邻接矩阵表示的一个或多个维度进行重新排序。所述方法进一步包括从多种映射方法中选择适合于将所述矩阵表示的一个或多个部分映射到所述神经突触基板上的映射方法,并且利用所选择的映射方法将所述矩阵表示的所述一个或多个部分映射到所述神经突触基板上。所述方法进一步包括接收与一个或多个准则有关的用户输入,所述一个或多个准则涉及所述神经突触基板的准确性和资源利用中的至少一个,并且对照所述一个或多个准则评估每个被映射部分。未能满足所述一个或多个准则的每个被映射部分能够被重新映射,以便允许所述神经突触基板的准确性与资源利用之间的权衡。
参考以下描述、所附权利要求和附图,本发明的这些和其它特性、方面和优点将变得显而易见。
附图说明
图1示出根据本发明的一个实施例的实例神经突触核心电路(“核心电路”);
图2示出根据本发明的一个实施例的实例框架;
图3示出根据本发明的一个实施例的实例邻接矩阵;
图4示出根据本发明的一个实施例的图3中的实例邻接矩阵的详细视图;
图5示出根据本发明的一个实施例的实例重新排序后的图;
图6示出根据本发明的一个实施例的实例重新排序后的图,其具有拆分器和合并器以便允许作为可映射块提取子矩阵;
图7示出根据本发明的一个实施例的所提取的子矩阵的实例映射;
图8示出根据本发明的一个实施例的将块标记为已映射;
图9示出根据本发明的一个实施例的在删除已映射块之后的另一个重新排序后的图;
图10示出根据本发明的一个实施例的用于在神经突触基板上实现神经网络算法的一个实例过程的流程图;
图11示出根据本发明的一个实施例的用于对输入图进行重新排序的一种实例聚集方法;
图12示出根据本发明的一个实施例的用于对输入图进行重新排序的实例权重下降阻止算法;
图13示出根据本发明的一个实施例的用于基于权重下降阻止算法对输入图进行重新排序的一个实例过程的流程图;
图14示出根据本发明的一个实施例的基于成对质心距离最小化对输入图进行重新排序;
图15示出根据本发明的一个实施例的用于基于权重下降阻止算法对输入图进行重新排序的一个实例过程的流程图;
图16示出根据本发明的一个实施例的实例拆分表;
图17示出根据本发明的一个实施例的实例合并表;
图18示出根据本发明的一个实施例的用于利用元数据提供增强的一个实例框架;以及
图19是示出可用于实现本发明的一个实施例的信息处理系统的高级框图。
具体实施方式
本发明的实施例涉及神经形态和神经突触计算,具体地说,涉及基于与神经突触基板相关的准则,在神经突触基板上实现神经网络算法。本发明的一个实施例提供一种用于将神经网络映射到神经突触基板上的方法。所述方法包括接收表示神经网络的突触连接性信息的矩阵,对所述矩阵的至少一行和至少一列进行重新排序,并且基于一个或多个预定条件,将所述矩阵的一个或多个部分映射到神经突触基板上。
如在此使用的,术语电子神经元表示被配置为模拟生物神经元的框架。电子神经元在处理元件之间创建连接,这些处理元件在功能上大致相当于生物大脑的神经元。因此,根据本发明实施例的包括电子神经元的神经形态和神经突触计算可以包括针对生物神经元建模的各种电子电路。进一步,根据本发明实施例的包括电子神经元的神经形态和神经突触计算可以包括针对生物神经元建模的各种处理元件(包括计算机仿真)。尽管在此使用包括数字电路的电子神经元描述了本发明的某些示例性实施例,但本发明并不限于电子电路。根据本发明实施例的神经形态和神经突触计算能够被实现为包括电路的神经形态和神经突触框架,并且另外被实现为计算机仿真。实际上,本发明的实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素的实施例的形式。
如在此使用的,术语神经突触程序表示神经突触网络。神经突触程序包含有关以下各项的信息:确定电子神经元对输入尖峰脉冲的响应的神经元性质和动力学(例如,阈值参数、泄漏参数、延迟参数、重设参数等)、神经元的突触连接(例如,经由突触交叉开关(crossbar)建立的突触连接)、轴突性质(例如,轴突类型),以及应向其传送神经元的输出尖峰脉冲的一个或多个目的地(例如,目标轴突)。
如在此使用的,术语神经突触网络表示神经突触程序的实例化。神经突触网络可以采用硬件、仿真或者这两者被实例化。例如,神经突触程序可以产生神经突触网络的一个或多个实例,其中这些实例可以位于单个核心、多个核心或多个芯片上。
可以使用脉冲神经网络比常规系统更有效地解决计算。神经网络算法表示这样的脉冲神经网络:其可以以包括多个节点和多个边缘的图的形式表达,其中每个节点表示一个神经元,并且其中每个边缘表示一个突触连接。可以使用图表达各种网络和算法,包括信号处理、分类、模式识别、对象识别、机器学习、布尔和逻辑运算、时间和关联存储器、控制系统、决策系统、预测模型、认知系统等。但是,神经突触计算不同于那些通常由常规(冯·诺依曼)处理器执行的计算,因为它们高度并行、异步(事件驱动),并且必须高度可扩展以便有效地执行大型图模型。
可以在神经突触基板上更有效地执行采取图模型形式的神经网络算法。基板是具有硬件、软件、固件或任何其它计算手段(单独或组合地)的配置,优化该配置以便实现、支持或使能神经网络算法的有效执行。通过在可被执行的图模型上引入一个或多个约束来实现效率。
当在给定神经突触基板上实现任意神经网络算法时,本发明的实施例考虑一个或多个约束。例如,如果给定神经突触基板包括软件元素,则可以考虑基板的一个或多个软件相关的约束。作为非限制性实例,这些约束可以包括系统存储器、数字表示的精度和类型(例如,字节数、32位/64位、有符号/无符号、固定/浮点)、处理器的类型(例如,CPU、CPU+GPU、CPU+FPGA)、数据结构或数组大小、多处理器环境中的消息传送协议(例如,MPI)、系统线程数量、卡数量、查找表(Lust)数量等。作为另一个非限制性实例,如果给定神经突触基板包括硬件元素,则可以考虑基板的一个或多个硬件相关的约束,例如与以下项相关的约束:神经元特征(例如,基于线性阈值函数的神经元活动、基于S型(sigmoid)阈值函数的神经元活动)、突触权重(例如,二进制突触权重、整数突触权重、实值突触权重、突触权重数量、突触权重的动态范围),和/或神经元扇入/扇出(fan in/fan out)(即,任何给定神经元能够连接的最大神经元数量)。
用于在给定神经突触基板上映射表示神经网络算法的图的常规技术不简单、手动、繁琐和易于出错,并且不保证满足基板约束(例如,软件相关和/或硬件相关)的基板兼容实现。进一步,常规技术还不允许用户与映射交互以便进行权衡。这些问题对神经突触基板的采用产生主要障碍。
本发明的实施例提供一种用于在硬件神经突触基板上映射神经网络算法的系统和方法,该基板导致满足基板的一个或多个硬件相关约束的基板兼容实现。本发明的实施例进一步提供一种有保证的可执行神经网络算法映射,该映射允许用户与映射交互(例如,反馈、支持和指导)以便在准确性与基板资源利用之间进行权衡。
在本说明书中,假设G表示代表脉冲神经网络的图。可以根据下面提供的等式(1)表示图G:
G=(V,f,E,w) (1),
其中V表示代表神经元的一组节点,其中f表示节点到一组神经元类型的映射,其中E表示代表突触连接的一组边,并且其中w表示从该组边E到实值的映射。突触权重和神经元扇出可以不受约束。
图1示出根据本发明的一个实施例的实例神经突触核心电路(“核心电路”)10。核心电路10是用于快速、有效、低功耗实现神经网络算法的实例硬件神经突触基板。核心电路10包括多个电子神经元(“神经元”)11和多个电子轴突(“轴突”)15。神经元11和轴突15经由m x n个交叉开关12互连,交叉开关12包括多个核心内电子突触设备(“突触”)31、多个行/轴突路径26和多个列/树突路径34,其中“x”表示相乘,并且m和n是正整数。
每个突触31在轴突15与神经元11之间传送尖峰脉冲事件(即,触发事件)。具体地说,每个突触31位于轴突路径26与树突路径34之间的交叉点接合处,以使得通过突触31建立轴突路径26与树突路径34之间的连接。每个轴突15连接到轴突路径26,并且将尖峰脉冲事件发送到所连接的轴突路径26。每个神经元11连接到树突路径34,并且从所连接的树突路径34接收尖峰脉冲事件。因此,每个突触31将轴突15互连到神经元11,其中相对于突触31,轴突15和神经元11分别表示突触前神经元的轴突和突触后神经元的树突。
每个突触31和每个神经元11具有可配置的操作参数。在一个实施例中,核心电路10是单向核心,其中核心电路10的神经元11和轴突15分别被布置为单个神经元阵列和单个轴突阵列。在另一个实施例中,核心电路10是双向核心,其中核心电路10的神经元11和轴突15分别被布置为两个神经元阵列和两个轴突阵列。例如,双向核心电路10可以具有水平神经元阵列、垂直神经元阵列、水平轴突阵列和垂直轴突阵列,其中交叉开关12分别将水平神经元阵列和垂直神经元阵列与垂直轴突阵列和水平轴突阵列互连。
响应于接收的尖峰脉冲事件,每个神经元11根据神经元激活功能生成尖峰脉冲事件。神经元激活功能的一个优选实施例可以是带泄漏积分触发(leaky integrate-and-fire)。
外部双向通信环境可以提供感觉输入并且消耗电动机输出。使用互补金属氧化物半导体(CMOS)逻辑门实现神经元11和轴突15,这些逻辑门接收尖峰脉冲事件,并且根据神经元激活功能生成尖峰脉冲事件。在一个实施例中,神经元11和轴突15包括比较器电路,这些电路根据神经元激活功能生成尖峰脉冲事件。在一个实施例中,使用1位静态随机存取存储器(SRAM)单元实现突触31。一次选择一个生成尖峰脉冲事件的神经元11,并且将该尖峰脉冲事件传送到目标轴突15,其中目标轴突15可以位于同一核心电路10中或者位于具有许多核心电路10的较大系统中的其它位置。
如图1中所示,核心电路10进一步包括地址-事件接收器(核心到轴突)4、地址-事件发送器(神经元到核心)5,以及用作全局状态机(GSM)的控制器6。地址-事件接收器4接收尖峰脉冲事件并且将它们发送到目标轴突15。地址-事件发送器5将由神经元11生成的尖峰脉冲事件发送到包括目标轴突15的核心电路10。
控制器6将一个时间步长内的事件活动按顺序排列。控制器6将每个时间步长分为核心电路10中的操作阶段以便神经元更新等。在一个实施例中,在一个时间步长内,分别在读取阶段和写入阶段中按顺序处理多个神经元更新和突触更新。进一步,可以使用可变时间步长,其中每当上一个时间步长的神经元/突触操作完成时,可以使用握手信号触发下一个时间步长的开始。对于外部通信,可以使用流水线,其中以流水线执行负载输入、神经元/突触操作和发送输出(这有效地隐藏输入/输出操作延迟)。
如图1中所示,核心电路10进一步包括一个或多个分组路由系统70。每个分组路由系统70被配置为选择性地在多个核心电路10之间路由尖峰脉冲事件。在一个实施例中,每个分组路由系统70包括地址查找表(LUT)模块57、分组构建器(PB)模块58、头删除(HD)模块53以及核心到核心分组交换机(PSw)55。LUT 57是N地址路由表,其被配置为针对由核心电路10中的神经元11生成的尖峰脉冲事件确定目标轴突15。目标轴突15可以是同一核心电路10或其它核心电路10中的轴突15。LUT 57取回诸如目标距离、方向、地址和传送倍数(例如,大约19位/分组x 4分组/神经元)之类的信息。LUT 57将由神经元11生成的尖峰脉冲事件转换为目标轴突15的转发地址。
PB 58将由LUT 57取回的路由信息分组为出站地址-事件分组。核心到核心PSw 55是上下左右网络路由器,其被配置为将出站地址-事件分组定向到包含目标轴突15的核心电路10。核心到核心PSw 55还被配置为从核心电路10接收入站地址-事件分组。HD 53从入站地址-事件分组中删除路由信息,以便将其作为具有时间戳的尖峰脉冲事件传送到地址-事件接收器4。
在一种实例实现中,核心电路10可以包括256个神经元11。交叉开关12可以是256 x 256超密交叉开关阵列,其具有范围大约为0.1nm到10μm的间距。核心电路10的LUT 57可以包括256个地址条目,每个条目长度为32位。
在一个实施例中,使用地址事件(例如,地址事件表示(AER))实现核心电路10中的软布线。
尽管在此使用包括电子电路的突触描述了本发明的某些示例性实施例,但本发明并不限于电子电路。
图2示出根据本发明的一个实施例的实例框架500。框架500包括用于实现神经网络算法的系统600,由输入单元510以图G形式在神经突触基板520上提供该算法。在一个实施例中,神经突触基板520可以仅包括硬件元素。在另一个实施例中,神经突触基板520可以仅包括软件元素。在另一个实施例中,神经突触基板520可以包括硬件和软件元素两者。
在其中神经突触基板520包括硬件元素的一种实例实现中,神经突触基板520可以包括图1中的核心电路10。在其中神经突触基板520包括硬件元素的其它实例实现中,神经突触基板520可以包括一个或多个其它神经形态核心架构。包括硬件元素的神经突触基板520可以具有针对以下各项的一个或多个硬件相关约束:突触权重(例如,在其值、不同权重的数量或权重的动态范围方面)、扇入和扇出(例如,任何神经元能够具有的最大连接数量)、神经元参数和行为。
在一个实施例中,系统600包括重新排序单元610、映射单元620、细化单元630、选择、拆分及合并(SSM)单元640、标记单元641、评估单元642以及输出单元650。图G可以在概念上被表示为邻接矩阵100(图4),矩阵100包括多个行120(图4)和多个列110(图4)。重新排序单元610被配置为将矩阵100的行120和列110分组成多个块150(图5),从而产生重新排序后的矩阵130(图5)。每个块150表示重新排序后的矩阵130的子矩阵。映射单元620被配置为将块150映射到神经突触基板520上。标记单元641将每个被映射块150标记为已映射。
本发明的实施例提供以下能力:根据与成本(例如,在电力和神经形态资源方面)和/或准确性相关的一个或多个用户定义的评估度量,混合适合于将表示神经网络算法的任何图G映射到神经突触基板520上的方法。在一种实例实现中,系统600提供用于在神经突触基板520上映射由输入单元510提供的图G的一组方法M。假设m表示属于该组方法M的一种方法。基于一组特征C区分每种方法m。该组特征C可以包括诸如结果权重准确性、动态范围(通信)准确性、神经突触资源利用(例如,神经元、轴突、突触)之类的特征。可以基于图C的特定性质评估特征,这些性质例如包括稀疏度/密度、突触权重(例如,实数、整数、二进制)和/或任何其它图论度量。
对于每个块150,SSM单元640被配置为选择和应用最适合于在神经突触基板520上映射块150的方法m。系统600以迭代/递归方式继续映射,直到已将图G的所有区域映射到神经突触基板520上。
细化单元630被配置为促进用户与映射交互。评估单元642使用迭代逐块或整体评估结果,以使结果符合经由细化单元630接收的用户定义的准则/评估度量(例如,成本、准确性)。
在一个实施例中,输出单元650被配置为提供表示基板映射后的神经网络的输出文件(即,模型文件)。可以根据该输出文件对神经突触基板520进行编程。输出单元650可以进一步提供其它输出,例如对照每个度量对映射后的神经网络的评估结果(整体或逐块)、将重新排序后的矩阵100中的行和列的最终位置与其在原始矩阵100中的原始位置相关的矩阵或置换向量,和/或由块形成和映射方法引入的延迟记帐(accounting)。
图3示出根据本发明的一个实施例的表示神经网络算法的图G的实例矩阵表示100。图4示出根据本发明的一个实施例的图3中的实例矩阵表示100的详细视图。如上所述,表示神经网络算法的图G可以在概念上被表示为包括多个行120和多个列110的邻接矩阵100。可以根据图G的一组节点V标记行120和列110,其中基于映射f将每个节点映射到一组神经元类型。
在一个实施例中,行120表示源并且列110表示目标。在一个实施例中,矩阵100中在特定行i和特定列j处的条目涉及由行i表示的源与由列j表示的目标之间的突触连接。在一种实例实现中,条目是二进制值。在另一种实例实现中,条目是对应于突触连接的突触权重wi,j。
图G的扇入是在任何列110中出现的最大条目数。图G的扇出是在任何行120中出现的最大条目数。
图5示出根据本发明的一个实施例的一个实例重新排序后的矩阵130。系统600的重新排序单元610将神经网络算法的矩阵表示100的行120和列110重新排列为具有多个块150的重新排序后的矩阵130。例如,如图5中所示,重新排序单元610提供包括多个块150的重新排序后的矩阵130,块150例如包括块A、B、C、D、E、F和G。图5中所示的块150具有不同密度(在图5中使用灰度阴影表示块150的平均密度;具有较暗阴影的块150比具有较亮阴影的块150更密集)。
如下面详细描述的,重新排序单元610被配置为应用不同重新排序方法,这些方法与特定映射方法结合可以特别有利。可以基于在多种映射方法之间提供最佳区分的属性执行重新排序(例如,聚集二进制权重矩阵中的非0条目、聚集实值矩阵中的类似值)。
图6示出根据本发明的一个实施例的一个实例重新排序后的图130,其具有拆分器160和合并器170以便允许作为可映射块提取子矩阵。如在此使用的,术语拆分表示将行添加到表示神经网络算法的图G的邻接矩阵表示。在一种实例实现中,添加行表示添加源,例如神经元。如在此使用的,术语合并表示将列添加到表示神经网络算法的图G的邻接矩阵表示。在一种实例实现中,添加列表示添加目标,例如轴突。拆分和合并允许有效分离要以最有效方式映射的图G的邻接矩阵表示中的块或子矩阵。在一个实施例中,拆分器160是神经元11,其被配置为接收公共轴突上的输入尖峰脉冲,复制输入尖峰脉冲,并且将副本发送到多个目标。拆分器160可以用于增加有效扇出。当期望扇出超过给定神经突触基板520的维度(例如,超过核心电路10的交叉开关12的维度)时,SSM单元640可以在基板520上映射神经网络算法时实现多级拆分以便满足期望扇出。
在另一个实施例中,合并器170是神经元11,其被配置为接收多个轴突上的输入尖峰脉冲,并且将合并功能(例如,OR、AND、SUM)应用于输入尖峰脉冲。合并器170可以用于增加有效扇入。当期望扇入超过给定神经突触基板520的维度(例如,超过核心电路10的交叉开关12的维度)时,SSM单元640可以在基板520上映射神经网络算法时实现多级合并以便满足期望扇入。
拆分器160通常以神经元为边界,从而需要比轴突数量多的神经元。相比之下,合并器170以轴突为边界,从而需要比神经元多的轴突。当在基板520上映射神经网络算法时,本发明的实施例在神经突触基板520上组合适当数量的拆分器160与合并器170,从而提高神经突触资源的利用。
在一个实施例中,SSM单元640针对神经网络算法的矩阵表示100的每个行120和每个列110维护对应的索引信息。对于每个行120,SSM单元640基于行120的对应索引信息,确定行120参与的被映射块150的数量,其中SSM单元640用于针对行120实现多级拆分的拆分器160的数量基于行120参与的被映射块150的数量。同样,对于每个列110,SSM单元640基于列110的对应索引信息,确定列110参与的被映射块150的数量,其中SSM单元640用于针对列110实现多级合并的合并器170的数量基于列110参与的被映射块150的数量。
在一个实施例中,需要拆分器160和/或合并器170的行120和列110可以生成具有延迟的输出。如果表示神经网络算法的图G的实现需要被映射基板神经元输出之间的同步性,则向以下被映射基板神经元添加延迟:这些神经元不需要拆分或合并,或者具有的拆分器/合并器少于必须维护与其同步性的拆分器/合并器。
图7示出根据本发明的一个实施例的不同实例映射方法。如上所述,对于重新排序后的矩阵130的每个块150,系统600的SSM单元640被配置为选择和应用最适合于在神经突触基板520上映射块150的方法m。映射单元620基于由SSM单元640针对块150选择的方法m,在神经突触基板520上映射块150。
系统600被配置为应用不同映射方法,其中结果(例如,在效率和准确性方面)可以根据表示神经网络算法的给定图G的特定性质而变化。如在此使用的,术语映射表示以下过程:将表示神经网络算法的图G的全部或部分从初始/不受约束的配置变换为受约束/基板兼容配置。此外,不同映射方法可以更适合于或不太适合于图G的不同区域,其中可能受益于相同映射方法的那些区域可能在图G本身中不相邻或不明显关联。
例如,如图7中所示,系统600可以针对图5中的重新排序后的矩阵130的块A应用第一映射方法mi,针对图5中的重新排序后的矩阵130的块B应用第二映射方法mj,并且针对图5中的重新排序后的矩阵130的块D应用第三映射方法mk。进一步在图7中示出的块A’、B’和D’分别表示块A、B和D的映射后的或基板兼容的配置。
本发明的实施例提供一种手段,其管理多种映射方法的输入、选择、应用和评估的分组,以便保证神经网络算法映射过程的合理并且可能最佳的结果。在一个实施例中,系统600对照包含在一组特征C中的每个度量,评估一组方法M中的每种可用方法m以便获得向量v(m),其中向量v(m)的长度等于该组特征C中的评估度量的数量。向量v(m)的每个元素表示特定方法m根据度量的得分。
对于重新排序后的矩阵130的要映射的每个块150,系统600在向量v(u)中指定要应用于每个度量的权重,其中向量v(u)的长度等于评估度量的数量。特定度量对块150的重要性越高,在向量v(u)中指定的对应权重越大。系统600然后选择最大化内积<v(m),v(u)>的方法m。
如果特定块150实现已知功能性(例如拆分、合并等),则可以预先定义针对该块150的对向量v(u)的选择。可以将向量v(u)的元素设置为默认值。默认值可以由方法的用户指定,经由统计技术学习,或者基于应用于图G的任何图论度量查找。对向量v(u)的选择还可以受构成块150的神经元类型的影响。
在一个实施例中,可以迭代地调整重新排序后的矩阵130的块150的向量v(u)的元素,如下所示:(1)选择向量v(u),(2)使用最大化内积<v(m),v(u)>的方法m映射块150,(3)对照每个度量评估块150的得到的基板映射后的神经网络,并且(4)如果对应于一个或多个评估度量的误差超过预定义阈值,则修改向量v(u)并且再次映射块150;否则,将块150标记为已映射。
在一个实施例中,基于用户输入的准确性和资源利用参数,系统600被配置为标识和重新映射子矩阵以便权衡准确性(在权重和/或动态范围方面)与资源利用(在神经元、轴突、突触、电力、区域或下面列出的其它准则方面)。例如,如果在每个块的基础上超过用户输入的误差准则,则可以针对任何此类块增大向量u中的对应元素以使映射偏向于较大准确性。作为另一个实例,如果在逐块的基础上超过用户输入的资源利用准则,则可以针对任何此类块增大向量u中的对应元素以使映射偏向于较低资源利用。
在一个实施例中,还可以执行重新排序和/或算法级别迭代以便减小资源利用(例如,通过调整所有向量u,或者通过基于敏感性分析或替换策略标识特定块)。
图8示出根据本发明的一个实施例的被映射块150的实例标记。在一个实施例中,为了将重新排序后的矩阵130的每个块150标记为已映射,系统600使用0替换被映射块150的每个条目,从而导致重新排序后的矩阵130的具有0条目的区域200。例如,当映射图5中的重新排序后的矩阵130的块A、B和D时,系统600使用0替换每个被映射块A、B和D的条目,从而导致具有0条目的区域200,如图8中所示。
图9示出根据本发明的一个实施例的另一个实例重新排序后的矩阵130。系统600以迭代/递归方式继续在神经突触基板520上映射表示神经网络算法的图G的不同区域,直到已在基板520上映射图G的所有区域。例如,在映射图5中的重新排序后的矩阵130的块A、B和D并且使用0条目替换这些块之后,系统600生成如图9中所示的另一个重新排序后的矩阵130,其包含具有不同密度的块,例如块H、I、L、O、P和Q。
图10示出根据本发明的一个实施例的用于在硬件神经突触基板上映射神经网络算法的一个实例过程700的流程图。在过程块701,过程开始。在过程块702,将表示神经网络算法的图G的矩阵表示的行和列重新排序成多个块。在过程块703,选择多个块Bi。在过程块704,对于每个块Bi,估计应用于块Bi的方法mk的特征Cj。在过程块705,将基于估计的特征选择的方法m应用于块Bi,从而导致映射后的块Bi’。针对在过程块703选择的多个块Bi中的每一个重复过程块704和705。在过程块706,在图G的矩阵表示中将所有块Bi标记为已映射。在过程块707,判定是否具有图G的任何未标记的子图。
如果具有任何未标记子图,则返回到过程块702。如果没有未标记子图,则继续到过程块708。
在过程块708,产生最终输出。在过程块709,过程结束。
图11示出根据本发明的一个实施例的用于对神经网络算法的矩阵表示100进行重新排序的一种实例重新排序方法。一种实例重新排序方法可以是交叉关联方法,如在标题为“Fully Automatic Cross-Associations(全自动交叉关联)”(Chakrabarti,D.等人,发布于计算机协会的关于知识发现和数据挖掘的特别兴趣小组(ACM SIGKDD)关于知识发现和数据挖掘国际会议,2014年)的公开中描述的那样。交叉关联方法共同聚集矩阵表示100的密集区域和稀疏区域。交叉关联方法不需要块150的数量或大小的先前指定。
如上所述,系统600以迭代/递归方式在神经突触基板520上映射矩阵表示100的不同区域,直到已在基板520上映射矩阵表示100的所有区域。如图11中所示,在每次迭代期间,交叉关联方法将矩阵表示100的剩余密集区域和稀疏区域共同聚集为重新排序后的矩阵130。一般而言,在部分映射已完成之后,可以迭代或递归地应用任何重新排序方法。
图12示出根据本发明的一个实施例的用于对表示神经网络算法的图G的矩阵表示100进行重新排序的另一种实例重新排序方法。在一种实例实现中,系统600基于权重下降阻止方法(weight-descent blockingmethod),对表示神经网络算法的图G的矩阵表示100进行重新排序。权重下降阻止方法允许创建指定大小的块150。
在一个实施例中,系统600以迭代/递归方式在神经突触基板520上映射矩阵表示100的不同区域,直到满足预定退出准则。在每次迭代期间,权重下降阻止方法对矩阵表示100的剩余区域进行重新排序以便创建维度为N x M的高权重块150。当映射块150时,使用0替换块150中的条目。系统600以该迭代方式继续,直到满足预定退出准则。例如,如图12中所示,系统600在第一次迭代期间创建第一高权重块A,在第二次迭代期间创建第二高权重块B,并且在第三次迭代期间创建第三高权重块C。
在一个实施例中,权重下降阻止方法通过选择最大化由块150的条目表示的权重总和的块150的行和列,创建维度为N x M的高权重块150。在一种实例实现中,权重下降阻止方法被实现为如下:在每次迭代期间,系统600通过减小Si数量级对行120进行排序,其中根据下面提供的等式(2)计算Si:
Si=Σj=1,…,Mwi,j (2)。
系统600还通过减小Tj数量级对列进行排序,其中根据下面提供的等式(3)计算Tj:
Tj=Σi=1,…,Nwi,j (3)。
在每次迭代结束时,系统600根据下面提供的等式(4)计算值R,值R表示由高权重块150的条目表示的权重总和:
R=Σj=1,…,MΣi=1,…,Nwi,j (4),
其中当R小于预定阈值ε时,满足退出准则。在一个实施例中,权重可以被离散化。
在一个实施例中,预定义退出准则可以是以下之一:当矩阵表示100仅具有0条目时,当矩阵表示100的预定义百分比具有0条目时,当矩阵表示100的最大元素小于预定义阈值时,当由矩阵表示100的条目表示的权重总和小于预定义阈值时等。
在一个实施例中,对于在每次迭代期间创建的维度为N x M的每个高权重块150,权重下降阻止方法使用0替换块150的至少min(M,N)个非0条目。这保证神经网络算法在神经突触基板520上的映射将以不多于K/min(N,M)个块150的输出而结束,其中K表示矩阵表示100中的非0条目数量。
在另一个实施例中,系统600基于其它重新排序方法/算法,对表示神经网络算法的图G的矩阵表示100进行重新排序。
图13示出根据本发明的一个实施例的用于基于权重下降阻止算法对表示神经网络算法的图G的矩阵表示进行重新排序的一个实例过程800的流程图。在过程块801,过程开始。在过程块802,对矩阵表示的行和列进行重新排序以便创建高权重N x M块。在过程块803,将块映射到硬件神经突触基板。在过程块804,使用0替换该块的一个或多个条目。在过程块805,判定是否已满足预定义退出准则。
如果不满足退出准则,则返回到过程块802。如果满足退出准则,则继续到过程块806,其中过程结束。
图14示出根据本发明的一个实施例的用于对表示神经网络算法的图G的矩阵表示100进行重新排序的另一种实例重新排序方法。在一个实施例中,系统600基于成对质心距离最小化方法,对表示神经网络算法的图G的矩阵表示100进行重新排序。成对质心距离最小化方法仅创建一个维度为n x m的高权重块150。
在一种实例实现中,成对质心距离最小化方法被实现为如下:第一,系统600根据上述等式(2)-(4),对矩阵表示100的行和列进行重新排序以便产生重新排序后的矩阵130。第二,系统600将重新排序后的矩阵130分成集群/组。具体地说,系统600将重新排序后的矩阵130的行分为两个行集群,例如大小为n的第一行集群(行集群1)和包括剩余行的第二行集群(行集群2)。系统600还将重新排序后的矩阵130的列分为两个列集群,例如大小为m的第一列集群(列集群1)和包括剩余列的第二列集群(列集群2)。
第三,系统600开始包括以下步骤的循环:(1)针对每个行集群和每个列集群计算集群质心,(2)对于每个行,确定哪个集群质心最靠近行;同样,对于每个列,确定哪个集群质心最靠近列,(3)创建具有与所存在的行集群同样多的节点的行图,其中如果在集群i中具有更偏向于在集群j中的行(即,集群质心j最靠近该行),则具有从集群质心i到集群质心j的边;同样,创建具有与所存在的列集群同样多的节点的列图,其中如果在集群i中具有更偏向于在集群j中的列(即,集群质心j最靠近该列),则具有从集群质心i到集群质心j的边,并且(4)通过来回移动行删除行图中的所有循环,以使得行图中将仅具有2个循环,因为仅具有两个行集群和两个列集群;同样,通过来回移动列删除列图中的所有循环,以使得列图中将仅具有2个循环,因为仅具有两个行集群和两个列集群。当满足预定义退出准则时,循环结束。系统600输出另一个重新排序后的矩阵130,可以从该矩阵中提取维度为n x m的高权重块150。
在一个实施例中,当一个集群中的任何行/列与另一个集群的集群质心之间的最大距离小于预定义阈值或者收敛到预定义下限值时,满足预定义退出准则。
图15示出根据本发明的一个实施例的用于基于成对质心距离最小化算法对表示神经网络算法的图G的矩阵表示进行重新排序的一个实例过程900的流程图。在过程块901,过程900开始。在过程块902,对矩阵表示的行和列进行重新排序。在过程块903,将重新排序后的矩阵表示的行和列分组成集群。在过程块904,针对每个行集群和每个列集群计算集群质心。在过程块905,针对每个行和每个列确定最近集群质心并且交换。在过程块906,判定是否已满足预定义退出准则。
如果不满足退出准则,则返回到过程块904。如果满足退出准则,则继续到过程块907,其中过程结束。
图16示出根据本发明的一个实施例的用于实现多级拆分的实例表400。表400包括表示神经网络算法的图G的矩阵表示100的每个行120的对应索引信息。对于每个行120,系统600基于行120的对应索引信息,确定行120参与的被映射块150的数量,其中系统600用于针对行120实现多级拆分的拆分器160的数量基于行120参与的被映射块150的数量。
图17示出根据本发明的一个实施例的用于实现多级合并的实例表450。表450包括表示神经网络算法的图G的矩阵表示100的每个列110的对应索引信息。对于每个列110,系统600基于列110的对应索引信息,确定列110参与的被映射块150的数量,其中系统600用于针对列110实现多级合并的合并器170的数量基于列110参与的被映射块150的数量。
如上所述,系统600被配置为应用不同映射方法。
一种实例映射方法是拆分-置换-合并方法。在一个实施例中,当在神经突触基板520上映射表示神经网络算法的加权二部图G时,系统600应用拆分-置换-合并方法。在拆分-置换-合并方法下,系统600针对图G的每个边分配一个拆分器160和一个合并器170。可以使用突触权重和拆分器神经元的阈值以及与接收合并轴突关联的权重实现实值权重。在按需应用拆分器和合并器以便实现给定二部图的扇入和扇出之后,置换变成尖峰脉冲源集合S与目标集合T之间的简单1-1映射,以使得S中的每个源连接到T中的仅一个目标。
可以限制可用于神经突触基板520的轴突类型的数量。在一个实施例中,当在神经突触基板520上映射表示神经网络算法的图G的实值权重矩阵表示100时,系统600应用期望最大化算法。
假设A表示代表神经网络算法的图G的实值权重矩阵表示100,其中矩阵A具有m行和n列。假设b表示整数值。假设G(i)表示矩阵A的第i行聚集到被其中的桶(bucket)。系统600将矩阵A的多个行聚集到b个桶中,以使得将第i行聚集到桶G(i)={1,2,…,b}。对于每个列j,计算对应于每个桶的b个权重选择每个i和j的二进制值w(ij),以使得对于距离度量d(a,b)=(a-b)2,最小化总和
在本发明的一个实施例中,系统600提供以下增强和扩展:它们用于增加整体效用并且适用于不同情况和实例。
在一个实施例中,系统600提供以下增强:其将块大小与神经突触基板的突触交叉开关的维度相关。对于利用突触交叉开关的神经突触基板,系统600可以选择适应突触交叉开关的指定交叉开关大小的重新排序方法。例如,系统600可以选择或配置重新排序方法以便产生具有与指定交叉开关大小最匹配的指定大小的块。系统600还可以聚合较小块和/或使用拆分器分解较大块,以便最有效地利用指定交叉开关大小。
在一个实施例中,系统600利用元数据提供增强。图18示出根据本发明的一个实施例的用于利用元数据提供增强的系统600的一个实例框架950。神经网络可以被表示为五元组G=(V,f,E,w,D),其中V是节点集,其中f是节点到神经元类型的映射,其中E是边集,其中w是从边集到实值的映射,并且其中D是元数据条目集合。每个元数据条目可以标识神经网络的邻接矩阵表示的特定块/子矩阵和对应的一组参数。如下面详细描述的,与块/子矩阵关联的一组参数可以包括指定特定映射方法的元数据信息、标识可以针对其查找库元素的电路类型的元数据信息、限制重新排序方法不对块/子矩阵中的某些行和列进行重新排序的元数据信息、指定用于选择映射方法的不同评估度量的权重的元数据信息,或者用于管理同步、时序和任何延迟的元数据信息。框架950包括用于分析每个元数据条目的元数据单元960。
在一种实例实现中,元数据单元960分析包括指定特定映射方法的元数据信息的元数据条目。用户(例如,算法设计者)可以指定一个或多个元数据条目,这些条目指定系统600可以用于产生最佳结果的特定映射方法或一类方法。系统600还可以针对在迭代/递归映射过程中添加的拆分器160和合并器170指定专用映射方法,从而跨一个或多个核心电路10平衡分配以便实现更有效的资源利用。
在一种实例实现中,元数据单元960分析包括以下元数据信息的元数据条目:该元数据信息指定最初邻接矩阵表示的哪些行和列应被映射和/或不需要被重新排序(即,打乱次序)。例如,用户可以指定最初邻接矩阵表示的不需要或不应被重新排序的特定行和列子集的元数据条目/标签。基于元数据条目/标签,当映射到基板520时,系统600将不对行和列子集进行重新排序(即,元数据条目/标签限制重新排序方法不对行和列子集进行重新排序)。此特定增强适用于在映射过程中必须保留邻接矩阵表示的特定行和列顺序的情况。
在一种实例实现中,元数据单元960分析包括以下元数据信息的元数据条目:该元数据信息指定由系统600用于选择映射方法的不同评估度量的权重。用户(例如,算法设计者)可以指定包括适于特定神经网络算法的一个或多个评估功能和约束的元数据条目。例如,如果特定神经网络算法表示卷积网络,则用户可以指定所有过滤器必须具有相同权重。系统600可以使用指定的评估功能和约束,以便促进映射方法的选择或者影响所选择映射方法的行为。
在一种实例实现中,元数据单元960分析包括指定时序、同步或其它时间约束的元数据信息的元数据条目。到神经网络的输入可以具有不同的操作编码模式,或者在多组神经元、输入和/或输出之间具有指定的时间关系。可以指定包括编码、时间信息和时间约束的一个或多个元数据条目。系统600可以在映射过程中向映射后的基板添加延迟以便满足此类时间约束。
例如,如果神经网络包括必须同时接收输入信号的指定输入神经元集合S,则输入信号在到达被映射基板神经元之前必须具有相同延迟。如果在映射过程中添加拆分器,则在映射之后延迟可能不一致。为了满足一致延迟的要求,系统600可以针对集合S中的每个输入神经元计算延迟,确定哪个输入神经元具有最大延迟,并且沿着集合S中的其它输入神经元的输入路径添加延迟以便与最大延迟相匹配。延迟的添加由此确保输入集合S中的所有输入神经元具有相同延迟。
作为另一个实例,神经网络可以包括不同的两组输入神经元,两个组之间具有指定的相对延迟。系统600可以向两个组添加延迟,以便确保每个组中的一致延迟并且维护组之间的指定相对关系。
作为另一个实例,元数据条目可以指定时间相关的尖峰脉冲编码模式(例如,时间到尖峰脉冲编码)。系统600可以在要在映射过程中添加的对应时间添加延迟或生成触发器或重设信号,以便在基板上实现尖峰脉冲编码模式。取决于使用中的神经突触基板的架构或类型,触发器或重设信号的添加可能需要分配其它轴突、神经元或突触,和/或设置核心或神经元参数(例如,设置适当的突触权重以便重设轴突)。例如,如果基板需要轴突线以便重设信号,则可以在映射之前,以一个或多个其它重设神经元的形式向神经网络的对应邻接矩阵表示添加重设信号。如果将输入神经元映射到多个基板神经元,则可以将对应重设信号分配给部分或全部基板神经元。
如果不能增强映射以便满足一个或多个指定的时间约束,则系统600可以提醒用户不满足哪些时间约束。
在一种实例实现中,元数据单元960分析包括以下元数据信息的元数据条目:该元数据信息标识可以针对其查找库元素的神经电路。在一个实施例中,框架950进一步包括维护多个库元素的库970。每个库元素包括可重用和可组合的神经电路。可重用和可组合的神经电路可以包括单个基板兼容神经元或多个基板兼容神经元的组合。
在一个实施例中,库970包括表示不同神经元功能的库元素,其中每个神经元功能由具有一个或多个可配置性质(例如阈值、权重等)的可重用和可组合神经电路实现。例如,库970可以支持各种计算功能(例如,算法、控制、数据生成、逻辑、记忆、经典神经元行为、信号处理和概率计算)和神经代码(例如,速率、填充、二进制和时间-尖峰脉冲)。系统600可以仅适合库970中具有代表性实现的神经元功能的映射。对于邻接矩阵表示中的一个或多个计算节点,系统600可以从库970中选择一个或多个可重用和可组合神经电路,这些电路具有复制计算节点的行为/功能的关联突触连接性。系统600可以基于计算节点的元数据条目建立库970的索引。元数据条目可以包括描述计算节点的行为/功能的元数据信息。
在一个实例中,选定的每个可重用和可组合神经电路可以被视为微电路并且被直接映射到神经突触基板。在另一个实例中,每个选定的可重用和可组合神经电路可以在被映射到神经突触基板之前被扩展、平面化并且进行重新排序。在另一个实例中,每个选定的可重用和可组合神经电路可以在被映射到神经突触基板之前被扩展、平面化并且被标记为不进行重新排序以便保留邻接性。
在一个实施例中,库970包括表示常用和循环结构(例如,网络连接性模式)的库元素,这些结构可以通过有效的神经突触程序实施来实现。例如,元数据单元960可以分析元数据条目以便确定连接性模式,并且在库970中搜索代表性实现。例如,如果使用元数据条目/标签标记节点子集(这些元数据条目/标签指示该子集是具有表示托普利兹模式的连接性模式的卷积网络的一部分),则系统600可以建立库970的索引并且调用代表性实现以便表示该子集。
图19是示出可用于实现本发明的一个实施例的信息处理系统300的高级框图。计算机系统包括一个或多个处理器,例如处理器302。处理器302连接到通信基础架构304(例如,通信总线、交叉开关或网络)。
计算机系统可以包括显示接口306,其转发来自通信基础架构304(或来自帧缓冲器(未示出))的图形、文本和其它数据以便在显示单元308上显示。计算机系统还包括主存储器301,优选地为随机存取存储器(RAM),并且还可以包括辅助存储器312。辅助存储器312例如可以包括硬盘驱动器314和/或可移动存储驱动器316,后者例如表示软盘驱动器、磁带驱动器或光盘驱动器。可移动存储驱动器316以所属技术领域普通技术人员公知的方式来读写可移动存储单元318。可移动存储单元318例如表示软盘、压缩盘、磁带或光盘等,其可由可移动存储驱动器316读写。如所理解的那样,可移动存储单元318包括其中存储计算机软件和/或数据的计算机可读介质。
在备选实施例中,辅助存储器312可以包括其它类似的装置,以便允许将计算机程序或其它指令加载到计算机系统中。此类装置例如可以包括可移动存储单元320和接口322。此类装置的实例可以包括程序包和包接口(例如在视频游戏设备中)、可移动存储芯片(例如EPROM或PROM)和关联的插槽,以及允许将软件和数据从可移动存储单元320传输到计算机系统的其它可移动存储单元320和接口322。
计算机系统还可以包括通信接口324。通信接口324允许在计算机系统与外部设备之间传输软件和数据。通信接口324的实例可以包括调制解调器、网络接口(例如以太网卡)、通信端口或PCMCIA插槽和卡等。经由通信接口324传输的软件和数据采用信号形式,这些信号例如可以是电、电磁、光信号或其它能够由通信接口324接收的信号。经由通信路径(即,通道)326将这些信号提供给通信接口324。该通信路径326承载信号,并且可以使用电线或电缆、光纤、电话线路、蜂窝电话链路、RF链路和/或其它通信通道来实现。
在本文件中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用于泛指介质,例如主存储器310和辅助存储器312、可移动存储驱动器316以及安装在硬盘驱动器314中的硬盘。
计算机程序(也称为计算机控制逻辑)被存储在主存储器310和/或辅助存储器312中。还可以经由通信接口324接收计算机程序。当运行时,此类计算机程序使计算机系统能够执行在此讨论的本发明的特性。具体地说,当运行时,所述计算机程序使处理器302能够执行所述计算机系统的特性。因此,此类计算机程序表示所述计算机系统的控制器。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
从上面的描述,可以看到本发明提供一种用于实现本发明实施例的系统、计算机程序产品和方法。本发明进一步提供一种用于实现本发明实施例的非瞬时性计算机可用存储介质。非瞬时性计算机可用存储介质具有计算机可读程序,其中所述程序在计算机上被处理时导致计算机根据在此描述的实施例实现本发明的步骤。除非明确声明,否则权利要求中以单数引用的元素并非旨在表示“一个并且仅有一个”,而是表示“一个或多个”。所属技术领域的普通技术人员当前已知或以后知晓的上述示例性实施例的元素的所有结构和功能等效物旨在被本权利要求书包含。未在美国法典第35编第112部分第六段的条款下解释此处的权利要求元素,除非使用短语“用于…的装置”或“用于…的步骤”明确描述元素。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明实施例的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
Claims (20)
1.一种用于将神经网络映射到神经突触基板上的系统,包括:
重新排序单元,其用于对所述神经网络的邻接矩阵表示的一个或多个维度进行重新排序;
映射单元,其用于:
从多种映射方法中选择适合于将所述矩阵表示的一个或多个部分映射到所述神经突触基板上的映射方法;以及
利用所选择的映射方法将所述矩阵表示的所述一个或多个部分映射到所述神经突触基板上;
细化单元,其用于接收与一个或多个准则有关的用户输入,所述一个或多个准则涉及所述神经突触基板的准确性和资源利用中的至少一个;以及
评估单元,其用于对照所述一个或多个准则评估每个被映射部分,其中未能满足所述一个或多个准则的每个被映射部分能够被重新映射,以便允许所述神经突触基板的准确性与资源利用之间的权衡。
2.如权利要求1所述的系统,其中所述神经突触基板包括一个或多个互连的核心电路,其中每个核心电路包括多个电子神经元、多个电子轴突、以及将所述神经元互连到所述轴突的多个突触。
3.如权利要求2所述的系统,其中所述一个或多个准则包括与所述神经突触基板相关的至少一个硬件约束。
4.如权利要求3所述的系统,其中硬件约束与以下之一相关:所述神经突触基板的神经元特征、所述神经突触基板的突触权重、所述神经突触基板的神经元扇入、以及所述神经突触基板的神经元扇出。
5.如权利要求1所述的系统,其中所述一个或多个准则包括有关准确性的至少一个用户指定的误差准则,其中每个用户指定的误差准则可用于标识和重新映射所述矩阵表示的超过预定误差阈值的一个或多个部分。
6.如权利要求5所述的系统,其中用户指定的误差准则基于以下之一:所述神经突触基板的突触权重、以及所述神经突触基板的所述突触权重的动态范围。
7.如权利要求1所述的系统,其中所述一个或多个准则包括有关所述神经突触基板的资源利用的至少一个用户指定的资源利用准则,其中每个用户指定的资源利用准则可用于标识和重新映射所述矩阵表示的超过预定资源利用阈值的一个或多个部分。
8.如权利要求7所述的系统,其中用户指定的资源利用准则基于以下之一:所述神经突触基板的神经元、所述神经突触基板的轴突、所述神经突触基板的突触权重、所述神经突触基板的功耗、所述神经突触基板的表面积。
9.如权利要求1所述的系统,进一步包括:
标记单元,其用于将每个被映射部分标记为已映射。
10.如权利要求9所述的系统,其中在所述矩阵表示中,通过使用0替换每个被映射部分的每个条目,将所述条目标记为已映射。
11.如权利要求1所述的系统,进一步包括:
输出单元,其用于当每个被映射部分均满足所述一个或多个准则时,将所有被映射部分合成为表示基板映射后的神经网络的输出文件,其中根据所述输出文件对所述神经突触基板编程。
12.如权利要求1所述的系统,其中对所述矩阵表示的维度进行重新排序以产生预定大小的块,所述块与所述神经突触基板的突触交叉开关的指定交叉开关大小基本匹配。
13.如权利要求1所述的系统,进一步包括:
基于权重下降阻止方法,对所述矩阵表示的维度进行重新排序。
14.如权利要求1所述的系统,进一步包括:
基于成对质心距离最小化方法,对所述矩阵表示的维度进行重新排序。
15.一种用于将神经网络映射到神经突触基板上的方法,包括:
对所述神经网络的邻接矩阵表示的一个或多个维度进行重新排序;
从多种映射方法中选择适合于将所述矩阵表示的一个或多个部分映射到所述神经突触基板上的映射方法;
利用所选择的映射方法将所述矩阵表示的所述一个或多个部分映射到所述神经突触基板上;
接收与一个或多个准则有关的用户输入,所述一个或多个准则涉及所述神经突触基板的准确性和资源利用中的至少一个;以及
对照所述一个或多个准则评估每个被映射部分,其中未能满足所述一个或多个准则的每个被映射部分能够被重新映射,以便允许所述神经突触基板的准确性与资源利用之间的权衡。
16.如权利要求15所述的方法,进一步包括:
将每个被映射部分标记为已映射。
17.如权利要求16所述的方法,其中在所述矩阵表示中,通过使用0替换每个被映射部分的每个条目,将所述条目标记为已映射。
18.如权利要求15所述的方法,进一步包括:
当每个被映射部分均满足所述一个或多个准则时,将所有被映射部分合成为表示基板映射后的神经网络的输出文件,其中根据所述输出文件对所述神经突触基板编程。
19.根据权利要求15所述的方法,进一步包括:
基于权重下降阻止方法,对所述矩阵表示的维度进行重新排序。
20.根据权利要求15所述的方法,进一步包括:
基于成对质心距离最小化方法,对所述矩阵表示的维度进行重新排序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/662,096 US10204301B2 (en) | 2015-03-18 | 2015-03-18 | Implementing a neural network algorithm on a neurosynaptic substrate based on criteria related to the neurosynaptic substrate |
US14/662096 | 2015-03-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105989408A true CN105989408A (zh) | 2016-10-05 |
CN105989408B CN105989408B (zh) | 2019-07-05 |
Family
ID=55221365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610024915.5A Active CN105989408B (zh) | 2015-03-18 | 2016-01-14 | 用于将神经网络映射到神经突触基板上的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10204301B2 (zh) |
EP (1) | EP3070649B1 (zh) |
CN (1) | CN105989408B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832839A (zh) * | 2017-10-31 | 2018-03-23 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的运算的方法和装置 |
CN108629403A (zh) * | 2017-03-24 | 2018-10-09 | 英特尔公司 | 处理脉冲神经网络中的信号饱和 |
CN110100255A (zh) * | 2017-01-06 | 2019-08-06 | 国际商业机器公司 | 区域有效、可重新配置、节能、速度有效的神经网络基板 |
CN110308909A (zh) * | 2018-03-27 | 2019-10-08 | 上海寒武纪信息科技有限公司 | 针对神经网络处理器的可执行程序生成装置和方法 |
CN110325963A (zh) * | 2017-02-28 | 2019-10-11 | 微软技术许可有限责任公司 | 用于神经网络处理的针对可编程硬件节点的多功能单元 |
CN110574052A (zh) * | 2016-12-05 | 2019-12-13 | 许富菖 | 高密度神经网络阵列 |
CN113196299A (zh) * | 2018-07-31 | 2021-07-30 | 格雷玛特实验室股份有限公司 | 数据处理模块、数据处理系统及数据处理方法 |
CN117933499A (zh) * | 2024-03-22 | 2024-04-26 | 中国铁建电气化局集团有限公司 | 高速铁路接触网的入侵风险预测方法、装置和存储介质 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262712B2 (en) | 2013-03-08 | 2016-02-16 | International Business Machines Corporation | Structural descriptions for neurosynaptic networks |
US9195903B2 (en) | 2014-04-29 | 2015-11-24 | International Business Machines Corporation | Extracting salient features from video using a neurosynaptic system |
US9373058B2 (en) | 2014-05-29 | 2016-06-21 | International Business Machines Corporation | Scene understanding using a neurosynaptic system |
US9798972B2 (en) * | 2014-07-02 | 2017-10-24 | International Business Machines Corporation | Feature extraction using a neurosynaptic system for object classification |
US10115054B2 (en) | 2014-07-02 | 2018-10-30 | International Business Machines Corporation | Classifying features using a neurosynaptic system |
US9852370B2 (en) | 2014-10-30 | 2017-12-26 | International Business Machines Corporation | Mapping graphs onto core-based neuromorphic architectures |
US9971965B2 (en) * | 2015-03-18 | 2018-05-15 | International Business Machines Corporation | Implementing a neural network algorithm on a neurosynaptic substrate based on metadata associated with the neural network algorithm |
US9984323B2 (en) | 2015-03-26 | 2018-05-29 | International Business Machines Corporation | Compositional prototypes for scalable neurosynaptic networks |
US11238337B2 (en) * | 2016-08-22 | 2022-02-01 | Applied Brain Research Inc. | Methods and systems for implementing dynamic neural networks |
US11062203B2 (en) * | 2016-12-30 | 2021-07-13 | Intel Corporation | Neuromorphic computer with reconfigurable memory mapping for various neural network topologies |
US10922608B2 (en) * | 2017-03-08 | 2021-02-16 | Arm Ltd | Spiking neural network |
US20190332924A1 (en) * | 2018-04-27 | 2019-10-31 | International Business Machines Corporation | Central scheduler and instruction dispatcher for a neural inference processor |
CN109324503B (zh) * | 2018-08-28 | 2022-02-15 | 南京理工大学 | 基于鲁棒积分的多层神经网络电机系统控制方法 |
US10852350B2 (en) * | 2018-09-21 | 2020-12-01 | Tetramem Inc. | Defect mitigation in a crossbar-based computing environment |
US20210174216A1 (en) * | 2019-12-04 | 2021-06-10 | International Business Machines Corporation | Signaling concept drift during knowledge base population |
US12001929B2 (en) * | 2020-04-01 | 2024-06-04 | Samsung Electronics Co., Ltd. | Mixed-precision neural processing unit (NPU) using spatial fusion with load balancing |
US20220188605A1 (en) * | 2020-12-11 | 2022-06-16 | X Development Llc | Recurrent neural network architectures based on synaptic connectivity graphs |
CN117556877B (zh) * | 2024-01-11 | 2024-04-02 | 西南交通大学 | 基于数据脉冲特征评估的脉冲神经网络训练方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120308074A1 (en) * | 2010-02-09 | 2012-12-06 | Shan He | Watermark detection using a propagation map |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463438B1 (en) | 1994-06-03 | 2002-10-08 | Urocor, Inc. | Neural network for cell image analysis for identification of abnormal cells |
US6269353B1 (en) | 1997-11-26 | 2001-07-31 | Ishwar K. Sethi | System for constructing decision tree classifiers using structure-driven induction |
US6622135B1 (en) | 1998-12-29 | 2003-09-16 | International Business Machines Corporation | Method for detecting and classifying anomalies using artificial neural networks |
US7016887B2 (en) | 2001-01-03 | 2006-03-21 | Accelrys Software Inc. | Methods and systems of classifying multiple properties simultaneously using a decision tree |
US6990444B2 (en) | 2001-01-17 | 2006-01-24 | International Business Machines Corporation | Methods, systems, and computer program products for securely transforming an audio stream to encoded text |
US7089592B2 (en) | 2001-03-15 | 2006-08-08 | Brighterion, Inc. | Systems and methods for dynamic detection and prevention of electronic fraud |
WO2007035545A2 (en) | 2005-09-15 | 2007-03-29 | Invixa, Llc | Apparatus, method and system for building software by composition |
US7904398B1 (en) | 2005-10-26 | 2011-03-08 | Dominic John Repici | Artificial synapse component using multiple distinct learning means with distinct predetermined learning acquisition times |
US7953221B2 (en) | 2006-12-28 | 2011-05-31 | Intel Corporation | Method for processing multiple operations |
DE112008003510T5 (de) | 2007-12-05 | 2010-11-04 | Hewlett-Packard Development Company, L.P., Houston | Im Mikro- und/oder Nanobereich liegende Neuromorphe integrierte Hybridschaltung |
US7814038B1 (en) | 2007-12-06 | 2010-10-12 | Dominic John Repici | Feedback-tolerant method and device producing weight-adjustment factors for pre-synaptic neurons in artificial neural networks |
JP5154666B2 (ja) | 2008-03-14 | 2013-02-27 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | ニューロモーフィック回路 |
US7904870B2 (en) | 2008-04-30 | 2011-03-08 | International Business Machines Corporation | Method and apparatus for integrated circuit design model performance evaluation using basic block vector clustering and fly-by vector clustering |
US9164737B2 (en) | 2008-05-16 | 2015-10-20 | Microsoft Technology Licensing, Llc | Augmenting programming languages with a type system |
US8812418B2 (en) | 2009-06-22 | 2014-08-19 | Hewlett-Packard Development Company, L.P. | Memristive adaptive resonance networks |
US8429107B2 (en) | 2009-11-04 | 2013-04-23 | International Business Machines Corporation | System for address-event-representation network simulation |
US9665822B2 (en) | 2010-06-30 | 2017-05-30 | International Business Machines Corporation | Canonical spiking neuron network for spatiotemporal associative memory |
US8683216B2 (en) | 2010-07-13 | 2014-03-25 | F-Secure Corporation | Identifying polymorphic malware |
US9269042B2 (en) | 2010-09-30 | 2016-02-23 | International Business Machines Corporation | Producing spike-timing dependent plasticity in a neuromorphic network utilizing phase change synaptic devices |
US8515885B2 (en) | 2010-10-29 | 2013-08-20 | International Business Machines Corporation | Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation |
US8812414B2 (en) | 2011-05-31 | 2014-08-19 | International Business Machines Corporation | Low-power event-driven neural computing architecture in neural networks |
US8843425B2 (en) | 2011-07-29 | 2014-09-23 | International Business Machines Corporation | Hierarchical routing for two-way information flow and structural plasticity in neural networks |
US9104973B2 (en) | 2011-09-21 | 2015-08-11 | Qualcomm Technologies Inc. | Elementary network description for neuromorphic systems with plurality of doublets wherein doublet events rules are executed in parallel |
US8725658B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Elementary network description for efficient memory management in neuromorphic systems |
US8712941B2 (en) | 2011-09-21 | 2014-04-29 | Brain Corporation | Elementary network description for efficient link between neuronal models and neuromorphic systems |
US9460387B2 (en) | 2011-09-21 | 2016-10-04 | Qualcomm Technologies Inc. | Apparatus and methods for implementing event-based updates in neuron networks |
US20130232430A1 (en) | 2011-08-26 | 2013-09-05 | Reincloud Corporation | Interactive user interface |
CN103782293B (zh) | 2011-08-26 | 2018-10-12 | 安提特软件有限责任公司 | 用于数据分区的多维集群 |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US8738554B2 (en) | 2011-09-16 | 2014-05-27 | International Business Machines Corporation | Event-driven universal neural network circuit |
US9117176B2 (en) | 2011-09-21 | 2015-08-25 | Qualcomm Technologies Inc. | Round-trip engineering apparatus and methods for neural networks |
US8712939B2 (en) | 2011-09-21 | 2014-04-29 | Brain Corporation | Tag-based apparatus and methods for neural networks |
US8626684B2 (en) | 2011-12-14 | 2014-01-07 | International Business Machines Corporation | Multi-modal neural network for universal, online learning |
US8799199B2 (en) | 2011-12-14 | 2014-08-05 | International Business Machines Corporation | Universal, online learning in multi-modal perception-action semilattices |
US8996430B2 (en) | 2012-01-27 | 2015-03-31 | International Business Machines Corporation | Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity |
US8868477B2 (en) | 2012-03-29 | 2014-10-21 | International Business Machines Coproration | Multi-compartment neurons with neural cores |
US8977583B2 (en) | 2012-03-29 | 2015-03-10 | International Business Machines Corporation | Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching |
US9177246B2 (en) | 2012-06-01 | 2015-11-03 | Qualcomm Technologies Inc. | Intelligent modular robotic apparatus and methods |
US9563841B2 (en) | 2012-07-31 | 2017-02-07 | International Business Machines Corporation | Globally asynchronous and locally synchronous (GALS) neuromorphic network |
KR101425857B1 (ko) | 2012-09-06 | 2014-07-31 | 서울대학교산학협력단 | 시냅스 모방 반도체 소자 및 그 동작방법 |
US9020867B2 (en) | 2012-11-06 | 2015-04-28 | International Business Machines Corporation | Cortical simulator for object-oriented simulation of a neural network |
US8990130B2 (en) | 2012-11-21 | 2015-03-24 | International Business Machines Corporation | Consolidating multiple neurosynaptic cores into one memory |
US9152485B2 (en) | 2012-12-05 | 2015-10-06 | International Business Machines Corporation | Evaluating service degradation risk for a service provided by data processing resources |
US9239984B2 (en) | 2012-12-21 | 2016-01-19 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network |
US9373073B2 (en) | 2012-12-21 | 2016-06-21 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation |
US9412063B2 (en) | 2013-12-27 | 2016-08-09 | International Business Machines Corporation | Transform architecture for multiple neurosynaptic core circuits |
US9852006B2 (en) | 2014-03-28 | 2017-12-26 | International Business Machines Corporation | Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits |
US9798972B2 (en) | 2014-07-02 | 2017-10-24 | International Business Machines Corporation | Feature extraction using a neurosynaptic system for object classification |
US9747545B2 (en) | 2014-09-19 | 2017-08-29 | International Business Machines Corporation | Self-timed, event-driven neurosynaptic core controller |
-
2015
- 2015-03-18 US US14/662,096 patent/US10204301B2/en not_active Expired - Fee Related
-
2016
- 2016-01-14 CN CN201610024915.5A patent/CN105989408B/zh active Active
- 2016-01-22 EP EP16152389.9A patent/EP3070649B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120308074A1 (en) * | 2010-02-09 | 2012-12-06 | Shan He | Watermark detection using a propagation map |
Non-Patent Citations (5)
Title |
---|
BRUDERLE D,ET AL.: "A comprehensive workflow for general-purpose neural modeling with highly configurable neuromorphic hardware systems", 《BIOLOGICAL CYBERNETICS》 * |
GALLUPPI F, ET AL.: "A hierachical configuration system for a massively parallel neural hardware platform", 《CONFERENCE ON COMPUTING FRONTIERS. ACM》 * |
JOHN V. ARTHUR,ET AL.: "Building Block of a Programmable Neuromorphic Substrate: A Digital Neurosynaptic Core", 《WCCI 2012 IEEE WORLD CONGRESS ON COMPUTATIONAL INTELLIGENCE》 * |
SPORNS O,ET AL.: "Theoretical Neuroanatomy: Relating Anatomical and Functional Connectivity in Graphs and Cortical Connection Matrices", 《CEREBRAL CORTEX》 * |
WENDT K, ET AL.: "A graph theoretical approach for a multistep mapping software for the FACETS project", 《WORLD SCIENTIFIC AND ENGINEERING ACADEMY AND SOCIETY》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110574052A (zh) * | 2016-12-05 | 2019-12-13 | 许富菖 | 高密度神经网络阵列 |
CN110100255A (zh) * | 2017-01-06 | 2019-08-06 | 国际商业机器公司 | 区域有效、可重新配置、节能、速度有效的神经网络基板 |
CN110100255B (zh) * | 2017-01-06 | 2023-10-20 | 国际商业机器公司 | 区域有效、可重新配置、节能、速度有效的神经网络基板 |
CN110325963B (zh) * | 2017-02-28 | 2023-05-23 | 微软技术许可有限责任公司 | 用于神经网络处理的针对可编程硬件节点的多功能单元 |
CN110325963A (zh) * | 2017-02-28 | 2019-10-11 | 微软技术许可有限责任公司 | 用于神经网络处理的针对可编程硬件节点的多功能单元 |
US11663450B2 (en) | 2017-02-28 | 2023-05-30 | Microsoft Technology Licensing, Llc | Neural network processing with chained instructions |
CN108629403A (zh) * | 2017-03-24 | 2018-10-09 | 英特尔公司 | 处理脉冲神经网络中的信号饱和 |
CN108629403B (zh) * | 2017-03-24 | 2024-03-12 | 英特尔公司 | 处理脉冲神经网络中的信号饱和 |
CN107832839B (zh) * | 2017-10-31 | 2020-02-14 | 南京地平线机器人技术有限公司 | 执行卷积神经网络中的运算的方法和装置 |
CN107832839A (zh) * | 2017-10-31 | 2018-03-23 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的运算的方法和装置 |
CN110308909B (zh) * | 2018-03-27 | 2023-08-01 | 上海寒武纪信息科技有限公司 | 针对神经网络处理器的可执行程序生成装置和方法 |
CN110308909A (zh) * | 2018-03-27 | 2019-10-08 | 上海寒武纪信息科技有限公司 | 针对神经网络处理器的可执行程序生成装置和方法 |
CN113196299A (zh) * | 2018-07-31 | 2021-07-30 | 格雷玛特实验室股份有限公司 | 数据处理模块、数据处理系统及数据处理方法 |
CN117933499A (zh) * | 2024-03-22 | 2024-04-26 | 中国铁建电气化局集团有限公司 | 高速铁路接触网的入侵风险预测方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3070649B1 (en) | 2018-10-24 |
CN105989408B (zh) | 2019-07-05 |
EP3070649A2 (en) | 2016-09-21 |
US10204301B2 (en) | 2019-02-12 |
US20160335535A1 (en) | 2016-11-17 |
EP3070649A3 (en) | 2017-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105989408A (zh) | 用于将神经网络映射到神经突触基板上的系统和方法 | |
Gharehchopogh | Quantum-inspired metaheuristic algorithms: comprehensive survey and classification | |
Wu et al. | Ensemble strategies for population-based optimization algorithms–A survey | |
CN107430704A (zh) | 基于与神经网络算法关联的元数据在神经突触基底上实现神经网络算法 | |
Sayed et al. | A binary clonal flower pollination algorithm for feature selection | |
Chi et al. | Learning of fuzzy cognitive maps with varying densities using a multiobjective evolutionary algorithm | |
Tan et al. | A coevolutionary algorithm for rules discovery in data mining | |
CN105446988B (zh) | 预测类别的方法和装置 | |
Tripathi et al. | Dynamic frequency based parallel k-bat algorithm for massive data clustering (DFBPKBA) | |
Pereira et al. | A binary cuckoo search and its application for feature selection | |
Zhou et al. | Multiobjective biogeography based optimization algorithm with decomposition for community detection in dynamic networks | |
Yeh et al. | Artificial bee colony algorithm-neural networks for S-system models of biochemical networks approximation | |
Yousri et al. | Fractional-order comprehensive learning marine predators algorithm for global optimization and feature selection | |
Qi et al. | Multi-objective immune algorithm with Baldwinian learning | |
US9984323B2 (en) | Compositional prototypes for scalable neurosynaptic networks | |
Song et al. | A design flow for mapping spiking neural networks to many-core neuromorphic hardware | |
Bong et al. | Multiobjective clustering with metaheuristic: current trends and methods in image segmentation | |
Wang et al. | AdaBoost-inspired multi-operator ensemble strategy for multi-objective evolutionary algorithms | |
Biswas et al. | Hybrid expert system using case based reasoning and neural network for classification | |
Zhang et al. | Application of natural computation inspired method in community detection | |
Hajibagheri et al. | Modeling information diffusion and community membership using stochastic optimization | |
Muhsen et al. | Enhancing NoC-based MPSoC performance: a predictive approach with ANN and guaranteed convergence arithmetic optimization algorithm | |
Feng et al. | Genetic algorithm-based optimization of deep neural network ensemble | |
Doppa et al. | Autonomous design space exploration of computing systems for sustainability: Opportunities and challenges | |
Gong et al. | Evolutionary computation in China: A literature survey |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |