CN115796250A - 权重部署方法及装置、电子设备和存储介质 - Google Patents

权重部署方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115796250A
CN115796250A CN202211490851.XA CN202211490851A CN115796250A CN 115796250 A CN115796250 A CN 115796250A CN 202211490851 A CN202211490851 A CN 202211490851A CN 115796250 A CN115796250 A CN 115796250A
Authority
CN
China
Prior art keywords
weight
memristor
target
neural network
target weight
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
Application number
CN202211490851.XA
Other languages
English (en)
Inventor
吴华强
林钰登
唐建石
高滨
张清天
钱鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202211490851.XA priority Critical patent/CN115796250A/zh
Publication of CN115796250A publication Critical patent/CN115796250A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Micromachines (AREA)

Abstract

一种基于忆阻器阵列的神经网络的权重部署方法及装置、电子设备和存储介质。该权重部署方法包括:获取神经网络中待部署到忆阻器阵列中的目标权重;确定目标权重是第一类型权重还是第二类型权重,第一类型权重对神经网络的重要性高于第二类型权重对神经网络的重要性;对于忆阻器阵列执行权重映射操作,若目标权重是第一类型权重,将目标权重映射到忆阻器阵列中与目标权重对应的忆阻器单元,或者,若目标权重是第二类型权重,则将忆阻器阵列中与目标权重对应的忆阻器单元的电导值写入为选择的目标值。该权重部署方法能够提高神经网络的权重部署于忆阻器阵列的效率。

Description

权重部署方法及装置、电子设备和存储介质
技术领域
本公开的实施例涉及一种基于忆阻器阵列的神经网络的权重部署方法及装置、电子设备和存储介质。
背景技术
忆阻器是一种可以通过施加外部激励,调节其电导状态的非易失型器件。根据基尔霍夫电流定律和欧姆定律,由忆阻器构成的阵列可以并行的完成乘累加计算,且存储和计算都发生在阵列各器件中。基于这种计算架构,可以实现不需要大量数据搬移的存算一体计算。同时,乘累加是运行神经网络需要的核心计算任务。因此,使用阵列中的忆阻器的电导表示权重值,可以基于这种存算一体计算实现高能效的神经网络运算。在神经网络运算中,忆阻器阵列上的忆阻器的电导值代表了神经网络中的突触权重。
发明内容
本公开至少一个实施例提供一种基于忆阻器阵列的神经网络的权重部署方法,包括:获取所述神经网络中待部署到所述忆阻器阵列中的目标权重;确定所述目标权重是第一类型权重还是第二类型权重,所述第一类型权重对所述神经网络的重要性高于所述第二类型权重对所述神经网络的重要性;对于所述忆阻器阵列执行权重映射操作,若所述目标权重是所述第一类型权重,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,或者,若所述目标权重是所述第二类型权重,则将所述忆阻器阵列中与所述目标权重对应的忆阻器单元的电导值写入为选择的目标值。
例如,在本公开至少一个实施例提供的权重部署方法中,确定所述目标权重是第一类型权重还是第二类型权重,包括:确定所述目标权重在选择的参考值处的概率密度是否大于概率密度阈值;响应于所述目标权重在所述选择的参考值处的概率密度大于所述概率密度阈值,所述目标权重是所述第二类型权重;或者响应于所述目标权重在所述选择的参考值处的概率密度小于或者等于所述概率密度阈值,所述目标权重是所述第一类型权重。
例如,在本公开至少一个实施例提供的权重部署方法中,神经网络为贝叶斯神经网络,所述贝叶斯神经网络中的权重服从概率分布,所述目标权重为所述概率分布的均值,确定所述目标权重是第一类型权重还是第二类型权重,包括:根据所述概率分布的均值和标准差,确定所述概率分布在选择的参考值处的信噪比;以及确定所述信噪比是否大于所述信噪比阈值;响应于所述信噪比大于所述信噪比阈值,所述目标权重为第一类型权重;或者响应于所述信噪比小于或者等于所述信噪比阈值,所述目标权重为第二类型权重。
例如,在本公开至少一个实施例提供的权重部署方法中,概率分布为高斯分布。
例如,在本公开至少一个实施例提供的权重部署方法中,还包括:对忆阻器阵列执行初始化操作,以对所述忆阻器阵列中的忆阻器的电导值初始化。
例如,在本公开至少一个实施例提供的权重部署方法中,神经网络包括多个权重,所述多个权重包括所述目标权重,对于所述忆阻器阵列执行所述权重映射操作,包括:若所述目标权重为所述第二类型权重,则直接获取所述多个权重中的下一个权重,并且将所述目标权重更新为所述下一个权重;若所述目标权重为所述第一类型权重,则将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元之后,再获取所述多个权重中的下一个权重,并且将所述目标权重更新为所述下一个权重。
例如,在本公开至少一个实施例提供的权重部署方法中,忆阻器阵列包括多行多列忆阻器单元,每个忆阻器单元包括成对提供的第一忆阻器和第二忆阻器,所述第一忆阻器和第二忆阻器的电导值之差表示所述目标权重,若所述目标权重是所述第一类型权重,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,包括:若所述目标权重是所述第一类型权重,获取与所述目标权重对应的忆阻器单元包括的第一忆阻器和第二忆阻器形成的当前权重值;判断所述当前权重值与所述目标权重之间的偏差是否在误差范围内;响应于所述当前权重值与所述目标权重之间的偏差不在所述误差范围内,对第一忆阻器和所述第二忆阻器的电导值进行编程,使得所述偏差减少到所述误差范围内。
例如,在本公开至少一个实施例提供的权重部署方法中,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,还包括:响应于所述当前权重值与所述目标权重之间的偏差在所述误差范围内,则跳过所述目标权重,获取所述多个权重中的下一个权重,并且将所述目标权重更新为所述下一个权重。
例如,在本公开至少一个实施例提供的权重部署方法中,选择的目标值为0。
本公开至少一个实施例还提供一种基于忆阻器阵列的神经网络的权重部署装置,包括:获取单元,配置为获取所述神经网络中待部署到所述忆阻器阵列中的目标权重;确定单元,配置为确定所述目标权重是第一类型权重还是第二类型权重,所述第一类型权重对所述神经网络的重要性高于所述第二类型权重对所述神经网络的重要性;映射单元,配置为对于所述忆阻器阵列执行权重映射操作,若所述目标权重是所述第一类型权重,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,或者若所述目标权重是所述第二类型权重,则将所述忆阻器阵列中与所述目标权重对应的忆阻器单元的电导值写入为选择的目标值。
本公开至少一个实施例还提供一种电子设备包括:处理器;存储器,存储有一个或多个计算机程序指令;所述一个或多个计算机程序指令由所述处理器执行时用于实现本公开任一实施例提供的权重部署的方法。
本公开至少一个实施例还提供一种计算机可读存储介质,非暂时性存储有计算机可读指令,当所述计算机可读指令由处理器执行时用于实现本公开任一实施例提供的权重部署方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了一种忆阻器阵列的示意性结构;
图1B为一种忆阻器装置的示意图;
图1C为另一种忆阻器装置的示意图;
图1D示出了将贝叶斯神经网络的权重矩阵映射到忆阻器阵列的示意图;
图2示出了本公开至少一个实施例提供的一种基于忆阻器阵列的神经网络的权重部署方法的示意性流程图;
图3示出了本公开至少一个实施例提供的步骤S20的方法流程图;
图4示出了本公开至少一个实施例提供的另一种步骤S20的方法流程图;
图5示出了本公开至少一个实施例提供的另一种步骤S30的方法流程图;
图6A为本公开至少一实施例提供的忆阻器阵列的示意性结构图;
图6B为本公开至少一实施例提供的另一种忆阻器阵列的示意图;
图7示出了本公开至少一个实施例提供的另一种权重部署方法的流程图;
图8示出了本公开至少一个实施例提供的另一种权重部署方法的示意图;
图9示出了本公开至少一个实施例提供的一种基于忆阻器阵列的神经网络的权重部署装置的示意框图;
图10为本公开一些实施例提供的一种电子设备的示意框图;
图11为本公开一些实施例提供的另一种电子设备的示意框图;
图12为本公开一些实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了将外部离线训练的神经网络模型写入到忆阻器阵列上,通过使用写校验操作,在可接受的误差范围内将忆阻器单元编程为目标电导状态。写校验操作可以大大减少神经网络中的权重与写入到忆阻器中的电导值之间的偏差,而且网络性能几乎保持不变。例如,写校验操作包括向忆阻器编程(即,向忆阻器写入所需要的电导值),读取忆阻器的电导值,比较读取到的忆阻器的电导值与权重值之差是否在预设范围内,若读取到的忆阻器的电导值与权重值之差在预设范围内,则写校验通过,若读取到的忆阻器的电导值与权重值之差不在预设范围内,则继续再次执行写校验操作直到读取到的忆阻器的电导值与权重值之差在预设范围内。因此,写验证过程是非常耗费能量和时间的,因为它需要大量的片上读取和编程操作。在需要为不同的任务重新编程的大规模忆阻器阵列应用中,巨大的耗时耗能是难以接受的。比如移动边缘计算这些应用对高速和高效的写验证方案有很高的要求。然而,目前仍然缺乏一种高速和高效的权重写入忆阻器阵列的解决方案。
为此,本公开至少一个实施例提供了一种基于忆阻器阵列的神经网络的权重部署方法。该权重部署方法包括:获取神经网络中待部署到忆阻器阵列中的目标权重;确定目标权重是第一类型权重还是第二类型权重,第一类型权重对神经网络的重要性高于第二类型权重对神经网络的重要性;对于忆阻器阵列执行权重映射操作。若目标权重是第一类型权重,将目标权重映射到忆阻器阵列中与所述目标权重对应的忆阻器单元,或者,若目标权重是第二类型权重,则将忆阻器阵列中与目标权重对应的忆阻器单元的电导值写入为选择的目标值。
该权重部署方法能够选取并仅写入重要性较高的目标权重,从而在保证神经网络性能的基础上,减少写入到忆阻器阵列的权重数量,得以减少写校验方法的消耗的时间和能量,从而提供权重部署的效率。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图1A示出了一种忆阻器阵列的示意性结构,该忆阻器阵列例如由多个忆阻器单元构成,该多个忆阻器单元构成一个M行N列的阵列,M和N均为正整数。每个忆阻器单元包括一个或多个开关元件和一个或多个忆阻器,在不同的示例中,忆阻器单元可以为1T1R结构(即一个晶体管和一个忆阻器),也可以为2T2R结构(即两个晶体管和两个忆阻器)。在图1A中,WL<1>、WL<2>……WL<M>分别表示第一行、第二行……第M行的字线,每一行的忆阻器单元电路中的开关元件的控制极(例如晶体管的栅极)和该行对应的字线连接;BL<1>、BL<2>……BL<N>分别表示第一列、第二列……第N列的位线,每列的忆阻器单元电路中的忆阻器和该列对应的位线连接;SL<1>、SL<2>……SL<M>分别表示第一行、第二行……第M行的源线,每一行的忆阻器单元电路中的晶体管的源极和该行对应的源线连接。
根据基尔霍夫定律,通过设置忆阻器单元的状态(例如阻值)并且在字线与位线施加相应的字线信号与位线信号,上述忆阻器阵列可以并行地完成乘累加计算。
图1B为一种忆阻器装置的示意图,该忆阻器装置包括忆阻器阵列及其外围驱动电路。例如,如图1B所示,该忆阻器装置包括信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,信号获取装置配置为将数字信号通过数字模拟转换器(Digital to Analogconverter,简称DAC)转换为多个模拟信号,以输入至忆阻器阵列的多个列信号输入端。
例如,忆阻器阵列包括M条源线、M条字线和N条位线,以及阵列排布为M行N列的多个忆阻器单元。
例如,通过字线驱动电路、位线驱动电路和源线驱动电路实现对于忆阻器阵列的操作。
例如,字线驱动电路包括多个多路选择器(Multiplexer,简称Mux),用于切换字线输入电压;位线驱动电路包括多个多路选择器,用于切换位线输入电压;源线驱动电路也包括多个多路选择器(Mux),用于切换源线输入电压。例如,源线驱动电路还包括多个ADC,用于将模拟信号转换为数字信号。此外,在源线驱动电路中的Mux和ADC之间还可以进一步设置跨阻放大器(Trans-Impedance Amplifier,简称TIA)(图中未示出)以完成电流到电压的转换,以便于ADC处理。
例如,忆阻器阵列包括操作模式和计算模式。当忆阻器阵列处于操作模式时,忆阻器单元处于初始化状态,可以将参数矩阵中的参数元素的数值写入忆阻器阵列中。例如,将忆阻器的源线输入电压、位线输入电压和字线输入电压通过多路选择器切换至对应的预设电压区间。
例如,通过图1B中的字线驱动电路中的多路选择器的控制信号WL_sw[1:M]将字线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将字线输入电压设置为2V(伏特),例如在对忆阻器进行复位操作时,将字线输入电压设置为5V,例如,字线输入电压可以通过图1B中的电压信号V_WL[1:M]得到。
例如,通过图1B中的源线驱动电路中的多路选择器的控制信号SL_sw[1:M]将源线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将源线输入电压设置为0V,例如在对忆阻器进行复位操作时,将源线输入电压设置为2V,例如,源线输入电压可以通过图1B中的电压信号V_SL[1:M]得到。
例如,通过图1B中的位线驱动电路中的多路选择器的控制信号BL_sw[1:N]将位线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将位线输入电压设置为2V,例如在对忆阻器进行复位操作时,将位线输入电压设置为0V,例如,位线输入电压可以通过图1B中DAC得到。
例如,当忆阻器阵列处于计算模式时,忆阻器阵列中的忆阻器处于可用于计算的导电状态,列信号输入端输入的位线输入电压不会改变忆阻器的电导值,例如,可以通过忆阻器阵列执行乘加运算完成计算。例如,通过图1B中的字线驱动电路中的多路选择器的控制信号WL_sw[1:M]将字线输入电压切换至相应的电压区间,例如施加开启信号时,相应行的字线输入电压设置为5V,例如不施加开启信号时,相应行的字线输入电压设置为0V,例如接通GND信号;通过图1B中的源线驱动电路中的多路选择器的控制信号SL_sw[1:M]将源线输入电压切换至相应的电压区间,例如将源线输入电压设置为0V,从而使得多个行信号输出端的电流信号可以流入数据输出电路,通过图1B中的位线驱动电路中的多路选择器的控制信号BL_sw[1:N]将位线输入电压切换至相应的电压区间,例如将位线输入电压设置为0.1V-0.3V,从而利用忆阻器阵列进行乘加运算。
例如,数据输出电路可以包括多个跨阻放大器(TIA)、ADC,可以将多个行信号输出端的电流信号转换为电压信号,而后转换为数字信号,以用于后续处理。
图1C为另一种忆阻器装置的示意图。图1C所示的忆阻器装置与图1B所示的忆阻器装置的结构基本相同,也包括忆阻器阵列及其外围驱动电路。例如,如图1C所示,该忆阻器装置包括信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,忆阻器阵列包括M条源线、2M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。例如,每个忆阻器单元为2T2R结构,通过该2T2R结构可以实现对于正值以及负值的映射。将用于变换处理的参数矩阵映射于忆阻器阵列中不同的多个忆阻器单元的操作,这里不再赘述。需要说明的是,忆阻器阵列也可以包括M条源线、M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。
关于信号获取装置、控制驱动电路以及数据输出电路的描述可以参照之前的描述,这里不再赘述。
例如,在本公开的一些实施例中,忆阻器阵列用于贝叶斯神经网络的权重部署。贝叶斯神经网络是一种将神经网络置于贝叶斯框架中的概率模型,可以描述复杂的随机模式。为了考虑权重的不确定性,最好能够构建贝叶斯模型。在贝叶斯模型下,权重不是由单个值表示,而是由概率分布表示。给定观测数据,贝叶斯模型所权重的分布称为后验分布。作为通过基于梯度的更新推导最佳确定性模型的类似物,贝叶斯机器学习的目标是学习后验分布的近似值。
给定一个数据集D,贝叶斯神经网络的训练目标是利用贝叶斯定理优化权重的后验分布p(w|D):
Figure BDA0003963223380000081
其中,p(w)是先验权重分布,p(D|w)=p(y|x,w)是对应于贝叶斯神经网络输出的似然,而p(D)是边缘似然,即证据。由于真正的后验分布p(w|D)是难以实现的,所以真正的后验不是直接计算的,而是通常使用推理方法进行近似。例如,用变分学习的方法来近似贝叶斯神经网络的权重的后验分布。
变分学习是寻找贝叶斯神经网络的权重的分布q(w|θ)的参数θ,使得这个分布与真实的后验分布之间的KL(Kullback-Leibler)散度最小。KL散度用来衡量分布q(w|θ)与真实的后验分布之间的接近的程度。KL散度又被称为相对熵或信息散度,是两个概率分布间差异的非对称性度量。通过数学转换,最小化q(w|θ)和p(w|D)之间的KL散度的目标可以表述为:
Figure BDA0003963223380000091
优化时可以用反向传播算法来优化前两项:KL(q(w|θ)|p(w))和Eq(w|θ)[logp(D|w)。其中,KL(q(w|θ)|p(w))称为复杂度成本项,Eq(w|θ)[logp(D|w)称为似然成本项。对于高斯分布的权重,θ相当于平均值μ和标准差σ,则后验(w|θ)可以表述为:
Figure BDA0003963223380000092
BNN通过先验p(w)和似然概率p(D|w)推导出后验权重分布。这一主要特征将网络的权重不确定性引入了学习过程。因此,学到的权重参数和计算在权重扰动下是鲁棒的。
图1D示出了将神经网络的权重矩阵映射到忆阻器阵列的过程。利用忆阻器阵列实现贝叶斯神经网络中层与层之间的权重矩阵,对每个权重使用N个忆阻器实现与该权重对应的分布,N为大于等于1的整数,例如,这里N个忆阻器作为一个忆阻器单元。针对该权重的对应的随机概率分布,计算得到N个电导值,将该N个电导值分布映射到该N个忆阻器中。如此,将贝叶斯神经网络中的权重矩阵转换为目标电导值映射到忆阻器阵列的交叉序列中。
如图1D所示,图中的左侧是一个三层贝叶斯神经网络,该贝叶斯神经网络包括逐一连接的3层神经元层。例如,输入层包括第1层神经元层,隐含层包括第2层神经元层,输出层包括第3层神经元层。例如,输入层将接收的输入数据传递到隐含层,隐含层对该输入数据进行计算转换发送至输出层,输出层输出贝叶斯神经网络的输出结构。
如图1D所示,输入层、隐含层以及输出层均包括多个神经元节点,各层的神经元节点的个数可以根据不同的应用情况设定。例如,输入层的神经元个数为2(包括N1和N2),中间隐藏层的神经元个数为3(包括N3、N4和N5),输出层的神经元个数为1(包括N6)。
如图1D所示,贝叶斯神经网络的相邻两层神经元层之间通过权重矩阵连接。例如,权重矩阵由如图1D右侧的忆阻器阵列实现。
图1D中的右侧的忆阻器阵列的结构例如如图1A所示,该忆阻器阵列可以包括阵列排布的多个忆阻器。如图1D所示的示例中,将权重按照某一规则映射到忆阻器阵列的电导,连接输入N1与输出N3之间的权重由3个忆阻器(G11、G12、G13)实现,权重矩阵中的其他权重可以相同地实现。更具体而言,源线SL1对应神经元N3,源线SL2对应神经元N4,源线SL5对应神经元N5,位线BL1、BL2和BL3对应神经元N1,输入层和隐藏层之间的一个权重(神经元N1和神经元N3之间的权重)按照分布被转换为三个目标电导值,并分布映射到忆阻器阵列的交叉序列中,这里目标电导值分别为G11、G12和G13,在忆阻器阵列中用虚线框框出。
在本公开的另一些实施例中,权重矩阵中的权重直接编程为忆阻器阵列的电导,即权重矩阵中的权重与忆阻器阵列中的忆阻器一一对应。每个权重使用一个忆阻器实现与该权重对应。
在本公开的另一些实施例中,也可以利用两个忆阻器的电导的差值来代表一个权重。例如,同一列且相邻行的两个忆阻器电导的差值代表一个权重。即,每个权重使用2个忆阻器实现与该权重对应。
图1D对贝叶斯神经网络的权重矩阵映射到忆阻器阵列的实施方式进行了描述,但其仅是示例性的,而不是对本公开的限制。
图2示出了本公开至少一个实施例提供的一种基于忆阻器阵列的神经网络的权重部署方法的示意性流程图。
如图2所示,该权重部署方法包括如下的步骤S10~S30。
步骤S10:获取神经网络中待部署到忆阻器阵列中的目标权重。
步骤S20:确定目标权重是第一类型权重还是第二类型权重,第一类型权重对神经网络的重要性高于第二类型权重对神经网络的重要性。
步骤S30:对于忆阻器阵列执行权重映射操作,若目标权重是第一类型权重,将目标权重映射到忆阻器阵列中与目标权重对应的忆阻器单元,或者,若目标权重是第二类型权重,则将忆阻器阵列中与目标权重对应的忆阻器单元的电导值写入为选择的目标值。
本公开上述实施例提出的权重方法将对神经网络的性能的影响较大的目标权重映射到忆阻器阵列中,与神经网络的性能影响较小的目标权重对应的忆阻器写入选择的目标值,从而减少写校验操作消耗的时间和能量,从而在保证神经网络的性能的基础上,提高神经网络的权重的部署效率。
对于步骤S10,例如神经网络除了可以是贝叶斯神经网络之外,还可以是卷积神经网络、递归神经网络、生成对抗神经网络等。在本公开中以贝叶斯神经网络为例说明本公开的实施例,但是这对本公开的实施例不具有限定作用,本公开提供的实施例适用于任何进行例如矩阵乘加运算(矩阵向量乘法)的神经网络。
例如,神经网络包括权重矩阵,权重矩阵中的权重需要部署到忆阻器阵列中,以利用忆阻器阵列进行快速矩阵乘加运算。例如,权重矩阵的权重与忆阻器阵列中的忆阻器单元一一对应,每个忆阻器单元包括N个忆阻器,N大于等于1。目标权重可以是权重矩阵中的任一个参数值。
在本公开的一些实施例中,待部署到忆阻器阵列的目标权重可以被视为从某种分布中产生的样本。例如,将忆阻器表示的权重视为BNN中遵循高斯分布N(μ,σ2)的不确定权重。平均值μ是将被转移到忆阻器阵列上的目标权重。
对于步骤S20,神经网络的性能对不同权重的敏感性是不一样的。在本公开的实施例中,将对神经网络的性能影响较大的权重称为关键权重,对神经网络的性能影响较小的权重称为非关键权重。例如,在本公开的一些实施例中,将即使将权重重置为选择的目标值(例如,0),对神经网络的性能的也没有影响或者几乎没有影响的权重称为非关键权重;将神经网络的权重中除非关键权重之外的权重称为关键权重。
关键权重对于神经网络的重要性高于非关键权重对于神经网络的重要性,例如,权重对于神经网络的影响(重要性)可以通过理论计算获取或者通过计算机模拟获取、验证等,例如可以将重要性大于某个选择的阈值的权重成为“关键权重”,反之则称为“非关键权重”。例如,第一类型权重为关键权重,第二类型权重为非关键权重。例如,重要性可以通过信噪比表示,若信噪比大于信噪比阈值,则为关键权重,反之则为非关键权重。
在本公开的一些实施例中,例如本领域技术人员预先对神经网络中的权重进行标注以区分第一类型权重和第二类型权重,从而根据标注确定待部署到忆阻器阵列中的目标权重是第一类型权重还是第二类型权重。图3示出了步骤S20的另一个实施例,请参考下文的描述。
对于步骤S30,对于忆阻器阵列执行权重映射操作例如包括上述写校验操作。例如,若目标权重是第一类型权重,则按照上述写校验操作将目标权重映射到忆阻器阵列中与该目标权重对应的忆阻器单元。例如,若目标权重是第二类型权重,可以直接将忆阻器阵列中与所述目标权重对应的忆阻器单元编程为低电导状态,即向忆阻器单元的电导值置为0。0为选择的目标值的示例。
在本公开的实施例中,不限定选择的目标值为“0”,选择的目标值还是可以是其他任何对神经网络的性能的没有影响的适当值。将选择的目标值设置为0不仅容易实现,减少写校验操作且能够降低忆阻器的电导值偏移的影响。
图3示出了本公开至少一个实施例提供的步骤S20的方法流程图。
如图3所示,步骤S20包括步骤S21~S23。
步骤S21:确定目标权重在选择的参考值处的概率密度是否大于概率密度阈值。
步骤S22:响应于目标权重在选择的参考值处的概率密度大于概率密度阈值,目标权重是第二类型权重。
步骤S23:响应于目标权重在选择的参考值处的概率密度小于或者等于概率密度阈值,目标权重是第一类型权重。
对于步骤S21,例如,目标权重服从某个分布,根据该分布计算该目标权重在选择的参考值处的概率密度。选择的参考值例如是本领域技术人员根据目标权重的取值范围或者经验选择的。选择的参考值是目标权重的取值范围中的最小值或者较小值。
例如,目标权重的取值范围为[0,1],则选择的参考值可以是0。又例如,目标权重的取值范围为[0,10],则选择的参考值可以包括0和1。
例如,选择的参考值为0,计算目标权重在0处的概率密度,并且确定目标权重在0处的概率密度是否大于阈值。
在本公开的一些实施例中,概率密度阈值可以根据实际的神经网络模型和数据集确定。例如,概率密度阈值可以是0.9。
对于步骤S22,例如目标权重在0处的概率密度为0.95,0.95大于概率密度阈值0.9,则该目标权重为第二类型权重。
对于步骤S23,例如目标权重在0处的概率密度为0.1,0.1小于概率密度阈值0.9,则该目标权重为第一类型权重。
在该实施例中,根据目标权重在选择的参考值处的概率密度确定目标权重是否是第一类型权重,能够准确地判断目标权重对神经网络性能的影响。
在本公开的一些实施例中,神经网络为贝叶斯神经网络。例如,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中。
例如,贝叶斯神经网络的结构包括全连接结构或卷积神经网络结构等。该贝叶斯神经网络的每个权重是随机变量。例如,在该贝叶斯神经网络经训练完成后,每一个权重都是一个分布,例如高斯分布或者拉普拉斯分布。
例如,可以对贝叶斯神经网络进行离线(offline)训练得到权重矩阵,对贝叶斯神经网络进行训练的方法可以参考常规方法,例如可以采用中央处理单元(CPU)、图像处理单元(GPU)、神经网络处理单元(NPU)、神经网络加速器等进行训练,在此不再赘述。
例如,贝叶斯神经网络中的权重服从概率分布,目标权重为概率分布的均值。例如,贝叶斯神经网络中的权重服从高斯分布或者正态分布,目标权重为高斯分布的均值。
需要理解的是,虽然在本公开中以贝叶斯神经网络中的权重服从高斯分布为例,但是这对本公开的实施例不具有限定作用。例如,概率分布也可以是韦布尔(Weibull)分布等。
图4示出了本公开至少一个实施例提供的另一种步骤S20的方法流程图。
如图4所示,步骤S20可以包括步骤S201~S204。在该实施例中,贝叶斯神经网络中的权重服从概率分布。
步骤S201:根据概率分布的均值和标准差,确定概率分布在选择的参考值处的信噪比。
步骤S202:确定信噪比是否大于信噪比阈值。
步骤S203:响应于信噪比大于信噪比阈值,目标权重为第一类型权重。
步骤S204:响应于信噪比小于或者等于信噪比阈值,目标权重为第二类型权重。
例如,概率分布为高斯分布,选择的参考值为0,则目标权重在0处的概率密度等效为在0处的信噪比。例如,若信噪比SNR=μ/σ>信噪比阈值SNRth,即,目标权重的信噪比SNR比信噪比阈值SNRth大,那么就认为目标权重在0处的概率密度就足够低,该目标权重对神经网络的意义就更大,就是说该权重是第一类型权重。该方法直接利用信噪比表示概率密度,简化了运算,进一步提高了权重部署效率。
在本公开的一些实施例中,信噪比阈值SNRth可以根据实际的神经网络模型和数据集确定。例如,信噪比阈值可以是0.6。
在本公开的另一些实施例中,例如将神经网络中的所有权重按照信噪比降序排序,排在预设排位之前的权重为第一类型权重。预设排位可以根据神经网络模型来确定,例如神经网络包括100个权重,预设排位可以是90。
如图2所示,在本公开的另一些实施例中,权重部署方法除了包括步骤S10~S30之外,还可以包括步骤S40。步骤S40例如在步骤S10之前执行。
步骤S40:对忆阻器阵列执行初始化操作,以对所述忆阻器阵列中的忆阻器的电导值初始化。例如,通过初始化操作将忆阻器阵列中的忆阻器的电导值初始化为选择的目标值。
该实施例在对忆阻器阵列执行权重映射操作之前,先对忆阻器阵列执行初始操作,使得忆阻器阵列中的电导值初始化为选择的目标值,从而在对忆阻器阵列执行权重映射操作时,能够直接跳过第二类型权重,进一步提高了权重部署效率。
例如,直接对忆阻器阵列写入低电导值以实现对忆阻器阵列的初始化操作,将忆阻器阵列中的忆阻器的电导值初始化为0。
在本公开的一些实施例中,步骤S30包括若目标权重为第二类型权重,则直接获取多个权重中的下一个权重,并且将目标权重更新为下一个权重。在该实施例中,第二类型权重在初始化操作中已经被初始化为选择的目标值,因此若目标权重为第二类型权重,则在对忆阻器阵列执行权重映射操作的过程中,不需要再对该目标权重进行例如写校验操作,直接跳过该目标权重,对神经网络中的下一个待部署的目标权重执行映射。即,在该实施例中,不需要再对第二类型权重进行例如写校验操作,直接跳过该第二类型权重,只针对第一类型权重执行例如写校验操作,从而节省权重部署的时间。
若目标权重为第一类型权重,则将目标权重映射到忆阻器阵列中与目标权重对应的忆阻器单元之后,再获取多个权重中的下一个权重,并且将目标权重更新为下一个权重。例如,通过上述的写校验操作将目标权重映射到忆阻器阵列中与目标权重对应的忆阻器单元。
图5示出了本公开至少一个实施例提供的另一种步骤S30的方法流程图。
如图5所示,步骤S30可以包括步骤S31~S33。
步骤S31:若目标权重是第一类型权重,获取与目标权重对应的忆阻器单元包括的第一忆阻器和第二忆阻器形成的当前权重值。
步骤S32:判断当前权重值与目标权重之间的偏差是否在误差范围内。
步骤S33:响应于当前权重值与目标权重之间的偏差不在误差范围内,对第一忆阻器和第二忆阻器的电导值进行编程,使得偏差减少到误差范围内。
在该实施例中,每个忆阻器单元包括成对提供的第一忆阻器和第二忆阻器,第一忆阻器和第二忆阻器的电导值之差表示目标权重。通过两个忆阻器的电导值之差表示目标权重能够构造出负值的目标权重。
下面通过图6A、图6B来具体说明能够实现负值的忆阻器阵列的示例。
图6A为本公开至少一实施例提供的忆阻器阵列的示意性结构图。
如图6A所示,忆阻器601和忆阻器602可以组成一个忆阻器对,忆阻器601的电导值表示为G11,忆阻器602的电导值表示为G12。由于忆阻器602和一个反相器相连,因此当忆阻器601接收正极性的输入电压信号时,该反相器可以翻转输入的电压信号的极性,从而使得忆阻器602接收负极性的输入电压信号。例如,忆阻器601接收的输入电压信号用v(t)表示,忆阻器602接收的输入电压信号用-v(t)表示。忆阻器601和忆阻器602连接到两条不同的SL,输入电压信号经过忆阻器生成输出电流。在SL末端将经过忆阻器601的输出电流和经过忆阻器602的输出电流进行叠加。因此,忆阻器601和忆阻器602乘累加计算的结果为v(t)G11+(-v(t))G12,也即v(t)(G11-G12)。由此,忆阻器601和忆阻器602组成的忆阻器对可以对应一个权重,并且,该权重值为G11-G12,通过配置G11-G12的数值关系可以实现正、零、负值元素。
图6B为本公开至少一实施例提供的另一种忆阻器阵列的示意图。
如图6B所示,例如,忆阻器601和忆阻器602可以组成一个忆阻器对,忆阻器601的电导值表示为G11,忆阻器602的电导值表示为G12。与图6A不同的是,忆阻器602没有和反相器相连,因此当忆阻器601接收正极性的输入电压信号时,忆阻器602也接收正极性的输入电压信号。例如,忆阻器601接收的输入电压信号用v(t)表示,忆阻器602接收的输入电压信号也用v(t)表示。忆阻器601和忆阻器602连接到两条不同的SL,在SL末端将经过忆阻器601的输出电流和经过忆阻器602的输出电流相减。因此,忆阻器601和忆阻器602乘累加计算的结果为v(t)G11-v(t)G12,也即v0(t)(G11-G12)。因此,忆阻器601和忆阻器602组成的忆阻器对可以一个权重,并且,该权重值为G11-G12,通过配置G11-G12的数值关系可以实现正、零、负值元素。
对于步骤S31,例如,与目标权重对应的忆阻器单元包括的第一忆阻器和第二忆阻器分别为忆阻器601和忆阻器602。例如,读取忆阻器601和忆阻器602的电导值分别为G11和G12,则当前权重值为G11-G12
对于步骤S32,误差范围可以是本领域技术人员提前设置的。例如,判断判断G11-G12的绝对值是否小于或者等于预设阈值EM,EM>0。
对于步骤S33,例如若G11-G12的绝对值大于预设阈值EM,对第一忆阻器601和第二忆阻器602的电导值进行编程,使得偏差减少到误差范围内。例如,增加忆阻器602的电导值,或者减小忆阻器601的电导值。
如图5所示,在本公开的另一些实施例中,步骤S30除了包括步骤S31~S33之外,还可以包括步骤S34。
步骤S34:响应于当前权重值与目标权重之间的偏差在误差范围内,则跳过目标权重,获取多个权重中的下一个权重,并且将目标权重更新为下一个权重。
若当前权重值与目标权重之间的偏差在误差范围内,则表明目标权重已经写入忆阻器单元,直接跳过目标权重,获取多个权重中的下一个权重,并且将目标权重更新为下一个权重,以将下一个权重映射到忆阻器阵列中。
图7示出了本公开至少一个实施例提供的另一种权重部署方法的流程图。
如图7所示,该权重部署方法包括步骤S701~S706。
步骤S701:获取神经网络中的下一个待部署权重作为目标权重W’。
步骤S702:判断目标权重W’是否是第一类型权重。若目标权重W’是第一类型权重,则执行步骤S703;若目标权重不是第一类型权重,则执行步骤S701,即跳过当前的目标权重W’,直接获取下一目标权重。
步骤S703:获取忆阻器单元的电导值。忆阻器单元例如包括第一忆阻器和第二忆阻器。
步骤S704:计算忆阻器单元的当前权重值W。例如,计算第一忆阻器的电导值和第二忆阻器的电导值之间的差值作为当前权重值。
步骤S705:|W-W′|是否小于预设阈值EM。即,判断当前权重值W和目标权重W’之间的差值的绝对值是否小于预设阈值EM。若|W-W′|<EM,则返回执行步骤S701,以对下一个待部署权重进行映射。若|W-W′|>=EM,则返回执行步骤S706。
步骤S706:继续对当前的目标权重对应的忆阻器单元进行编程操作,在执行编程操作之后,再返回执行步骤S703。
图8示出了本公开至少一个实施例提供的另一种权重部署方法的示意图。
如图8所示,该权重部署方法应用于将贝叶斯神经网络802的权重矩阵映射到忆阻器阵列801中。
如图8所示,该权重部署方法包括步骤S81~S83。
步骤S81:忆阻器阵列提供忆阻器权重的先验知识作为贝叶斯神经网络的先验。贝叶斯神经网络基于忆阻器权重的先验知识进行离线训练得到贝叶斯神经网络802的权重后验分布。
例如,获取忆阻器阵列基于忆阻器的内在非理想特性的第一先验知识和第二先验知识;基于第一先验知识,计算贝叶斯神经网络的总损失函数;对总损失函数进行反向传播,以对贝叶斯神经网络中的当前参数进行更新得到对象参数;以及基于第二先验知识对对象参数进行约束,以得到贝叶斯神经网络的权重的离线训练的训练结果。
例如,第一先验知识包括权重波动标准差,基于第一先验知识,计算贝叶斯神经网络的总损失函数,包括:基于权重波动标准差,利用变分学习计算总损失函数。变分学习包括复杂度成本项,权重波动标准差作为复杂度成本项中的先验标准差。
如上,利用变分学习得到的总损失函数包括KL损失项和似然损失项。例如,总损失函数的表达为下式:
F(D,θ)=KL[q(w|θ)||P(w)]-Eq(w|θ)[log P(D|w)],
其中,KL[q(w|θ)||P(w)]为KL损失项,Eq(w|θ)[log P(D|w)]为似然损失项。
在该示例中,权重波动标准差σproir作为先验标准差P(w),将权重波动标准差σproir带入上述损失函数的表达中,计算得到总损失函数。
例如,在利用梯度下降法对神经网络的权重等参数进行训练时,需要利用反向传播去计算损失函数对权重的偏导数,从而得到用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度。在几何上,沿梯度的方向是函数增加最快的地方,沿梯度的反方向是函数减小最快的地方,更容易找到最小值。
例如,对于贝叶斯神经网络的每个参数μii,每个权重wi服从高斯分布
Figure BDA0003963223380000181
用步骤S102计算得到的总损失函数进行反向传播,计算出每个当前参数μii的更新量Δ,根据更新量Δ来更新每一个参数。例如,参数μi更新为μi+Δ,参数σi更新为σi+Δ。对象参数即为对当前参数μii进行更新后的参数μi+Δ和σi+Δ。
例如,对象参数包括高斯分布的均值,第二先验知识包括忆阻器阵列中的忆阻器单元的权重窗口范围。
基于第二先验知识对对象参数进行约束可以包括将对象参数中高斯分布的均值约束到权重窗口范围内。权重窗口范围为忆阻器单元的电导值的范围。
例如,权重窗口范围为[-wmax,wmax],将对象参数中的μi+Δ约束到[-wmax,wmax]内。例如,μi+Δ<-wmax,则将μi+Δ约束为-wmax
在该实施例中,由于忆阻器的电导率窗口有限,权重将被截断在一个对称的范围内即上述权重窗口范围[-wmax,wmax]内,确保贝叶斯神经网络与忆阻器阵列更加兼容,避免高斯分布的均值在权重窗口范围之外,难以映射到忆阻器单元中。
对象参数包括高斯分布的标准差,第二先验知识包括读波动标准差,读波动标准差为读取忆阻器阵列中的忆阻器的电导值带来的误差。基于第二先验知识对对象参数进行约束可以包括对对象参数中高斯分布的标准差进行约束,使得高斯分布的标准差大于或者等于读波动标准差。
步骤S82:选择和保留经过离线训练的贝叶斯神经网络802中的关键权重。例如,利用图3或者图4所描述的方法提取贝叶斯神经网络802中的关键权重。
步骤S83:对忆阻器阵列进行初始化,之后将关键权重映射到忆阻器阵列中。类似于图2中步骤S30和S40,不再赘述。
图9示出了本公开至少一个实施例提供的一种基于忆阻器阵列的神经网络的权重部署装置900的示意框图。该权重部署装置900可以用于执行图2所示的权重部署方法。
如图9所示,权重部署装置900包括获取单元901、确定单元902以及映射单元903。
获取单元901配置为获取神经网络中待部署到忆阻器阵列中的目标权重。
确定单元902配置为确定目标权重是第一类型权重还是第二类型权重,第一类型权重对神经网络的重要性高于第二类型权重对神经网络的重要性。
映射单元903配置为对于忆阻器阵列执行权重映射操作,若目标权重是第一类型权重,将目标权重映射到忆阻器阵列中与目标权重对应的忆阻器单元,或者若待部署权重是第二类型权重,则将忆阻器阵列中与目标权重对应的忆阻器单元的电导值写入为选择的目标值。
上述权重部署装置的技术效果与图2所示的权重部署方法的技术效果相同,在此不再赘述。
例如,获取单元901、确定单元902以及映射单元903可以为硬件、软件、固件以及它们的任意可行的组合。例如,获取单元901、确定单元902以及映射单元903可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,权重部署装置900的各个单元与前述的权重部署方法的各个步骤对应,关于权重部署装置900的具体功能可以参考关于权重部署方法的相关描述,此处不再赘述。图9所示的权重部署装置900的组件和结构只是示例性的,而非限制性的,根据需要,该权重部署装置900还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器存储有一个或多个计算机程序指令。一个或多个计算机程序指令由所述处理器执行时用于实现上述的权重部署方法。该电子设备能够提高权重部署的效率。
图10为本公开一些实施例提供的一种电子设备的示意框图。如图10所示,该电子设备1000包括处理器1010和存储器1020。存储器1020用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器1010用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器1010运行时可以执行上文所述的权重部署方法中的一个或多个步骤。存储器1020和处理器1010可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器1010可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X106或ARM架构等。处理器1010可以为通用处理器或专用处理器,可以控制电子设备1000中的其它组件以执行期望的功能。
例如,存储器1020可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器1010可以运行一个或多个计算机程序模块,以实现电子设备1000的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备1000的具体功能和技术效果可以参考上文中关于权重部署方法的描述,此处不再赘述。
图11为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备1100例如适于用来实施本公开实施例提供的权重部署方法。例如,电子设备1100可以是终端设备等。需要注意的是,图11示出的电子设备1100仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100可以包括处理装置(例如中央处理器、图形处理器等)1110,其可以根据存储在只读存储器(ROM)1120中的程序或者从存储装置1180加载到随机访问存储器(RAM)1130中的程序而执行各种适当的动作和处理。在RAM 1130中,还存储有电子设备1100操作所需的各种程序和数据。处理装置1110、ROM 1120以及RAM1130通过总线1140彼此相连。输入/输出(I/O)接口1150也连接至总线1140。
通常,以下装置可以连接至I/O接口1150:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1160;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1170;包括例如磁带、硬盘等的存储装置1180;以及通信装置1190。通信装置1190可以允许电子设备1100与其他电子设备进行无线或有线通信以交换数据。虽然图11示出了具有各种装置的电子设备1100,但应理解的是,并不要求实施或具备所有示出的装置,电子设备1100可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述权重部署方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述权重部署方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1190从网络上被下载和安装,或者从存储装置1180安装,或者从ROM 1120安装。在该计算机程序被处理装置1110执行时,可以实现本公开实施例提供的权重部署方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的权重部署方法。利用该计算机可读存储介质,可以提高权重部署的效率。
图12为本公开一些实施例提供的一种存储介质的示意图。如图12所示,存储介质1200用于存储非暂时性计算机可读指令1210。例如,当非暂时性计算机可读指令1210由计算机执行时可以执行根据上文所述的权重部署方法中的一个或多个步骤。
例如,该存储介质1200可以应用于上述电子设备1000中。例如,存储介质1200可以为图10所示的电子设备1000中的存储器1020。例如,关于存储介质1200的相关说明可以参考图10所示的电子设备1000中的存储器1020的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种基于忆阻器阵列的神经网络的权重部署方法,包括:
获取所述神经网络中待部署到所述忆阻器阵列中的目标权重;
确定所述目标权重是第一类型权重还是第二类型权重,其中,所述第一类型权重对所述神经网络的重要性高于所述第二类型权重对所述神经网络的重要性;
对于所述忆阻器阵列执行权重映射操作,其中,若所述目标权重是所述第一类型权重,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,或者,若所述目标权重是所述第二类型权重,则将所述忆阻器阵列中与所述目标权重对应的忆阻器单元的电导值写入为选择的目标值。
2.根据权利要求1所述的权重部署方法,其中,确定所述目标权重是第一类型权重还是第二类型权重,包括:
确定所述目标权重在选择的参考值处的概率密度是否大于概率密度阈值;
响应于所述目标权重在所述选择的参考值处的概率密度大于所述概率密度阈值,所述目标权重是所述第二类型权重;或者
响应于所述目标权重在所述选择的参考值处的概率密度小于或者等于所述概率密度阈值,所述目标权重是所述第一类型权重。
3.根据权利要求1所述的权重部署方法,其中,所述神经网络为贝叶斯神经网络,所述贝叶斯神经网络中的权重服从概率分布,所述目标权重为所述概率分布的均值,
确定所述目标权重是第一类型权重还是第二类型权重,包括:
根据所述概率分布的均值和标准差,确定所述概率分布在选择的参考值处的信噪比;以及
确定所述信噪比是否大于所述信噪比阈值;
响应于所述信噪比大于所述信噪比阈值,所述目标权重为第一类型权重;或者
响应于所述信噪比小于或者等于所述信噪比阈值,所述目标权重为第二类型权重。
4.根据权利要求3所述的权重部署方法,其中,所述概率分布为高斯分布。
5.根据权利要求1所述的权重部署方法,还包括:
对忆阻器阵列执行初始化操作,以对所述忆阻器阵列中的忆阻器的电导值初始化。
6.根据权利要求5所述的权重部署方法,其中,所述神经网络包括多个权重,所述多个权重包括所述目标权重,
对于所述忆阻器阵列执行所述权重映射操作,包括:
若所述目标权重为所述第二类型权重,则直接获取所述多个权重中的下一个权重,并且将所述目标权重更新为所述下一个权重;
若所述目标权重为所述第一类型权重,则将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元之后,再获取所述多个权重中的下一个权重,并且将所述目标权重更新为所述下一个权重。
7.根据权利要求6所述的权重部署方法,其中,所述忆阻器阵列包括多行多列忆阻器单元,每个忆阻器单元包括成对提供的第一忆阻器和第二忆阻器,所述第一忆阻器和第二忆阻器的电导值之差表示所述目标权重,
若所述目标权重是所述第一类型权重,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,包括:
若所述目标权重是所述第一类型权重,获取与所述目标权重对应的忆阻器单元包括的第一忆阻器和第二忆阻器形成的当前权重值;
判断所述当前权重值与所述目标权重之间的偏差是否在误差范围内;
响应于所述当前权重值与所述目标权重之间的偏差不在所述误差范围内,对第一忆阻器和所述第二忆阻器的电导值进行编程,使得所述偏差减少到所述误差范围内。
8.根据权利要求7所述的权重部署方法,其中,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,还包括:
响应于所述当前权重值与所述目标权重之间的偏差在所述误差范围内,则跳过所述目标权重,获取所述多个权重中的下一个权重,并且将所述目标权重更新为所述下一个权重。
9.根据权利要求1-8任一项所述的权重部署方法,其中,所述选择的目标值为0。
10.一种基于忆阻器阵列的神经网络的权重部署装置,包括:
获取单元,配置为获取所述神经网络中待部署到所述忆阻器阵列中的目标权重;
确定单元,配置为确定所述目标权重是第一类型权重还是第二类型权重,其中,所述第一类型权重对所述神经网络的重要性高于所述第二类型权重对所述神经网络的重要性;
映射单元,配置为对于所述忆阻器阵列执行权重映射操作,其中,若所述目标权重是所述第一类型权重,将所述目标权重映射到所述忆阻器阵列中与所述目标权重对应的忆阻器单元,或者若所述目标权重是所述第二类型权重,则将所述忆阻器阵列中与所述目标权重对应的忆阻器单元的电导值写入为选择的目标值。
11.一种电子设备,包括:
处理器;
存储器,存储有一个或多个计算机程序指令;
其中,所述一个或多个计算机程序指令由所述处理器执行时用于实现权利要求1-9任一项所述的权重部署方法。
12.一种计算机可读存储介质,非暂时性存储有计算机可读指令,其中,当所述计算机可读指令由处理器执行时用于实现权利要求1-9任一项所述的权重部署方法。
CN202211490851.XA 2022-11-25 2022-11-25 权重部署方法及装置、电子设备和存储介质 Pending CN115796250A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211490851.XA CN115796250A (zh) 2022-11-25 2022-11-25 权重部署方法及装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211490851.XA CN115796250A (zh) 2022-11-25 2022-11-25 权重部署方法及装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN115796250A true CN115796250A (zh) 2023-03-14

Family

ID=85441467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211490851.XA Pending CN115796250A (zh) 2022-11-25 2022-11-25 权重部署方法及装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115796250A (zh)

Similar Documents

Publication Publication Date Title
CN110796241B (zh) 基于忆阻器的神经网络的训练方法及其训练装置
Marinella et al. Multiscale co-design analysis of energy, latency, area, and accuracy of a ReRAM analog neural training accelerator
US9934463B2 (en) Neuromorphic computational system(s) using resistive synaptic devices
US20190122105A1 (en) Training of artificial neural networks
KR102672586B1 (ko) 인공신경망의 훈련 방법 및 장치
EP3627401B1 (en) Method and device for training neural network
US10776684B1 (en) Mixed core processor unit
US11386319B2 (en) Training of artificial neural networks
CN112152619A (zh) 模数转换器和包括该模数转换器的神经形态计算设备
US11610101B2 (en) Formation failure resilient neuromorphic device
Kim et al. VCAM: Variation compensation through activation matching for analog binarized neural networks
CN115796252A (zh) 权重写入方法及装置、电子设备和存储介质
US11556770B2 (en) Auto weight scaling for RPUs
US20230005529A1 (en) Neuromorphic device and electronic device including the same
CN115796250A (zh) 权重部署方法及装置、电子设备和存储介质
de Lima et al. Quantization-aware in-situ training for reliable and accurate edge ai
García-Redondo et al. Training DNN IoT applications for deployment on analog NVM crossbars
CN115699028A (zh) 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射
CN116128035A (zh) 训练方法及装置、电子设备和计算机存储介质
US20240037394A1 (en) System and method for neural network multiple task adaptation
US20240143541A1 (en) Compute in-memory architecture for continuous on-chip learning
Fahimi Energy-Efficient Neuromorphic Computing with CMOS-Integrated Memristive Crossbars
Jain In-Memory Computing with Cmos and Emerging Memory Technologies
Chakraborty Toward Energy-Efficient Machine Learning: Algorithms and Analog Compute-In-memory Hardware
CN115344233A (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