掌桥专利:专业的专利平台
掌桥专利
首页

权重存储方法、装置、电子设备及计算机可读介质

文献发布时间:2023-06-19 16:08:01



技术领域

本公开涉及计算机技术领域,特别涉及一种权重存储方法、装置、电子设备及计算机可读介质。

背景技术

在相关技术中,在神经形态芯片中,处理核之间所对应的权重值通常以一个统一的存储精度进行存储,且存储精度一般较高,以满足极大值和极小值的存储。目前这种权重存储方式不可避免存在以下问题:当神经元所对应的所有权重值均较小时,目前的权重存储方式将导致神经形态芯片的存储空间被过多的无效的占用,从而导致神经形态芯片产生较大的存储需求,进而不利于神经形态芯片的扩展应用。

发明内容

本公开提供一种权重存储方法、装置、电子设备及计算机可读介质。

第一方面,本公开提供了一种权重存储方法,该权重存储方法包括:

将当前处理核的神经元与目标处理核的神经元之间的所有权重值划分为多个目标权重组,所述目标权重组包括多个目标权重值;

针对每个目标权重组,判断该目标权重组中各所述目标权重值是否均位于目标权重数值区间内;

若判断出各所述目标权重值均位于所述目标权重数值区间内,则将各所述目标权重值按照所述目标存储精度进行存储,所述目标存储精度低于所述目标权重值的当前存储精度。

第二方面,本公开提供了一种权重存储装置,该权重存储装置包括:

划分模块,用于将当前处理核的神经元与目标处理核的神经元之间的所有权重值划分为多个目标权重组,所述目标权重组包括多个目标权重值;

判断模块,用于针对每个目标权重组,判断该目标权重组中各所述目标权重值是否均位于目标权重数值区间内;

存储模块,用于在所述判断模块判断出各所述目标权重值均位于所述目标权重数值区间内时,将各所述目标权重值按照所述目标存储精度进行存储,所述目标存储精度低于所述目标权重值的当前存储精度。

第三方面,本公开提供了一种电子设备,该电子设备包括:多个处理核;以及,片上网络,被配置为交互所述多个处理核间的数据和外部数据;其中,一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行上述的权重存储方法。

第五方面,本公开提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理核执行时实现上述的权重存储方法。

本公开所提供的权重存储方法、权重存储装置、电子设备及计算机可读介质,在对神经元对应的权重值进行存储时,将神经元之间的权重值划分为目标权重组,针对每个目标权重组判断其包含的权重值是否均处于预设的属于较小范畴的目标权重数值区间内,若是,则将该目标权重组所包含的权重值以低于当前存储精度的目标存储精度进行存储,从而缩减了神经元的权重存储所占用的存储空间,进而减少了对神经形态芯片的存储空间的无效占用,降低了神经形态芯片的存储需求,从而有利于神经形态芯片的扩展应用。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:

图1为本公开实施例提供的一种权重存储方法的流程图;

图2为本公开实施例提供的一种目标权重组划分方式的示意图;

图3为本公开实施例提供的另一种目标权重组的划分方式的示意图;

图4为本公开实施例提供的又一种目标权重组的划分方式的示意图;

图5为本公开实施例提供的另一种权重存储方法的流程图;

图6为本公开实施例中步骤S100的一种具体实施方式的流程图;

图7为本公开实施例提供的一种权重存储装置的组成框图;

图8为本公开实施例提供的另一种权重存储装置的组成框图;

图9为本公开实施例提供的一种电子设备的组成框图。

具体实施方式

为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。

如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。

本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。

本公开实施例提供的权重存储方法可基于一种权重存储装置实现,该权重存储装置可嵌入设置于神经形态芯片内,也可独立设置于神经形态芯片外。本公开提供的权重存储方法基于权重数值所归属的数值区间来对权重数值进行存储精度的调整,使得权重存储所占用的存储空间被大大降低,从而避免了神经形态芯片的存储空间被过多的无效的占用,进而降低了神经形态芯片的存储需求,促进了神经形态芯片的扩展应用。

图1为本公开实施例提供的一种权重存储方法的流程图。

参照图1,本公开实施例提供一种权重存储方法,该权重存储方法包括:

步骤S101、将当前处理核的神经元与目标处理核的神经元之间的所有权重值划分为多个目标权重组,目标权重组包括多个目标权重值。

在基于神经形态芯片的众核系统中,包括多个处理核,每个处理核包括多个神经元,当前处理核的各神经元与其他处理核的其他神经元的连接关系所对应的权重值通常被预先存储。当神经元发放脉冲时,前继神经元或者后继神经元获取权重数据并根据权重数据进行相关的计算。

本公开实施例中,在对权重进行存储时以目标权重组进行存储,目标权重组为通过将当前处理核的神经元与目标处理核的神经元之间的所有权重值按照目标权重划分方式进行划分得到,目标权重组内包括多个目标权重值。具体的,目标权重组可以基于多种目标权重划分方式进行划分。

图2为本公开实施例提供的一种目标权重组的划分方式的示意图,图2示例性示出了当前处理核存储的与目标处理核之间的权重值的一种划分方式,如图2所示,在该实施例中,目标权重组的划分方式为:针对当前处理核中的每个神经元,获取该神经元与目标处理核中的各神经元的权重值,将当前处理核中的一个神经元所对应的所述权重值,作为一个目标权重组,即,以当前处理核中一个神经元作为索引,将目标处理核中与该神经元连接的所有权重值作为一个目标权重组。例如,如图2所示,以当前处理核中神经元A1作为索引,将目标处理核中所有与神经元A1连接的神经元的权重值划分为一个目标权重组,以将该目标权重组的权重值的存储精度存储为精度1。或者,在一些实施例中,还可以将当前处理核中的多个神经元所对应的权重值,作为一个目标权重组,例如,如图2所示,以当前处理核中神经元A3、A4和A5作为索引,将目标处理核中所有与神经元A3~A5连接的神经元的权重值划分为一个目标权重组,以将该目标权重组的权重值的存储精度存储为精度3。

图3为本公开实施例提供的另一种目标权重组的划分方式的示意图,图3示例性示出了当前处理核存储的与目标处理核之间的权重值的另一种划分方式,如图3所示,在该实施例中,目标权重组的划分方式为:获取当前处理核中的各神经元与目标处理核中的至少一个神经元之间的权重值,将当前处理核中各神经元与目标处理核的一个神经元之间的权重值,作为一个目标权重组,即,以目标处理核中一个神经元作为索引,将当前处理核中与目标处理核中的一个神经元连接的各神经元的权重值作为一个目标权重组。例如,如图3所示,以目标处理核中神经元B1作为索引,将当前处理核中所有与神经元B1连接的神经元的权重值划分为一个目标权重组,以将该目标权重组的权重值的存储精度存储为精度1,或者,在一些实施例中,还可以将目标处理核中的多个神经元所对应的权重值,作为一个目标权重组,如图3所示,以目标处理核中神经元B5、B6和B7作为索引,将当前处理核中所有与神经元B5~B7连接的神经元的权重值划分为一个目标权重组,以将该目标权重组的权重值的存储精度存储为精度3。

上述图3所述实施例和图2所述实施例的区别在于,图2以源神经元(当前处理核中的神经元)作为索引来确定目标权重组,图3则以目标神经元(目标处理核中神经元)作为索引来确定目标权重组,二者是基于相同划分原理的两种不同权重组划分形式。另外,需要说明的是,在图2和图3所示的目标权重组划分方式中,目标处理核可以为当前处理核的前继核,或者目标处理核可以为当前处理核的后继处理核。

图4为本公开实施例提供又一种目标权重组的划分方式的示意图,图4示例性示出了当前处理核存储的与目标处理核之间的权重值的又一种划分方式,如图4所示,在该实施例中,目标权重组可以以当前处理核中的部分神经元与目标处理核中的部分神经元之间的权重值作为一个目标权重组。结合图4,例如,将当前处理核中的神经元A1~A3和目标处理核中的神经元B1~B3之间的权重值划分为一个目标权重组,以将该目标权重组的权重存储精度存储为精度1,同理,将当前处理和中的神经元A1~A3和目标处理核中的神经元B4~B7之间的权重值划分为一个目标权重组,以将该目标权重组的权重存储精度存储为精度2。需要说明的是,在该实施例中,多个目标权重组中任意两个目标权重组之间无交集。

具体的,在步骤S101中,可通过查询预先存储的当前处理核的当前神经元与目标处理核的目标神经元之间所对应的权重值,例如通过查询用于存储当前处理核中的神经元对应的权重值的突触阵列获取。

步骤S102、针对每个目标权重组,判断各目标权重值是否均位于目标权重数值区间内。

目标权重数值区间为预设的用于确定目标权重值的存储精度的数值区间,该目标权重数值区间的确定条件为:使众核系统内至少有预设比例的权重值属于该目标权重数值区间,优选的,该预设比例为90%。

另外,需要说明的是,基于本领域中众核系统内权重值的分布特点,本公开实施例中所确定出的目标权重数值区间通常小于众核系统内所有权重值所归属的数值区间,例如,众核系统内所有权重值所归属的数值区间为[-50,50],而目标权重数值区间可能为[-10,10],其中,目标权重数值区间表示该众核系统内的大部分(例如90%)的权重值都归属于[-10,10]的数值区间。

在一些实施例中,目标权重数值区间可由本领域技术人员基于经验确定出;在另一些实施例中,目标权重数值区间还可基于对众核系统内所包含的所有权重值进行统计计算确定出。

在步骤S102中,针对每个目标权重组,若判断出各目标权重值均位于目标权重数值区间内,则说明该目标权重组内各目标权重值均属于较小的数值区间,从而无需使用较高的存储精度进行存储,因此,此时对应执行下述步骤S103,以将各目标权重值以低于当前存储精度的存储精度进行存储,从而减少对存储空间的占用;而当判断出各目标权重值中存在至少一个目标权重值位于目标权重数值区间之外,则说明各目标权重值中存在极大值或极小值,仍然需要使用较高的存储精度进行存储,才能将所有目标权重值进行完整存储,此时保持各目标权重值的当前存储精度不变,即使得各目标权重值继续以当前存储精度进行存储。

步骤S103、将各目标权重值按照目标存储精度进行存储,该目标存储精度低于该目标权重值的当前存储精度。

目标存储精度可基于目标权重数值区间确定出,目标存储精度应至少能满足目标权重数值区间所包含的数值对于存储字节的需求,例如,当目标权重数值区间所包含的数值最大不超过127,而最小不小于-128时,可设置目标存储精度为8位整型(int8)。

另外,需要说明的是,本公开实施例中,目标存储精度是低于该目标权重值的当前存储精度的,这是由于目标权重数值区间相较于众核系统内所有权重值所归属的数值区间有所缩小,因此,目标存储精度必然需要低于该目标权重值的当前存储精度。

在一些实施例中,为了避免权重值在后续的变化过程中受到存储精度的影响,优选的,目标存储精度的类型与当前存储精度的类型保持相同,例如,若当前存储精度为浮点型,则目标存储精度的类型仍然为浮点型。本公开实施例中,当前存储精度为可以为浮点型存储精度或者整型存储精度。

本公开实施例提供的权重存储方法,在对神经元对应的权重值进行存储时,将神经元之间的权重值划分为目标权重组,针对每个目标权重组判断其权重值是否均处于预设的属于较小范畴的目标权重数值区间内,若是,则将权重值以低于当前存储的存储精度进行存储,从而缩减了神经元的权重存储所占用的存储空间,进而减少了对神经形态芯片的存储空间的无效占用,降低了神经形态芯片的存储需求,从而有利于神经形态芯片的扩展应用。

在一些实施例中,在对目标权重值进行存储时可基于数据包的形式进行存储。

在一些实施例中,目标权重组可以以数据包形式进行存储。

在一些实施例中,数据包的格式如下:

其中,cid表示目标处理核的标识信息;startaddr表示目标处理核内与当前处理核内的一个神经元连接的起始目标神经元的地址;len表示在该目标处理核内自连接的起始目标神经元的地址起连续连接的目标神经元的数量;acc表示目标存储精度;weight表示各目标权重值,且各目标权重值与基于字段startaddr和len所确定出的目标神经元一一对应。需要说明的是,在另一些实施例中,当目标神经元在目标处理核内的地址是非连续的时,可将各目标神经元之间所间隔的神经元的权重值设置为零,并对应存储在参数weight中。

在另一些实施例中,若当前处理核内的一个神经元仅与目标处理核内的一个目标神经元连接,则数据包的格式可以为:

其中,cid表示目标处理核的标识信息;addr表示目标神经元的地址,acc表示目标存储精度;weight表示目标权重值。

该实施例中,一个神经元对应有至少一个数据包,每个数据包对应于一个与该神经元连接的目标处理核,且每个数据包具有各自的存储精度。在一些实施例中,为进一步降低对神经形态芯片的存储空间的占用,可将当前处理核内的一个神经元所对应的多个数据包按照目标存储精度进行分类存储,而不再在每个数据包中对存储精度进行标示,即将目标存储精度相同的数据包存储为一个大数据包,如下所示,大数据包的格式可以为:

其中,acc表示目标存储精度,每一组addr和weight代表如上所述的当前处理核内一个神经元所连接的一个目标处理核对应的数据包,其中,addr表示目标神经元的地址,weight表示目标权重值。

例如,一个神经元对应的所有数据包中包含1000个32位浮点型(fp32)的数据包和10个16位浮点型(fp16)的数据包,则将1000个32位浮点型的数据包存储在一起,并统一标示存储精度为fp32,将10个16位浮点型的数据包统一存储在一起,并统一标示存储精度为fp16。这种存储方式可进一步降低对神经形态芯片的存储空间的占用。

需要说明的是,本公开实施例中,若目标权重组是以目标处理核内的目标神经元作为索引进行划分,则上述数据包内与目标处理核地址相关的信息应表示为当前处理核内对应的地址相关信息,例如,cid表示当前处理核的标识信息,addr表示当前处理核内的神经元的地址,startaddr表示当前处理核内与目标处理核内的一个神经元连接的起始神经元的地址,等等。

本公开实施例中,除了上述以数据包的形式对目标权重值进行存储外,在另外一些实施例中,还可基于阵列的形式对本公开实施例提供的权重存储方法中涉及的目标权重值进行存储。

图5为本公开实施例提供的另一种权重存储方法的流程图。

参照图5,本公开实施例相较于图1所示实施例,在步骤S101之前,还包括:

步骤S100、确定出目标权重数值区间。

本公开实施例中,目标权重数值区间可基于不同的方式确定出,在一些实施例中,目标权重数值区间由本领域技术人员基于经验确定出,在另一些实施例中,可通过对众核系统中所包含的所有权重值进行统计计算来确定出目标权重数值区间。

图6为本公开实施例中步骤S100的一种具体实施方式的流程图。

参照图6,在该实施例中,通过对众核系统中所包含的所有权重值进行统计计算确定出目标权重数值区间。具体的,步骤S100包括:

步骤S1001、获取众核系统所包含的所有权重值。

步骤S1002、对所获取的所有权重值进行正态分布统计以确定出权重值的正态分布规律。

步骤S1003、将正态分布规律中分布概率满足预设概率值的权重范围,确定为目标权重数值区间。

在该实施例中,众核系统中所有权重值的分布满足正态分布规律,因此,对众核系统所包含的所有权重值进行正态分布统计即可确定出众核系统中所有权重值的正态分布规律,进而根据得到的正态分布规律确定出目标权重数值区间。

具体的,在步骤S1002中,对所获取的众核系统中的所有权重值进行正态分布统计,得到权重值的正态分布规律,该正态分布规律包括正态分布的期望值和标准差;在步骤S1003中,基于确定出的期望值和标准差,通过查询标准正态分布表确定出权重值的分布概率满足预设概率值对应的权重范围,将该权重范围确定为目标权重数值区间,其中,权重值的分布概率满足预设概率值对应的权重范围是指每个权重值将以不低于该预设概率值的几率位于该权重范围内。

例如,通过对众核系统中所有的权重值进行统计计算确定出其满足正态分布的正态分布规律中的期望值为μ=12,标准差为σ=2,预设概率值设置为90%,通过查询标准正态分布表确定出当权重值的分布概率要满足90%时对应的权重范围为(μ-2σ,μ+2σ),由此,可确定出目标权重数值区间为(8,16)。

图7为本公开实施例提供的一种权重存储装置的组成框图。

参照图7,本公开实施例提供的权重存储装置包括:划分模块11、判断模块12和存储模块13。

其中,划分模块11,用于将当前处理核的神经元与目标处理核的神经元之间的所有连接权重划分为多个目标权重组,所述目标权重组包括多个目标权重值;判断模块12用于针对每个目标权重组,判断该目标权重组中各目标权重值是否均位于目标权重数值区间内;存储模块13用于在判断模块12判断出各目标权重值均位于目标权重数值区间内时,将各目标权重值按照目标存储精度进行存储,目标存储精度低于目标权重值的当前存储精度。

图8本公开实施例提供的另一种权重存储装置的组成框图。

参照图8,在一些实施例中,权重存储装置还包括:确定模块10;确定模块10用于在划分模块将当前处理核的神经元与目标处理核的神经元之间的所有权重值划分为多个目标权重组之前,确定出预设权重数值区间。

本公开实施例中,目标权重数值区间可基于不同的方式确定出,在一些实施例中,目标权重数值区间由本领域技术人员基于经验确定出,在另一些实施例中,可通过对众核系统中所包含的所有权重值进行统计计算来确定出目标权重数值区间。

具体的,继续参照图8,在一些实施例中,确定模块包括:获取单元101、统计单元102和确定单元103。

其中,获取单元101用于获取众核系统中所包含的所有权重值;统计单元102用于对所获取的所有权重值进行正态分布统计以确定出权重值的正态分布规律;确定单元103用于将正态分布规律中分布概率满足预设概率值的权重范围,确定为目标权重数值区间。

本公开实施例提供的权重存储装置用于实现本公开实施例提供的权重存储方法,具体该权重存储装置所具有的功能模块及各功能模块之间的交互过程请参见上述权重存储方法中对应的方法步骤的描述,此处不再赘述。

图9为本公开实施例提供的一种电子设备的组成框图。

参照图9,本公开实施例提供了一种电子设备,该电子设备包括多个处理核601以及片上网络602,其中,多个处理核601均与片上网络602连接,片上网络602用于交互多个处理核间的数据和外部数据。

其中,一个或多个处理核601中存储有一个或多个指令,一个或多个指令被一个或多个处理核601执行,以使一个或多个处理核601能够执行上述的权重存储方法。

此外,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理核执行时实现上述的权重存储方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

技术分类

06120114709064