忆阻神经网络的训练方法、装置、设备及存储介质与流程

文档序号:21698138发布日期:2020-07-31 22:50阅读:205来源:国知局
本发明涉及硬件神经网络
技术领域
,具体而言,涉及一种忆阻神经网络的训练方法、装置、设备及存储介质。
背景技术
:随着对于忆阻器技术的研究,基于忆阻器的神经网络的研究以及应用也越来越多。基于忆阻器的神经网络也可称为忆阻神经网络,其可通过忆阻交叉阵列模拟矢量矩阵乘法计算,从而提高计算效率,但同时,也增加了功耗和实现复杂度。同时,忆阻交叉阵列的良率仍是忆阻神经网络的主要问题。如何在考虑忆阻交叉阵列的良率的情况下实现忆阻神经网络的训练,对提高忆阻神经网络计算精度显的格外重要。技术实现要素:本发明的目的在于,针对上述现有技术中的不足,提供一种忆阻神经网络的训练方法、装置、设备及存储介质,以在考虑忆阻交叉阵列的良率的情况下,实现忆阻神经网络的训练,提高忆阻神经网络的计算精度。为实现上述目的,本发明实施例采用的技术方案如下:第一方面,本发明实施例提供了一种忆阻神经网络的训练方法,所述方法包括:对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定所述忆阻交叉阵列中的已损坏忆阻单元;根据所述已损坏忆阻单元在所述忆阻交叉阵列中的位置,确定所述已损坏忆阻单元的目标阻态模式;根据所述目标阻态模式,采用预设的权值网络算法进行训练,得到所述忆阻交叉阵列的权值集合,其中,所述权值集合中每个权值参数对应所述忆阻交叉阵列中的一个忆阻单元,所述权值集合中所述已损坏忆阻单元对应的权值参数为:所述目标阻态模式对应的权值参数。可选的,所述方法还包括:根据预设的权值参数阈值,对所述每个权值参数的值进行修正,得到修正后的权值集合,所述修正后的权值集合中每个权值参数的值为预设的量化权值。可选的,所述根据预设的权值参数阈值,对所述权值集合中每个权值参数的值进行修正,得到修正后的权值集合之前,所述方法还包括:根据所述权值集合的大小,以及所述权值集合中各权值参数的值,确定所述权值参数阈值。可选的,所述根据预设的权值参数阈值,对所述权值集合中每个权值参数的值进行修正,得到修正后的权值集合,包括:根据所述权值集合中每个权值参数的值与所述权值参数阈值进行比较;根据比较结果,对所述每个权值参数进行修正,使得修正后的所述每个权值参数的值为所述比较结果对应的量化权值。可选的,若所述忆阻单元包括两个忆阻器,所述预设的权值网络算法为三元权值网络算法,则所述根据比较结果,对所述每个权值参数进行修正,使得修正后的所述每个权值参数的值为所述比较结果对应的量化权值,包括:若所述每个权值参数的值小于负的所述权值参数阈值,则将所述每个权值参数的值修正为第一量化权值;或者,若所述每个权值参数的绝对值小于或等于所述权值参数阈值,则将所述每个权值参数的值修正为第二量化权值;或者,若所述每个权值参数的值大于所述权值参数阈值,则将所述每个权值参数的值修正为第三量化权值。可选的,若所述忆阻单元包括两个忆阻器,则所述目标阻态模式为第一阻态模式、第二阻态模式,或者,第三阻态模式;其中,所述第一阻态模式用于指示所述两个忆阻器中第一列忆阻器的阻态为固定高阻态,第二列忆阻器的阻态为可编程状态,或者,所述第一列忆阻器的阻态为可编程状态,所述第二列忆阻器的阻态为固定低阻态;所述第二阻态模式用于指示所述两个忆阻器中两列忆阻器的阻态均为固定高阻态或固定低阻态;所述第三阻态模式用于指示所述第一列忆阻器的阻态为固定低阻态,所述第二列忆阻器的阻态为可编程状态,或者,所述第一列忆阻器的阻态为可编程状态,所述第二列忆阻器的阻态为固定高阻态。可选的,所述对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定所述忆阻交叉阵列中的已损坏忆阻单元,包括:对所述忆阻交叉阵列中每个忆阻单元进行读写操作,以确定所述忆阻单元的阻态是否变化;若所述忆阻交叉阵列中存在阻态不变化的忆阻单元,则确定所述阻态不变化的忆阻单元为所述已损坏忆阻单元。第二方面,本申请实施例还提供一种忆阻神经网络的训练装置,所述方法包括:读写操作,用于对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定所述忆阻交叉阵列中的已损坏忆阻单元;训练模块,用于根据所述已损坏忆阻单元在所述忆阻交叉阵列中的位置,确定所述已损坏忆阻单元的目标阻态模式;并根据所述目标阻态模式,采用预设的权值网络算法进行训练,得到所述忆阻神经网络中忆阻交叉阵列的权值集合;其中,所述权值集合中每个权值参数对应所述忆阻交叉阵列中的一个忆阻单元,所述权值集合中所述已损坏忆阻单元对应的权值参数为:所述目标阻态模式对应的权值参数。第三方面,本申请实施例还提供一种计算机设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所提供的任一忆阻神经网络的训练方法。第四方面,本申请实施例还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面所提供的任一忆阻神经网络的训练方法。本申请的有益效果是:本申请所提供的忆阻神经网络的训练方法、装置、设备及存储介质中,可对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定该忆阻交叉阵列中的已损坏忆阻单元,并根据该已损坏忆阻单元在该忆阻交叉阵列中的位置,确定该已损坏忆阻单元的目标阻态模式,继而根据该目标阻态模式,采用预设的权值网络算法进行训练,得到该忆阻交叉阵列的权值集合,其中,该权值集合中每个权值参数对应该忆阻交叉阵列中的一个忆阻单元,该权值集合中该已损坏忆阻单元对应的权值参数为:该目标阻态模式对应的权值参数。在该忆阻神经网络的训练方法中,可基于确定的该已损坏忆阻单元的位置,确定该已损坏忆阻单元的目标阻态模式,继而根据该目标阻态模式进行神经网络的训练,即充分考虑了忆阻神进网络中忆阻交叉阵列的忆阻单元的良率情况,使得训练得到的忆阻交叉阵列的权值集合,与忆阻交叉阵列更匹配,也更准确,有效保证基于该权值集合对忆阻交叉阵列中忆阻单元的阻态控制更准确,从而保证忆阻神经网络的计算处理精度。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的一种忆阻神经网络的训练方法的流程示意图;图2为本申请实施例提供的另一种忆阻神经网络的训练方法的流程示意图;图3为本申请实施例提供的又一种忆阻神经网络的训练方法的流程示意图;图4为本申请实施例提供的一种忆阻交叉阵列与权值集合的关系图;图5为本申请实施例提供的再一种忆阻神经网络的训练方法的流程示意图;图6为本申请实施例提供的训练方法得到的忆阻神经网络与其他训练方法得到的忆阻神经网络的识别准确度的对比图;图7为本申请实施例提供的一种忆阻神经网络的训练装置的示意图;图8为本申请实施例提供的一种计算机设备的示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。本申请下述各实施例所提供的忆阻神经网络的训练方法、装置等,可用于对忆阻神经网络进行训练,以获取该忆阻神经网络中忆阻交叉阵列的权值集合,继而在该忆阻神经网络的应用过程中,采用训练过程中所得到的权值矩阵,对该忆阻神经网络中的忆阻交叉阵列中各忆阻单元的阻态进行驱动控制,以实现对应的权值,继而使得该忆阻神经网络实现对应的数据处理等运算。需要指出的是,忆阻神经网络,又称电子神经网络或硬件神经网络,其可包括至少一个忆阻交叉阵列,每个忆阻交叉阵列可为m*n个忆阻单元构成的交叉阵列。其中,每个忆阻单元可由k个忆阻器构成,k为大于或等于2的整数。因此,该每个忆阻交叉阵列可包括:m个行线,nk个列线,每个行线上连接nk个忆阻器的一端,nk个忆阻器的另一端分别连接nk个列线。在该忆阻神经网络的应用中,即采用该忆阻神经网络进行信息处理的过程中,可将待处理的数据转换为模拟电压,通过每个忆阻交叉阵列的行线(字线)输入,该每个忆阻交叉阵列的列线(位线)输出的电流即为该每个忆阻交叉阵列处理后的数据对应的模拟电流。为采用该忆阻神经网络进行信息处理,可预先对该忆阻神经网络进行训练,以获取该忆阻神经网络中每个忆阻交叉阵列所对应的权值集合,又称权值矩阵。该权值集合中的每个权值参数可对应忆阻交叉阵列中的一个忆阻单元。在获取该每个忆阻交叉阵列对应的权值集合后,可通过驱动器或者其它控制设备,根据每个忆阻交叉阵列的权值集合又称权值矩阵,对每个忆阻交叉阵列中忆阻单元的阻态进行控制,实现对忆阻神经网络的参数配置。忆阻交叉阵列对应的权值集合,直接影响该忆阻交叉阵列的计算准确度以及其所在忆阻神经网络的信息处理精度。因此,对于忆阻神经网络的处理精度,该忆阻神经网络的训练至关重要。然而,在目前的技术中,对忆阻神经网络的训练过程中,通常是以忆阻交叉阵列的理想状态进行训练,这使得,采用训练得到的权值集合对不够准确,基于该不够准确的权值集合对忆阻交叉阵列中忆阻单元的阻态控制不够准确,难以保证忆阻神经网络的计算处理精度。为提高忆阻神经网络的处理计算精度,本申请实施例提供了下述多种可能的训练方法,以在网络训练的过程中,充分考虑了忆阻神进网络中忆阻交叉阵列的良率情况,使得训练得到的忆阻交叉阵列的权值集合,与忆阻交叉阵列的状态更匹配,也更准确,有效保证基于该权值集合对忆阻交叉阵列中忆阻单元的阻态控制更准确,从而保证忆阻神经网络的计算处理精度。如下通过多个实例对本申请所提供的忆阻神经网络的训练方法进行示例说明。图1为本申请施例提供的一种忆阻神经网络的训练方法的流程示意图,该忆阻神经网络的训练方法可由训练设备通过软件和/或硬件的方式实现。该模型训练设备可由安装有神经网络训练程序或应用的计算机设备实现,其例如可以为笔记本电脑、台式电脑或者其它专用的模型训练设备。图1所示,该方法可包括:s101、对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定该忆阻交叉阵列中的已损坏忆阻单元。在可能的实现方式中,可根据预设的读写顺序,对该忆阻交叉阵列的各忆阻单元进行读写操作。例如可先根据该预设的写顺序,对该忆阻交叉阵列的各忆阻单元进行写操作,并根据预设的读顺序,对该忆阻交叉阵列的各忆阻单元进行读操作,以确定该各忆阻单元中是否写入数据,从而根据该读写操作的结果,确定该忆阻交叉阵列中的已损坏忆阻单元。一旦该已损坏忆阻单元确定了,其在该忆阻交叉阵列中的位置便确定了。该已损坏忆阻单元在该忆阻交叉阵列中的位置,例如可包括:该已损坏忆阻单元在该忆阻单元阵列中的行列信息,即其所在行线的信息以及列线的信息。s102、根据该已损坏忆阻单元在该忆阻交叉阵列中的位置,确定该已损坏忆阻单元的目标阻态模式。通过上述s101的读写操作,所确定的该已损坏忆阻单元,由于每个忆阻单元内部还包括:至少两个忆阻器,忆阻单元的损坏可以是其中的部分忆阻器损坏,也可以是全部忆阻器均损坏引起。为确定忆阻单元的损坏的忆阻器的阻态,可采用该s102确定目标阻态模式,该目标阻态模式可用于指示该已损坏忆阻单元中所损坏的忆阻器的阻态。以具有两个忆阻器的忆阻单元为例,该目标阻态模式例如可以为三种阻态模式中的任一阻态模式。该方法中,可基于上述所确定的该已损坏忆阻单元在该忆阻交叉阵列中的位置,以及多种阻态模式确定该已损坏忆阻单元的目标阻态模式。该目标阻态模式可以为忆阻单元的个数对应的多种阻态模式中的任一阻态模式。每组阻态模式中可包括:至少一个忆阻器的阻态为冻结状态如固定高阻态或固定低阻态。因此,确定了该已损坏忆阻单元的目标阻态模式,即准确确定了该已损坏忆阻单元中实际损坏的忆阻器的阻态。s103、根据该目标阻态模式,采用预设的权值网络算法进行训练,得到该忆阻交叉阵列的权值集合。其中,该权值集合中每个权值参数对应该忆阻交叉阵列中的一个忆阻单元,该忆阻单元包括:至少两个忆阻器。该权值集合中该已损坏忆阻单元对应的权值参数为:该目标阻态模式对应的权值参数。在确定该已损坏忆阻单元的目标阻态模式下,可基于该目标阻态模式,采用预设的阻态模式与权值参数的对应关系,确定该目标阻态模式对应的权值参数为该已损坏忆阻单元对应的权值参数。那么在网络训练过程中,便可将该已损坏忆阻单元对应的权值参数固定为该目标阻态模式对应的权值参数,从而进行网络训练,得到其它忆阻单元在该已损坏忆阻单元的作用下,该其它忆阻单元对应的权值参数,从而得到该忆阻交叉阵列的权值集合。可选的,在具体的应用示例中,可根据该目标阻态模式以及该忆阻神经网络的结构,采用预设的权值网络算法进行训练,得到所述忆阻交叉阵列的权值集合。其中,该忆阻神经网络的结构例如可以包括:该忆阻神经网络的类型,以及该类型忆阻神经网络中各处理层的电路结构以及相邻处理层之间的连接关系,例如其至少可包括:该忆阻神经网络中所包括的忆阻交叉阵列的个数,以及每个忆阻交叉阵列的结构等等。其中,该忆阻神经网络的类型例如可以为忆阻卷积神经网络、忆阻多层感知机又称忆阻多层感知神经网络、或者其它类型的忆阻神经网络等。该预设的权值网络算法例如可以为该忆阻交叉阵列对应的权值网络算法,其可基于该忆阻交叉阵列中各忆阻单元所包括的忆阻器的个数进行确定。示例的,在一种可能的实现方式中,若该忆阻交叉阵列中,每个忆阻单元包括两个忆阻器,对应的,该预设的权值网络算法例如可以为三元权值网络(ternaryweightnetworks,twns)算法。本实施例所提供的忆阻神经网络的训练方法,可对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定该忆阻交叉阵列中的已损坏忆阻单元,并根据该已损坏忆阻单元在该忆阻交叉阵列中的位置,确定该已损坏忆阻单元的目标阻态模式,继而根据该目标阻态模式,采用预设的权值网络算法进行训练,得到忆阻交叉阵列的权值集合,其中,权值集合中每个权值参数对应忆阻交叉阵列中的一个忆阻单元。在该忆阻神经网络的训练方法中,可基于确定的该已损坏忆阻单元的位置,确定该已损坏忆阻单元的目标阻态模式,继而根据该目标阻态模式进行神经网络的训练,即充分考虑了忆阻神进网络中忆阻交叉阵列的忆阻单元的良率情况,使得训练得到的忆阻交叉阵列的权值集合,与忆阻交叉阵列更匹配,也更准确,有效保证基于权值集合对忆阻交叉阵列中忆阻单元的阻态控制更准确,从而保证忆阻神经网络的计算处理精度。需要指出的是,采用上述方式训练得到的该权值集合中,该已损坏忆阻单元对应的权值参数为:该目标阻态模式对应的权值参数,而其他忆阻单元对应的权值参数与实际的训练过程相关。因此,在本申请上述实施例基础上,还可先对上述s103获取的权值集合中的权值参数进行修正后,得到修正后的权值集合。如下通过一个示例对可能的实现方式进行解释说明。图2为本申请实施例提供的另一种忆阻神经网络的训练方法的流程示意图。如图2所示,在上述实施例的基础上,该方法还可包括:s201、根据预设的权值参数阈值,对该每个权值参数的值进行修正,得到修正后的权值集合。该修正后的权值集合中每个权值参数的值为预设的量化权值。其中,该权值参数阈值例如可以为大于0,小于1的数。其中,该预设的量化权值例如可以为该权值网络算法对应的量化权值。以twn算法为例,通过执行上述权值参数的修正操作,可将该每个权值参数的值进行修正,使得修正后的该每个权值参数的值为-1,0或者+1中任一量化权值。若权值集合中,已损坏忆阻单元对应的权值参数为该目标阻态模式对应的量化权值。在一种可能的实现示例中,可根据预设的权值参数阈值,对该权值集合中包括该已损坏忆阻单元对应的权值参数在内的每个权值参数的值进行修正,使得修正后的每个权值参数的值为预设的量化权值;在另一种可能的示例中,可根据预设的权值参数阈值,对该权值集合中其它忆阻单元对应的权值参数进行修正即可,而无需对该已损坏忆阻单元对应的权值参数进行修正。如下以该另一种可能的示例进行解释说明。采用上述s103所得到的权值集合中其它忆阻单元对应的权值参数可以为该权值网络算法对应的全精度参数。以twns算法为例,该其它忆阻单元对应的权值参数可以为该twns算法对应的各量化权值对应的全精度参数。该twns算法对应各量化权值例如可以包括:-1、0、+1。在一种可能实现方式中,其它忆阻单元对应的权值参数可以为-1对应的全精度参数,其与-1的绝对差值在预设范围内,其例如可以为-0.8或者-0.9等与-1的偏差在预设精度偏差内数值。在另一种可能实现方式中,该其它忆阻单元对应的权值参数也可以为0对应的全精度参数,其与0的绝对差值在预设范围内,其例如可以为-0.1或0.2等其他与0的偏差在预设精度偏差内的数值。在又一种可能实现方式中,该其它忆阻单元对应的权值参数也可以为+1对应的全精度参数,其与0的绝对差值在预设范围内,其例如可以为0.8或0.9等其他与+1的偏差在预设精度偏差内的数值。也就是说,在实施例中,训练得到的权值集合,即权值集合中,其它忆阻单元对应的权值参数为该权值网络算法对应的全精度参数,其与该权值网络的预设量化权值的差值在预设的精度偏差范围内。需要指出是,上述仅是以twns算法为例,对权值集合的示例解释,需要指出的是,本申请实施例所涉及的权值网络算法还可以为更多量化权值对应的权值网络算法,而不限于上述twns算法的三元权值或者说三值权重,其也可另一位更多权值,本申请在此不再赘述。如上s103中采用预设的权值网络算法进行训练得到的权值集合可以为全精度权值矩阵,即该权值集合中该其它忆阻单元对应的权值参数可以为该权值网络算法对应的全精度参数,其均为浮点数。因此,为降低忆阻神经网络的规模,减少使用资源,可对该权值集合中的每个权值参数进行量化修正,以减少权值参数的浮点部分对忆阻神经网络的影响。若该已损坏忆阻单元对应的权值参数为该目标阻态模式对应的量化权值,根据预设的权值参数阈值,对该权值集合中其它忆阻单元对应的权值参数进行修正,可减少修正权值参数的处理量,提高权值集合的修正效率。本申请实施例提供的方法,可通过预设的权值参数阈值对每个权值参数进行量化修正,可在保证忆阻神经网络的计算处理精度的基础上,降低忆阻神经网络的规模,减少使用资源。可选的,如上s103得到的权值集合例如可以为全精度权值集合,该预设的权值参数阈值例如可以为根据上述s103得到的权值集合进行计算得到,也可以为预先配置的权值参数阈值,或者采用其它方式得到的权值参数阈值。在一种可能的实现方式中,在上述s201中根据预设的权值参数阈值,对该每个权值参数的值进行修正,得到修正后的权值集合之前,该方法还可包括:s201a、根据该权值集合的大小,以及该权值集合中各权值参数的值,确定该权值参数阈值。在具体实现示例中,可根据训练得到的全精度权值集合的大小,以及该全精度权值集合中各权值参数的值,采用下述公式(1)进行计算,得到该权值参数阈值。需要指出的是,在该示例中,该权值集合中,已损坏忆阻单元对应的权值参数为该目标阻态模式对应的权值参数,如目标阻态模式对应的量化权值。其中,δ为该权值参数阈值,n为全精度权值集合wf的大小,即权值集合中权值参数的总个数,wi为全精度权值集合wf中的权值参数。以忆阻单元包括两个忆阻器为例,采用twn网络算法进行训练所得到的权值集合wf例如可表示为下述公式(2)。其中,α是缩放系数且非负,训练预期的权值集合wt与全精度权值集合wf可满足:αwt≈wf。因此忆阻神经网络的前向传播可以表示为下述公式(3)。其中,z表示忆阻神经网络的输出层,x表示忆阻神经网络的输入层,δ为忆阻神经网络的非线性激活函数,*表示忆阻神经网络的矩阵乘法计算或卷积计算,即执行该些计算的忆阻交叉阵列,表示忆阻神经网络的没有乘法运算的卷积操作或向量的点积运算的器件。可选的,在如上所示的忆阻神经网络的训练方法的基础上,本申请实施例还可提供一种可能的实现方式,如下以权值参数的修正的可能示例进行说明。图3为本申请实施例提供的又一种忆阻神经网络的训练方法的流程示意图。如图3所示,该方法在上述s201中根据预设的权值参数阈值,对该每个权值参数的值进行修正,得到修正后的权值集合可以包括:s301、根据该权值集合中每个权值参数的值与该权值参数阈值进行比较。若忆阻单元包括两个忆阻器,该预设的权值网络算法为twns算法,在可能的实现示例中,可分别比较该每个权值参数的值与该权值阈值、该每个权值参数与负的权值参数阈值,该每个权值参数的绝对值与该权值参数阈值,从而确定每个权值参数所满足的权值条件。s302、根据比较结果,对该每个权值参数进行修正,使得更新后的该每个权值参数的值为该比较结果对应的量化权值。在可能的实现示例中,可根据比较结果,确定该每个权值参数所满足的权值条件,基于其所满足的权值条件,确定该权值条件对应的量化权值,继而将该每个权值参数更新为其在满足的权值条件对应的量化权值。可选的,以忆阻单元包括两个忆阻器,该预设的权值网络算法为twns算法为例,s302中根据比较结果,对该每个权值参数进行修正,使得更新后的该每个权值参数的值为该比较结果对应的量化权值,可包括:若该每个权值参数的值小于负的该权值参数阈值,则将该每个权值参数的值修正为第一量化权值;或者,若该每个权值参数的绝对值小于或等于该权值参数阈值,则将该每个权值参数的值修正为第二量化权值;或者,若该每个权值参数的值大于该权值参数阈值,则将该每个权值参数的值修正为第三量化权值。如上所示的第一量化权值例如可以为-1,第二量化权值例如可以为0,第三量化权值例如可以为+1,当然,各预设阈值还可以为其它的对应形式,而不限于下述表1所示,下述表1仅为一种可能的示例。可选的,该实现示例的实现方式中例如可基于其所满足的权值条件,结合如下表1所示的多个权值条件和量化权值的映射关系,确定该权值条件对应的量化权值。若为twns算法,则对应的量化权值还可称为三值权值。三值权值r+r-权值条件-1hrslrswi<-δ0hrshrs|wi|≤δ+1lrshrswi>δ表1如下结合附图对忆阻交叉阵列以及对应的权值集合进行示例说明。图4为本申请实施例提供的一种忆阻交叉阵列与权值集合的关系图。如图4所示,若忆阻交叉阵列为4*4的二值化忆阻交叉阵列,即由4行4列的忆阻器构成,其对应的权值集合即为4*2,其中,一个权值参数表示两个忆阻器构成的忆阻单元。权值集合中的第一行的第一个权值参数-1,可表示其对应的两个忆阻器,第一列忆阻器为高阻态,第二列忆阻器为低阻态;第一行的第二个权值参数+1,可表示其对应的两个忆阻器中,第一列忆阻器为低阻态,第二列忆阻器为高阻态;第二行的第一个权值参数0,可表示其对应的两个忆阻器中,第一列忆阻器和第二列忆阻器均为高阻态。也就是说,在该示例中,上述训练预期的权值集合wt与全精度权值集合wf的大小均可以为4*2。训练预期的权值集合wt即为修正后的权值集合。其中,r+用于表示忆阻单元中的第一列忆阻器,r-用于表示忆阻单元中的第二列忆阻器。若全精度权值集合wf中的权值参数wi小于负的权值参数阈值δ,其满足上述表1中的第一种权值条件,结合表1,将该权值参数wi修正为-1,其可表示对应忆阻单元中第一列忆阻器的阻态为高阻态(hrs),第二列忆阻器的阻态为低阻态(lrs)。若全精度权值集合wf中的权值参数wi的绝对值小于或等于权值参数阈值δ,其满足上述表1中的第二种权值条件,结合表1,将该权值参数wi修正为0,其可表示对应忆阻单元中第一列忆阻器的阻态为高阻态(hrs),第二列忆阻器的阻态为高阻态(hrs)。若全精度权值集合wf中的权值参数wi大于权值参数阈值δ,其满足上述表1中的第三种权值条件,结合表1,将该权值参数wi修正为+1,其可表示对应忆阻单元中第一列忆阻器的阻态为低阻态(lrs),第二列忆阻器的阻态为高阻态(hrs)。该实施例提供的方法中,可根据该权值集合中每个权值参数的值与该权值参数阈值进行比较,继而根据比较结果,对该每个权值参数进行修正,使得修正后的该每个权值参数的值为该比较结果对应的量化权值,可使得修正后的权值集合中的权值参数尽可能满足预期的量化权值,从而提高网络训练精度,继而保证网络的计算精度。可选的,在上述任一所示的忆阻神经网络的训练方法的基础上,若该忆阻单元包括两个忆阻器,则该目标阻态模式为第一阻态模式、第二阻态模式,或者,第三阻态模式。其中,该第一阻态模式可称为“hl”模式,其可用于指示该两个忆阻器中第一列忆阻器r+的阻态为固定高阻态,第二列忆阻器r-的阻态为可编程状态,或者,该第一列忆阻器r+的阻态为可编程状态,该第二列忆阻器r-的阻态为固定低阻态。固定高阻态即被冻结在高阻态下,其阻态一直保持为高阻态,而不会通过编程变化为低阻态;对应的,所涉及的固定低阻态即被冻结在低阻态下,其阻态一直保持为低阻态,而不会通过编程变化为高阻态。而阻态可编程状态,指的是,忆阻器的阻态可通过编程进行变化。该第二阻态模式可称为“hh”或“ll”模式,其可用于指示该两个忆阻器中两列忆阻器的阻态均为固定高阻态或固定低阻态,即该第一列忆阻器r+和第二列忆阻器r+都冻结在高阻态下,均为固定高阻态,或者,均冻结在低阻态,均为固定低阻态。该第三阻态模式可称为“lh”模式,其可用于指示该第一列忆阻器r+的阻态为固定低阻态,该第二列忆阻器r-的阻态为可编程状态,或者,该第一列忆阻器r+的阻态为可编程状态,该第二列忆阻器r-的阻态为固定高阻态。结合此处阻态模式的示例,假设,已损坏忆阻单元对应的目标阻态模式为上述任一阻态模式,例如可根据目标阻态模式,基于下述公式(4)得到该目标阻态模式对应的权值参数,继而对该权值集合中该已损坏忆阻单元对应的权值参数进行更新。其中,可用于表示权值集合中该已损坏忆阻单元对应的权值参数,“hl”mode用于表示上述第一阻态模式,其对应的权值参数为-1;“hh”or“ll”mode用于表示上述第二阻态模式,其对应的权值参数为0;“lh”mode用于表示上述第三阻态模式,其对应的权值参数为+1。假设,目标阻态模式为第一阻态模式,那么,该权值集合中该已损坏忆阻单元对应的权值参数可以为-1;目标阻态模式为第二阻态模式,那么,便该已损坏忆阻单元对应的权值参数可以为0;目标阻态模式为第三阻态模式,那么,该已损坏忆阻单元对应的权值参数可以为+1。在上述任一实施例提供方法的基础上,本申请实施例还可提供一种忆阻神经网络的训练方法,如下通过示例进行解释说明,图5为本申请实施例提供的再一种忆阻神经网络的训练方法的流程示意图。如图5所示,如上所示的s101中对该忆阻交叉阵列进行读写操作,确定该忆阻交叉阵列中的已损坏忆阻单元,包括:s501、对该忆阻交叉阵列中每个忆阻单元进行读写操作,以确定该忆阻单元的阻态是否变化。在应用示例中,可先对该每个忆阻单元进行写操作,再对该每个忆阻单元进行读操作,根据读操作以及写操作下,忆阻单元所连接列线的输出电流确定该忆阻单元中各忆阻器的阻态是否发生变化,从而确定该忆阻单元的阻态是否变化。s502、若该忆阻交叉阵列中存在阻态不变化的忆阻单元,则确定该阻态不变化的忆阻单元为该已损坏忆阻单元。反之,若忆阻单元的阻态发生变化,则可确定该忆阻单元未损坏。在确定该忆阻交叉阵列中已损坏忆阻单元的情况下,还可对该已损坏忆阻单元的位置进行标记。通过执行本申请实施例所提供的方法,可准确确定忆阻交叉阵列中已损坏忆阻单元,从而有效保证后续基于该已损坏忆阻单元进行训练得到的权值集合的精度,保证忆阻神经网络的计算精度。如下以卷积神经网络(convolutionalneuralnetworks,cnn)结构的忆阻神经网络为例,结合一些实验,对采用本申请所提供的训练方法得到的忆阻神经网络进行数据识别的准确度,以及其它的训练方式训练得到的忆阻神经网络进行数据识别的准确度进行分析对比。图6为本申请实施例提供的训练方法得到的忆阻神经网络与其他训练方法得到的忆阻神经网络的识别准确度的对比图。以美国国家标准与技术研究所(nationalinstituteofstandardsandtechnology,nist)数据集,又称mnist数据集为例,对cnn结构的忆阻神经网络的识别准确度进行检测。对如图6可知,采用本申请提供的训练方法,即twns算法以及已损坏忆阻单元对应的目标阻态模式进行训练,相比较仅采用twns算法进行训练,可使得忆阻交叉阵列的良率在80%-98%之间的cnn结构的忆阻神经网络的数据识别准确度提高23%。下述对用以执行的本申请所提供的忆阻神经网络的训练方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。图7为本申请实施例提供的一种忆阻神经网络的训练装置的示意图,如图7所示,该忆阻神经网络的训练装置700可包括:读写模块701,用于对忆阻神经网络中的忆阻交叉阵列进行读写操作,确定该忆阻交叉阵列中的已损坏忆阻单元。训练模块702,用于根据该已损坏忆阻单元在该忆阻交叉阵列中的位置,确定该已损坏忆阻单元的目标阻态模式;并根据该目标阻态模式,采用预设的权值网络算法进行训练,得到该忆阻交叉阵列的权值集合,其中,该权值集合中每个权值参数对应该忆阻交叉阵列中的一个忆阻单元。该权值集合中该已损坏忆阻单元对应的权值参数为:该目标阻态模式对应的权值参数。可选的,该忆阻神经网络的训练装置700还可包括:修正模块,用于根据预设的权值参数阈值,对该每个权值参数的值进行修正,得到修正后的权值集合,该修正后的权值集合中每个权值参数的值为预设的量化权值。可选的,如上所示的,该忆阻神经网络的训练装置700还可包括:确定模块,用于在修正模块根据预设的权值参数阈值,对该权值集合中每个权值参数的值进行修正,得到修正后的权值集合之前,根据该权值集合的大小,以及该权值集合中各权值参数的值,确定该权值参数阈值。可选的,上述修正模块,具体用于根据该权值集合中每个权值参数的值与该权值参数阈值进行比较;根据比较结果,对该每个权值参数进行修正,使得修正后的该每个权值参数的值为该比较结果对应的量化权值。可选的,若忆阻单元包括两个忆阻器,预设的权值网络算法为三元权值网络算法,则修正模块,具体用于:若该每个权值参数的值小于负的该权值参数阈值,则将该每个权值参数的值修正为第一量化权值;或者,若该每个权值参数的绝对值小于或等于该权值参数阈值,则将该每个权值参数的值修正为第二量化权值;或者,若该每个权值参数的值大于该权值参数阈值,则将该每个权值参数的值修正为第三量化权值。可选的,若该忆阻单元包括两个忆阻器,则该目标阻态模式可以为第一阻态模式、第二阻态模式,或者,第三阻态模式;其中,该第一阻态模式用于指示该两个忆阻器中第一列忆阻器的阻态为固定高阻态,第二列忆阻器的阻态可为编程状态,或者,该第一列忆阻器的阻态为可编程状态,所述第二列忆阻器的阻态为固定低阻态;该第二阻态模式用于指示该两个忆阻器中两列忆阻器的阻态均为固定高阻态或固定低阻态;该第三阻态模式用于指示该第一列忆阻器的阻态为固定低阻态,该第二列忆阻器的阻态为可编程状态,或者,该第一列忆阻器的阻态为可编程状态,该第二列忆阻器的阻态为固定高阻态。可选的,上述读写模块701,具体用于对该忆阻交叉阵列中每个忆阻单元进行读写操作,以确定该忆阻单元的阻态是否变化;若该忆阻交叉阵列中存在阻态不变化的忆阻单元,则确定该阻态不变化的忆阻单元为该已损坏忆阻单元。上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。图8为本申请实施例提供的一种计算机设备的示意图,该计算机设备可以是具备网络训练功能的计算设备或服务器。该计算机设备800包括:存储器801、处理器802。存储器801和处理器802通过总线连接。存储器801用于存储程序,处理器802调用存储器801存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!