CN115099395A - 神经网络构建方法及装置、设备、介质 - Google Patents
神经网络构建方法及装置、设备、介质 Download PDFInfo
- Publication number
- CN115099395A CN115099395A CN202211023418.5A CN202211023418A CN115099395A CN 115099395 A CN115099395 A CN 115099395A CN 202211023418 A CN202211023418 A CN 202211023418A CN 115099395 A CN115099395 A CN 115099395A
- Authority
- CN
- China
- Prior art keywords
- cluster
- synaptic
- neuron
- connection
- mini
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
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)
- Molecular Biology (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种神经网络构建方法及装置、设备、介质,属于人工智能芯片技术领域,用以减少跨众核芯片的传输。该方法包括:获取多个初始神经元簇并进行分组,分别获得多个迷你神经元簇;获取每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵;获取在不同初始神经元簇之间的簇间连接权重矩阵,簇间连接为稀疏连接;基于簇内连接权重矩阵和簇间连接权重矩阵对迷你神经元簇进行聚合,得到初始神经元簇的稀疏连接权重矩阵;基于初始神经元簇的稀疏连接权重矩阵构建神经形态网络。本公开提供的方法可应用于众核芯片,减少跨众核芯片的传输以及处理核资源的占用。
Description
技术领域
本公开涉及人工智能芯片技术领域,特别涉及一种神经网络构建方法及装置、设备、介质。
背景技术
在生物神经网络中,前神经元胞体产生脉冲信号,经轴突末梢传递给突触,再经突触传递给后神经元树突的前端,由此实现脉冲信号的单向传递。受此启发,利用众核结构类脑计算芯片进行神经形态网络计算中,前神经元簇发放脉冲序列,脉冲序列经过突触权重计算得到突触后电流序列,突触后电流序列传递给后神经元簇。由此可见,在神经形态网络计算中,前神经元簇的脉冲序列需要经过一定的突触连接才能传递给后神经元簇。
发明内容
本公开提供一种神经网络构建方法及装置、设备、介质。
第一方面,本公开提供了一种神经网络构建方法,包括:
获取多个初始神经元簇;
对每个所述初始神经元簇进行分组,分别获得多个迷你神经元簇;
获取每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵;其中,所述簇内连接权重包括所述迷你神经元簇内突触自连对应的自连权重和所述迷你神经元簇之间突触互连对应的互连权重;
获取在不同所述初始神经元簇之间的簇间连接权重矩阵,其中,所述簇间连接为稀疏连接;
基于所述簇内连接权重矩阵和所述簇间连接权重矩阵对所述迷你神经元簇进行聚合,得到所述初始神经元簇的稀疏连接权重矩阵;
基于所述初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
第二方面,本公开提供了一种网络仿真方法,包括:
通过本公开实施例提供的所述的神经网络构建方法构建的神经形态网络;
将所述神经形态网络中突触连接权重大于或等于预设的权重阈值的突触连接映射到同一或相邻的所述众核芯片;将所述神经形态网络中突触连接权重小于预设的权重阈值的突触连接映射到不同的所述众核芯片;其中,所述众核芯片包括多个处理核。
第三方面,本公开提供了一种神经网络构建装置,包括:
创建模块,用于获取多个初始神经元簇;
分组模块,用于对每个所述初始神经元簇进行分组,分别获得多个迷你神经元簇;
第一获取模块,用于获取每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵;其中,所述簇内连接权重包括所述迷你神经元簇内突触自连对应的自连权重和所述迷你神经元簇之间突触互连对应的互连权重;
第二获取模块,用于获取在不同所述初始神经元簇之间的簇间连接权重矩阵,其中,所述簇间连接为稀疏连接;
聚合模块,用于基于所述簇内连接权重矩阵和所述簇间连接权重矩阵对所述迷你神经元簇进行聚合,得到所述初始神经元簇的稀疏连接权重矩阵;
构建模块,用于基于所述初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
第四方面,本公开提供了一种电子设备,该电子设备包括:多个处理核;以及,片上网络,被配置为交互所述多个处理核间的数据和外部数据;其中,一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行上述的神经网络构建方法或网络仿真方法。
第五方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的神经网络构建方法或网络仿真方法。
本公开所提供的实施例,对每个所述初始神经元簇进行分组,分别获得多个迷你神经元簇;获取每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵;以及,获取在不同所述初始神经元簇之间的簇间连接权重矩阵,所述簇间连接为稀疏连接;基于所述簇内连接权重矩阵和所述簇间连接权重矩阵对所述迷你神经元簇进行聚合,得到初始神经元簇的稀疏连接权重矩阵;最后,基于初始神经元簇的稀疏连接权重矩阵构建神经形态网络,由于该神经形态网络是基于簇间连接权重和簇内连接权重对初始神经元簇的突触连接进行稀疏化处理,提高了初始神经元簇的簇内连接,确保每个初始神经元簇内的簇内连接充分,同时减少了不同初始神经元簇之间的簇间连接,在将该神经形态网络映射到众核芯片时,将同一初始神经元簇内突触连接较为紧密的迷你神经元簇映射至相同或相邻芯片中,突触连接较少或无连接的初始神经元簇映射到不同的芯片,从而减少脉冲序列跨众核芯片的传输,减少处理核资源的占用。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种神经网络构建方法的流程图;
图2为本公开实施例提供的一种神经形态网络的结构示意图;
图3为本公开实施例提供的神经形态网络的连接权重矩阵图;
图4为本公开实施例中对神经元簇进行分组的流程图;
图5为本公开实施例提供的一种网络仿真方法的流程图;
图6为本公开实施例提供的一种神经网络构建装置的结构示意图;
图7为本公开实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
神经元是神经系统的基本结构和功能单位,突触是两个神经元的互联位置,是神经元之间信息传递的关键部位。突触传递脉冲信号需要一定的时间,即脉冲信号从前神经元传递给后神经元存在延迟,本实施例将这种延迟称为突触延迟。
当大规模的神经形态网络包括较多的神经元以及突触连接,在将该大规模的神经形态网络映射到众核结构类脑计算芯片时,面临两个问题,其一,由于神经元的数量较大,神经元参数不能完全映射到同一个芯片;其二,神经元簇之间的突触连接数量较大,突触参数不能完全映射到同一个芯片,导致跨芯片数据传输量较大,降低了芯片运算的效率。
根据本公开实施例的神经网络构建方法,该神经形态网络包括大规模的神经元和突触连接,在将该神经形态网络映射到众核芯片时,可以减少脉冲序列跨众核芯片的传输,从而减少处理核资源的占用。
根据本公开实施例的神经网络构建方法可以由终端设备或服务器等电子设备执行,终端设备可以为车载设备、用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。或者,可通过服务器执行方法。
图1为本公开实施例提供的一种神经网络构建方法的流程图。图2为本公开实施例提供的一种神经形态网络的结构示意图。在图2中,箭头表示前神经元簇与后神经元簇的突触连接是单向连接,箭头中的矩形块表示前神经元簇与后神经元簇之间的连接权重矩阵。参照图1和图2,该方法包括:
步骤S101,获取多个初始神经元簇。
其中,初始神经元簇包括多个神经元,神经元之间通过突触连接传递脉冲信号。一般而言,脉冲信号是单向传输的,即前神经元通过突触连接将脉冲信号传递给后神经元。
在本公开实施例中,突触连接信息包括前神经元标识、后神经元标识、连接权重和突触延迟,其中,前神经元标识用于标识前神经元的身份、ID(身份证标识)地址,后神经元标识用于标识后神经元的身份、ID地址,连接权重用于表示突触连接的连接强度,突触延迟是指脉冲信号传输的时间。
在一些实施例中,用户可以创建一个或多个初始神经元簇,在创建初始神经元簇时,可以先设置神经元类型neuron_model、神经元数量neuron_num、神经元初始参数neuron_params、以及创建初始神经元簇population。其中,神经元初始参数neuron_params包括但不限于膜电位初始值、阈值、重置电位和衰减系数。
在一些实施例中,将多个初始神经元簇按创建顺序保存到初始神经元簇列表population_list中,如population_list=[G0,G1,G2,G3,……]。
步骤S102,对每个初始神经元簇进行分组,分别获得多个迷你神经元簇。
在步骤S102中,对初始神经元簇进行分组,每个初始神经元簇可分为多个迷你神经元簇,每个迷你神经元簇包括多个神经元。
示例地,如图2所示,神经形态网络包括4个初始神经元簇,即第一初始神经元簇G0、第二初始神经元簇G1、第三初始神经元簇G2和第四初始神经元簇G3,每个初始神经元簇包括多个神经元,例如每个初始神经元簇包括neuron_num=100000个神经元。
将每个初始神经元簇分为4个迷你神经元簇,如将第一初始神经元簇G0进行分组,得到第一迷你神经元簇G0-0、第二迷你神经元簇G0-1、第三迷你神经元簇G0-2和第四迷你神经元簇G0-3;将第二初始神经元簇G2进行分组,得到第一迷你神经元簇G1-0、第二迷你神经元簇G1-1、第三迷你神经元簇G1-2和第四迷你神经元簇G1-3;将第三初始神经元簇G3进行分组,得到第一迷你神经元簇G2-0、第二迷你神经元簇G2-1、第三迷你神经元簇G2-2和第四迷你神经元簇G2-3;将第四初始神经元簇G3进行分组,得到第一迷你神经元簇G3-0、第二迷你神经元簇G3-1、第三迷你神经元簇G3-2和第四迷你神经元簇G3-3。
在任意一个初始神经元簇内的迷你神经元簇可以自连和互连,以第二初始神经元簇G1内的迷你神经元簇为例,第一迷你神经元簇G1-0与第一迷你神经元簇G1-0的连接为自连,第一迷你神经元簇G1-0与第二迷你神经元簇G1-1的连接为互连。
步骤S103,获取每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵。
其中,簇内连接权重包括迷你神经元簇内突触自连对应的自连权重和迷你神经元簇之间突触互连对应的互连权重。
在本公开实施例中,簇内连接权重矩阵是迷你神经元簇之间簇内连接权重构成的矩阵。图3为本公开实施例中神经形态网络的连接权重矩阵图。在图3中,大矩形框表示整个神经形态网络所有神经元之间的突触连接权重矩阵,小矩形块表示不同迷你神经元簇之间的突触连接矩阵,而且,小矩形块中点越密对应的突触连接权重越大,最密的区域表示突触连接权重为0,或者表示没有突触连接。每个小矩形块包括多个神经元之间的突触连接权重。图3中(a)表示簇内连接权重矩阵,在主对角线上的四个矩形框分别表示初始神经元簇对应的簇内连接权重,即自连权重和互连权重,每个矩形框包括64×64个迷你神经元簇的自连权重和互连权重。
在本公开实施例中,可以基于连接权重类型和突触延迟确定簇间连接,将连接权重类型不一致、突触延迟相差较大的迷你神经元簇进行分组,使得初始神经元簇之间的簇间连接稀疏化。
步骤S104,获取在不同初始神经元簇之间的簇间连接权重矩阵。其中,本公开实施例中不同初始神经元簇之间的簇间连接为稀疏连接,并且不限制实现稀疏连接的具体方式。
例如,在步骤S104中,可在不同初始神经元簇中分别选择部分神经元作为连接神经元,利用连接神经元实现该不同初始神经元簇之间的稀疏连接。
在一种可能的实现方式中,可以将某一初始神经元簇的对外输出连接数固定,不限制具体如何连接其他初始神经元簇。换言之,预先设定某个初始神经元簇对外输出给其它初始神经元簇的簇间连接数量,但该初始神经元簇对外输出给任一其它初始神经元簇的簇间连接的数量可以任意。
示例地,预先设定第一初始神经元簇G0对外输出给第二初始神经元簇G1、第三初始神经元簇G2和第四初始神经元簇G3的簇间连接数量为6,第一初始神经元簇G0对外输出给第二初始神经元簇G1的簇间连接的数量为一个,对外输出给第三初始神经元簇G2的簇间连接的数量为两个,对外输出给第四初始神经元簇G3的簇间连接的数量为三个;或者,第一初始神经元簇G0对外输出给第二初始神经元簇G1的簇间连接的数量为两个,对外输出给第三初始神经元簇G2的簇间连接的数量为两个,对外输出给第四初始神经元簇G3的簇间连接的数量为两个;或者,第一初始神经元簇G0对外输出给第二初始神经元簇G1的簇间连接的数量为四个,对外输出给第三初始神经元簇G2的簇间连接的数量为一个,对外输出给第四初始神经元簇G3的簇间连接的数量为一个。
示例地,预先设定第一初始神经元簇G0对外输出给第二初始神经元簇G1的簇间连接数量为2,从第一初始神经元簇G0中确定两个用于连接的连接神经元,从第二初始神经元簇G1中确定两个用于连接的连接神经元,分别利用从两个初始神经元簇中确定的连接神经元,实现该第一、第二初始神经元簇之间的稀疏连接。
在一种可能的实现方式中,将某一初始神经元簇的输入连接数固定,不限制具体如何连接其他神经元簇。换言之,预先设定某个初始神经元簇输入连接的数量,但该初始神经元簇与其它任一初始神经元簇的输入连接的数量可以任意。
示例地,预先设定第一初始神经元簇G0的输入连接数量为6,其中,第一初始神经元簇G0与第二初始神经元簇G1建立的输入连接的数量为一个,与第三初始神经元簇G2建立的输入连接的数量为两个,与第四初始神经元簇G3建立的输入连接的数量为三个;或者,第一初始神经元簇G0与第二初始神经元簇G1建立的输入连接的数量为两个,与第三初始神经元簇G2建立的输入连接的数量为两个,与第四初始神经元簇G3建立的输入连接的数量为两个。
在一种可能的实现方式中,将任两个初始神经元簇之间的簇间连接数量固定,不限制该两个初始神经元簇之间的具体连接方式。换言之,预先设定任意两个初始神经元簇之间的簇间连接的数量,但该两个初始神经元簇的具体连接方式任意。
示例地,第一初始神经元簇G0和第二初始神经元簇G1之间设置3个簇间连接,第一初始神经元簇G0内的第一迷你神经元簇G0-0与第二初始神经元簇G1内的第一迷你神经元簇G1-0之间有两个簇间连接,第一初始神经元簇G0内的第二迷你神经元簇G0-1与第二初始神经元簇G1内的第三迷你神经元簇G1-2之间有一个簇间连接;或者,第一初始神经元簇G0内的第一迷你神经元簇G0-0与第二初始神经元簇G1内的第一迷你神经元簇G1-0之间有一个簇间连接,第一初始神经元簇G0内的第二迷你神经元簇G0-1与第二初始神经元簇G1内的第三迷你神经元簇G1-2之间有一个簇间连接;第一初始神经元簇G0内的第三迷你神经元簇G0-2与第二初始神经元簇G1内的第四迷你神经元簇G1-3之间有一个簇间连接。
图3中(b)表示簇间连接权重矩阵(又称分组连接权重矩阵),该图包括四列初始神经元簇对应的簇间连接权重,其中,每列的两个16×64的矩阵表示相邻的两个初始神经元簇中,从一个初始神经元簇中分组选择的神经元和另一个初始神经元簇对应位置的神经元的连接权重分布,即在一个初始神经元簇内的64个迷你神经元簇中分组选择2×16个神经元与另一初始神经元簇内对应位置的64个迷你神经元簇相连,所以有2个16×64的簇间连接权重矩阵。
步骤S105,基于簇内连接权重矩阵和簇间连接权重矩阵对迷你神经元簇进行聚合,得到初始神经元簇的稀疏连接权重矩阵。
在步骤S105中,将簇内连接权重矩阵和簇间连接权重矩阵进行连接权重聚合,得到迷你神经元簇的连接权重矩阵,即得到稀疏连接权重矩阵。
图3中(c)表示稀疏化后的突触连接权重矩阵图,从图可知,在主对角线上的矩形框内,点相对稀疏的矩阵较多,因此,聚合后的连接权重矩阵属于稀疏连接,既保证了当前的初始神经元簇内各迷你神经元簇连接的充分性,又保证初始神经元簇之间迷你神经元簇连接的随机性,便于类脑芯片进行稀疏化高效率计算,并且占用更少的计算空间。
步骤S106,基于初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
在本公开实施例中,聚合后的稀疏连接权重矩阵是稀疏连接,由此构建的神经形态网络既能保证初始神经元簇内部突触连接的充分性,又保证不同神经元簇间连接的随机性,从而便于类脑芯片进行稀疏化高效率计算,并且占用较少的计算空间。
本公开实施例提供的神经网络构建方法,对每个初始神经元簇进行分组,分别获得多个迷你神经元簇;获取每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵;以及,获取在不同初始神经元簇之间的簇间连接权重矩阵;基于簇内连接权重矩阵和簇间连接权重矩阵对迷你神经元簇进行聚合,得到初始神经元簇的稀疏连接权重矩阵;最后,基于初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
由于该神经形态网络是基于簇间连接权重和簇内连接权重对初始神经元簇的突触连接进行稀疏化处理,提高了初始神经元簇内的簇内连接,以保证每个初始神经元簇内的簇内连接充分,同时减少了不同初始神经元簇之间的簇间连接,因此,在将该神经形态网络映射到众核芯片时,可以将同一初始神经元簇内的迷你神经元簇映射至同一芯片中,相邻初始神经元簇映射至相邻芯片中,该方式可以减少脉冲序列跨众核芯片的传输,减少了处理核资源的占用。
在一些实施例中,步骤S102,对每个初始神经元簇进行分组,分别获得多个迷你神经元簇,包括:
基于初始神经元簇内突触连接的突触连接权重和突触延迟,对每个初始神经元簇内的突触连接分别进行分组,获得各初始神经元簇对应的多个迷你神经元簇。
在本公开实施例中,基于突触连接的突触连接权重和突触延迟对初始神经元簇内突触连接进行分组,每个初始神经元簇获得多个迷你神经元簇,使得每个迷你神经元簇的连接权重基本一致,突触延迟相同或相近,这样在将迷你神经元簇映射到众核芯片时,增加片内交互加,减少总延迟时间,从而提高并行计算的效率。而且,将初始神经元分成多个迷你神经元簇,在将初始神经元簇映射到众核芯片时,交互较多的迷你神经元簇映射到相同或相近的芯片,这样既保证了初始神经形态之间的信息交流,又减少了前后两个初始神经元簇之间突触积分计算量,减少跨芯片数据传递量。
在一些实施例中,如图4所示,基于初始神经元簇内突触连接的突触连接权重和突触延迟,对每个初始神经元簇内的突触连接分别进行分组,获得各初始神经元簇对应的多个迷你神经元簇,包括:
步骤S401,基于初始神经元簇内各突触连接的突触连接权重对初始神经元簇内的突触连接进行分组,获得兴奋型突触连接集合和抑制型突触连接集合。
在本公开实施例中,基于突触连接权重对初始神经元簇内的突触连接进行分组,获得兴奋型突触连接集合和抑制型突触连接集合,即将初始神经元簇内的突触连接分成两个集合,每个集合中的突触连接具有功能相近的突触连接权重。
在一些实施例中,兴奋型突触连接集合为兴奋型突触连接构成的集合,抑制型突触连接集合为抑制型突触连接集合构成的集合。
在本公开实施例中,将初始神经元簇内的突触连接按照兴奋型和抑制型分类,分为兴奋型突触连接构成的集合和抑制型突触连接集合构成的集合;其中,兴奋型突触连接的连接权重为大于或等于0,抑制型突触连接集合的连接权重为小于0。因此,在对突触连接进行分类时,兴奋型突触连接集合内的突触连接的连接权重大于或等于0,抑制型突触连接集合内的突触连接的连接权重小于0。
步骤S402,基于兴奋型突触连接集合内的突触连接所对应的突触延迟的数值对兴奋型突触连接集合内的突触连接所对应的突触延迟进行排序,并基于突触延迟的排序结果对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合。
按照突触延迟的数值(大小)对兴奋型突触连接集合内的突触连接进行排序。例如,按照延迟的数值从小到大或从大到小对兴奋型突触连接集合内的突触连接所对应的突触延迟进行排序,获得突触延迟的排序结果,然后,基于突触延迟的排序结果对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合,即将不同的突触延迟分成多个组,每个组对应一个兴奋型突触连接子集合。例如,可以将兴奋型突触连接集合W_ex内的突触延迟按照突触延迟的排序结果分为若干兴奋型突触连接子集合D_ex_0,D_ex_1,……。
步骤S403,基于抑制型突触连接集合内的突触连接所对应的突触延迟的数值对抑制型突触连接集合内的突触连接所对应的突触延迟进行排序,并基于突触延迟的排序结,对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合。
在本公开实施例中,按照突触延迟的数值(大小)对兴奋型突触连接集合内的突触连接进行排序。例如,按照延迟的数值从小到大或从大到小对兴奋型突触连接集合内的突触连接所对应的突触延迟进行排序,获得突触延迟的排序结果,然后,基于突触延迟的排序结果对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合,即将不同的突触延迟分成多个组,每个组对应一个兴奋型突触连接子集合。例如,可以将兴奋型突触连接集合W_in内的突触延迟按照突触延迟的排序结果分为若干兴奋型突触连接子集合D_in_0,D_in_1,……。
步骤S404,基于兴奋型突触连接子集合和抑制型突触连接子集合获得多个迷你神经元簇。
在本公开实施例中,基于兴奋型突触连接子集合和抑制型突触连接子集合将初始神经元簇分为多个迷你神经元簇,每个子集合对应一个迷你神经元簇。
在本公开实施例中,由于兴奋型突触连接子集合和抑制型突触连接子集合是按照突触延迟的数据进行分组,使得突触延迟相近的突触连接被分在一个集合内,在映射时,可以将突触延迟相同或相近的突触连接映射到一个芯片,从而提高众核芯片的计算效率。
在一些实施例中,基于突触延迟的排序结果对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合,包括:
基于兴奋型突触连接集合对应的突触延迟的排序结果并按照预设的延迟分组标准,对兴奋型突触连接集合内的突触延迟进行分组,获得多个第一延迟子集合;基于第一延迟子集合对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合。
其中,延迟分组标准是预先设定的,为了将突触延迟相同或相近的突触连接分配在一个组内。
在本公开实施例中,按照预设的延迟分组标准对兴奋型突触连接集合内的突触延迟进行分组,获得多个第一延迟子集合,基于第一延迟子集合对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合,由此获得的每个兴奋型突触连接子集合中,突触延迟的数值相同或相近,这样在映射到众核芯片进行仿真时,使延迟时间相同或相近的突触连接一起延迟,可以减少总延迟时间,从而提高众核芯片的并行计算的效率。
类似地,基于突触延迟的排序结果对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合,包括:
基于抑制型突触连接集合对应的突触延迟的排序结果并按照预设的延迟分组标准,对抑制型突触连接集合内的突触延迟进行分组,获得多个第二延迟子集合;基于第二延迟子集合对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合。
在本公开实施例中,按照预设的延迟分组标准对抑制型突触连接集合内的突触延迟进行分组,获得多个第二延迟子集合,基于第二延迟子集合对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合,由此获得的每个抑制型突触连接子集合中,突触延迟的数值相同或相近,这样在映射到众核芯片进行仿真时,使延迟时间相同或相近的突触连接一起延迟,可以减少总延迟时间,从而提高众核芯片的并行计算的效率。
在一些实施例中,延迟分组标准包括相邻的两个突触延迟的数值的差值小于第一数值,且突触延迟的排序结果中最小的突触延迟的数值与最大的突触延迟的数值之间的差值小于第二数值,其中,第一数值小于第二数值。
例如,当延迟分组标准中的第一数值为2、第二数值为10时,将相邻的两个突触延迟的数值的差值小于2,且最小突触延迟与最大突触延迟的数值的差值小于10的突触延迟被分在一个延迟子集中,该延迟子集中的突触延迟的数值比较集中,在映射到众核系统中相同和相邻的众核芯片时,可以减少总延迟时间,提高并行计算的效率。
在一些实施例中,步骤S103,获取每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵,包括:
获取每个初始神经元簇内迷你神经元簇的突触自连信息,以及,每个初始神经元簇内迷你神经元簇之间的突触互连信息;获取每个初始神经元簇内参与信息传递的神经元;基于参与信息传递的神经元、以及每个初始神经元簇内的迷你神经元簇内的突触自连信息和迷你神经元簇之间的突触互连信息,获得每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵。
在神经形态网络中,迷你神经元簇的突触连接包括突触自连和突触互连,其中,突触自连是迷你神经元簇内各神经元之间的突触连接,突触自连信息是表示突触自连关系的信息;突触互连是指迷你神经元簇之间的突触连接,突触互连信息是表示突触互连关系的信息。
在本公开实施例中,针对每个初始神经元,分别获取迷你神经元簇的突触自连信息和突触互连信息。例如,对于第一初始神经元簇G0,在对神经元分组后,获得四个迷你神经元簇,即第一迷你神经元簇G0-0、第二迷你神经元簇G0-1、第三迷你神经元簇G0-2和第四迷你神经元簇G0-3,创建各个迷你神经元内的突触自连,即(G0_0,G0_0),(G0_1,G0_1),(G0_2,G0_2),(G0_3,G0_3),以及突触互连(G0_0,G0_1),(G0_0,G0_2),(G0_0,G0_3),(G0_1,G0_2),(G0_1,G0_3),(G0_2,G0_3)。
在本公开实施例中,在创建突触自连和突触互连后,可以将突触自连信息和突触互连信息存储在固定的存储空间。在一些实施例中,将突触自连信息和突触互连信息存储在分组列表group_list中,即分组列表group_list=[(G0_0,G0_0),(G0_1,G0_1),(G0_2,G0_2),(G0_3,G0_3), (G0_0,G0_1),(G0_0,G0_2),(G0_0,G0_3),(G0_1,G0_2),(G0_1,G0_3),(G0_2,G0_3)……]。
在本公开实施例中,不是初始神经元簇内所有的神经元都参与信息传递,因此,确定每个初始神经元簇内参与信息传递的神经元,再获得参与信息传递的神经元、以及每个初始神经元簇内的迷你神经元簇内的突触自连信息和迷你神经元簇之间的突触互连信息,获得每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵。
图3中(a)主对角线上包括四个矩形框,每个矩形框对应一个初始神经元簇,每个矩形框包括64×64个迷你神经元簇的簇内连接权重矩阵,每个簇内连接权重矩阵包括自连权重和互连权重,其中,自连权重和互连权重是迷你神经元簇中参与信息传递的神经元之间突触连接对应的自连权重和互连权重。
在一些实施例中,步骤S104,获取在不同初始神经元簇之间的簇间连接权重矩阵,包括:
基于不同初始神经元簇之间的迷你神经元簇建立迷你神经元簇的簇间连接;获取每个初始神经元簇内参与信息传递的神经元;基于参与信息传递的神经元和迷你神经元簇的簇间连接,获得迷你神经元簇在不同初始神经元簇的簇间连接权重矩阵。
在本公开实施例中,由于初始神经元簇内不是所有的神经元都参与信息传递,因此,确定每个初始神经元簇内参与信息传递的神经元,再基于参与信息传递的神经元,以及不同初始神经元簇之间的迷你神经元簇的簇间连接,获得每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵。
在一些实施例中,基于不同初始神经元簇之间的迷你神经元簇建立迷你神经元簇的簇间连接,包括:
从任意两个相邻的初始神经元簇内分别提取预设数量的迷你神经元簇;基于提取出的迷你神经元簇建立迷你神经元簇的簇间连接;基于所有的相邻两个初始神经元簇对应的迷你神经元簇的簇间连接获得不同初始神经元簇之间迷你神经元簇的簇间连接。
在一种可能的实现方式中,从任意两个相邻的初始神经元簇内分别提取预设数量的迷你神经元簇时,其中提取的预设数量小于该相邻的两个初始神经元簇中至少一个初始神经元簇中所包含的迷你神经元簇的数量,即,在该实现方式中,任意相邻的两个初始神经元簇内的迷你神经元簇为稀疏连接。例如,以图2为例进行示意性说明:初始神经元簇G0包含4个迷你神经元簇,初始神经元簇 G1包含4个迷你神经元簇,在该实现方式中可将该相邻的两个初始神经元簇中提取2个(预设数量)迷你神经元簇,即将初始神经元簇G0、G1的连接个数设定为2。该方式中,可将相邻的初始神经元簇之间的连接设定为稀疏连接,基于该方式的簇间连接实现方式可进一步实现多个初始神经元簇之间的稀疏连接。
在一些实施例中,设定分组连接个数gc,即迷你神经元簇的连接个数,分组连接个数小于或等于分组列表中迷你神经元簇的个数,即gc≤group_num。
假设分组连接的个数gc为2,即两个相邻的初始神经元簇内分别提取预设数量的迷你神经元簇,在当前初始神经元簇中选择一个迷你神经元簇,在与当前初始神经元簇相邻的另一个初始神经元簇中选择一个迷你神经元簇,当前初始神经元簇中的神经元簇与另一个初始神经元簇中的神经元簇进行分组连接,得到簇间连接。
示例地,对第一初始神经元簇G0和第二初始神经元簇 G1中的迷你神经元簇进行分组连接时,从第一初始神经元簇G0内随机选择2个迷你神经元簇作为分组连接索引,如gc_0=[G0_0,G0_2],在第二初始神经元簇G1内对应于第一初始神经元簇G0的位置选择2个迷你神经元簇作为分组连接索引,即gc_1=[G1_0,G1_2],然后,创建分组连接,(G0_0,G1_0)和(G0_2,G1_2),将每对分组连接保存到分组连接列表gc_list,即gc_list=[[(G0_0,G1_0),(G0_2,G1_2)],[(G1_1,G2_1),(G1_3,G2_3)],……]。
本公开实施例遍历初始神经元簇列表,对第二初始神经元簇 G1和第三初始神经元簇 G2的分组连接、第三初始神经元簇 G2与第四初始神经元簇 G3的分组连接与第一初始神经元簇G0和第二初始神经元簇 G1中相似,在此不再赘述。在遍历初始神经元簇列表获得不同初始神经元簇之间的分组连接列表gc_list。
在本公开实施例中,不是初始神经元簇内所有的神经元都参与信息传递,因此,确定每个初始神经元簇内参与信息传递的神经元,再基于参与信息传递的神经元与迷你神经元簇的簇间连接,获得不同初始神经元簇之间的簇间连接权重矩阵,获得每个初始神经元簇内各迷你神经元簇的簇间连接权重矩阵。
图3中(b)主对角线上包括四个矩形框,每个矩形框对应一个初始神经元簇,每个矩形框包括两个16×64个迷你神经元簇的簇间连接权重矩阵,即,在神经形态网络的簇间连接权重矩阵中,每列包括两个16×64矩阵,分别表示从前一个初始神经元簇内分组选择的神经元和当前初始神经元簇内对应位置迷你神经元簇相互连接的权重分布,即在前一个初始神经元簇内的64个迷你神经元团簇中分组选择2×16个神经元与当前核对应位置的64个神经元相连,得到2个16×64的权重矩阵。
在一些实施例中,基于簇内连接权重矩阵和簇间连接权重矩阵对迷你神经元簇进行聚合,得到初始神经元簇的稀疏化连接矩阵,包括:
基于簇内连接权重矩阵内各簇内连接权重及对应的簇内连接加权系数,以及,簇间连接权重矩阵内各簇间连接权重及对应的簇间连接加权系数,对迷你神经元簇进行聚合,得到对应的稀疏连接权重;根据迷你神经元簇对应的稀疏连接权重获得迷你神经元簇的稀疏化连接矩阵。
在本公开实施例中,对于任意一个初始神经元簇的整体连接权重矩阵,可以将该初始神经元簇对应的簇内连接权重矩阵和簇间连接权重矩阵通过线性加和的方式进行聚合。
示例地,W(i,j)=α×Winner(i,j) + β×Winter(i,j),其中,α和β为加权系数,i, j为具有连接关系的神经元索引(序号),Winner为初始神经元簇内部的自连权重和互连权重矩阵,Winter为不同初始神经元簇之间的簇间连接权重矩阵。
在聚合过程中,先设定加权系数α和β,分别提取初始神经元簇的簇内连接权重Winner(i,j)和簇间连接权重Winter(i,j),再通过W(i,j)=α×Winner(i,j) + β×Winter(i,j)获得稀疏连接权重W(i,j),将聚合后的每个稀疏连接权重W(i,j)组合,获得初始神经元簇的稀疏连接权重矩阵。
图3中(c)示出第一初始神经元簇的连接权重矩阵,第一初始神经元簇的连接权重矩阵属于稀疏连接,既保证了第一初始神经元簇内的簇内连接的充分性,又保证第一初始神经元簇与其它初始神经元簇之间簇间连接的随机性,便于类脑芯片进行稀疏化高效率计算,并且占用更少的计算空间。
需要说明的是,其它初始神经元簇的连接权重矩阵与图3中(c)示出第一初始神经元簇的连接权重矩阵相似,在此不再赘述。
在一些实施例中,神经形态网络用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种。
本公开实施例还提供一种神经形态网络,其包括多个初始神经元簇,每个初始神经元簇包括多个神经元,多个初始神经元簇通过本公开实施例提供的神经网络构建方法构建的神经形态网络。
该神经形态网络是基于簇间连接权重和簇内连接权重对初始神经元簇的突触连接进行稀疏化,在每个初始神经元簇内的簇内连接充分的情况下,减少了不同初始神经元簇之间的簇间连接,因此,在将该神经形态网络映射到众核芯片时,可以减少脉冲序列跨众核芯片的传输,减少了处理核资源的占用。
本公开实施例还提供一种网络仿真方法,图5为本公开实施例提供的一种网络仿真方法的流程图。如图5所示,网络仿真方法包括:
步骤S501,通过本公开实施例提供的神经网络构建方法构建的神经形态网络;
步骤S502,将神经形态网络映射至众核芯片;其中,众核芯片包括多个处理核。
本公开该网络仿真方法是基于簇间连接权重和簇内连接权重对初始神经元簇的突触连接进行稀疏化,在每个初始神经元簇内的簇内连接充分的情况下,减少了不同初始神经元簇之间的簇间连接,由于该网络仿真方法是在该神经形态网络映射到众核芯片后进行仿真,可以减少脉冲序列跨众核芯片的传输,减少了处理核资源的占用。
在一些实施例中,将神经形态网络中突触连接权重大于或等于预设的权重阈值的突触连接映射到同一或相邻的众核芯片;将神经形态网络中突触连接权重小于预设的权重阈值的突触连接映射到不同的众核芯片。
本公开实施例将突触连接权重一致的突触连接映射到同一或相邻的众核芯片,可以增加芯片的初始神经元簇内部的簇内连接,将神经形态网络中突触连接权重小于预设的权重阈值的突触连接映射到不同的众核芯片,可以减少初始神经元簇之间的簇间连接,既保证了簇内部连接的充分性,又保证簇间连接的随机性,便于类脑芯片进行稀疏化高效率计算,并且占用更少的计算空间。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
本公开实施例还提供一种神经网络构建装置,图6为本公开实施例提供的一种神经网络构建装置的结构示意图。如图6所示,神经网络构建装置600包括:
创建模块601,用于获取多个初始神经元簇;
分组模块602,用于对每个初始神经元簇进行分组,分别获得多个迷你神经元簇;
第一获取模块603,用于获取每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵;其中,簇内连接权重包括迷你神经元簇内突触自连对应的自连权重和迷你神经元簇之间突触互连对应的互连权重;
第二获取模块604,用于获取在不同初始神经元簇之间的簇间连接权重矩阵,其中,簇间连接为稀疏连接;
聚合模块605,用于基于簇内连接权重矩阵和簇间连接权重矩阵对迷你神经元簇进行聚合,得到初始神经元簇的稀疏连接权重矩阵;
构建模块606,用于基于初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
本公开实施例提供的神经网络构建装置,分组模块对每个初始神经元簇进行分组,分别获得多个迷你神经元簇;第一获取模块获取每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵;以及,第二获取模块获取在不同初始神经元簇之间的簇间连接权重矩阵;聚合模块基于簇内连接权重矩阵和簇间连接权重矩阵对迷你神经元簇进行聚合,得到初始神经元簇的稀疏连接权重矩阵;构建模块基于初始神经元簇的稀疏连接权重矩阵构建神经形态网络,由该构建装置构建的神经形态网络由于是基于簇间连接权重和簇内连接权重对初始神经元簇的突触连接进行稀疏化处理,提高了初始神经元簇的簇内连接,确保每个初始神经元簇内的簇内连接充分,同时减少了不同初始神经元簇之间的簇间连接,因此,在将该神经形态网络映射到众核芯片时,将同一初始神经元簇内突触连接较为紧密的迷你神经元簇映射至相同或相邻芯片中,突触连接较少或无连接的初始神经元簇映射到不同的芯片,从而可以减少脉冲序列跨众核芯片的传输,减少处理核资源的占用。
在一些实施例中,分组模块602基于初始神经元簇内突触连接的突触连接权重和突触延迟,对每个初始神经元簇内的突触连接分别进行分组,获得各初始神经元簇对应的多个迷你神经元簇。
在一些实施例中,分组模块602包括:
第一分组单元,用于基于初始神经元簇内各突触连接的突触连接权重对初始神经元簇内的突触连接进行分组,获得兴奋型突触连接集合和抑制型突触连接集合;
第二分组单元,用于基于兴奋型突触连接集合内的突触连接所对应的突触延迟的数值对兴奋型突触连接集合内的突触连接所对应的突触延迟进行排序,并基于突触延迟的排序结果对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合;
第二分组单元,还用于基于抑制型突触连接集合内的突触连接所对应的突触延迟的数值对抑制型突触连接集合内的突触连接所对应的突触延迟进行排序,并基于突触延迟的排序结果对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合;
第一获得单元,用于基于兴奋型突触连接子集合和抑制型突触连接子集合获得多个迷你神经元簇。
在一些实施例中,第二分组单元包括:
延迟子结合获得子单元,用于基于兴奋型突触连接集合对应的突触延迟的排序结果并按照预设的延迟分组标准,对兴奋型突触连接集合内的突触延迟进行分组,获得多个第一延迟子集合。
二次分组子单元,用于基于第一延迟子集合对兴奋型突触连接集合内的突触连接进行二次分组,获得多个兴奋型突触连接子集合。
和/或,延迟子结合获得子单元,还用于基于突触延迟的排序结果对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合,包括:
二次分组子单元,还用于基于抑制型突触连接集合对应的突触延迟的排序结果并按照预设的延迟分组标准,对抑制型突触连接集合内的突触延迟进行分组,获得多个第二延迟子集合;
基于第二延迟子集合对抑制型突触连接集合内的突触连接进行二次分组,获得多个抑制型突触连接子集合。
在一些实施例中,延迟分组标准包括相邻的两个突触延迟的数值的差值小于第一数值,且突触延迟的排序结果中最小的突触延迟的数值与最大的突触延迟的数值之间的差值小于第二数值,其中,第一数值小于第二数值。
在一些实施例中,兴奋型突触连接集合为连接权重大于或等于0的兴奋型突触连接构成的集合;抑制型突触连接集合为连接权重小于0的抑制型突触连接集合构成的集合
在一些实施例中,第一获取模块603包括:
第一获取单元,用于获取每个初始神经元簇内迷你神经元簇的突触自连信息,以及,每个初始神经元簇内迷你神经元簇之间的突触互连信息;
第二获取单元,用于获取每个初始神经元簇内参与信息传递的神经元;
簇内连接权重矩阵获取单元,用于基于参与信息传递的神经元、以及每个初始神经元簇内的迷你神经元簇内的突触自连信息和迷你神经元簇之间的突触互连信息,获得每个初始神经元簇内各迷你神经元簇的簇内连接权重矩阵。
在一些实施例中,第二获取模块604包括:
建立单元,用于基于不同初始神经元簇之间的迷你神经元簇建立迷你神经元簇的簇间连接;
第二获取单元,还用于获取每个初始神经元簇内参与信息传递的神经元;
簇间连接权重矩阵获取单元,用于基于参与信息传递的神经元和迷你神经元簇的簇间连接,获得不同初始神经元簇之间的簇间连接权重矩阵。
在一些实施例中,建立单元包括:
提取子单元,用于从任意两个相邻的初始神经元簇内分别提取预设数量的迷你神经元簇;
建立子单元,用于基于提取出的迷你神经元簇建立迷你神经元簇的簇间连接;
获得子单元,用于基于所有的相邻两个初始神经元簇对应的迷你神经元簇的簇间连接获得不同初始神经元簇之间迷你神经元簇的簇间连接。
在一些实施例中,聚合模块605包括:
聚合单元,用于基于簇内连接权重矩阵内各簇内连接权重及对应的簇内连接加权系数,以及,簇间连接权重矩阵内各簇间连接权重及对应的簇间连接加权系数,对迷你神经元簇进行聚合,得到对应的稀疏连接权重;
第二获得单元,用于根据迷你神经元簇对应的稀疏连接权重获得初始神经元簇的稀疏连接矩阵。
此外,本公开还提供了电子设备、计算机可读存储介质,上述均可用来实现本公开提供的任一种网络仿真方法或神经网络构建方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图7为本公开实施例提供的一种电子设备的框图。
参照图7,本公开实施例提供了一种电子设备,该电子设备包括多个处理核701以及片上网络702,其中,多个处理核701均与片上网络702连接,片上网络702用于交互多个处理核701间的数据和外部数据。
其中,一个或多个处理核701中存储有一个或多个指令,一个或多个指令被一个或多个处理核701执行,以使一个或多个处理核701能够执行上述的网络仿真方法或神经网络构建方法。
在一些实施例中,该电子设备可以是众核芯片,由于众核芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(Double Data Rate,DDR)同步动态随机存储器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的神经网络构建方法,或网络仿真方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (14)
1.一种神经网络构建方法,其特征在于,包括:
获取多个初始神经元簇;
对每个所述初始神经元簇进行分组,分别获得多个迷你神经元簇;
获取每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵;其中,所述簇内连接权重包括所述迷你神经元簇内突触自连对应的自连权重和所述迷你神经元簇之间突触互连对应的互连权重;
获取在不同所述初始神经元簇之间的簇间连接权重矩阵,其中,所述簇间连接为稀疏连接;
基于所述簇内连接权重矩阵和所述簇间连接权重矩阵对所述迷你神经元簇进行聚合,得到所述初始神经元簇的稀疏连接权重矩阵;
基于所述初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
2.根据权利要求1所述的方法,其特征在于,所述对每个所述初始神经元簇进行分组,分别获得多个迷你神经元簇,包括:
基于所述初始神经元簇内突触连接的突触连接权重和突触延迟,对每个所述初始神经元簇内的突触连接分别进行分组,获得各所述初始神经元簇对应的多个所述迷你神经元簇。
3.根据权利要求2所述的方法,其特征在于,所述基于所述初始神经元簇内突触连接的突触连接权重和突触延迟,对每个所述初始神经元簇内的突触连接分别进行分组,获得对应的多个所述迷你神经元簇,包括:
基于所述初始神经元簇内各突触连接的突触连接权重对所述初始神经元簇内的突触连接进行分组,获得兴奋型突触连接集合和抑制型突触连接集合;
基于所述兴奋型突触连接集合内的所述突触连接所对应的突触延迟的数值对所述兴奋型突触连接集合内的所述突触连接所对应的所述突触延迟进行排序,并基于所述突触延迟的排序结果对所述兴奋型突触连接集合内的所述突触连接进行二次分组,获得多个兴奋型突触连接子集合;
基于所述抑制型突触连接集合内的所述突触连接所对应的突触延迟的数值对所述抑制型突触连接集合内的所述突触连接所对应的所述突触延迟进行排序,并基于所述突触延迟的排序结果对所述抑制型突触连接集合内的所述突触连接进行二次分组,获得多个抑制型突触连接子集合;
基于所述兴奋型突触连接子集合和所述抑制型突触连接子集合获得多个所述迷你神经元簇。
4.根据权利要求3所述的方法,其特征在于,所述基于所述突触延迟的排序结果对所述兴奋型突触连接集合内的所述突触连接进行二次分组,获得多个兴奋型突触连接子集合,包括:
基于所述兴奋型突触连接集合对应的所述突触延迟的排序结果并按照预设的延迟分组标准,对所述兴奋型突触连接集合内的所述突触延迟进行分组,获得多个第一延迟子集合;
基于所述第一延迟子集合对所述兴奋型突触连接集合内的所述突触连接进行二次分组,获得多个兴奋型突触连接子集合;
和/或,所述基于所述突触延迟的排序结果对所述抑制型突触连接集合内的所述突触连接进行二次分组,获得多个抑制型突触连接子集合,包括:
基于所述抑制型突触连接集合对应的所述突触延迟的排序结果并按照预设的延迟分组标准,对所述抑制型突触连接集合内的所述突触延迟进行分组,获得多个第二延迟子集合;
基于所述第二延迟子集合对所述抑制型突触连接集合内的所述突触连接进行二次分组,获得多个抑制型突触连接子集合。
5.根据权利要求4所述的方法,其特征在于,所述延迟分组标准包括相邻的两个所述突触延迟的数值的差值小于第一数值,且所述突触延迟的排序结果中最小的所述突触延迟的数值与最大的所述突触延迟的数值之间的差值小于第二数值,其中,所述第一数值小于所述第二数值。
6.根据权利要求1所述的方法,其特征在于,所述获取每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵,包括:
获取每个所述初始神经元簇内所述迷你神经元簇的突触自连信息,以及,每个所述初始神经元簇内所述迷你神经元簇之间的突触互连信息;
获取每个所述初始神经元簇内参与信息传递的神经元;
基于参与信息传递的所述神经元、以及每个所述初始神经元簇内的所述迷你神经元簇内的突触自连信息和所述迷你神经元簇之间的突触互连信息,获得每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵。
7.根据权利要求1所述的方法,其特征在于,所述获取在不同所述初始神经元簇之间的簇间连接权重矩阵,包括:
基于不同所述初始神经元簇之间的所述迷你神经元簇建立所述迷你神经元簇的簇间连接;
获取每个所述初始神经元簇内参与信息传递的神经元;
基于参与信息传递的所述神经元和所述迷你神经元簇的簇间连接,获得不同所述初始神经元簇之间的簇间连接权重矩阵。
8.根据权利要求7所述的方法,其特征在于,所述基于不同所述初始神经元簇之间的所述迷你神经元簇建立所述迷你神经元簇的簇间连接,包括:
从任意两个相邻的所述初始神经元簇内分别提取预设数量的迷你神经元簇;
基于提取出的所述迷你神经元簇建立所述迷你神经元簇的簇间连接;
基于所有的相邻两个所述初始神经元簇对应的迷你神经元簇的簇间连接获得不同所述初始神经元簇之间的所述迷你神经元簇的簇间连接。
9.根据权利要求1所述的方法,其特征在于,所述基于所述簇内连接权重矩阵和所述簇间连接权重矩阵对所述迷你神经元簇进行聚合,得到所述初始神经元簇的稀疏连接矩阵,包括:
基于簇内连接权重矩阵内各簇内连接权重及对应的簇内连接加权系数,以及,所述簇间连接权重矩阵内各所述簇间连接权重及对应的簇间连接加权系数,对所述迷你神经元簇进行聚合,得到对应的所述稀疏连接权重;
根据所述迷你神经元簇对应的所述稀疏连接权重获得所述初始神经元簇的稀疏连接矩阵。
10.一种网络仿真方法,其特征在于,包括:
通过权利要求1-9任意一项所述的神经网络构建方法构建神经形态网络;
将所述神经形态网络中突触连接权重大于或等于预设的权重阈值的突触连接映射到同一或相邻的众核芯片;将所述神经形态网络中突触连接权重小于预设的权重阈值的突触连接映射到不同的所述众核芯片;其中,所述众核芯片包括多个处理核。
11.根据权利要求10所述的方法,其特征在于,将所述神经形态网络中突触连接权重大于或等于预设的权重阈值的突触连接映射到同一或相邻的所述众核芯片;将所述神经形态网络中突触连接权重小于预设的权重阈值的突触连接映射到不同的所述众核芯片。
12.一种神经网络构建装置,其特征在于,包括:
创建模块,用于获取多个初始神经元簇;
分组模块,用于对每个所述初始神经元簇进行分组,分别获得多个迷你神经元簇;
第一获取模块,用于获取每个所述初始神经元簇内各所述迷你神经元簇的簇内连接权重矩阵;其中,所述簇内连接权重包括所述迷你神经元簇内突触自连对应的自连权重和所述迷你神经元簇之间突触互连对应的互连权重;
第二获取模块,用于获取在不同所述初始神经元簇之间的簇间连接权重矩阵,其中,所述簇间连接为稀疏连接;
聚合模块,用于基于所述簇内连接权重矩阵和所述簇间连接权重矩阵对所述迷你神经元簇进行聚合,得到所述初始神经元簇的稀疏连接权重矩阵;
构建模块,用于基于所述初始神经元簇的稀疏连接权重矩阵构建神经形态网络。
13.一种电子设备,其特征在于,包括:
多个处理核;以及
片上网络,被配置为交互所述多个处理核间的数据和外部数据;其中,一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行如权利要求1-9中任一项所述的神经网络构建方法,或执行如权利要求10-11中任一项所述的网络仿真方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-9中任一项所述的神经网络构建方法,或执行如权利要求10-11中任一项所述的网络仿真方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211023418.5A CN115099395B (zh) | 2022-08-25 | 2022-08-25 | 神经网络构建方法及装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211023418.5A CN115099395B (zh) | 2022-08-25 | 2022-08-25 | 神经网络构建方法及装置、设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115099395A true CN115099395A (zh) | 2022-09-23 |
CN115099395B CN115099395B (zh) | 2022-11-15 |
Family
ID=83301649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211023418.5A Active CN115099395B (zh) | 2022-08-25 | 2022-08-25 | 神经网络构建方法及装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115099395B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194051A (zh) * | 2023-11-01 | 2023-12-08 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103201610A (zh) * | 2010-10-29 | 2013-07-10 | 国际商业机器公司 | 带有使用模拟学习的突触权重的神经形态-突触器脉冲神经网络 |
CN105469143A (zh) * | 2015-11-13 | 2016-04-06 | 清华大学 | 基于神经网络动态特征的片上网络资源映射方法 |
US20180260682A1 (en) * | 2017-03-13 | 2018-09-13 | International Business Machines Corporation | Graph partitioning and placement for multi-chip neurosynaptic networks |
CN109564637A (zh) * | 2016-09-30 | 2019-04-02 | 国际商业机器公司 | 用于极端吞吐量神经网络的可扩展流突触超级计算机 |
US20190122114A1 (en) * | 2017-10-24 | 2019-04-25 | International Business Machines Corporation | Hardware-software co-design of neurosynaptic systems |
CN111565152A (zh) * | 2020-03-27 | 2020-08-21 | 中国人民解放军国防科技大学 | 一种基于路由域划分的类脑芯片路由系统数据通信方法 |
CN112149815A (zh) * | 2020-09-28 | 2020-12-29 | 复旦大学 | 用于大规模类脑计算网络的种群聚类及种群路由方法 |
CN112329327A (zh) * | 2020-11-26 | 2021-02-05 | 中国人民解放军国防科技大学 | 一种硬件感知的液体状态机网络生成方法及系统 |
CN114881221A (zh) * | 2022-05-18 | 2022-08-09 | 北京灵汐科技有限公司 | 映射方案优化方法及装置、电子设备、可读存储介质 |
-
2022
- 2022-08-25 CN CN202211023418.5A patent/CN115099395B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103201610A (zh) * | 2010-10-29 | 2013-07-10 | 国际商业机器公司 | 带有使用模拟学习的突触权重的神经形态-突触器脉冲神经网络 |
CN105469143A (zh) * | 2015-11-13 | 2016-04-06 | 清华大学 | 基于神经网络动态特征的片上网络资源映射方法 |
CN109564637A (zh) * | 2016-09-30 | 2019-04-02 | 国际商业机器公司 | 用于极端吞吐量神经网络的可扩展流突触超级计算机 |
US20180260682A1 (en) * | 2017-03-13 | 2018-09-13 | International Business Machines Corporation | Graph partitioning and placement for multi-chip neurosynaptic networks |
US20190122114A1 (en) * | 2017-10-24 | 2019-04-25 | International Business Machines Corporation | Hardware-software co-design of neurosynaptic systems |
CN111565152A (zh) * | 2020-03-27 | 2020-08-21 | 中国人民解放军国防科技大学 | 一种基于路由域划分的类脑芯片路由系统数据通信方法 |
CN112149815A (zh) * | 2020-09-28 | 2020-12-29 | 复旦大学 | 用于大规模类脑计算网络的种群聚类及种群路由方法 |
CN112329327A (zh) * | 2020-11-26 | 2021-02-05 | 中国人民解放军国防科技大学 | 一种硬件感知的液体状态机网络生成方法及系统 |
CN114881221A (zh) * | 2022-05-18 | 2022-08-09 | 北京灵汐科技有限公司 | 映射方案优化方法及装置、电子设备、可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194051A (zh) * | 2023-11-01 | 2023-12-08 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
CN117194051B (zh) * | 2023-11-01 | 2024-01-23 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115099395B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309847B (zh) | 一种模型压缩方法及装置 | |
US11461626B2 (en) | Brain-like computing chip and computing device | |
US11544539B2 (en) | Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system | |
JP7228320B2 (ja) | ニューロモーフィック・チップ、ニューロモーフィック・システム、ニューロモーフィック・チップ内のシナプス重みを更新するための方法およびコンピュータ・プログラム | |
US9697462B1 (en) | Synaptic time multiplexing | |
US10984312B2 (en) | Mapping graphs onto core-based neuromorphic architectures | |
CN109409510A (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
US10643126B2 (en) | Systems, methods and devices for data quantization | |
US9275328B1 (en) | Neuromorphic compiler | |
CN110084364B (zh) | 一种深度神经网络压缩方法和装置 | |
US20210326687A1 (en) | Neural Network System and Data Processing Technology | |
CN115099395B (zh) | 神经网络构建方法及装置、设备、介质 | |
CN110874626B (zh) | 一种量化方法及装置 | |
CN113868523A (zh) | 推荐模型训练方法、电子设备及存储介质 | |
CN111368981B (zh) | 减小突触连接的存储面积的方法、装置、设备和存储介质 | |
Mao et al. | Energy-efficient machine learning accelerator for binary neural networks | |
CN104854602A (zh) | 根据突触前神经元的激发生成消息 | |
US20230403232A1 (en) | Data Transmission System and Method, and Related Device | |
CN115699028A (zh) | 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射 | |
CN112966729A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN109697511B (zh) | 数据推理方法、装置及计算机设备 | |
Chai et al. | Correlation analysis-based neural network self-organizing genetic evolutionary algorithm | |
Zou et al. | A scatter-and-gather spiking convolutional neural network on a reconfigurable neuromorphic hardware | |
CN114881221A (zh) | 映射方案优化方法及装置、电子设备、可读存储介质 | |
CN114781630A (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 |