CN112801274B - 人工智能处理装置、权重参数读写方法及装置 - Google Patents
人工智能处理装置、权重参数读写方法及装置 Download PDFInfo
- Publication number
- CN112801274B CN112801274B CN202110124133.XA CN202110124133A CN112801274B CN 112801274 B CN112801274 B CN 112801274B CN 202110124133 A CN202110124133 A CN 202110124133A CN 112801274 B CN112801274 B CN 112801274B
- Authority
- CN
- China
- Prior art keywords
- response
- resistance
- weight
- memory
- initial
- 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.)
- Active
Links
Images
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- 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/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Semiconductor Memories (AREA)
Abstract
本公开涉及一种人工智能处理装置、权重参数读写方法及装置,人工智能处理装置包括处理模块及权重存储模块,权重存储模块用于存储权重参数,处理模块用于在第n轮训练目标神经网络时,获取权重存储器的第一响应电阻,并根据预设的响应电阻与权重参数的第一对应关系,确定第一响应电阻对应的第一权重参数;根据第一权重参数以及预先获取的训练数据训练目标神经网络,获取第n轮训练的目标神经网络的第二权重参数,并根据第一对应关系,获取第二权重参数对应的第二响应电阻,并根据预设的第二对应关系,确定第二响应电阻对应的写入电压;根据写入电压调整权重存储器的响应电阻。本公开实施例的装置及方法能够改善权重存储器的存储性能。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种人工智能处理装置、权重参数读写方法及装置。
背景技术
随着人工智能的发展,神经网络在多个领域得到广泛应用,模拟人类大脑的神经网络可以实现复杂的识别任务。对神经网络进行训练需要不断读取神经网络中的参数,并且持续更新,直到神经网络的识别率达到所要求的值。为了提升神经网络训练过程中访问数据的速度,可以将神经网络的参数存储在相应的存储器中。
现有的数据存储器一般为片外存储器,也即存储器与计算单元之间通过总线进行数据传输,此种方式在数据传输时需要消耗大量的时间和能量。此外,现有的数据存储器往往是在模拟电路的基础上实现数据存储与数据运算,在数据处理过程中,器件存在较大的不确定性,并且当多个存储单元同时处理数据时,不确定性问题更加严重;当需要进行数据移动时,需要消耗大量能量,且灵活性较差。
发明内容
有鉴于此,本公开提出了一种人工智能处理装置,所述装置包括:处理模块及权重存储模块,
所述权重存储模块用于存储目标神经网络的权重参数;
所述处理模块连接到所述权重存储模块,所述处理模块用于:
在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
在一种可能的实现方式中,所述权重存储器包括多个存储阵列,每个存储阵列包括多个存储单元,
所述处理模块在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻,包括:
获取所述权重存储器的任一存储阵列的第一存储单元的第一电阻和第二存储单元的第二电阻,其中,所述第一存储单元和所述第二存储单元为所述存储阵列中相邻的存储单元,所述第一电阻和所述第二电阻为写入电阻;
根据所述第一电阻和所述第二电阻的平均值,确定第三电阻;
根据所述存储阵列的多个第三电阻,获取所述存储阵列的第一响应电阻。
在一种可能的实现方式中,所述处理模块还用于:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
在一种可能的实现方式中,所述处理模块还用于:
基于预设范围内的写入电压以及所述初始对应关系,确定与所述写入电压对应的第三响应电阻;
判断所述第三响应电阻是否满足预设误差条件;
若所述第三响应电阻不满足所述预设误差条件,则调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,其中,所述预设误差条件包括所述第三响应电阻大于目标响应电阻与预设误差电阻之和,所述目标响应电阻为待存储权重参数对应的响应电阻;
根据所述第三响应电阻、调整后的写入电压以及所述初始对应关系,确定所述第二对应关系。
在一种可能的实现方式中,所述处理模块调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,包括:
在所述写入电压的基础上按预设条件增加预设单位电压,直至根据调整后的写入电压以及所述初始对应关系确定的第三响应电阻大于所述目标响应电阻与预设误差电阻之和。
在一种可能的实现方式中,所述权重存储器包括多层单元忆阻器、相变存储器中任意一种。
本公开另一方面提出了一种权重参数读写方法,所述方法应用于人工智能处理装置,所述装置包括权重存储模块,用于存储目标神经网络的权重参数,所述方法包括:
在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
在一种可能的实现方式中,所述方法还包括:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
本公开另一方面提出了一种权重存储器的读写装置,所述权重存储器用于存储目标神经网络的权重参数,所述装置包括:
第一获取模块,用于在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
第一确定模块,用于根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
第二获取模块,用于根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
第三获取模块,用于根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
第二确定模块,用于根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
调整模块,用于根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
在一种可能的实现方式中,所述装置还包括第三确定模块,所述第三确定模块用于:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
本公开实施例中,获取第n轮训练的目标神经网络的第二权重参数,以及第二权重参数对应的第二响应电阻,根据第二对应关系确定第二响应电阻的写入电压,根据写入电压调整存储权重器的响应电阻,其中,第二对应关系中响应电阻与写入电压为一一对应关系,通过设定响应电阻与写入电压的对应关系,能够控制存储器的不确定性成分中的可控成分,改善权重存储器的存储性能。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的人工智能处理装置的框图。
图2示出根据本公开实施例的处理模块处理过程的示意图。
图3示出循环变异特性下电压与电阻的对应关系图。
图4示出设备变异特性下电压与电阻的对应关系图。
图5a示出调整写入电压前后存储单元电阻的变化情况的示意图。
图5b示出调整写入电压前后存储阵列电阻的变化情况的示意图。
图6示出变异大小、存储单元个数与分类性能的关系示意图。
图7示出根据本公开实施例的权重存储器的读写装置的结构示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
为了说明方便,现对如下内容做出解释。
以ANN(Artificial Neural Network,人工神经网络)模型为例,模型的权重参数越多,存储器要存储的数据量越大,存储器的存储单元的数量也就越多。考虑到硬件的布局等因素,含有大量存储单元的存储器难以布局在计算单元周围,需要利用总线在片外存储器与计算单元之间进行数据传输,但是通过总线进行数据传输,无论在时间上还是空间上均非常低效。片上存储器是通过高集成的方式将存储器置于计算单元周围的存储器,可以满足数据存储的需求,也可以保证高效率数据传输。
其中,人工神经网络的权重参数一般为连续值,一般用32个比特数据表示一个权重参数。相应地,一般需要32个存储单元存储一个权重参数,即每个存储单元可以存储1个比特的数据。为了降低存储权重参数所需的存储单元的数量,在一个存储单元中存储1比特以上数据的技术叫做多层。
图1示出根据本公开实施例的人工智能处理装置的框图。如图1所示,该装置包括:处理模块及权重存储模块,所述权重存储模块用于存储目标神经网络的权重参数;所述处理模块连接到所述权重存储模块。
本公开实施例的权重存储模块可以包括多层存储阵列的数字存储器,权重存储器可以包括多个存储阵列,每个存储阵列可以包括多个存储单元,每个存储单元可以存储1比特以上的数据。示例性地,本公开实施例的权重存储器可以包括多层单元忆阻器、相变存储器中任意一种,需要说明的是,本公开实施例对权重存储器的类型不做限定。
在存储单元的数量相同的情况下,本公开实施例的权重存储器相比于现有的存储器能够存储更多的数据量。此外,本公开实施例的权重存储器可以包括数字存储器,数字存储器相比于现有的模拟存储器能够更有效地控制存储器的不确定性,提高存储性能。
本公开实施例的处理模块可通过专用硬件电路实现,该专用硬件电路可包括多个计算单元,例如加法器、乘法器等;也可以通过通用处理硬件(例如微控制单元(Microcontroller Unit,简称MCU)、现场可编程逻辑器件FPGA等)结合可执行逻辑指令实现,以执行处理模块的工作过程。本公开对处理模块的具体实现方式不做限制。
图2示出根据本公开实施例的处理模块处理过程的示意图。如图2所示,所述处理模块用于:
步骤S200,在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻。
步骤S201,根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数。
步骤S202,根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数。
步骤S203,根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻。
步骤S204,根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压。
步骤S205,根据所述写入电压调整所述权重存储器的响应电阻。
在一种可能的实现方式中,本公开实施例的目标神经网络可以包括人工神经网络(Artificial Neural Network,ANN),人工神经网络能够通过多个输入和输出进行学习,解决传统算法无法解决的非解析问题。示例性地,可以将人工神经网络和其所有参数统称为一个模型,该模型可以有多个结构,不同结构的模型可以包括输入层、隐藏层以及输出层,每一层之间都存在节点,相邻层的相邻节点之间存在权重参数,权重参数可以表示节点与节点之间的连接强度。
以人工神经网络模型为例,在模型运行的过程中,可以将输入模型的输入数据跟输入层的权重相乘,然后将计算结果和对应的激活函数输入到下一层中,成为下一层的输入数据。经过迭代计算后,最终输出层的输出成为损失函数的输入。人工神经网络模型可以通过损失函数的值和反向传播算法调整每一层权重的值,通过大量训练数据训练模型,不断更新模型的权重,确定输入和输出的关系。
在一种可能的实现方式中,权重存储器的响应电阻可以包括读取权重存储器的存储数据时,或者向权重存储器施加电压时,权重存储器的存储阵列的电阻。以第一响应电阻为例,第一响应电阻可以包括多个电阻值,示例性地,第一响应电阻的数量可以对应于权重存储器的存储阵列的数量。
在一种可能的实现方式中,第一对应关系中每个权重参数对应的响应电阻处于预设范围内。示例性地,本公开实施例可以将权重参数通过电阻的形式存储在权重存储器中,每个权重参数可以对应处于预设范围内的电阻。
示例性地,以权重参数为(1,2,3,4)为例,权重参数对应的电阻范围可以对应为(1~100)。具体地,每个权重参数对应处于预设范围内的电阻可以包括:以权重参数为1为例,权重参数1对应的电阻范围可以包括(1~25),以权重参数为2为例,权重参数2对应的电阻范围可以包括(26~50),以此类推,每个权重参数可以对应处于预设范围内的电阻。
通过设定第一对应关系,可以提高对存储器存储性能中不确定性的可控能力。
在一种可能的实现方式中,第二对应关系中响应电阻与写入电压为一一对应关系。在实际应用中,权重存储器的原子单位的随机性可能引发存储单元电阻的不确定性。例如,在理想情况下,将写入电压施加到存储单元上,本应得到对应的目标电阻,但是由于权重存储器的原子单位的随机性,实际得到的电阻与目标电阻之间可能存在偏差。通过将响应电阻与写入电压设定为一一对应关系,能够控制存储器的不确定性成分中的可控成分,改善权重存储器的存储性能。
在一种可能的实现方式中,步骤S200中,在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻,包括:
获取所述权重存储器的任一存储阵列的第一存储单元的第一电阻和第二存储单元的第二电阻,其中,所述第一存储单元和所述第二存储单元为所述存储阵列中相邻的存储单元,所述第一电阻和所述第二电阻为写入电阻;
根据所述第一电阻和所述第二电阻的平均值,确定第三电阻;
根据所述存储阵列的多个第三电阻,获取所述存储阵列的第一响应电阻。
示例性地,权重存储器可以包括多个存储阵列,每个存储阵列可以包括多个存储单元。具体地,权重存储器中的存储单元可以包括两种特性:CCV(Cycle-to-CycleVariation,循环变异)特性和DDV(Device-to-Device Variation,设备变异)特性。其中,CCV特性可以表示给同一存储单元在不同时间施加相同电压,将得到不同的响应电阻,DDV特性可以表示给不同存储单元施加相同电压,将得到不同的响应电阻。
图3示出循环波动特性下电压与电阻的对应关系图,如图3所示,在循环波动特性下,存储单元的电压与电阻存在一一对应关系。图4示出设备变异特性下电压与电阻的对应关系图,如图4所示,在设备变异特性下,存储单元的同一电压对应多个电阻。由于权重存储器存在不确定性,相同的写入电压在每个存储单元上将导致不同的响应电阻。为了控制存储器的不确定性成分中的可控成分,可以先确定存储阵列的响应电阻。
示例性地,可以将相邻两个存储单元的写入电阻的平均值确定为第三电阻,根据存储阵列的多个第三电阻,获取存储阵列的第一响应电阻。
示例性地,以存储阵列包括五个存储单元为例,根据第一个存储单元和第二个存储单元可以确定第一个第三电阻;根据第二个存储单元和第三个存储单元可以确定第二个第三电阻,以此类推,五个存储单元可以确定四个第三电阻。根据存储阵列中存储单元的排列形式,例如,存储单元为串联排列,则可以将四个第三电阻的和作为存储阵列的响应电阻。需要说明的是,本公开实施例对存储单元的排列形式不作限定。
在一种可能的实现方式中,在步骤S204之前,所述方法还可以包括步骤S2041:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
示例性地,权重存储器中的存储单元的DDV特性将导致给不同存储单元施加相同电压,得到不同的响应电阻。本公开实施例通过获取DDV特性下多个响应电阻和写入电压,确定多个存储阵列共同的电压和电阻的对应关系。
可选地,预设的存储特性函数可以包括Sigmoid函数,其中,Sigmoid函数可以如公式(1)所示:
公式(1):
其中,x可以表示电压,f(x)可以表示电阻。
存储单元的电压和电阻的对应关系可以包括多个存储特征参数,其中,存储特征参数可以包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种。
进一步地,结合存储特征参数,Sigmoid函数可以如公式(2)所示:
公式(2):
其中,ak表示高电阻状态参数,bk表示低电阻状态参数,ck表示非线性特征参数,dk表示偏移特征参数,fk(x)表示第k个存储单元的电阻。
可以通过将各个存储特征参数的平均值作为权重存储器的存储特征参数。示例性地,可以将多个高电阻状态参数的平均值作为权重存储器的高电阻状态参数。根据权重存储器的存储特征参数、多个初始响应电阻、多个初始写入电压,可以确定初始对应关系。
在一种可能的实现方式中,在步骤S2041之后,所述方法还可以包括步骤S2042:
基于预设范围内的写入电压以及所述初始对应关系,确定与所述写入电压对应的第三响应电阻;
判断所述第三响应电阻是否满足预设误差条件;
若所述第三响应电阻不满足所述预设误差条件,则调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,其中,所述预设误差条件包括所述第三响应电阻大于目标响应电阻与预设误差电阻之和,所述目标响应电阻为待存储权重参数对应的响应电阻;
根据所述第三响应电阻、调整后的写入电压以及所述初始对应关系,确定所述第二对应关系。
通过确定初始对应关系,可以通过写入电压确定对应的写入电阻,但是由于存在写入误差,导致每个存储单元的响应电阻与写入电阻不同,而后根据响应电阻所确定的权重参数也与目标权重参数不同。因此,可以通过多次调整写入电压消除写入电阻的误差。
在一种可能的实现方式中,步骤S2042中,所述调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,包括:
在所述写入电压的基础上按预设条件增加预设单位电压,直至根据调整后的写入电压以及所述初始对应关系确定的第三响应电阻大于所述目标响应电阻与预设误差电阻之和。
首先基于预设范围内的写入电压以及初始对应关系,可以确定写入电压对应的第三响应电阻。再判断第三响应电阻是否满足预设误差条件,其中,预设误差条件可以包括第三响应电阻大于目标响应电阻与预设误差电阻之和,目标响应电阻为待存储权重参数对应的响应电阻;
若第三响应电阻大于目标响应电阻和预设误差电阻之和,则可以根据第三响应电阻、调整后的写入电压以及初始对应关系,确定第二对应关系;
若第三响应电阻小于或等于目标响应电阻和预设误差电阻之和,则进一步判断第三响应电阻是否大于或等于目标响应电阻与预设误差电阻之差;
若第三响应电阻大于或等于目标响应电阻与预设误差电阻之差,则可以根据第三响应电阻、调整后的写入电压以及初始对应关系,确定第二对应关系;
若第三响应电阻小于目标响应电阻与预设误差电阻之差,则在写入电压的基础上按预设条件增加预设单位电压,直至根据调整后的写入电压以及所述初始对应关系确定的第三响应电阻大于所述目标响应电阻与预设误差电阻之和。
其中,预设单位电压可以通过如下公式(3)所示的方法确定:
公式(3):
其中,numstep表示预设单位电压,limit表示调整上限,numpluse表示调整步长。
图5a及图5b示出调整写入电压前后存储阵列电阻的变化情况。
如图5a所示,图5a中虚线部分表示调整写入电压前存储单元中电阻的分布情况;图5a中实线部分表示调整写入电压后存储单元中电阻的分布情况;图5b中虚线部分表示调整写入电压前存储阵列中电阻的分布情况;图5b中实线部分表示调整写入电压后存储阵列中电阻的分布情况。结合图5a和图5b可知,通过调整电压能够使存储单元电阻满足预设误差条件。
以本公开实施例的权重存储器为多层单元忆阻器为例,本公开实施例的权重存储器能够有效地减小权重存储器的单元面积,构成实用性强的片上存储器。
图6示出变异大小、存储单元个数与分类性能的关系示意图。如图6所示,图中柱子的高度表示在给定的单元个数和变异大小下,网络能达到的最好正确率。存储单元的层数可以有很多组合,每个柱子上面的数组是存储单元所能取得最高正确率的层数。示例性地,每个柱子上的参数表示每个存储单元所使用的层数,以2个存储单元为例,2个存储单元中第一个柱子上的参数(4,5)表示第一个存储单元所使用的层数为4层,第二个存储单元所使用的层数为5层。需要说明的是,不同的柱子,表示使用不同层数的存储单元。
示例性地,Var-(1,0.5)可以表示保持CCV的大小不变,将DDV的大小变为原来大小的一半,其中,原来大小可以包括通过测量实验过程中实际所使用的硬件的大小。
从结果可知,如果我们要达到95%的正确率我们要是用5个SLC(Single LevelCell,单阶存储单元)单元(即5个SRAM(Static Random-Access Memory,静态随机存取存储器)单元)。但是我们只用3个MLC(Multi Level Cell,多阶存储单元)PCRAM(Phase ChangeRandom Access Memory,相变随机存取存储器)可以达到95%正确率,就是说可以节省40%的单元数量。如果我们可以把CCV和DDV的大小减小为现在的一半,我们用2个单元就可以取得95%正确率,节省60%的单元数量。若使用1个单元,我们要把变异大小减小为现在的10%以下才可以取得95%的正确率。
还有MLC带来的面积节省效果,根据要达到的正确率而不一样。在不同的变异条件下,实现不同的正确率所需要的最小单元个数可以归纳成如表1。括号内的百分比表示该变异大小和目标正确率下,MLC与SLC相比可以节省多少面积。最后一行表示平均节省率。结果表明目标正确率越高,我们利用MLC特性可以实现的面积节省率越小。
学习正确率 | 94% | 95% | 96% | 97% |
单阶存储单元 | 4 | 5 | 5 | 6 |
Var-(1.00,1.00) | 2(50%↓) | 3(40%↓) | 4(20%↓) | 5(17%↓) |
Var-(1.00,0.50) | 2(50%↓) | 3(40%↓) | 3(40%↓) | 4(33%↓) |
Var-(0.50,0.50) | 2(50%↓) | 2(60%↓) | 3(40%↓) | 4(33%↓) |
Var-(0.50,0.25) | 2(50%↓) | 2(60%↓) | 2(60%↓) | 3(50%↓) |
平均值 | 50%↓ | 50%↓ | 40%↓ | 33%↓ |
本公开实施例中,在训练目标神经网络时,获取权重存储器的第一响应电阻,并根据第一对应关系确定第一响应电阻对应的第一权重参数,其中,权重存储器包括多层存储阵列的数字存储器,多层存储阵列的数字存储器能够在提高数据存储容量的同时,降低数据存储过程中的不确定性;第一对应关系中每个权重参数对应的响应电阻处于预设范围内,可以提高对存储器存储性能不确定性的可控能力;
本公开实施例中,获取第n轮训练的目标神经网络的第二权重参数,以及第二权重参数对应的第二响应电阻,根据第二对应关系确定第二响应电阻的写入电压,根据写入电压调整存储权重器的响应电阻,其中,第二对应关系中响应电阻与写入电压为一一对应关系,通过设定响应电阻与写入电压的对应关系,能够控制存储器的不确定性成分中的可控成分,改善权重存储器的存储性能。
根据本公开实施例的一方面,提供了一种权重参数的读写方法,该方法应用于人工智能处理装置,所述装置包括权重存储模块,用于存储目标神经网络的权重参数,所述方法包括:
在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
在一种可能的实现方式中,所述方法还包括:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
图7示出根据本公开实施例的权重存储器的读写装置的结构示意图。如图7所示,该装置包括:
第一获取模块71,用于在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
第一确定模块72,用于根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
第二获取模块73,用于根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
第三获取模块74,用于根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
第二确定模块75,用于根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
调整模块76,用于根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
在一种可能的实现方式中,所述权重存储器包括多个存储阵列,每个存储阵列包括多个存储单元,所述第一获取模块71用于:
获取所述权重存储器的任一存储阵列的第一存储单元的第一电阻和第二存储单元的第二电阻,其中,所述第一存储单元和所述第二存储单元为所述存储阵列中相邻的存储单元,所述第一电阻和所述第二电阻为写入电阻;
根据所述第一电阻和所述第二电阻的平均值,确定第三电阻;
根据所述存储阵列的多个第三电阻,获取所述存储阵列的第一响应电阻。
在一种可能的实现方式中,所述装置还包括第三确定模块,所述第三确定模块用于:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
在一种可能的实现方式中,所述装置还包括第四确定模块,所述第四确定模块用于:
基于预设范围内的写入电压以及所述初始对应关系,确定与所述写入电压对应的第三响应电阻;
判断所述第三响应电阻是否满足预设误差条件;
若所述第三响应电阻不满足所述预设误差条件,则调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,其中,所述预设误差条件包括所述第三响应电阻大于目标响应电阻与预设误差电阻之和,所述目标响应电阻为待存储权重参数对应的响应电阻;
根据所述第三响应电阻、调整后的写入电压以及所述初始对应关系,确定所述第二对应关系。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种人工智能处理装置,其特征在于,所述装置包括:处理模块及权重存储模块,
所述权重存储模块用于存储目标神经网络的权重参数;
所述处理模块连接到所述权重存储模块,所述处理模块用于:
在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
2.根据权利要求1所述的装置,其特征在于,所述权重存储器包括多个存储阵列,每个存储阵列包括多个存储单元,
所述处理模块在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻,包括:
获取所述权重存储器的任一存储阵列的第一存储单元的第一电阻和第二存储单元的第二电阻,其中,所述第一存储单元和所述第二存储单元为所述存储阵列中相邻的存储单元,所述第一电阻和所述第二电阻为写入电阻;
根据所述第一电阻和所述第二电阻的平均值,确定第三电阻;
根据所述存储阵列的多个第三电阻,获取所述存储阵列的第一响应电阻。
3.根据权利要求1所述的装置,其特征在于,所述处理模块还用于:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
4.根据权利要求3所述的装置,其特征在于,所述处理模块还用于:
基于预设范围内的写入电压以及所述初始对应关系,确定与所述写入电压对应的第三响应电阻;
判断所述第三响应电阻是否满足预设误差条件;
若所述第三响应电阻不满足所述预设误差条件,则调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,其中,所述预设误差条件包括所述第三响应电阻大于目标响应电阻与预设误差电阻之和,所述目标响应电阻为待存储权重参数对应的响应电阻;
根据所述第三响应电阻、调整后的写入电压以及所述初始对应关系,确定所述第二对应关系。
5.根据权利要求4所述的装置,其特征在于,所述处理模块调整所述写入电压,以使所述第三响应电阻满足所述预设误差条件,包括:
在所述写入电压的基础上按预设条件增加预设单位电压,直至根据调整后的写入电压以及所述初始对应关系确定的第三响应电阻大于所述目标响应电阻与预设误差电阻之和。
6.根据权利要求1所述的装置,其特征在于,所述权重存储器包括多层单元忆阻器、相变存储器中任意一种。
7.一种权重参数读写方法,其特征在于,所述方法应用于人工智能处理装置,所述装置包括权重存储模块,用于存储目标神经网络的权重参数,所述方法包括:
在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
9.一种权重存储器的读写装置,其特征在于,所述权重存储器用于存储目标神经网络的权重参数,所述装置包括:
第一获取模块,用于在第n轮训练所述目标神经网络时,获取所述权重存储器的第一响应电阻;
第一确定模块,用于根据所述第一响应电阻以及预设的响应电阻与权重参数的第一对应关系,确定所述第一响应电阻对应的第一权重参数,其中,所述权重存储器包括多层存储阵列的数字存储器,所述第一对应关系中每个权重参数对应的响应电阻处于预设范围内,n为正整数;
第二获取模块,用于根据所述第一权重参数以及预先获取的训练数据训练所述目标神经网络,获取第n轮训练的目标神经网络的第二权重参数;
第三获取模块,用于根据所述第二权重参数以及所述第一对应关系,获取所述第二权重参数对应的第二响应电阻;
第二确定模块,用于根据所述第二响应电阻以及预设的响应电阻与写入电压的第二对应关系,确定所述第二响应电阻对应的写入电压,其中,所述第二对应关系中所述响应电阻与所述写入电压为一一对应关系;
调整模块,用于根据所述写入电压调整所述权重存储器的响应电阻,以使所述第二权重参数以所述第二响应电阻的形式存储在所述权重存储器中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括第三确定模块,所述第三确定模块用于:
获取多个初始响应电阻、与所述初始响应电阻对应的初始写入电压;
根据所述多个初始响应电阻、所述初始写入电压以及预设的存储特性函数,确定所述权重存储器的存储特征参数,其中,所述存储特征参数包括高电阻状态参数、低电阻状态参数、非线性特征参数以及偏移特征参数中至少一种;
根据所述存储特征参数、所述初始响应电阻、所述初始写入电压,确定所述初始响应电阻与所述初始写入电压之间的初始对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110124133.XA CN112801274B (zh) | 2021-01-29 | 2021-01-29 | 人工智能处理装置、权重参数读写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110124133.XA CN112801274B (zh) | 2021-01-29 | 2021-01-29 | 人工智能处理装置、权重参数读写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112801274A CN112801274A (zh) | 2021-05-14 |
CN112801274B true CN112801274B (zh) | 2022-12-06 |
Family
ID=75812708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110124133.XA Active CN112801274B (zh) | 2021-01-29 | 2021-01-29 | 人工智能处理装置、权重参数读写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112801274B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108053029A (zh) * | 2017-12-27 | 2018-05-18 | 宁波山丘电子科技有限公司 | 一种基于存储阵列的神经网络的训练方法 |
CN110796241A (zh) * | 2019-11-01 | 2020-02-14 | 清华大学 | 基于忆阻器的神经网络的训练方法及其训练装置 |
CN111563186A (zh) * | 2020-04-30 | 2020-08-21 | 北京百度网讯科技有限公司 | 量子数据存储方法、读取方法、装置及计算设备 |
-
2021
- 2021-01-29 CN CN202110124133.XA patent/CN112801274B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108053029A (zh) * | 2017-12-27 | 2018-05-18 | 宁波山丘电子科技有限公司 | 一种基于存储阵列的神经网络的训练方法 |
CN110796241A (zh) * | 2019-11-01 | 2020-02-14 | 清华大学 | 基于忆阻器的神经网络的训练方法及其训练装置 |
CN111563186A (zh) * | 2020-04-30 | 2020-08-21 | 北京百度网讯科技有限公司 | 量子数据存储方法、读取方法、装置及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112801274A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10692570B2 (en) | Neural network matrix multiplication in memory cells | |
US11361215B2 (en) | Neural network circuits having non-volatile synapse arrays | |
US9934463B2 (en) | Neuromorphic computational system(s) using resistive synaptic devices | |
CN111279366A (zh) | 人工神经网络的训练 | |
JP6293963B1 (ja) | ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム | |
Mohanty et al. | Random sparse adaptation for accurate inference with inaccurate multi-level RRAM arrays | |
Fu et al. | Mitigating nonlinear effect of memristive synaptic device for neuromorphic computing | |
US10446231B2 (en) | Memory cell structure | |
CN112005252A (zh) | 具有单独权重更新和干扰电路的电阻式处理单元架构 | |
CN111478703B (zh) | 基于忆阻交叉阵列的处理电路及输出电流的补偿方法 | |
CN114282478B (zh) | 一种修正可变电阻器件阵列点乘误差的方法 | |
CN111984921A (zh) | 一种存内数值计算加速器及存内数值计算方法 | |
CN113837371A (zh) | 用于实现神经网络的神经形态装置和方法 | |
US12046283B2 (en) | Compute-in-memory array and module, and data computing method | |
CN112801274B (zh) | 人工智能处理装置、权重参数读写方法及装置 | |
CN115310581A (zh) | 一种忆阻器卷积神经网络权重训练方法及装置 | |
Taherinejad et al. | Fully digital write-in scheme for multi-bit memristive storage | |
Zhang et al. | Memristive circuit design of quantized convolutional auto-encoder | |
CN115796252A (zh) | 权重写入方法及装置、电子设备和存储介质 | |
Bhattacharjee et al. | Examining the role and limits of batchnorm optimization to mitigate diverse hardware-noise in in-memory computing | |
Lin et al. | A High-Speed and High-Efficiency Diverse Error Margin Write-Verify Scheme for an RRAM-Based Neuromorphic Hardware Accelerator | |
TWI794910B (zh) | 記憶體及用於基於記憶體的類神經網路的訓練方法 | |
CN113095496B (zh) | 一种提高存算一体阵列计算精度的电路和方法 | |
TWI845270B (zh) | 記憶體內計算記憶體裝置及記憶體內計算方法 | |
CN115310599A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |