CN114780039A - 存储方法、计算方法、存储装置、众核系统、介质 - Google Patents
存储方法、计算方法、存储装置、众核系统、介质 Download PDFInfo
- Publication number
- CN114780039A CN114780039A CN202210474983.7A CN202210474983A CN114780039A CN 114780039 A CN114780039 A CN 114780039A CN 202210474983 A CN202210474983 A CN 202210474983A CN 114780039 A CN114780039 A CN 114780039A
- Authority
- CN
- China
- Prior art keywords
- neuron
- weight
- processed
- neural network
- identification information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Human Computer Interaction (AREA)
- Molecular Biology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Feedback Control In General (AREA)
Abstract
本公开提供了一种神经网络连接权重存储方法,所述方法包括:获取神经网络的待处理神经元的权重索引,所述待处理神经元的权重索引包括与所述待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重是否为零;获取所述待处理神经元的有效权重值,所述待处理神经元的有效权重值包括所有与所述待处理神经元的连接权重不为零的前端神经元对应的连接权重;存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值。本公开还提供了一种神经网络的神经元输入数据计算的方法、神经网络连接权重存储装置、众核系统、计算机可读介质。
Description
技术领域
本公开涉及人工智能技术领域,特别涉及一种神经网络连接权重存储方法、神经网络的神经元输入数据计算的方法、神经网络连接权重存储装置、众核系统、计算机可读介质。
背景技术
随着人工智能技术的不断发展,神经网络的应用也越来越广泛,人工智能技术中的神经网络由大量神经元构成,每个神经元可以连接其他神经元,神经元之间的连接强度由连接权重表示。
连接权重的精度越高,神经网络的性能(如准确率)也就越好,但连接权重的精度越高,其占用的存储空间也就越大,神经网络的存储代价也会随之变大。
发明内容
本公开提供一种神经网络连接权重存储方法、神经网络的神经元输入数据计算的方法、神经网络连接权重存储装置、众核系统、计算机可读介质。
第一方面,本公开提供了一种神经网络连接权重存储方法,该神经网络连接权重存储方法包括:获取神经网络的待处理神经元的权重索引,所述待处理神经元的权重索引包括与所述待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重是否为零;获取所述待处理神经元的有效权重值,所述待处理神经元的有效权重值包括所有与所述待处理神经元的连接权重不为零的前端神经元对应的连接权重;存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值。
第二方面,本公开提供了一种神经网络的神经元输入数据计算的方法,所述神经网络至少存在一个目标神经元,所述目标神经元与前端神经元的连接权重使用上述的神经网络连接权重存储方法存储,所述方法包括:根据所述目标神经元的前端神经元的输出数据、前端神经元对应的标识信息、以及前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据。
第三方面,本公开提供了一种神经网络连接权重存储装置,该神经网络连接权重存储装置包括:第一模块,用于获取神经网络的待处理神经元的权重索引,所述待处理神经元的权重索引包括与所述待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重是否为零;第二模块,用于获取所述待处理神经元的有效权重值,所述待处理神经元的有效权重值包括所有与所述待处理神经元的连接权重不为零的前端神经元对应的连接权重;第三模块,用于存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值。
第四方面,本公开提供了一种众核系统,该众核系统包括:多个处理核,至少部分处理核上有神经元,多个处理核上的神经元组成神经网络;存储空间,其上存储有使用上述的神经网络连接权重存储方法存储的数据;片上网络,被配置为交互所述多个处理核间的数据以及存储空间存储的数据;一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行上述的神经网络的神经元输入数据计算的方法。
第五方面,本公开提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理核执行时实现上述的神经网络连接权重存储方法,上述的神经网络的神经元输入数据计算的方法。
本公开所提供的神经网络连接权重存储方法、神经网络的神经元输入数据计算的方法、神经网络连接权重存储装置、众核系统、计算机可读介质,只需要对连接权重不为零的连接权重进行存储,在待处理神经元与一个或多个前端神经元的连接权重为零的情况下,可以节省连接权重存储所占用的空间。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种神经网络连接权重存储方法的流程图;
图2为本公开实施例提供的一种神经网络的神经元输入数据计算的方法的流程图;
图3为本公开实施例提供的另一种神经网络的神经元输入数据计算的方法的流程图;
图4为神经网络的部分神经元的连接示意图;
图5为使用本公开实施提供的一种神经网络连接权重存储方法获取的神经元的权重索引和有效权重值;
图6为本公开实施例提供的一种神经网络连接权重存储装置的组成框图;
图7为本公开实施例提供的一种众核系统的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
图1为本公开实施例提供的一种神经网络连接权重存储方法的流程图。
参照图1,本公开实施例提供一种神经网络连接权重存储方法。
本公开实施例的神经网络可以是脉冲神经网络(Spiking Neural Network,SNN),也可以是人工神经网络(Artificial Neural Network,ANN),也可以是其他由多个神经元组成的神经网络,用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种
本公开实施例的神经网络可以是加载在众核系统的神经网络,众核系统的至少部分处理核对应神经网络的一个或多个神经元,这一个或多个神经元与其他神经元的连接权重可以存储在这部分处理核对应的片上存储空间,也可以存储在众核系统外的外加存储空间,这部分处理核可以从对应的片上存储空间或外加存储空间读取这一个或多个神经元与其他神经元的连接权重,并计算这一个或多个神经元的输入数据和输出数据等。
本公开实施例的神经网络连接权重存储方法可以是由众核系统中具有计算能力的设备执行,如众核系统中的处理核,通过处理核调用众核系统存储空间中存储的计算机可读程序指令的方式来实现;本公开实施例的神经网络连接权重存储方法也可以是由众核系统外的具有计算能力的电子设备执行,如与众核系统连接的服务器。
则本公开实施例的神经网络连接权重存储方法包括:
S101、获取神经网络的待处理神经元的权重索引,待处理神经元的权重索引包括与待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与待处理神经元的连接权重是否为零。
获取组成神经网络的待处理神经元的权重索引,待处理神经元的权重索引包括多个标识信息,每个标识消息对应一个与待处理神经元连接的前端神经元,用于表示该前端神经元与待处理神经元的连接权重是否为零。
其中,待处理神经元可以是神经网络中任意一个连接有前端神经元的神经元。不同待处理神经元对应的前端神经元的数量可以不同。
可选的,每个标识信息为1位数据,0表示与该标识信息对应的前端神经元与待处理神经元的连接权重为零,1表示与该标识信息对应的前端神经元与待处理神经元的连接权重不为零。
权重索引中的每个标识信息占据的存储空间为1bit(1位),例如,可以为1或者0,1可以表示与该标识信息对应的前端神经元与待处理神经元的连接权重不为零,0可以表示与该标识信息对应的前端神经元与待处理神经元的连接权重为零。
如待处理神经元有4个与其连接的前端神经元,分别为第一神经元、第二神经元、第三神经元、第四神经元,其中,第一神经元和第三神经元与待处理神经元连接权重不为零,第二神经元和第四神经元与待处理神经元连接权重为零,则待处理神经元的权重索引为1010。
使用0表示与该标识信息对应的前端神经元与待处理神经元的连接权重为零,使用1表示与该标识信息对应的前端神经元与待处理神经元的连接权重不为零既符合逻辑习惯,也方便计算机处理。
S102、获取待处理神经元的有效权重值,待处理神经元的有效权重值包括所有与待处理神经元的连接权重不为零的前端神经元对应的连接权重。
获取待处理神经元的有效权重值。其中,待处理神经元的有效权重值包括待处理神经元与前端神经元的连接权重中的非零值。
S103、存储待处理神经元的权重索引以及与权重索引中标识信息的顺序相对应的有效权重值。
存储获取的待处理神经元的权重索引以及与权重索引中标识信息的顺序相对应的有效权重值。
其中,与权重索引中标识信息的顺序相对应的有效权重值是指,有效权重值连接权重对应的前端神经元的排列顺序与权重索引中表示与待处理神经元的连接权重不为零的标识信息对应的前端神经元的排列顺序是一致的。
获取和存储待处理神经元的权重索引和有效权重值的过程可以是同步进行,以保证权重索引中标识信息的顺序与有效权重值中连接权重的顺序是对应的。
如获取待处理神经元与某前端神经元的连接权重,在该连接权重不为零的情况下,将该前端神经元对应的标识信息写入待处理神经元的权重索引,并将待处理神经元与该神经元的连接权重写入待处理神经元的有效权重值;在该连接权重为零的情况下,则只需将该前端神经元对应的标识信息写入待处理神经元的权重索引中,并不需要对待处理神经元的有效权重值进行处理。
可选的,可以将待处理神经元的权重索引以及有效权重值存储在众核系统的片上存储空间,例如待处理神经元对应的处理核的存储空间,方便待处理神经元对应的处理核在计算待处理神经元的输入数据或输出数据时,读取待处理神经元与前端神经元的连接权重。
其中,待处理神经元对应的处理核的存储空间可以是待处理神经元对应的处理核内的存储空间,也可以是待处理神经元对应的处理核与众核系统的其他处理核共享的存储空间。
可选的,将待处理神经元的权重索引以及与权重索引中标识信息的顺序相对应的有效权重值存储在众核系统外的外加存储空间。
也就是说,可以将待处理神经元的权重索引以及有效权重值存储在众核系统外的外加存储空间,这样可以进一步减少连接权重对众核系统的存储空间的占用。
相比于相关技术中,将待处理神经元与所有前端神经元的连接权重一一存储(即使存储神经元与前端神经元的连接权重为零,也需要将该连接权重进行存储),使用本公开实施例提供的神经网络连接权重存储方法对待处理神经元与前端神经元的连接权重进行存储,虽然需要对权重索引进行存储,但不需要对连接权重为零的连接权重进行存储,在待处理神经元与一个或多个前端神经元的连接权重为零的情况下,使用本公开实施例提供的神经网络连接权重存储方法可以节省连接权重存储所占用的空间,且待处理神经元与越多前端神经元的连接权重为零,使用本公开实施例提供的神经网络连接权重存储方法就可以节省越多的存储空间。
如以待处理神经元有10个与其连接的前端神经元,每个连接权重占用的8bit存储空间为例,相关技术中,需要将待处理神经元与前端神经元的连接权重一一存储,待处理神经元与前端神经元的连接权重所占用的存储空间为10*8bit=80bit。
本公开实施例提供的神经网络连接权重存储方法中,权重索引中每个标识信息占用的存储空间为1bit,权重索引占用的总的存储空间为1bit*10=10bit。
同时,由于不需要对连接权重为零的连接权重进行存储,若待处理神经元与5个前端神经元的连接权重不为零,5个前端神经元的连接权重为零,则有效权重值占用的存储空间为5*8bit=40bit,权重索引和有效权重值占用的总的存储空间为10bit+40bit=50bit,要小于80bit(即相关技术中待处理神经元与前端神经元的连接权重所占用的存储空间)。
若待处理神经元与3个前端神经元的连接权重不为零,7个前端神经元的连接权重为零,则有效权重值占用的存储空间为3*8bit=24bit,权重索引和有效权重值占用的总的存储空间为10bit+24bit=34bit,不仅远远小于80bit(即相关技术中待处理神经元与前端神经元的连接权重所占用的存储空间),也小于50bit(待处理神经元与5个前端神经元的连接权重不为0情况下,提供的神经网络连接权重存储方法中待处理神经元与前端神经元的连接权重所占用的存储空间)。
在实际的工业生产中,组成神经网络的多个神经元中,存在大量与一个或多个前端神经元连接权重为零的神经元,尤其是稀疏神经网络,组成稀疏神经网络的神经元中与一个或多个前端神经元连接权重为零的神经元的比例要远大于普通神经网络,使用本公开实施例提供的神经网络连接权重存储方法对神经网络的神经元间的连接权重进行存储,可以大大减少神经网络的连接权重所占用的存储空间,且越稀疏的网络(即与一个或多个前端神经元连接权重为零的神经元的比例越高的网络),连接权重占用的存储空间就越小,神经网路的存储代价也就越小。
对于一个神经网络而言,其可以使用本公开实施例提供的神经网络连接权重存储方法存储全部神经元(与前端神经元)的连接权重,也可以使用本公开实施例提供的神经网络连接权重存储方法存储部分神经元(与前端神经元)的连接权重。
图2为本公开实施例提供的一种神经网络的神经元输入数据的计算方法的流程图。
参照图2,本公开实施例提供一种神经网络的神经元输入数据的计算方法。
其中,本公开实施例的神经网络可以是上述加载在众核系统的神经网络,该神经网络至少存在一个目标神经元,目标神经元与前端神经元的连接权重使用本公开实施例的神经网络连接权重存储方法进行存储。
即目标神经元与前端神经元的连接权重被存储为两部分,一部分是权重索引,另一部分是有效权重值。其中,权重索引包括与目标神经元的前端神经元一一对应的标识信息,该标识信息表示与该标识信息对应的前端神经元与目标神经元的连接权重是否为零。有效权重值包括所有与目标神经元的连接权重不为零的前端神经元对应的连接权重。
本公开实施例的神经网络的神经元输入数据的计算方法包括:
S201、根据目标神经元的前端神经元的输出数据、前端神经元对应的标识信息以及前端神经元与目标神经元的连接权重计算目标神经元的输入数据。
在接收到目标神经元的前端神经元的输出数据,从目标神经元的权重索引中获取目标神经元与该前端神经元的连接权重的标识信息,在该标识信息表示目标神经元与该前端神经元的连接权重不为零的情况下,从目标神经元的有效权重值中,读取目标神经元与该前端神经元的连接权重,并根据该前端神经元的输出数据以及目标神经元与该前端神经元的连接权重来计算该前端神经元对目标神经元的输入数据。
其中,目标神经元的前端神经元的输出数据包括前端神经元的发放信息,当前端神经元向目标神经元进行发放,前端神经元的输出数据可以是表示前端神经元进行发放的值。
例如当神经网络为脉冲神经网络时,当前端神经元发放的是激活脉冲,则其对应的输出数据为1,当前端神经元发放的是抑制脉冲,其对应的输出数据为-1。
当前端神经元没有向目标神经元进行发放,则前端神经元的输出数据为表示前端神经元没有进行发放的值,如0。
当目标神经元存在多个前端神经元的情况下,这多个前端神经元的输出数据就是一个由0、1、-1组成的字符串。
例如,目标神经元有4个与其连接的前端神经元,分别为第一神经元、第二神经元、第三神经元、第四神经元,其中,第一神经元向目标神经元发放了激活脉冲,第二神经元向目标神经元发放了抑制脉冲、第三神经元以及第四神经元都没有向目标神经元进行发放,则这4个前端神经元的输出分别为-1、1、0、0,其组成一个二进制的字符串为11010000,每两位对应一个前端神经元的输出。
在一些情况下,也可以当前端神经元发放(无论是发放激活脉冲,还是发放抑制脉冲),其对应的输出都是1;当前端神经元没有向目标神经元进行发放,则前端神经元的输出为0。
当目标神经元存在多个前端神经元的情况下,这多个前端神经元的输出数据就是一个由0和1组成的字符串。
例如,目标神经元有4个与其连接的前端神经元,分别为第一神经元、第二神经元、第三神经元、第四神经元,其中,第一神经元向目标神经元进行了发放,第二神经元、第三神经元以及第四神经元都没有向目标神经元进行发放,则这4个前端神经元的输出分别为1、0、0、0,其组成一个字符串1000。
当目标神经元与前端神经元的连接权重存储在众核系统的片上存储空间,在接收到前端神经元的发放信息之后,可以直接根据存储的连接权重以及发放信息确定目标神经元的输入数据。
当目标神经元与前端神经元的连接权重存储在众核系统外的外加存储空间,在接收到前端神经元的发放信息之后,需要从外加存储空间读取对应的连接权重,再根据连接权重以及发放信息确定目标神经元的输入数据。
其中,目标神经元的输入数据可以是根据实际参与目标神经元计算(如阈值发放判断)的值进行计算得到的值。
由于只有前端神经元与目标神经元的连接权重不为零,且前端神经元对目标神经元进行了发放的情况下,前端神经元与目标神经元的连接权重以及前端神经元的发放信息才可以参与目标神经元的阈值发放判断等计算,因此,当前端神经元的输出数据为零(即前端神经元没有对目标神经元进行发放),即使该前端神经元与目标神经元的连接权重不为零,该前端神经元与目标神经元的连接权重也不能参与计算目标神经元的输入数据。当前端神经元与目标神经元的连接权重为零,即使该前端神经元对目标神经元进行了发放,该前端神经元的发放信息也不能参与计算目标神经元的输入数据。
例如目标神经元有4个与其连接的前端神经元,分别为第一神经元、第二神经元、第三神经元、第四神经元,其中,第一神经元和第三神经元与目标神经元连接权重不为零,第二神经元和第四神经元与目标神经元连接权重为零,且第一神经元向目标神经元进行了发放,第二神经元、第三神经元以及第四神经元都没有向目标神经元进行发放。
由于第二神经元和第四神经元与目标神经元的连接权重为零,因此,即使第二神经元和第四神经元向目标神经元进行发放,第二神经元和第四神经元的发放信息并不能参与计算目标神经元的输入数据。
第三神经元虽然与目标神经元连接权重不为零,但第三神经元并没有向目标神经元进行发放,因此,第三神经元的连接权重也无法参与计算目标神经元的输入数据。
第一神经元与目标神经元的连接权重不为零,且第一神经元向目标神经元进行了发放,因此,第一神经元与目标神经元的连接权重、第一神经元的发放信息都可以参与计算目标神经元的输入数据。
可选的,根据目标神经元的前端神经元的输出与前端神经元对应的标识信息的与运算结果,以及前端神经元与目标神经元的连接权重计算目标神经元的输入数据。
由于目标神经元与前端神经元的连接权重使用本公开实施例的神经网络连接权重存储方法存储,因此获取的目标神经元与前端神经元的连接权重包括权重索引以及有效权重值,在获取权重索引后,将权重索引与前端神经元的输出进行与运算,并根据与运算的运算结果以及有效权重值计算目标神经元的输入数据。
由于权重索引是与前端神经元一一对应的标识信息,每个标识信息用于标识该标识信息对应的前端神经元与目标神经元的连接权重是否为零,当前端神经元与目标神经元的连接权重为零时,对应的标识信息也为零;前端神经元的输出为表示前端神经元进行发放的值,当前端神经元没有向目标神经元进行发放时,其输出为零。
与运算的特点是参与运算中只要有一者为零,则与运算的结果就为零,因此,当前端神经元对应的标识信息以及输出数据的与运算的结果为零,则说明前端神经元与目标神经元的连接权重和前端神经元的输出数据中至少有一者为零,也就是说,该前端神经元的发放信息以及该前端神经元与目标神经元的连接权重都不能参与计算目标神经元的输入数据。
当与运算的结果不为零,则说明前端神经元与目标神经元的连接权重和前端神经元的输出数据都不为零,也就是说,该前端神经元的发放信息以及该前端神经元与目标神经元的连接权重参与计算目标神经元的输入数据。
进一步可选的,参照图3,在目标神经元的权重索引中每个标识信息为1位数据,0表示与该标识信息对应的前端神经元与目标神经元的连接权重为零,1表示与该标识信息对应的前端神经元与目标神经元的连接权重不为零的情况下,根据目标神经元的前端神经元的输出、前端神经元对应的标识信息以及前端神经元与目标神经元的连接权重计算目标神经元的输入(S201)包括:
S301、在目标神经元的前端神经元的输出数据与该前端神经元对应的标识信息进行与运算的结果不为零的情况下,根据该前端神经元的输出数据以及该前端神经元与目标神经元的连接权重计算目标神经元的输入数据。
处理核在获取目标神经元的前端神经元的输出数据,从目标神经元的权重索引中获取与该前端神经元对应标识信息后,将该前端神经元的输出数据与该前端神经元对应的标识信息相与(进行与运算)。
若相与结果不为零,则说明该前端神经元的输出以及该前端神经元与目标神经元的连接权重都不为零,则根据该前端神经元的输出以及目标神经元与该前端神经元的连接权重来计算该前端神经元对目标神经元的输入数据。
若相与结果为零,则说明该前端神经元的输出为零或该前端神经元与目标神经元的连接权重为零,该前端神经元的发放信息以及该前端神经元与目标神经元的连接权重都不能参与计算目标神经元的输入数据。
因此,只需根据对应的相与结果不为零的前端神经元的发放信息以及对应的连接权重来计算目标神经元的输入数据。
也就是说,根据该前端神经元的输出数据以及该前端神经元与目标神经元的连接权重计算目标神经元的输入数据,包括:
从目标神经元的有效权重值中获取该前端神经元与目标神经元的连接权重,并根据该前端神经元的输出数据以及该前端神经元与目标神经元的连接权重计算目标神经元的输入数据。
即根据该前端神经元的输出数据以及目标神经元与该前端神经元的连接权重来计算该前端神经元对目标神经元的输入数据包括:处理核从目标神经元的有效权重值中获取该前端神经元与目标神经元的连接权重,并根据所有对应的相与结果不为零的前端神经元的输出数据以及目标神经元与该前端神经元的连接权重来计算目标神经元的输入数据。
相比于相关技术中,根据目标神经元的每一个前端神经元的输出数据和该前端神经元与目标神经元的连接权重计算目标神经元的输入数据的方法,使用本公开实施例提供的神经网络的神经元输入数据计算的方法计算目标神经元的输入数据,先通过索引权重与前端神经元的输出数据的与运算,将与目标神经元的连接权重为零的前端神经元,以及输出数据为零的前端神经元剔除目标神经元的输入数据的计算,只通过剩下的前端神经元(即与目标神经元的连接权重不为零且输出数据不为零)计算目标神经元输入数据,减少了无效计算(与目标神经元的连接权重为零或输出数据为零的前端神经元显然没有对目标神经元的输入数据做出贡献,根据其计算目标神经元的输入数据属于无效计算),节省了系统算力。
尤其是在目标神经元与多个前端神经元的连接权重为零,或目标神经元的多个前端神经元的输出数据为零的情况下,使用本公开实施例提供的神经网络的神经元输入数据计算的方法可以大大节省系统算力,且目标神经元与越多前端神经元的连接权重为零,越多目标神经元的前端神经元的输出数据为零,使用本公开实施例提供的神经网络的神经元输入数据计算的方法就可以节省越多的系统算力。
图4为神经网络的部分神经元的连接示意图。
参照图4,A1、A2、A3、A4、B1、B2、B3为神经网络(如脉冲神经网络)的神经元,其中,A1、A2、A3、A4与B1、B2、B3之间都存在连接关系,A1、A2、A3、A4为B1、B2、B3的前端神经元。
以B1为待处理神经元,其与A1、A4的连接权重为非零值(分别为权重值1、权重值2),与A2、A3的连接权重为零(或者说没有连接权重),使用本公开实施例的一种神经网络连接权重存储方法对B1与A1、A2、A3、A4的连接权重进行存储的过程可以是:
处理核获取B1与A1的连接权重,由于B1与A1的连接权重为非零值,在B1的权重索引写入A1对应的标识信息,在使用0表示与该标识信息对应的前端神经元与待处理神经元的连接权重为零,使用1表示与该标识信息对应的前端神经元与待处理神经元的连接权重不为零,A1对应的标识信息为1,同时,在B1的有效权重值中写入B1与A1的连接权重,即权重值1。
处理核获取B1与A2的连接权重,由于B1与A2的连接权重为零,在B1的权重索引写入的A2对应的标识信息为0,不需要在B1的有效权重值中写入信息。
处理核获取B1与A2的连接权重,与A2类似,B1与A3的连接权重为零,在B1的权重索引写入的A3对应的标识信息为0,不需要在B1的有效权重值中写入信息。
处理核获取B1与A4的连接权重,与A1类似,B1与A4的连接权重为非零值,在B1的权重索引写入的A4对应的标识信息为1,同时,在B1的有效权重值中写入B1与A4的连接权重,即权重值2。
因此,参照图5,写入存储空间的B1的权重索引为1001,有效权重值为权重值1、权重值2。
以B1为目标神经元,A1、A2、A3、A4的发放信息分别为1、0、0、0的情况下,使用本公开实施例提供的神经网络的神经元输入数据计算的方法计算B1的输入的过程可以是:
由于A1、A2、A3、A4的发放信息分别为1、0、0、0,因此A1、A2、A3、A4的输出数据也为1000,A1、A2、A3、A4对应的权重索引为1001,将A1、A2、A3、A4的输出与A1、A2、A3、A4对应的权重索引进行求与操作,即1000与1001进行求与,获得的结果为1000,表示计算B1的输入只需获取A1与B1的连接权重。
处理核只需获取A1与B1的连接权重(即权重值1),并根据权重值1计算B1的输入数据、进行累加运算、阈值发放判断等操作。
若A1、A2、A3、A4的发放信息分别为-1、1、0、0的情况下,使用本公开实施例提供的神经网络的神经元输入数据计算的方法计算B1的输入的过程可以是:
由于A1、A2、A3、A4的发放信息分别为-1、1、0、0,因此A1、A2、A3、A4的输出数据对应的二进制字符串为110100,A1、A2、A3、A4对应的权重索引为1001,为了方便计算,将其每一位变成两位二级制数,即01000001将A1、A2、A3、A4的输出与A1、A2、A3、A4对应的权重索引进行求与操作,即110100与01000001进行求与,获得的结果为010000,表示计算B1的输入只需获取A1与B1的连接权重。
图6为本公开实施例提供的一种神经网络连接权重存储装置的组成框图。
参照图6,本公开实施例提供了一种神经网络连接权重存储装置600,该神经网络连接权重存储装置600包括:
第一模块601,用于获取神经网络的待处理神经元的权重索引,待处理神经元的权重索引包括与待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与待处理神经元的连接权重是否为零;
第二模块602,用于获取待处理神经元的有效权重值,待处理神经元的有效权重值包括所有与待处理神经元的连接权重为非零值的前端神经元对应的连接权重;
第三模块603,用于存储待处理神经元的权重索引以及与权重索引中标识信息的顺序相对应的有效权重值。
图7为本公开实施例提供的一种众核系统的组成框图。
参照图7,本公开实施例提供了一种众核系统,该众核系统包括多个处理核701、片上网络702以及存储空间703。
其中,多个处理核701均与片上网络702连接,片上网络702用于交互多个处理核间的数据和存储空间703存储的数据,存储空间703上存储有使用上述神经网络连接权重存储方法存储的数据。
其中,一个或多个处理核701中存储有一个或多个指令,一个或多个指令被一个或多个处理核701执行,以使一个或多个处理核701能够执行上述的神经网络的神经元输入数据计算的方法。
此外,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理核执行时实现上述的神经网络连接权重存储方法或上述的神经网络的神经元输入数据计算的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (11)
1.一种神经网络连接权重存储方法,包括:
获取神经网络的待处理神经元的权重索引,所述待处理神经元的权重索引包括与所述待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重是否为零;
获取所述待处理神经元的有效权重值,所述待处理神经元的有效权重值包括所有与所述待处理神经元的连接权重不为零的前端神经元对应的连接权重;
存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值。
2.根据权利要求1所述的神经网络连接权重存储方法,其中,所述神经网络为加载在众核系统的神经网络,则所述存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值,包括:
将所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值存储在众核系统外的外加存储空间。
3.根据权利要求1所述的神经网络连接权重存储方法,其中,所述神经网络为加载在众核系统的神经网络,则所述存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值,包括:
将所述待处理神经元的权重索引以及所述权重索引中标识信息的顺序相对应的有效权重值存储在所述众核系统的片上存储空间。
4.根据权利要求1所述的神经网络连接权重存储方法,其中,每个标识信息为1位数据,0表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重为零,1表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重不为零。
5.一种神经网络的神经元输入数据的计算方法,所述神经网络至少存在一个目标神经元,所述目标神经元与前端神经元的连接权重使用权利要求1至4中任意一项所述的神经网络连接权重存储方法存储,所述目标神经元与前端神经元的连接权重包括权重索引,所述权重索引包括与所述目标神经元的前端神经元一一对应的标识信息,每个标识信息表示与该标识信息对应的前端神经元与目标神经元的连接权重是否为零,所述方法包括:
根据所述目标神经元的前端神经元的输出数据、前端神经元对应的标识信息、以及前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据;
所述目标神经元的前端神经元的输出数据包括该前端神经元的发放信息。
6.根据权利要求5所述的神经网络的神经元输入数据的计算方法,其中,所述根据所述目标神经元的前端神经元的输出数据、前端神经元对应的标识信息、以及前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据,包括:
根据所述目标神经元的前端神经元的输出数据与前端神经元对应的标识信息的与运算结果,以及前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据。
7.根据权利要求5所述的神经网络的神经元输入数据的计算方法,其中,在每个标识信息为1位数据,0表示与该标识信息对应的前端神经元与所述目标神经元的连接权重为零,1表示与该标识信息对应的前端神经元与所述目标神经元的连接权重不为零的情况下,所述根据所述目标神经元的前端神经元的输出数据、前端神经元对应的标识信息、以及前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据,包括:
在目标神经元的前端神经元的输出数据与该前端神经元对应的标识信息进行与运算的结果不为零的情况下,根据该前端神经元的输出数据以及该前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据。
8.根据权利要求7所述的神经网络的神经元输入数据的计算方法,其中,所述神经网络为脉冲神经网络,所述根据该前端神经元的输出数据以及该前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据,包括:
从所述目标神经元的有效权重值中获取该前端神经元与所述目标神经元的连接权重,并根据该前端神经元的输出数据以及该前端神经元与所述目标神经元的连接权重计算所述目标神经元的输入数据。
9.一种神经网络连接权重存储装置,包括:
第一模块,用于获取神经网络的待处理神经元的权重索引,所述待处理神经元的权重索引包括与所述待处理神经元的所有前端神经元一一对应的标识信息,每个标识信息用于表示与该标识信息对应的前端神经元与所述待处理神经元的连接权重是否为零;
第二模块,用于获取所述待处理神经元的有效权重值,所述待处理神经元的有效权重值包括所有与所述待处理神经元的连接权重不为零的前端神经元对应的连接权重;
第三模块,用于存储所述待处理神经元的权重索引以及与所述权重索引中标识信息的顺序相对应的有效权重值。
10.一种众核系统,包括:
多个处理核,至少部分处理核上有神经元,多个处理核上的神经元组成神经网络;
存储空间,其上存储有使用权利要求1至4中任意一项所述的神经网络连接权重存储方法存储的数据;
片上网络,被配置为交互所述多个处理核间的数据以及存储空间存储的数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行权利要求5-8中任一项所述的神经网络的神经元输入数据计算的方法。
11.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理核执行时实现如权利要求1至4中任一项所述的神经网络连接权重存储方法,或实现如权利要求5至8中任一项所述的神经网络的神经元输入数据计算的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210474983.7A CN114780039A (zh) | 2022-04-29 | 2022-04-29 | 存储方法、计算方法、存储装置、众核系统、介质 |
PCT/CN2023/092017 WO2023208243A1 (zh) | 2022-04-29 | 2023-05-04 | 权重存储方法、传输方法、计算方法、装置、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210474983.7A CN114780039A (zh) | 2022-04-29 | 2022-04-29 | 存储方法、计算方法、存储装置、众核系统、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780039A true CN114780039A (zh) | 2022-07-22 |
Family
ID=82434089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210474983.7A Pending CN114780039A (zh) | 2022-04-29 | 2022-04-29 | 存储方法、计算方法、存储装置、众核系统、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780039A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023208243A1 (zh) * | 2022-04-29 | 2023-11-02 | 北京灵汐科技有限公司 | 权重存储方法、传输方法、计算方法、装置、系统和设备 |
-
2022
- 2022-04-29 CN CN202210474983.7A patent/CN114780039A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023208243A1 (zh) * | 2022-04-29 | 2023-11-02 | 北京灵汐科技有限公司 | 权重存储方法、传输方法、计算方法、装置、系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shi et al. | Overcoming catastrophic forgetting in incremental few-shot learning by finding flat minima | |
CA2984833A1 (en) | Device, method and program for securely reducing an amount of records in a database | |
CN114780039A (zh) | 存储方法、计算方法、存储装置、众核系统、介质 | |
EP3444758B1 (en) | Discrete data representation-supporting apparatus and method for back-training of artificial neural network | |
CN114970838A (zh) | 神经元输出数据计算方法及装置、众核系统、介质 | |
CN114861895A (zh) | 神经网络神经元信息存储方法及装置、众核系统、介质 | |
CN114819126A (zh) | 权重数据传输的方法、众核系统、电子设备、介质 | |
CN111832715A (zh) | 处理元件和处理系统 | |
CN107832341B (zh) | Agnss用户去重统计方法 | |
CN116010498A (zh) | 一种分布式全局唯一规则id的生成方法 | |
CN113222807B (zh) | 数据存储器、数据存储、读取方法、芯片及计算机设备 | |
CN111506749B (zh) | 一种监控数据归档方法、装置、电子设备及存储介质 | |
CN113420699A (zh) | 一种人脸匹配方法、装置及电子设备 | |
CN114546251A (zh) | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 | |
TWI220479B (en) | Digital signal processor based on jumping floating point arithmetic | |
CN110704382A (zh) | 文件部署方法、装置、服务器及存储介质 | |
CN111274228B (zh) | 保单数据迁移存储方法、系统、设备及可读存储介质 | |
CN113204964B (zh) | 一种数据处理方法、系统、电子设备及存储介质 | |
CN116860180B (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
CN115878793B (zh) | 多标签文档分类方法、装置、电子设备及介质 | |
CN116681110B (zh) | 极值算法的配置方法、电子设备、程序产品及介质 | |
CN113066486B (zh) | 数据识别方法、装置、电子设备和计算机可读存储介质 | |
CN108874804B (zh) | 数据存储方法、数据查询方法及装置 | |
CN103095474A (zh) | 一种tup消息配对的计算机实现方法 | |
CN114861894A (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 |