权重矩阵数据存储方法、数据获取方法和装置、电子设备与流程

    专利查询2022-09-12  105



    1.本公开涉及类脑计算领域,特别涉及一种权重矩阵的数据存储的方法、权重矩阵的数据获取的方法和装置、电子设备。


    背景技术:

    2.类脑计算技术已被广泛用于智能科学、认知科学、信息处理、人工智能等领域,如用于图像(视频)识别、图像(视频)处理、语音识别等。
    3.人脑包括大量(如1000亿左右)的神经元,而类脑芯片(神经形态芯片)则通过设置大量的电子模拟的神经元模拟人脑的工作。而神经元的工作过程中还需要用到很多的“权重(如连接权重)”,这些权重可以“权重矩阵”的形式存在,即,权重矩阵的每个元素为一个权重值(如一个连接的权重值)。
    4.由于权重矩阵包括的权重值数量很多,精度较高,从而权重矩阵会占据大量的存储空间。


    技术实现要素:

    5.本公开提供一种权重矩阵的数据存储的方法、权重矩阵的数据获取的方法和装置、电子设备。
    6.第一方面,本公开实施例提供一种权重矩阵的数据存储的方法,其包括:
    7.根据权重矩阵生成连接矩阵、数据类型表、特殊值表;
    8.存储所述连接矩阵、数据类型表、特殊值表;
    9.其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;
    10.数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    11.特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
    12.在一些实施例中,在所述根据权重矩阵生成连接矩阵、数据类型表、特殊值表之前,还包括:
    13.根据所述权重矩阵确定其中的多个有效连接的权重值为预设权重值,并存储所述预设权重值。
    14.在一些实施例中,每个所述连接类型的数据量为一位。
    15.第二方面,本公开实施例提供一种权重矩阵的数据获取的方法,包括:
    16.根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值;
    17.其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;
    18.数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    19.特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
    20.在一些实施例中,所述根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值包括:
    21.地址产生器依次产生连接矩阵中各元素的地址,并输入至连接矩阵存储器;
    22.连接矩阵存储器根据接收到的地址,将其中预存的连接矩阵的相应元素的连接类型输入至第一选通器和数据类型存储器;
    23.数据类型存储器在接收到有效连接时,将其中预存的数据类型表的相应数据类型输入至第二选通器和特殊值判断器;
    24.预设值存储器将其中预存的各预设权重值同步输入至第二选通器;
    25.特殊值判断器在接收到的数据类型为特殊值型时,向特殊值存储器输出更新信号;
    26.特殊值存储器将其中预存的特殊值表的当前特殊权重值输入至第二选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
    27.第二选通器根据接收到的数据类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;
    28.无效值存储器将其中预存的无效权重值输入至第一选通器;
    29.第一选通器根据接收到的连接类型,从接收到的无效权重值、第二选通器的输出中选择一个输出。
    30.在一些实施例中,在所述根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值之后,还包括:
    31.获取所确定的权重值。
    32.在一些实施例中,在所述根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值之后,还包括:
    33.根据所确定的权重值,复原权重矩阵的至少部分区域,并将复原的权重矩阵的区域存储至临时存储空间;
    34.从所述临时存储空间获取权重矩阵的权重值。
    35.第三方面,本公开实施例提供一种权重矩阵的数据获取的装置,包括地址产生器、特殊值存储器、无效值存储器、预设值存储器,以及至少一个获取单元;其中,
    36.所述地址产生器用于依次产生连接矩阵中各元素的地址,并输入至相应获取单元的连接矩阵存储器;
    37.所述预设值存储器用于存储所有预设权重值,并将各预设权重值同步输入至所有获取单元的第二选通器;
    38.所述无效值存储器用于存储无效权重值,并输入至所有获取单元的第一选通器;
    39.所述特殊值存储器用于存储特殊值表,将特殊值表的当前特殊权重值输入至第二选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
    40.每个所述获取单元包括:
    41.连接矩阵存储器,用于存储连接矩阵,并根据接收到的地址,将连接矩阵的相应元素的连接类型输入至第一选通器和数据类型存储器;
    42.数据类型存储器,用于在接收到有效连接时,将其中预存的数据类型表的相应数据类型输入至第二选通器和特殊值判断器;
    43.特殊值判断器,用于在接收到的数据类型为特殊值型时,向特殊值存储器输出更新信号;
    44.第二选通器,用于根据接收到的数据类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;
    45.第一选通器,用于根据接收到的连接类型,从接收到的无效权重值、第二选通器的输出中选择一个输出;
    46.其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;
    47.数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    48.特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
    49.在一些实施例中,所述获取单元的数量为多个;
    50.每个所述获取单元还包括:输出使能器,其连接第一选通器的输出;
    51.所述装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;所述逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
    52.第四方面,本公开实施例提供一种电子设备,其包括:
    53.一个或多个处理器;
    54.存储器,其上存储有一个或多个计算机程序:
    55.一个或多个i/o接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;
    56.当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现:
    57.上述任意一种的权重矩阵的数据存储的方法;
    58.和/或,
    59.上述任意一种的权重矩阵的数据获取的方法。
    60.本公开实施例中,实际存储的只有连接矩阵、数据类型表、特殊值表、预设权重值,其中,连接矩阵只有权重值的“连接类型”,数据类型表只有有效连接的权重值的“数据类
    型”,而每个连接类型、数据类型的数据量显然远小于权重值的数据量,故连接矩阵、数据类型表占用的存储空间远小于权重矩阵占用的存储空间;而特殊值表和预设权重值只是权重矩阵中很少的具体权重值,故它们占用的存储空间也很小。
    61.由此,本公开实施例中,所有实际存储的数据占用的存储空间比权重矩阵占用的存储空间小的多,但实际上包括了权重矩阵的全部信息(数据),从而大大节约了存储空间。
    附图说明
    62.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与详细实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:
    63.图1为本公开实施例提供的一种权重矩阵的数据存储的方法的流程图;
    64.图2为本公开实施例提供的一种权重矩阵的数据存储的方法中一个权重矩阵与连接矩阵的对应关系图;
    65.图3为本公开实施例提供的另一种权重矩阵的数据存储的方法的流程图;
    66.图4为本公开实施例提供的一种权重矩阵的数据获取的方法的流程图;
    67.图5为本公开实施例提供的另一种权重矩阵的数据获取的方法的流程图;
    68.图6为本公开实施例提供的另一种权重矩阵的数据获取的方法的流程图;
    69.图7为本公开实施例提供的一种权重矩阵的数据获取的装置的组成框图;
    70.图8为本公开实施例提供的另一种权重矩阵的数据获取的装置的组成框图;
    71.图9为本公开实施例提供的一种电子设备的组成框图。
    具体实施方式
    72.为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的权重矩阵的数据存储的方法、权重矩阵的数据获取的方法和装置、电子设备进行详细描述。
    73.在下文中将参考附图更充分地描述本公开,但是所示的实施例可以以不同形式来体现,且不应当被解释为限于本公开阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
    74.本公开可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
    75.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
    76.本公开所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本公开所使用的术语“和/或”包括一个或多个相关列举条目的任何和所有组合。如本公开所使用的单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。如本公开所使用的术语“包括”、“由
    ……
    制成”,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
    77.除非另外限定,否则本公开所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为
    具有理想化或过度形式上的含义,除非本公开明确如此限定。
    78.本公开不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不是旨在限制性的。
    79.第一方面,本公开实施例提供一种权重矩阵的数据存储的方法,其用于将权重矩阵的数据(信息)存储下来,以供后续的类脑计算过程使用。
    80.其中,权重矩阵用于存储类脑计算中用的权重(如神经元的权重)。权重矩阵具体可为二维形式,也可为更高维度的形式,且其中的每个元素为一个具体的权重值。
    81.其中,权重矩阵中所有权重值的精度是相同的,例如为int8、fp16等形式。
    82.参照图1,本公开实施例的权重矩阵的数据存储的方法包括:
    83.s101、根据权重矩阵生成连接矩阵、数据类型表、特殊值表。
    84.s102、存储连接矩阵、数据类型表、特殊值表。
    85.其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;
    86.数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    87.特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
    88.本公开实施例中,根据所要存储的权重矩阵的内容(数据),产生对应的连接矩阵、数据类型表、特殊值表,并将连接矩阵、数据类型表、特殊值表存储下来,以体现权重矩阵的信息(数据),供后续的类脑计算过程使用。
    89.其中,参照图2,连接矩阵与权重矩阵的形式、尺寸均相同,故连接矩阵的每个元素,必然对应权重矩阵中一个处于相同的相对位置的元素。而且,连接矩阵的每个元素的值,为其在权重矩阵中对应的元素的权重值所属的“连接类型”。
    90.在权重矩阵中,有一部分权重值是在后续的类脑计算过程中“有用”或“有效”的,其称为“有权重”或“有效权重值”,这类权重值的连接类型为“有效连接”;同时,权重矩阵中,另有一部分权重值在后续的类脑计算过程中实际“无用”或“无效”,其称为“无权重”或“无效权重值”,例如其权重值为0,这类权重值的连接类型为“无效连接”。
    91.可见,以上无效连接的权重值实际相当于权重矩阵中的0元素,而有效连接的权重值实际相当于权重矩阵中的非0元素。
    92.由于以上无效连接的权重值不起实际作用,故没有必要将其“具体值”存储下来,而是通过以上连接矩阵标明权重矩阵中哪些元素是0元素(无效连接的权重值),哪些是非0元素(有效连接的权重值)即可。
    93.例如,可参照图2,连接矩阵中用1表示有效连接(非0元素),用0表示无效连接(0元素)。
    94.进一步的,权重矩阵的有效连接的每个权重值具有一定的“数据类型”。具体的,权重矩阵的有效连接的权重值中有很多是多次重复出现的,如一些兴奋权重值、抑制权重值、
    空权重等,故可将每个多次出现的权重值(有效连接的权重值)定义为一个预设权重值,使其属于一个“预设值型”;而权重矩阵中其它的权重值(有效连接的权重值)出现较少,故将它们全部定义为特殊权重值,并属于“特殊值型”。
    95.由此,可将权重矩阵的有效连接的各权重值对应的数据类型按照预定的顺序(如逐行排列的顺序)存储下来,作为“数据类型表”。由此,数据类型表实际是一系列有顺序的数据(数据类型),也可视为“一维矩阵”或“序列”。
    96.例如,参照图2和下表1、表2,权重矩阵中的预设权重值可包括权重值a、权重值b、权重值c,从而数据类型表中的每个数据类型的数据量可为2bits,如分别用01、10、00对应权重值a、权重值b、权重值c这三种预设权重值(预设值型),而用11对应特殊权重值(特殊值型)。
    97.表1、数据类型与权重值的对应关系
    [0098][0099][0100]
    表2、数据类型表
    [0101]
    1101000110110011
    ……
    [0102]
    以上权重矩阵的所有特殊权重值(也就是对应数据类型表中所有特殊值型的权重值),也可依次(与数据类型表的顺序相同)存储下来,作为特殊值表。由此,特殊值表实际是一系列有顺序的数据(特殊权重值),也可视为“一维矩阵”或“序列”。
    [0103]
    参照图2和下表3,特殊值表的形式可为:
    [0104]
    表3、特殊值表
    [0105]
    3.2364-0.123163.7089
    ……………
    [0106]
    基于矩阵的格式要求,其中所有元素的数据精度是一样的。由此,例如每个权重值的数据量为16bits,则有n个元素的权重矩阵占据的存储空间为16*nbits。
    [0107]
    如前,连接矩阵的每个元素可仅为1或0,占据1bit的存储空间,故以上权重矩阵对应的连接矩阵占据的存储空间为nbits。
    [0108]
    假设权重矩阵中有80%的权重属于无效权重值,只有20%的权重属于有效权重值时,则如前,数据类型表占据的存储空间为20%*2*nbits。
    [0109]
    假设权重矩阵中有5%的权重属于特殊权重值,则特殊值表占据的存储空间为5%*16*nbits。
    [0110]
    由此,以上连接矩阵、数据类型表、特殊值表占据的总存储空间为n 20%*2*n 5%*16n=2.2nbits,即使加上各预设权重值占据的存储空间也只是再增加3*16=48bits,在n很大时,该存储空间远远小于16*nbits,故本公开实施例的方式可大大节约存储空间。
    [0111]
    显然,权重矩阵中无效连接的权重值(无效权重值)的比例越大,以及权重矩阵中有效连接的权重值中预设权重值的占比越大,则本公开实施例的方式节约存储空间的效果越好。因此,本公开实施例特别适用于无效权重值占比较大的稀疏矩阵。
    [0112]
    例如,本公开实施例可用于无效连接的权重值(无效权重值)至少占(在所有权重值中的个数比)40%,或至少占60%,或至少占80%的权重矩阵。
    [0113]
    再如,本公开实施例可用于预设权重值至少占(在有效连接的权重值中的个数比)40%,或至少占60%,或至少占80%的权重矩阵。
    [0114]
    本公开实施例中,实际存储的只有连接矩阵、数据类型表、特殊值表、预设权重值,其中,连接矩阵只有权重值的“连接类型”,数据类型表只有有效连接的权重值的“数据类型”,而每个连接类型、数据类型的数据量显然远小于权重值的数据量,故连接矩阵、数据类型表占用的存储空间远小于权重矩阵占用的存储空间;而特殊值表和预设权重值只是权重矩阵中很少的具体权重值,故它们占用的存储空间也很小。
    [0115]
    由此,本公开实施例中,所有实际存储的数据占用的存储空间比权重矩阵占用的存储空间小的多,但实际上包括了权重矩阵的全部信息(数据),从而大大节约了存储空间。
    [0116]
    在一些实施例中,每个连接类型的数据量为一位。
    [0117]
    如前,由于连接类型只有两种,故每个连接类型的数据量为一位(1bit),如为以上1或0。
    [0118]
    参照图3,在一些实施例中,在根据权重矩阵确定其中的多个有效连接的权重值为预设权重值,并存储预设权重值(s101),还包括:
    [0119]
    s100、根据权重矩阵确定其中的多个权重值为预设权重值,并存储预设权重值。
    [0120]
    如前,预设权重值的选取对节约存储空间的效果有明显影响,预设权重值过少则特殊权重值过多,特殊值表占用的存储空间过大;而预设权重值的种类过多,则会导致每个“数据类型”的数据量过大,进而导致数据类型表占用的存储空间过大。
    [0121]
    为此,可根据当前要存储的权重矩阵的具体状况,选择其中部分多次出现的权重值为预设权重值,并将选定的预设权重值存储下来,以起到更好的节约存储空间的效果。
    [0122]
    当然,也可以是根据大量权重矩阵的总体情况,预先设定通用的预设权重值并存储,而不是根据每个权重矩阵设置预设权重值。
    [0123]
    第二方面,本公开实施例提供一种权重矩阵的数据获取的方法,其用根据以上方法存储得到的权重矩阵的数据,获取权重矩阵中所需的权重值,用于后续的类脑计算过程。
    [0124]
    参照图4,本公开实施例的权重矩阵的数据获取的方法包括:
    [0125]
    s201、根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值。
    [0126]
    其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;
    [0127]
    数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    [0128]
    特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
    [0129]
    可见,通过以上方式存储的权重矩阵的数据并不是“权重矩阵”本身,故当需要使用权重矩阵中某个元素的权重值时,需要先根据连接矩阵中的相应元素(处于相同相对位置的元素)确定该权重值是有效连接还是无效连接,在权重值为有效连接时,继续根据数据类型表确定该权重值的数据类型,进而确定该权重值为哪个预设权重值或特殊值表中的哪
    个特殊权重值,即得到其具体权重值。
    [0130]
    参照图5,在一些实施例中,在根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值(s201)之后,还包括:
    [0131]
    s202、获取所确定的权重值。
    [0132]
    作为本公开实施例的一种形式,可以是在需要使用权重矩阵中元素的权重值时,直接按照以上方式得到相应的权重值,并直接读出、利用。
    [0133]
    参照图6,在一些实施例中,在根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值(s201)之后,还包括:
    [0134]
    s203、根据所确定的权重值,复原权重矩阵的至少部分区域,并将复原的权重矩阵的区域存储至临时存储空间;
    [0135]
    s204、从临时存储空间获取权重矩阵的权重值。
    [0136]
    作为本公开实施例的另一种形式,也可以是先得到权重矩阵中部分或全部的权重值,也就是“复原”权重矩阵或其一部分,并将复原的权重矩阵或其一部分存储在临时存储空间中,故临时存储空间中相当于有一个“临时权重矩阵”,从而在需要时,可从该“临时权重矩阵”中获取权重值。
    [0137]
    其中,当使用完“临时权重矩阵”中的数据后,可重新向临时存储空间中写入权重矩阵的“另一部分”。
    [0138]
    下面对得到权重矩阵中元素的权重值的具体方式进行介绍。
    [0139]
    应当理解,具体如何得到权重矩阵中元素的权重值,与权重值后续被如何利用没有必然关系。例如,通过以下方式得到的权重值,可以被直接获取(如s202),也可以用于形成以上“临时权重矩阵(如s203、s204)”。
    [0140]
    应当理解,以下得到权重矩阵中元素的具体方式只是示例性的,而不是对本公开范围的限定。
    [0141]
    参照图7,在一些实施例中,根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值(s201)包括:
    [0142]
    a1、地址产生器依次产生连接矩阵中各元素的地址,并输入至连接矩阵存储器。
    [0143]
    a2、连接矩阵存储器根据接收到的地址,将其中预存的连接矩阵的相应元素的连接类型输入至第一选通器和数据类型存储器。
    [0144]
    a3、数据类型存储器在接收到有效连接时,将其中预存的数据类型表的相应数据类型输入至第二选通器和特殊值判断器。
    [0145]
    a4、预设值存储器将其中预存的各预设权重值同步输入至第二选通器。
    [0146]
    a5、特殊值判断器在接收到的数据类型为特殊值型时,向特殊值存储器输出更新信号。
    [0147]
    a6、特殊值存储器将其中预存的特殊值表的当前特殊权重值输入至第二选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值。
    [0148]
    a7、第二选通器根据接收到的数据类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出。
    [0149]
    a8、无效值存储器将其中预存的无效权重值输入至第一选通器。
    [0150]
    a9、第一选通器根据接收到的连接类型,从接收到的无效权重值、第二选通器的输
    出中选择一个输出。
    [0151]
    应当理解,以上每个步骤描述的只是相应结构进行的工作或功能,故以上步骤的描述顺序,并不代表其必然的执行顺序。
    [0152]
    参照图7,地址产生器依次(与数据类型表、特殊值表的存储顺序对应)产生地址并将其输入至连接矩阵存储器。
    [0153]
    其中,以上产生的地址用于表明当前需要确定权重矩阵中哪个元素的权重值;故为了简便,权重矩阵和连接矩阵中对应元素的地址可以是相同的。
    [0154]
    连接矩阵存储器根据接收到的地址,将地址所指元素的连接类型(如以上1或0)输入第一选通器和数据类型存储器。
    [0155]
    数据类型存储器在接收到的连接类型为“有效连接(如1)”时,将其中存储的数据类型表的相应数据类型,即对应该有效连接的地址的权重值的数据类型(如以上01、10、00、11)输入到第二选通器。
    [0156]
    其中,数据类型存储器可通过多种方式实现输出“相应的”数据类型,例如,数据类型存储器可在每次接收到“有效连接”是“更新”输出数据类型表的“下一个”数据类型,从而保证其输出的数据类型的序数,等于相应权重值在权重矩阵的全部有效连接的权重值中的序数。
    [0157]
    其中,如果数据类型存储器接收到的连接类型为“无效连接(如0)”,则其可继续输出之前的数据类型,也可以不输出,在此不再详细描述。
    [0158]
    同时,预设值存储器(如寄存器)将其中存储的所有预设权重值(如以上权重值a、权重值b、权重值c)同步的输入(如持续输入)至第二选通器;特殊值存储器也将其中存储的当前特殊权重值输入(如持续输入)至第二选通器。
    [0159]
    由此,第二选通器同时接收到所有的预设权重值以及当前特殊权重值。
    [0160]
    同时,第二选通器还接收到当前需要确定权重值的元素的数据类型(来自数据类型存储器),从而其可根据该数据类型,确定应让哪一个权重值输出(例如,数据类型为01则输出权重值a,数据类型为10则输出权重值b,数据类型为00则输出权重值c,数据类型为11则输出当前特殊权重值),即确定将哪一“路”的输入选通;而第二选通器接收到的其它各“路”权重值并不是对应当前元素的,故不被输出。
    [0161]
    其中,若第二选通器未接收到数据类型,也可不产生任何输出。
    [0162]
    其中,数据类型存储器还将数据类型输入至特殊值判断器,特殊值判断器则在接收到的数据类型为特殊值型(如为11)时,向特殊值存储器输出更新信号,以供特殊值存储器“更新”当前特殊权重值,即选择特殊值表中的“下一个”特殊权重值作为新的当前特殊权重值,并输出至选通器。
    [0163]
    可见,地址产生器产生的地址是“依次”的,数据类型表中的各数据类型也是按照相同方式“依次”的,特殊值存储中的特殊值表中的各特殊权重值也是按照相同方式“依次”排列的,由此,通过在数据类型为特殊值型时更新当前特殊权重值,可保证地址与当前特殊权重值是“同步”的。
    [0164]
    进一步的,无效值存储器还将其中预存的无效权重值(无权重,例如权重值为0)也输入(如持续输入)到第一选通器,即第一选通器同时接收到无效权重值和第二选通器的输出(预设权重值或当前特殊权重值)。
    [0165]
    由此,第一选通器可根据接收到的连接类型(来自连接矩阵存储器),从接收到的无效权重值、第二选通器的输出中选择一个输出,具体是,在接收到无效连接时输出无效权重值,而在接收到有效连接时输出第二选通器的输出(预设权重值或当前特殊权重值,均属于有效权重值),从而实现对无效权重值的准确输出。
    [0166]
    参照图8,在一些实施例中,权重矩阵的数据获取的装置包括获取单元,每个获取单元包括以上的连接矩阵存储器、数据类型存储器、特殊值判断器、第一选通器、第二选通器。
    [0167]
    当获取单元的数量为多个时,每个获取单元还包括:输出使能器,其连接第一选通器的输出;
    [0168]
    本公开实施例的装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
    [0169]
    如前,每个获取单元可确定一个元素的权重值,故若要以“并行”方式同时确定多个元素的权重值(如权重矩阵的一行中多个相邻元素的权重值)时,则需要同时使用多个(图8以两个为例)获取单元,各获取单元同步工作,每个获取单元确定一个权重值。
    [0170]
    其中,当有多个获取单元时,若涉及到两个属于获取单元的结构的交互,则若无特殊说明,应当是指同一个获取单元内部的两个结构进行交互。
    [0171]
    参照图8,当有多个获取单元时,其中的特殊值存储器、预设值存储器、无效值存储器可以“公用”,即它们将当前特殊权重值、预设权重值同步输出到所有获取单元的第二选通器,而将无效权重值输出到所有获取单元的第一选通器,从而简化硬件结构。
    [0172]
    而地址产生器也是“公用”的,区别在于其将各获取单元应处理的元素的地址分别输入至相应获取单元的连接矩阵存储器(即其同一时刻输入到各连接矩阵存储器的地址不同,但按顺序排列),再由各获取单元的连接矩阵存储器将对应的连接类型输入至自身所在获取单元的第一选通器和数据类型存储器,以供第一选通器输出相应元素的权重值。
    [0173]
    其中,当“并行”输出的多个元素的权重值中有多个特殊权重值时,则必然有多个获取单元的第二选通器接收到的数据类型为特殊值型,并分别输出该当前特殊权重值到第一选通器;但是,该多个不同获取单元应输出(通过第一选通器输出)的特殊权重值实际是不同的,即特殊值存储器需要对当前特殊权重值进行多次更新,
    [0174]
    为此,参照图8,还需要设置逻辑控制器和输出使能器。
    [0175]
    其中,若逻辑控制器同时只接收到一个更新信号,则直接将其转发至特殊值存储器即可。
    [0176]
    而当“并行”输出的多个元素的权重值中有多个特殊权重值时,逻辑控制器必然同时接收到多个更新信号(如两个更新信号),从而其需要依次将更新信号输入至特殊值存储器(如先将第一个更新信号输入至特殊值存储器,一定时间后再将第二个更新信号输入至特殊值存储器)。进而,特殊值存储器会多次更新当前特殊权重值,并在不同时间分别输出不同的当前特殊权重值(如在收到第一个更新信号后而收到第二个更新信号前,输出第一个当前特殊权重值;而在收到第二个更新信号后输出第二个当前特殊权重值)。
    [0177]
    相应的,在同时接收到多个更新信号时,逻辑控制器还需要以轮询的方式,控制对
    应各更新信号的获取单元的输出使能器依次导通(如在特殊值存储器输出第一个当前特殊权重值时,使对应第一个更新信号的获取单元的输出使能器导通,使对应第二个更新信号的获取单元的输出使能器关断;而在特殊值存储器输出第二个当前特殊权重值时,使对应第二个更新信号的获取单元的输出使能器导通,使对应第一个更新信号的获取单元的输出使能器关断)。
    [0178]
    由此,对应各更新信号的多个获取单元,可分别输出(是“并行”输出,但不是完全“同时”)各自对应的元素的特殊权重值。
    [0179]
    其中,同时接收到多个更新信号时,逻辑控制器应控制其它不对应更新信号的获取单元的输出使能器保持导通状态;而在同时只接收到一个更新信号或未接收到更新信号时,逻辑控制器应控制所有获取单元的输出使能器保持导通状态,在此不再详细描述
    [0180]
    其中,逻辑控制器的具体实现方式是多样的,例如,逻辑控制器可通过乘加器实现节拍性的调整工作状态,在此不再详细描述。
    [0181]
    第三方面,参照图7,本公开实施例提供一种权重矩阵的数据获取的装置,其包括地址产生器、特殊值存储器、无效值存储器、预设值存储器,以及至少一个获取单元;其中,
    [0182]
    地址产生器用于依次产生连接矩阵中各元素的地址,并输入至相应获取单元的连接矩阵存储器;
    [0183]
    预设值存储器用于存储所有预设权重值,并将各预设权重值同步输入至所有获取单元的第二选通器;
    [0184]
    无效值存储器用于存储无效权重值,并输入至所有获取单元的第一选通器;
    [0185]
    特殊值存储器用于存储特殊值表,将特殊值表的当前特殊权重值输入至第二选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;
    [0186]
    每个获取单元包括:
    [0187]
    连接矩阵存储器,用于存储连接矩阵,并根据接收到的地址,将连接矩阵的相应元素的连接类型输入至第一选通器和数据类型存储器;
    [0188]
    数据类型存储器,用于在接收到有效连接时,将其中预存的数据类型表的相应数据类型输入至第二选通器和特殊值判断器;
    [0189]
    特殊值判断器,用于在接收到的数据类型为特殊值型时,向特殊值存储器输出更新信号;
    [0190]
    第二选通器,用于根据接收到的数据类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;
    [0191]
    第一选通器,用于根据接收到的连接类型,从接收到的无效权重值、第二选通器的输出中选择一个输出;
    [0192]
    其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;
    [0193]
    数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    [0194]
    特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。
    [0195]
    参照图8,在一些实施例中,获取单元的数量为多个;
    [0196]
    每个获取单元还包括:输出使能器,其连接第一选通器的输出;
    [0197]
    装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。
    [0198]
    本公开实施例的装置,可通过以上的硬件结构,实现以上的权重矩阵的数据获取的方法,在此不再详细描述。
    [0199]
    其中,当有多个获取单元时,若涉及到两个属于获取单元的结构的交互,则若无特殊说明,应当是指同一个获取单元内部的两个结构进行交互。
    [0200]
    其中,以上置中的多个结构,可以是多个相互独立的实体器件,也可以是多个结构集成在一起由一个实体器件实现,在此不再详细描述。
    [0201]
    第四方面,参照图9,本公开实施例提供一种电子设备,其包括:
    [0202]
    一个或多个处理器;
    [0203]
    存储器,其上存储有一个或多个计算机程序:
    [0204]
    一个或多个i/o接口,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互;
    [0205]
    当一个或多个计算机程序被一个或多个处理器执行时,能实现:
    [0206]
    上述任意一种的权重矩阵的数据存储的方法;
    [0207]
    和/或,
    [0208]
    上述任意一种的权重矩阵的数据获取的方法。
    [0209]
    其中,处理器为具有数据处理能力的器件,其包括但不限于中央处理器(cpu)等;存储器为具有数据存储能力的器件,其包括但不限于随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash);i/o接口(读写接口)连接在处理器与存储器间,能实现存储器与处理器的信息交互,其包括但不限于数据总线(bus)等。
    [0210]
    本公开实施例的电子设备可实现上述的方法,从而可用于类脑计算技术。
    [0211]
    例如,以上电子设备可集成在类脑芯片(神经形态芯片)等类脑计算设备中。或者,以上电子设备也可独立于类脑计算设备,为类脑计算设备提供权重值。
    [0212]
    本领域普通技术人员可以理解,上文中所公开的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
    [0213]
    在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。
    [0214]
    某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器(cpu)、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语
    计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash)或其它磁盘存储器;只读光盘(cd-rom)、数字多功能盘(dvd)或其它光盘存储器;磁盒、磁带、磁盘存储或其它磁存储器;可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
    [0215]
    本公开已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

    技术特征:
    1.一种权重矩阵的数据存储的方法,其包括:根据权重矩阵生成连接矩阵、数据类型表、特殊值表;存储所述连接矩阵、数据类型表、特殊值表;其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。2.根据权利要求1所述的方法,其中,在所述根据权重矩阵生成连接矩阵、数据类型表、特殊值表之前,还包括:根据所述权重矩阵确定其中的多个有效连接的权重值为预设权重值,并存储所述预设权重值。3.根据权利要求1所述的方法,其中,每个所述连接类型的数据量为一位。4.一种权重矩阵的数据获取的方法,包括:根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值;其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。5.根据权利要求4所述的方法,其中,所述根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值包括:地址产生器依次产生连接矩阵中各元素的地址,并输入至连接矩阵存储器;连接矩阵存储器根据接收到的地址,将其中预存的连接矩阵的相应元素的连接类型输入至第一选通器和数据类型存储器;数据类型存储器在接收到有效连接时,将其中预存的数据类型表的相应数据类型输入至第二选通器和特殊值判断器;预设值存储器将其中预存的各预设权重值同步输入至第二选通器;特殊值判断器在接收到的数据类型为特殊值型时,向特殊值存储器输出更新信号;特殊值存储器将其中预存的特殊值表的当前特殊权重值输入至第二选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;第二选通器根据接收到的数据类型,从接收到的当前特殊权重值、各预设权重值中选
    择一个输出;无效值存储器将其中预存的无效权重值输入至第一选通器;第一选通器根据接收到的连接类型,从接收到的无效权重值、第二选通器的输出中选择一个输出。6.根据权利要求4所述的方法,其中,在所述根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值之后,还包括:获取所确定的权重值。7.根据权利要求4所述的方法,其中,在所述根据预存的连接矩阵、数据类型表、特殊值表,确定权重矩阵中对应元素的权重值之后,还包括:根据所确定的权重值,复原权重矩阵的至少部分区域,并将复原的权重矩阵的区域存储至临时存储空间;从所述临时存储空间获取权重矩阵的权重值。8.一种权重矩阵的数据获取的装置,包括地址产生器、特殊值存储器、无效值存储器、预设值存储器,以及至少一个获取单元;其中,所述地址产生器用于依次产生连接矩阵中各元素的地址,并输入至相应获取单元的连接矩阵存储器;所述预设值存储器用于存储所有预设权重值,并将各预设权重值同步输入至所有获取单元的第二选通器;所述无效值存储器用于存储无效权重值,并输入至所有获取单元的第一选通器;所述特殊值存储器用于存储特殊值表,将特殊值表的当前特殊权重值输入至第二选通器,并在接收到更新信号时将当前特殊权重值更新为特殊值表的下一个特殊权重值;每个所述获取单元包括:连接矩阵存储器,用于存储连接矩阵,并根据接收到的地址,将连接矩阵的相应元素的连接类型输入至第一选通器和数据类型存储器;数据类型存储器,用于在接收到有效连接时,将其中预存的数据类型表的相应数据类型输入至第二选通器和特殊值判断器;特殊值判断器,用于在接收到的数据类型为特殊值型时,向特殊值存储器输出更新信号;第二选通器,用于根据接收到的数据类型,从接收到的当前特殊权重值、各预设权重值中选择一个输出;第一选通器,用于根据接收到的连接类型,从接收到的无效权重值、第二选通器的输出中选择一个输出;其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;一个连接类型的数据量小于一个权重值的数据量,连接类型分为有效连接和无效连接;数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;一个数据类型的数据量小于一个权重值的数据量,数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;
    特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。9.根据权利要求8所述的装置,其中,所述获取单元的数量为多个;每个所述获取单元还包括:输出使能器,其连接第一选通器的输出;所述装置还包括:逻辑控制器,其连接在各特殊值判断器与特殊值存储器之间,且连接各输出使能器;所述逻辑控制器用于将更新信号发送至特殊值存储器,且在同时接收到多个更新信号时,将多个更新信号依次输入至特殊值存储器,并控制对应各更新信号的各获取单元的输出使能器依次导通。10.一种电子设备,其包括:一个或多个处理器;存储器,其上存储有一个或多个计算机程序:一个或多个i/o接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现:权利要求1至3中任意一项所述的权重矩阵的数据存储的方法;和/或,权利要求4至7中任意一项所述的权重矩阵的数据获取的方法。

    技术总结
    本公开提供了一种权重矩阵的数据存储的方法,其包括:根据权重矩阵生成连接矩阵、数据类型表、特殊值表;存储连接矩阵、数据类型表、特殊值表;其中,连接矩阵与权重矩阵结构相同,其每个元素为权重矩阵中对应元素的权重值的连接类型;连接类型分为有效连接和无效连接;数据类型表包括依次设置的、权重矩阵中有效连接的权重值对应的数据类型;数据类型包括特殊值型和多个预设值型,每个预设值型对应一个有效连接的预设权重值,特殊值型对应特殊权重值,除预设权重值外的其它有效连接的权重值均为特殊权重值;特殊值表包括依次设置的、权重矩阵中的所有特殊权重值。本公开还提供了一种权重矩阵的数据获取的方法和装置、电子设备。电子设备。电子设备。


    技术研发人员:吴臻志 杨鸣鹤
    受保护的技术使用者:北京灵汐科技有限公司
    技术研发日:2021.05.27
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-12947.html

    最新回复(0)