CN112598123A - 神经网络的权值的量化方法、量化装置及存储介质 - Google Patents
神经网络的权值的量化方法、量化装置及存储介质 Download PDFInfo
- Publication number
- CN112598123A CN112598123A CN202011558175.6A CN202011558175A CN112598123A CN 112598123 A CN112598123 A CN 112598123A CN 202011558175 A CN202011558175 A CN 202011558175A CN 112598123 A CN112598123 A CN 112598123A
- Authority
- CN
- China
- Prior art keywords
- weight
- weights
- neural network
- quantization parameter
- updated
- 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
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 204
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012549 training Methods 0.000 claims description 38
- 230000001902 propagating effect Effects 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 11
- 238000013507 mapping Methods 0.000 abstract description 8
- 238000011002 quantification Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 239000000470 constituent Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
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/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
- G06N3/065—Analogue 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
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
一种用于神经网络的权值的量化方法、量化装置及存储介质。神经网络基于交叉阵列模拟存内计算系统实现,量化方法包括:获取权值的分布特性;以及根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。本公开的实施例所提供的量化方法不预先限定所使用的量化方法,而是根据权值的分布特性来确定用于量化权值的量化参数,以减小量化误差,从而使得在相同的映射开销下,神经网络的模型效果更好;另外,在相同的神经网络的模型效果下,映射开销更小。
Description
技术领域
本公开的实施例涉及一种用于神经网络的权值的量化方法、量化装置及存储介质。
背景技术
神经网络模型广泛应用于计算机视觉、语音识别、自然语言处理、强化学习等领域。但是,神经网络模型具有较高的复杂度,从而很难应用于计算速度和功率非常有限的边沿设备(例如,手机、智能传感器、可穿戴设备等)。
一种基于交叉阵列模拟存内计算(Crossbar-enabled analog computing-in-memory,CACIM)系统实现的神经网络可以降低神经网络模型的复杂度,使得神经网络模型可以应用于边沿设备。具体地,CACIM系统包括计算存储单元,可以在数据存储的地方进行数据计算,从而可以节省数据搬运带来的开销。此外,CACIM系统中的计算存储单元可以基于基尔霍夫电流定律和欧姆定律来完成乘加运算,从而可以减小系统的计算开销。
发明内容
本公开至少一实施例提供一种用于神经网络的权值的量化方法,神经网络基于交叉阵列模拟存内计算系统实现,方法包括:获取权值的分布特性;以及根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。
例如,在本公开至少一实施例提供的量化方法中,根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差,包括:获取候选分布库,候选分布库存储有多个分布模型;根据权值的分布特性,从候选分布库中选择与分布特性相对应的分布模型;以及根据所选的分布模型,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。
例如,本公开至少一实施例提供的量化方法还包括:使用初始量化参数对权值进行量化以得到经量化权值;以及使用经量化权值对神经网络进行训练,并基于训练结果更新权值以得到经更新权值。
例如,本公开至少一实施例提供的量化方法还包括:使用初始量化参数对权值进行量化以得到经量化权值;向经量化权值添加噪声以得到经加噪权值;以及使用经加噪权值对神经网络进行训练,并基于训练结果更新权值以得到经更新权值。
例如,在本公开至少一实施例提供的量化方法中,对神经网络进行训练,并基于训练结果更新权值以得到经更新权值,包括:对神经网络进行前向传播和反向传播;以及使用反向传播得到的梯度更新权值,以得到经更新权值。
例如,本公开至少一实施例提供的量化方法还包括:基于经更新权值,更新初始量化参数。
例如,在本公开至少一实施例提供的量化方法中,基于经更新权值,更新初始量化参数,包括:判断经更新权值是否与初始量化参数匹配,如果匹配,则不更新初始量化参数,如果不匹配,则更新初始量化参数。
例如,在本公开至少一实施例提供的量化方法中,判断经更新权值是否与初始量化参数匹配,包括:对经更新权值和初始量化参数进行匹配运算,以得到匹配运算结果;以及将匹配运算结果与阈值范围进行比较,如果匹配运算结果在阈值范围内,则判断经更新权值与初始量化参数匹配;如果匹配运算结果不在阈值范围内,则判断经更新权值与初始量化参数不匹配。
本公开至少一实施例还提供一种用于神经网络的权值的量化装置,神经网络基于交叉阵列模拟存内计算系统实现,装置包括第一单元和第二单元,第一单元被配置为获取权值的分布特性;第二单元被配置为根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。
例如,本公开至少一实施例提供的量化装置还包括第三单元和第四单元,第三单元被配置为使用初始量化参数对权值进行量化,以得到经量化权值;第四单元被配置为使用经量化权值,对神经网络进行训练,并基于训练结果更新权值,以得到经更新权值。
例如,本公开至少一实施例提供的量化装置还包括第三单元、第四单元和第五单元,第三单元被配置为使用初始量化参数对权值进行量化,以得到经量化权值;第五单元被配置为向经量化权值添加噪声,以得到经加噪权值;第四单元被配置为使用经加噪权值,对神经网络进行训练,并基于训练结果更新权值,以得到经更新权值。
例如,本公开至少一实施例提供的量化装置还包括第六单元,第六单元被配置为基于经更新权值,更新初始量化参数。
例如,在本公开至少一实施例提供的量化装置中,第六单元被配置为判断经更新权值是否与初始量化参数匹配,如果匹配,则不更新初始量化参数,如果不匹配,则更新初始量化参数。
本公开至少一实施例还提供一种用于神经网络的权值的量化装置,神经网络基于交叉阵列模拟存内计算系统实现,装置包括:处理器;存储器,包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现本公开提供的任一量化方法。
本公开至少一实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现本公开提供的任一量化方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种用于神经网络的权值的量化方法的流程图;
图2图示了根据本公开至少一实施例的神经网络的一个示例的示意图;
图3图示了神经网络的权值的概率密度分布的一个示例;
图4图示了本公开至少一实施例提供的一种量化方法的流程图;
图5图示了本公开至少一实施例提供的另一种量化方法的流程图;
图6为本公开至少一实施例提供的一种用于神经网络的权值的量化装置的示意框图;
图7为本公开至少一实施例提供的一种用于神经网络的权值的量化装置的示意框图;以及
图8为本公开至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开的实施例的以下说明清楚且简明,可省略已知功能和已知部件的详细说明。当本公开的实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同的参考标号表示。
利用交叉阵列模拟存内计算(Crossbar-enabled analog computing-in-memory,CACIM)系统实现神经网络需要进行映射,即需要将神经网络的权值写入到CACIM系统的计算存储单元。在进行上述映射时,可以对权值进行量化以降低权值的精度,从而减小映射的开销。但是,对权值进行量化会引入量化误差,从而影响神经网络的模型效果。需要说明的是,在数字计算系统中,权值的精度表示为了表示权值而使用的比特数;而在CACIM系统中,权值的精度表示为了表示权值而使用的模拟器件的水平数。
例如,在一个示例中,权值为一组32比特的浮点数:[0.4266,3.8476,2.0185,3.0996,2.2692,3.4748,0.3377,1.5991],采用向负无穷大的方向取整的量化方法对该组权值进行量化,则所得到的经过量化后的权值(经量化权值)为一组2比特的整数:[0,3,2,3,2,3,0,1],其中,权值和经量化权值之间的差值为量化误差。
在一种对CACIM系统实现的神经网络的权值进行量化的方法中,量化方法基于数字计算系统进行设计,例如,包括预先限定为均匀量化、对数量化或向负无穷大的方向取整等量化方法。但上述量化方法未充分考虑神经网络的权值的分布特性,所预先限定的量化方法解决的是有约束的最优化问题,无法求出最小量化误差,从而导致神经网络的模型效果较差。
本公开至少一实施例提供一种用于神经网络的权值的量化方法,神经网络基于交叉阵列模拟存内计算系统实现,该量化方法包括:获取权值的分布特性;以及根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。
本公开的实施例还提供对应于上述量化方法的量化装置和存储介质。
本公开的实施例提供的用于神经网络的权值的量化方法、量化装置及存储介质利用CACIM系统中的权值是用模拟量来表示的特性,提出了一种广义的基于权值的分布特性的量化方法,该量化方法不预先限定所使用的量化方法(例如,不预先限定使用针对数字计算系统所设计的量化方法),而是根据权值的分布特性来确定用于量化权值的量化参数,以减小量化误差,从而使得在相同的映射开销下,神经网络的模型效果更好;另外,在相同的神经网络的模型效果下,映射开销更小。
下面结合附图对本公开的实施例及其示例进行详细说明。
图1为本公开至少一实施例提供的一种用于神经网络的权值的量化方法的流程图。在本公开的实施例中,神经网络基于交叉阵列模拟存内计算系统实现。例如,如图1所示,该量化方法100包括步骤S110和S120。
步骤S110:获取权值的分布特性。
步骤S120:根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。
例如,交叉阵列模拟存内计算系统可以利用阻变存储器单元作为计算存储单元,进而利用阻变存储器单元阵列来实现神经网络。
需要说明的是,在本公开的实施例中,对阻变存储器单元的具体类型不作限制。例如,阻变存储器单元可以采用1R结构,即仅包括一个阻变元件。又例如,阻变存储器单元也可以采用1T1R结构,即包括一个晶体管和一个阻变元件。
例如,图2图示了根据本公开的实施例的神经网络的一个示例的示意图。在图2所示的示例中,利用M行N列的阻变存储器单元阵列来实现包括M个输入和N个输出的神经网络,M和N是大于1的正整数。如图2所示,阻变存储器单元阵列的M个输入(例如,电压激励V1至VM)作为神经网络的输入,阻变存储器单元阵列中的阻变存储器单元的电导值(例如,Gij)对应于神经网络的权值(例如,电导值G11对应于权值W11),阻变存储器单元阵列的N个输出(例如,输出电流I1至IN)作为神经网络的输出。例如,根据基尔霍夫电流定律和欧姆定律,阻变存储器单元阵列可以通过以下公式来实现乘加运算:
其中,i=1…M,j=1…N。
需要说明的是,图2所示的示例仅是示例性的,本公开的实施例包括但不限于此。例如,神经网络的输入和输出之间可以包括多个隐含层(图2中未示出)。例如,神经网络内部可以采用全连接结构也可以采用非全连接结构。例如,神经网络内部还可以包括激活函数电路(图2中未示出)。
在本公开的实施例中,可以利用阻变存储器单元的电导值来表示神经网络的权值,即可以利用模拟量来表示神经网络的权值,从而使得权值的量化方法可以不局限于针对数字计算系统所设计的量化方法。
对于步骤S110,可以通过多种方式来获取权值的分布特性,本公开的实施例对此不作限制。
例如,可以直接获取权值的分布特性。又例如,可以先获取神经网络的权值,然后通过计算来间接获取权值的分布特性。
例如,获取可以包括读取、导入等多种获得数据的方式。例如,权值的分布特性可以被预先存储在存储介质中,直接访问该存储介质并读取即可获取该权值的分布特性。
例如,权值的分布特性可以包括权值的概率密度分布。
例如,图3图示了神经网络的权值的概率密度分布的一个示例。图3示出了512000个权值的概率密度分布,横坐标为权值,纵坐标为权值的概率密度。
需要说明的是,在本公开的实施例中,权值的概率密度分布作为权值的分布特性仅是示例性的,本公开的实施例包括但不限于此,例如还可以采用权值的其它特性作为权值的分布特性。例如,权值的分布特性也可以包括权值的累积概率密度分布。
对于步骤S120,可以根据权值的分布特性,以减小量化权值的量化误差为目标,例如以最小化量化误差为目标,从而确定用于量化权值的量化参数。
例如,在一些实施例中,可以直接根据权值的分布特性,确定量化参数。
例如,在一个示例中,可以根据权值的分布特性,利用劳埃德算法来确定量化参数。例如,对于图3所示的权值的概率密度分布,若要进行4个水平数的量化,利用劳埃德算法可以确定初始量化参数,该初始量化参数包括4个量化值:[-0.0618,-0.0036,0.07,0.1998]和3个分界点:[-0.0327,0.0332,0.1349],其中,分界点一般为相邻两个量化值的平均值,例如分界点-0.0327为相邻两个量化值-0.0618和-0.0036的平均值。
需要说明的是,在本公开的实施例中,劳埃德算法仅是示例性的,本公开的实施例包括但不限于此,例如还可以采用以最小化量化误差为目标的其他算法来确定量化参数。例如,可以根据权值的分布特性,采用K均值聚类算法来确定量化参数。
又例如,在一些实施例中,还可以间接根据权值的分布特性,确定量化参数。
例如,在一个示例中,根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差,包括:获取候选分布库,候选分布库存储有多个分布模型;根据权值的分布特性,从候选分布库中选择与分布特性相对应的分布模型;以及根据所选的分布模型,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。
例如,候选分布库可以是预先设定的,并可以通过读取、导入等多种方式来获取,本公开的实施例对此不作限制。
例如,根据权值的分布特性,从候选分布库中选择与分布特性相对应的分布模型,包括:分析权值的分布特性,从候选分布库中选择分布特性与权值的分布特性最相近的分布模型。
例如,分析图3所示的权值的概率密度分布,可以确定候选分布库中的高斯分布模型与图3所示的权值的分布特性最相近,从而可以根据高斯分布,利用劳埃德算法来确定初始量化参数。
在本公开的实施例中,利用CACIM系统中的权值是用模拟量来表示的特性,提出了一种广义的基于权值的分布特性的量化方法,该量化方法不预先限定所使用的量化方法(例如,不预先限定使用针对数字计算系统所设计的量化方法),而是根据权值的分布特性来确定用于量化权值的量化参数,以减小量化误差,从而使得在相同的映射开销下,神经网络的模型效果更好;另外,在相同的神经网络的模型效果下,映射开销更小。
例如,本公开至少一实施例提供的量化方法100还包括步骤S130和S140。
步骤S130:使用初始量化参数对权值进行量化以得到经量化权值。
步骤S140:使用经量化权值对神经网络进行训练,并基于训练结果更新权值以得到经更新权值。
对于步骤S130,使用初始量化参数对权值进行量化,可以得到精度降低的经量化权值。
例如,在一个示例中,所确定的初始量化参数包括4个量化值:[-0.0618,-0.0036,0.07,0.1998]和3个分界点:[-0.0327,0.0332,0.1349],则使用初始量化参数对权值进行量化以得到经量化权值可以表示为:
其中,x指代权值,y指代经量化权值。
例如,一组权值为[-0.0185,-0.0818,0.1183,-0.0102,0.1428],则使用y=f(x)进行量化后可以得到一组经量化权值[-0.0036,-0.0618,0.07,-0.0036,0.1998]。
对于步骤S140,获得经量化权值后,使用该经量化权值对神经网络进行训练,例如可以进行片外训练,并基于训练结果更新权值。
例如,在一个示例中,对神经网络进行训练,并基于训练结果更新权值以得到经更新权值,包括:对神经网络进行前向传播和反向传播;使用反向传播得到的梯度更新权值,以得到经更新权值。
例如,在前向传播过程中,神经网络的输入被逐层处理以产生输出;在反向传播过程中,将输出与期望的误差的平方和作为目标函数,逐层求出目标函数对权值的偏导数,构成目标函数对权值向量的梯度;然后基于梯度对权值进行更新。
在本公开的实施例中,仅考虑了量化误差对神经网络的模型效果的影响,而权值的写误差和读误差都可能导致神经网络的模型效果退化,鲁棒性差。在本公开的一些其他实施例中,向经量化权值添加噪声,并利用添加噪声的经量化权值进行片外训练,以使得得到的经更新权值具有更好的鲁棒性。
例如,本公开至少一实施例提供的量化方法100还包括步骤S130’、S135和S140’。
步骤S130’:使用初始量化参数对权值进行量化以得到经量化权值。
步骤S135:向经量化权值添加噪声以得到经加噪权值。
步骤S140’:使用经加噪权值对神经网络进行训练,并基于训练结果更新权值以得到经更新权值。
对于步骤S130’,其与步骤S130类似,在此不再赘述。
对于步骤S135,获得经量化权值后,可以通过向经量化权值添加噪声以得到经加噪权值。
例如,在一个示例中,获得经量化权值后,可以通过向经量化权值添加高斯分布噪声以得到经加噪权值。例如,高斯分布噪声的均值可以为0,标准差可以为经量化权值的绝对值中的最大值乘以某一比例系数,例如2%。
例如,所获得的一组经量化权值为[-0.0036,-0.0618,0.07,-0.0036,0.1998],高斯分布噪声的均值为0,标准差为0.1998*0.02=0.003996,可以得到一组噪声值[0.0010,0.0019,0.0047,-0.0023,-0.0015],将该组噪声值添加到该组经量化权值可以得到一组经加噪权值[-0.0026,-0.0599,0.0747,-0.0058,0.1983]。
对于步骤S140’,其与步骤S140类似,仅是使用经加噪权值代替经量化权值进行片外训练,在此不再赘述。
在本公开的实施例中,使用对经量化权值添加噪声后得到的经加噪权值进行片外训练,从而使得得到的经更新权值具有更好的鲁棒性。此外,在本公开的实施例中,将添加噪声和量化结合起来进行片外训练,而不是分开进行训练,可以有效地降低训练成本。
例如,本公开至少一实施例提供的量化方法100还包括步骤S150。
步骤S150:基于经更新权值,更新初始量化参数。
对于步骤S150,可以根据经更新权值,对初始量化参数进行调整。
例如,在一个示例中,一旦获得经更新权值,就对初始量化参数进行更新。
例如,在另一个示例中,基于经更新权值,更新初始量化参数,包括:判断经更新权值是否与初始量化参数匹配,如果匹配,则不更新初始量化参数,如果不匹配,则更新初始量化参数。在本示例中,仅在不匹配的情况下才对初始化参数进行更新,可以有效地降低更新频率。
例如,判断经更新权值是否与初始量化参数匹配,包括:对经更新权值和初始量化参数进行匹配运算,以得到匹配运算结果;将匹配运算结果与阈值范围进行比较,如果匹配运算结果在阈值范围内,则判断经更新权值与初始量化参数匹配;如果匹配运算结果不在阈值范围内,则判断经更新权值与初始量化参数不匹配。
例如,可以定义运算A⊙B,其中A和B为维度相同的两个矩阵,匹配运算A⊙B表示对矩阵A和矩阵B进行矩阵点乘运算,并将矩阵点乘运算结果中的各元素求和。例如,假定权值矩阵为W,经更新权值矩阵为qW,可以定义匹配运算为(W⊙qW)/(qW⊙qW),例如阈值范围为[0.9,1.1],在进行匹配运算后,如果匹配运算结果在阈值范围内,则不更新初始量化参数,如果匹配运算结果不在阈值范围内,则更新初始量化参数。需要说明的是,上述匹配运算和阈值范围仅是示例性的,而不是对本公开的限制。
在本公开的上述实施例和示例中,以对神经网络进行一次片外训练为例进行说明,本公开的实施例包括但不限于此。例如,还可以对神经网络进行多次训练以更新权值和更新量化参数。
例如,图4图示了本公开的至少一实施例提供的一种量化方法200的流程图。在图4所示的示例中,量化方法200包括步骤S210至S280,其对神经网络进行多次训练以更新权值和更新量化参数,例如,使用经量化权值进行每一次训练。如图4所示,在步骤S210处,确定初始量化参数,并设置初始迭代次数i=0;在步骤S220处,对权值进行量化以得到经量化权值;在步骤S230处,使用经量化权值进行前向传播和反向传播;在步骤S240处,使用反向传播得到的梯度更新权值以得到经更新权值;在步骤S250处,判断经更新权值是否与当前量化参数匹配,如果是,继续进行步骤S260,如果否,跳转到步骤S280;在步骤S260处,判读迭代次数是否大于最大迭代次数,如果是,流程结束,如果否,继续进行步骤S270;在步骤S270处,将迭代次数加1(即,i=i+1),然后跳转到步骤S220;在步骤S280处,更新当前量化参数。在本示例中,在i等于0的情况下,当前量化参数即为初始量化参数;在i等于其他值的情况下,若未进行过步骤S280,则当前量化参数即为初始量化参数,若进行过步骤S280,则当前量化参数即为最近的被更新过的量化参数。需要说明的是,在本示例中,对神经网络进行多次训练中的每一次训练的过程与量化方法100中对神经网络进行一次训练的相关实施例和示例中的过程基本相同,在此不再赘述。
例如,图5图示了本公开至少一实施例提供的另一种量化方法300的流程图。在图5所示的示例中,量化方法300包括步骤S310至S390,其对神经网络进行多次训练以更新权值和更新量化参数,例如,使用对经量化权值添加噪声后得到的经加噪权值进行每一次训练。如图5所示,在步骤S310处,确定初始量化参数,并设置初始迭代次数i=0;在步骤S320处,对权值进行量化以得到经量化权值;在步骤S330处,向经量化权值添加噪声以得到经加噪权值;在步骤S340处,使用经加噪权值进行前向传播和反向传播;在步骤S350处,使用反向传播得到的梯度更新权值以得到经更新权值;在步骤S360处,判断经更新权值是否与当前量化参数匹配,如果是,继续进行步骤S370,如果否,跳转到步骤S390;在步骤S370处,判读迭代次数是否大于最大迭代次数,如果是,流程结束,如果否,继续进行步骤S380;在步骤S380处,将迭代次数加1(即,i=i+1),跳转到步骤S320;在步骤S390处,更新当前量化参数。在本示例中,在i等于0的情况下,当前量化参数即为初始量化参数;在i等于其他值的情况下,若未进行过步骤S390,则当前量化参数即为初始量化参数,若进行过步骤S390,则当前量化参数即为最近的被更新过的量化参数。需要说明的是,在本示例中,对神经网络进行多次训练中的每一次训练的过程与上述对神经网络进行一次训练的相关实施例和示例中的过程基本相同,为避免重复,在此不再赘述。
图6为本公开至少一实施例提供的一种用于神经网络的权值的量化装置400的示意框图。在本公开的实施例中,神经网络基于交叉阵列模拟存内计算系统实现。如图6所示,该量化装置400包括第一单元410和第二单元420。
该第一单元410被配置为获取权值的分布特性。例如,该第一单元410可以实现步骤S110,其具体实现方法可以参考步骤S110的相关描述,在此不再赘述。
该第二单元420被配置为根据权值的分布特性,确定用于量化权值的初始量化参数,以减小量化权值的量化误差。例如,该第二单元420可以实现步骤S120,其具体实现方法可以参考步骤S120的相关描述,在此不再赘述。
例如,本公开至少一实施例提供的量化装置400还包括第三单元430和第四单元440。
该第三单元430被配置为使用初始量化参数对权值进行量化,以得到经量化权值。例如,该第三单元430可以实现步骤S130,其具体实现方法可以参考步骤S130的相关描述,在此不再赘述。
该第四单元440被配置为使用经量化权值,对神经网络进行训练,并基于训练结果更新权值,以得到经更新权值。例如,该第四单元440可以实现步骤S140,其具体实现方法可以参考步骤S140的相关描述,在此不再赘述。
例如,本公开至少一实施例提供的量化装置400还包括第三单元430、第四单元440和第五单元450。
该第三单元430被配置为使用初始量化参数对权值进行量化,以得到经量化权值。例如,该第三单元430可以实现步骤S130’,其具体实现方法可以参考步骤S130’的相关描述,在此不再赘述。
该第五单元450被配置为向经量化权值添加噪声,以得到经加噪权值。例如,该第五单元450可以实现步骤S135,其具体实现方法可以参考步骤S135的相关描述,在此不再赘述。
该第四单元440被配置为使用经加噪权值,对神经网络进行训练,并基于训练结果更新权值,以得到经更新权值。例如,该第四单元440可以实现步骤S140’,其具体实现方法可以参考步骤S140’的相关描述,在此不再赘述。
例如,本公开至少一实施例提供的量化装置400还包括第六单元460。
该第六单元460被配置为基于经更新权值,更新初始量化参数。例如,该第六单元460可以实现步骤S150,其具体实现方法可以参考步骤S150的相关描述,在此不再赘述。
例如,在本公开至少一实施例提供的量化装置400中,第六单元460被配置为判断经更新权值是否与初始量化参数匹配,如果匹配,则不更新初始量化参数,如果不匹配,则更新初始量化参数。例如,该第六单元460可以根据经更新权值是否与初始量化参数匹配来确定是否更新初始量化参数,其具体实现方法可以参考步骤S150的示例中的相关描述,在此不再赘述。
需要说明的是,图6所示的量化装置400中的各个单元可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些单元可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的单元。作为示例,图6所示的量化装置400可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其它能够执行程序指令的装置,但不限于此。
另外,尽管以上在描述量化装置400时将其划分为用于分别执行相应处理的单元,但是,本领域技术人员清楚的是,各单元所执行的处理也可以在不进行任何具体单元划分或者各单元之间并无明确划界的情况下执行。此外,图6所示的量化装置400并不限于包括以上描述的单元,而是还可以根据需要增加一些其它单元(例如,存储单元、数据处理单元等),或者可以对以上单元进行组合。
图7为本公开至少一实施例提供的一种用于神经网络的权值的量化装置500的示意框图。在本公开的实施例中,神经网络基于交叉阵列模拟存内计算系统实现。如图7所示,量化装置500包括处理器510和存储器520。该存储器520包括一个或多个计算机程序模块(例如,非暂时性计算机可读指令)。该处理器510被配置为执行一个或多个计算机程序模块,以实现上文所述的量化方法100、200或300中的一个或多个步骤。
例如,处理器510可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器510可以为通用处理器或专用处理器,可以控制量化装置500中的其它组件以执行期望的功能。
例如,存储器520可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器510可以运行一个或多个计算机程序模块,以实现量化装置500的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
图8为本公开至少一实施例提供的一种存储介质的示意图。如图8所示,存储介质600用于存储非暂时性计算机可读指令610。例如,当非暂时性计算机可读指令610由计算机执行时可以执行根据上文所述的量化方法100、200或300中的一个或多个步骤。
需要说明的是,为表示清楚、简洁,本公开实施例并没有给出量化装置400、500和存储介质600的全部组成单元。为实现量化装置400、500和存储介质600的必要功能,本领域技术人员可以根据具体需要提供、设置其他未示出的组成单元,本公开的实施例对此不作限制。
另外,在本公开的实施例中,量化装置400、500和存储介质600的具体功能和技术效果可以参考上文中关于量化方法100、200或300的描述,在此不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。
Claims (10)
1.一种用于神经网络的权值的量化方法,所述神经网络基于交叉阵列模拟存内计算系统实现,所述方法包括:
获取所述权值的分布特性;以及
根据所述权值的分布特性,确定用于量化所述权值的初始量化参数,以减小量化所述权值的量化误差。
2.根据权利要求1所述的方法,其中,根据所述权值的分布特性,确定用于量化所述权值的初始量化参数,以减小量化所述权值的量化误差,包括:
获取候选分布库,所述候选分布库存储有多个分布模型;
根据所述权值的分布特性,从所述候选分布库中选择与所述分布特性相对应的分布模型;以及
根据所选的分布模型,确定用于量化所述权值的初始量化参数,以减小量化所述权值的量化误差。
3.根据权利要求1所述的方法,还包括:
使用所述初始量化参数对所述权值进行量化以得到经量化权值;以及
使用所述经量化权值对所述神经网络进行训练,并基于训练结果更新所述权值以得到经更新权值。
4.根据权利要求1所述的方法,还包括:
使用所述初始量化参数对所述权值进行量化以得到经量化权值;
向所述经量化权值添加噪声以得到经加噪权值;以及
使用所述经加噪权值对所述神经网络进行训练,并基于训练结果更新所述权值以得到经更新权值。
5.根据权利要求3或4所述的方法,其中,对所述神经网络进行训练,并基于训练结果更新所述权值以得到经更新权值,包括:
对所述神经网络进行前向传播和反向传播;以及
使用所述反向传播得到的梯度更新所述权值,以得到所述经更新权值。
6.根据权利要求5所述的方法,还包括:
基于所述经更新权值,更新所述初始量化参数。
7.根据权利要求6所述的方法,其中,基于所述经更新权值,更新所述初始量化参数,包括:
判断所述经更新权值是否与所述初始量化参数匹配,
如果匹配,则不更新所述初始量化参数,
如果不匹配,则更新所述初始量化参数。
8.根据权利要求7所述的方法,其中,判断所述经更新权值是否与所述初始量化参数匹配,包括:
对所述经更新权值和所述初始量化参数进行匹配运算,以得到匹配运算结果;以及
将所述匹配运算结果与阈值范围进行比较,
如果所述匹配运算结果在所述阈值范围内,则判断所述经更新权值与所述初始量化参数匹配;
如果所述匹配运算结果不在所述阈值范围内,则判断所述经更新权值与所述初始量化参数不匹配。
9.一种用于神经网络的权值的量化装置,所述神经网络基于交叉阵列模拟存内计算系统实现,其中,所述装置包括第一单元和第二单元,
所述第一单元被配置为获取所述权值的分布特性;
所述第二单元被配置为根据所述权值的分布特性,确定用于量化所述权值的初始量化参数,以减小量化所述权值的量化误差。
10.根据权利要求9所述的装置,还包括第三单元和第四单元,
所述第三单元被配置为使用所述初始量化参数对所述权值进行量化,以得到经量化权值;
所述第四单元被配置为使用所述经量化权值,对所述神经网络进行训练,并基于训练结果更新所述权值,以得到经更新权值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011558175.6A CN112598123A (zh) | 2020-12-25 | 2020-12-25 | 神经网络的权值的量化方法、量化装置及存储介质 |
US18/269,445 US20240046086A1 (en) | 2020-12-25 | 2021-12-13 | Quantization method and quantization apparatus for weight of neural network, and storage medium |
PCT/CN2021/137446 WO2022135209A1 (zh) | 2020-12-25 | 2021-12-13 | 神经网络的权值的量化方法、量化装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011558175.6A CN112598123A (zh) | 2020-12-25 | 2020-12-25 | 神经网络的权值的量化方法、量化装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112598123A true CN112598123A (zh) | 2021-04-02 |
Family
ID=75202262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011558175.6A Pending CN112598123A (zh) | 2020-12-25 | 2020-12-25 | 神经网络的权值的量化方法、量化装置及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240046086A1 (zh) |
CN (1) | CN112598123A (zh) |
WO (1) | WO2022135209A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022135209A1 (zh) * | 2020-12-25 | 2022-06-30 | 清华大学 | 神经网络的权值的量化方法、量化装置及存储介质 |
CN115905546A (zh) * | 2023-01-06 | 2023-04-04 | 之江实验室 | 基于阻变存储器的图卷积网络文献识别装置与方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117077726B (zh) * | 2023-10-17 | 2024-01-09 | 之江实验室 | 一种生成存内计算神经网络模型的方法、装置及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
CN109389208B (zh) * | 2017-08-09 | 2021-08-31 | 上海寒武纪信息科技有限公司 | 数据的量化装置及量化方法 |
CN108288093A (zh) * | 2018-01-31 | 2018-07-17 | 湖北工业大学 | Bp神经网络权值确定方法、系统以及预测方法、系统 |
CN112598123A (zh) * | 2020-12-25 | 2021-04-02 | 清华大学 | 神经网络的权值的量化方法、量化装置及存储介质 |
-
2020
- 2020-12-25 CN CN202011558175.6A patent/CN112598123A/zh active Pending
-
2021
- 2021-12-13 US US18/269,445 patent/US20240046086A1/en active Pending
- 2021-12-13 WO PCT/CN2021/137446 patent/WO2022135209A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022135209A1 (zh) * | 2020-12-25 | 2022-06-30 | 清华大学 | 神经网络的权值的量化方法、量化装置及存储介质 |
CN115905546A (zh) * | 2023-01-06 | 2023-04-04 | 之江实验室 | 基于阻变存储器的图卷积网络文献识别装置与方法 |
Also Published As
Publication number | Publication date |
---|---|
US20240046086A1 (en) | 2024-02-08 |
WO2022135209A1 (zh) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112598123A (zh) | 神经网络的权值的量化方法、量化装置及存储介质 | |
US11373092B2 (en) | Training of artificial neural networks | |
US20240112029A1 (en) | Acceleration of model/weight programming in memristor crossbar arrays | |
CN112070204B (zh) | 一种基于阻变存储器的神经网络映射方法、加速器 | |
CN110738315A (zh) | 一种神经网络精度调整方法及装置 | |
CN113741858B (zh) | 存内乘加计算方法、装置、芯片和计算设备 | |
US20200301995A1 (en) | Information processing apparatus, information processing method, and program | |
US11341400B1 (en) | Systems and methods for high-throughput computations in a deep neural network | |
CN111160000A (zh) | 作文自动评分方法、装置终端设备及存储介质 | |
CN116188878A (zh) | 基于神经网络结构微调的图像分类方法、装置和存储介质 | |
Oh et al. | Non-Uniform Step Size Quantization for Accurate Post-Training Quantization | |
CN113947206A (zh) | 一种深度神经网络量化方法及系统及装置及介质 | |
US10140581B1 (en) | Conditional random field model compression | |
CN113011532A (zh) | 分类模型训练方法、装置、计算设备及存储介质 | |
CN110443346B (zh) | 一种基于输入特征重要性的模型解释方法及装置 | |
CN111401569A (zh) | 超参数优化方法、装置和电子设备 | |
CN113554097B (zh) | 模型量化方法、装置、电子设备和存储介质 | |
US11699077B2 (en) | Multi-layer neural network system and method | |
KR102607993B1 (ko) | 양자화를 이용한 뉴럴 네트워크 연산 방법 및 장치 | |
CN113902114A (zh) | 神经网络模型的量化方法、装置和系统、电子设备和存储介质 | |
CN114444667A (zh) | 训练神经网络的方法及装置、电子设备 | |
CN114519423A (zh) | 用于压缩神经网络的方法和装置 | |
CN111476356A (zh) | 忆阻神经网络的训练方法、装置、设备及存储介质 | |
CN116157808B (zh) | 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的系统和方法 | |
KR102441442B1 (ko) | 그래프 컨볼루션 네트워크 학습 방법 및 장치 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210402 |
|
RJ01 | Rejection of invention patent application after publication |