CN112085186B - 一种神经网络的量化参数确定方法及相关产品 - Google Patents
一种神经网络的量化参数确定方法及相关产品 Download PDFInfo
- Publication number
- CN112085186B CN112085186B CN201910888626.3A CN201910888626A CN112085186B CN 112085186 B CN112085186 B CN 112085186B CN 201910888626 A CN201910888626 A CN 201910888626A CN 112085186 B CN112085186 B CN 112085186B
- Authority
- CN
- China
- Prior art keywords
- data
- quantization
- quantized
- bit width
- determining
- 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
- 238000013139 quantization Methods 0.000 title claims abstract description 393
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 262
- 238000000034 method Methods 0.000 title claims abstract description 245
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 39
- 238000003860 storage Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims description 101
- 238000012549 training Methods 0.000 claims description 85
- 230000015654 memory Effects 0.000 claims description 75
- 230000008859 change Effects 0.000 claims description 62
- 210000002569 neuron Anatomy 0.000 claims description 42
- 238000012804 iterative process Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 238000012544 monitoring process Methods 0.000 abstract description 3
- 238000007667 floating Methods 0.000 description 67
- 230000006870 function Effects 0.000 description 44
- 238000012545 processing Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 13
- 210000002364 input neuron Anatomy 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 230000002829 reductive effect Effects 0.000 description 12
- 238000005457 optimization Methods 0.000 description 10
- 230000004913 activation Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 241000282472 Canis lupus familiaris Species 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000009966 trimming Methods 0.000 description 5
- 241000282326 Felis catus Species 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000004393 prognosis Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1476—Error detection or correction of the data by redundancy in operation in neural networks
-
- 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
-
- 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
- G06N3/045—Combinations of networks
-
- 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
- G06N3/047—Probabilistic or stochastic networks
-
- 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
- G06N3/048—Activation functions
-
- 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
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种神经网络的量化参数确定方法及相关产品,相关产品中的板卡包括:存储器件、接口装置和控制器件以及人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。所述板卡可以用于执行人工智能运算。
Description
相关申请:
本申请要求2019年6月27日提交,申请号为201910570125.0,发明名称为“一种神经网络的量化参数确定方法及相关产品”的优先权。
本申请要求2019年6月12日提交,申请号为201910505239.7,发明名称为“神经网络量化方法及装置以及相关产品”的优先权。
本申请要求2019年6月18日提交,申请号为201910528537.8,发明名称为“量化参数调整方法、装置及相关产品”的优先权。
本申请要求2019年6月14日提交,申请号201910515355.7,发明名称为“一种神经网络运算方法及装置以及相关产品”的优先权。
技术领域
本公开的实施例涉及一种神经网络的量化参数确定方法及相关产品。
背景技术
神经网络(neural network,NN)是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的识别分类模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。
在实际运用中,神经网络的数据常用32Bit,现有的神经网络的数据占用的比特位较多,虽然确保了精度,但是需要较高的存储空间以及处理带宽,提高了成本。
发明内容
为了解决上述所述的技术问题,本公开提出一种神经网络的量化参数确定方法及相关产品。
为实现上述目的,本公开提供一种神经网络的量化参数确定方法,所述方法包括:
遍历所述神经网络对应的计算图中的算子,从所述计算图中选择当前算子和待融合算子;
根据人工智能处理器的片上存储器的可用存储容量,确定拆分尺寸;
根据所述拆分尺寸将所述待融合算子的输出数据拆分成多个数据块;
基于所述待融合算子的输出数据的数据块的尺寸,映射得到与对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块的尺寸;
所述待融合算子的输出数据的数据块、对应的所述当前算子的输入数据的数据块、以及所述当前算子与待融合算子之间的中间数据的数据块作为待量化数据,获得每种待量化数据的统计结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据;
利用每种待量化数据的统计结果以及数据位宽确定对应量化参数;其中,所述量化参数用于人工智能处理器对神经网络运算过程中的数据进行对应量化;所述量化参数为点位置参数。
为实现上述目的,本公开提供一种神经网络的量化参数确定装置,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述方法的步骤。
为实现上述目的,本公开提供一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述所述的方法的步骤。
在神经网络运算过程中,量化时利用本公开的技术方案确定量化参数,该量化参数用于人工智能处理器对神经网络运算过程中的数据进行量化,将高精度数据转换为低精度定点数,可以减少神经网络运算过程中涉及的数据存储所有的空间大小。例如:float32转化为fix8可以将模型参数减少4倍。由于数据存储空间变小,使得神经网络部署时使用更小的空间,使得人工智能处理器芯片上的片上内存可以容纳更多的数据,减少了人工智能处理器芯片访存数据,提高计算性能
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为神经网络结构示意图;
图2为本申请提出的一种神经网络的量化参数确定方法流程图;
图3为对称的定点数表示示意图;
图4为引入偏移量的定点数表示示意图;
图5a为训练过程中神经网络的权值数据变动幅度曲线图之一;
图5b为训练过程中神经网络的权值数据变动幅度曲线图之二;
图6为确定目标迭代间隔的方法流程图之一;
图7为确定目标迭代间隔的方法流程图之二;
图8为确定目标迭代间隔的方法流程图之三;
图9为本申请提出的一种神经网络的量化参数确定装置的硬件配置的框图;
图10为本申请提出的神经网络的量化参数确定装置应用于人工智能处理器芯片的应用示意图;
图11为本申请提出的一种神经网络的量化参数确定设备的功能框图;
图12为本申请实施例的板卡的结构框图;
图13为待融合层的输出数据的划分方式;
图14为根据本申请一个实施例基于所述输出块映射得到与所述输出块对应的所述当前层的输入数据的数据块尺寸、以及所述当前层与待融合层之间的中间数据的数据块尺寸的示意图;
图15为待量化数据确定的一工程流程图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
技术术语定义:
浮点数:IEEE浮点标准用V=(-1)∧sign*mantissa*2∧E的形式表示一个数。其中,sign为符号位,0表示正数,1代表负数;E表示阶码,对浮点数进行加权,权值是2的E次幂(可能是负数次幂);mantissa表示尾数,mantissa是一个二进制小数,其范围是1~2-ε,或者是0-ε。浮点数表示在计算机中的表示分为三个字段,分别对这些字段进行编码:
(1)一个单独的符号位s直接编码符号s。
(2)k位的阶码字段编码阶码,exp=e(k-1)......e(1)e(0)。
(3)n位的小数字段mantissa,编码尾数。但编码结果依赖阶码阶段是否全为0。
定点数:由共享指数(exponent)、符号位(sign)、尾数(mantissa)三部分构成。其中,共享指数是说指数在需要量化的一个实数集合内共享;符号位标志了定点数的正负。尾数决定了定点数的有效数字位数,即精度。以8bit定点数类型为例,其数值计算方法为:
value=(-1)sign×(mantissa)×2(exponent-127)
二进制小数:任意十进制数都可以用公式∑j*10i表示。例如十进制数12.34,以公式1表示为:12.34=1*101+2*100+3*10-1+4*10-2,小数点的左边计为10的正次幂,小数点的右边计为10的负次幂。同理,二进制小数也可以用这种方式表达,小数点左边为2的正次幂,小数点的右边计为2的负次幂,十进制小数5.75可用二进制小数101.11表示,该二进制小数表示为5.75=1*22+0*21+1*20+1*2-1+1*2-2。
溢出:在定点运算器中,数的表示有一定的范围。在运算过程中。若数的大小超出了定点数能表示的范围,称为“溢出”。
KL(Kullback–Leibler divergence)散度:又称为相对熵(relative entropy)、信息散度(information divergence)、信息增益(information gain)。KL散度是两个概率分布P和Q之间差别的非对称性的度量。KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。典型情况下,P表示数据的真实分布,Q表示数据的理论分布、模型分布、或P的近似分布。
数据位宽:数据用多少个比特位来表示。
量化:将以往用32bit或者64bit表达的高精度数转换成占用较少内存空间的定点数的过程,高精度数转换为定点数的过程就会在精度上引起一定的损失。
下面结合附图,对本公开实施例提供的一种神经网络的量化参数确定方法及相关产品的具体实施方式进行详细说明。
神经网络(neural network,NN)是一种模仿生物神经网络的结构和功能的数学模型,神经网络由大量的神经元连接进行计算。因此,神经网络是一种计算模型,由大量的节点(或称“神经元”)相互的连接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个神经元之间的连接都代表一个通过该连接信号的加权值,称之为权值,这相当于神经网络的记忆。神经网络的输出则依神经元之间的连接方式以及权值和激活函数的不同而不同。在神经网络中,神经元是神经网络的基本单位。它获得一定数量的输入和一个偏置,当信号(值)到达时会乘以一个权值。连接是将一个神经元连接到另一层或同一层的另一个神经元,连接伴随着与之相关联的权值。另外,偏置是神经元的额外输入,它始终为1,并具有自己的连接权值。这确保即使所有的输入都为空(全部为0),神经元也会激活。
在应用中,如果不对神经网络中的神经元应用一个非线性函数,神经网络只是一个线性函数而已,那么它并不比单个神经元强大。如果让一个神经网络的输出结果在0到1之间,例如,在猫狗鉴别的例子中,可以把接近于0的输出视为猫,将接近于1的输出视为狗。为了完成这个目标,在神经网络中引入激活函数,比如:sigmoid激活函数。关于这个激活函数,只需要知道它的返回值是一个介于0到1的数字。因此,激活函数用于将非线性引入神经网络,它会将神经网络运算结果缩小到较小的范围内。实际上,激活函数怎样表达并不重要,重要的是通过一些权值将一个非线性函数参数化,可以通过改变这些权值来改变这个非线性函数。
如图1所示,为神经网络结构示意图。在图1所示的神经网络中,包括三层,分别为输入层、隐含层以及输出层,图1所示的隐含层为5层。其中,神经网络的最左边一层被称为输入层,输入层的神经元被称为输入神经元。输入层作为神经网络中的第一层,接受需要输入信号(值)并将它们传递到下一层。它一般不对输入信号(值)做操作,并且没有关联的权值和偏置。在图1所示的神经网络中,有4个输入信号x1,x2,x3,x4。
隐含层包含神经元(节点)。在图1所示的神经网络中,有5个隐含层。第一隐含层有4个神经元(节点),第2层有5个神经元,第3层有6个神经元,第4层有4个神经元,第5层有3个神经元。最后,隐含层将神经元的运算值传递给输出层。图1所示的神经网络将5个隐含层中每个神经元之间进行完全连接,即每个隐含层的每一个神经元都与下一层的每一个神经元有连接。需要说明的是,并不是每个神经网络的隐含层是完全连接的。
图1神经网络的最右边一层被称为输出层,输出层的神经元被称为输出神经元。输出层接收来自最后一个隐含层的输出。在图1所示的神经网络中,输出层有3个神经元,有3个输出信号y1,y2,y3。
在实际应用中,预先给大量的样本数据(包含输入和输出)对初始神经网络进行训练,训练完成后,获得训练后的神经网络。该神经网络对于将来的真实环境的输入能给出一个正确的输出。
在开始讨论神经网络的训练之前,需要定义损失函数。损失函数是一个衡量神经网络在执行某个特定任务的表现函数。在有些实施例中,损失函数可以如此得到:在训练某神经网络过程中,对每一个样本数据,都沿着神经网络传递得到输出值,然后将这个输出值与期望值做差再求平方,这样计算出来的损失函数就是预测值与真实值之间的距离,而训练神经网络目的就是将这个距离或损失函数的取值减小。在某些实施例中,损失函数可以表示为:
上式中,y代表期望值,指样本数据集合中每个样本数据通过神经网络得到的实际结果,i是样本数据集合中每个样本数据的索引。表示期望值y与实际结果之间的误差值,m为样本数据集合中样本数据的个数,还是以猫狗鉴别为例。有一个数据集,由猫和狗的图片组成,如果图片是狗,对应的标签是1,如果图片是猫,对应的标签是0。这个标签就是对应上述公式中的期望值y,在向神经网络传递每一张样本图片的时候,实际是想通过神经网络获得识别结果。为了计算损失函数,必须遍历样本数据集中的每一张样本图片,获得每一张样本图片对应的实际结果然后按照上面的定义计算损失函数。如果损失函数比较大,那么说明神经网络还没有训练好,需要对权值进一步调整。
在开始训练神经网络的时候,要对权值进行随机初始化。显然,初始化的神经网络并不会提供一个很好的结果。在训练的过程中,假设以一个很糟糕的神经网络开始,通过训练,可以得到一个具有高准确率的网络。
神经网络的训练过程分为两个阶段,第一阶段是信号的正向处理,从输入层经过隐含层,最后到达输出层。第二阶段是反向传播梯度,从输出层到隐含层,最后到输入层,根据梯度依次调节神经网络中每层的权值和偏置。
在正向处理的过程中,将输入值输入到神经网络的输入层,并从神经网络的输出层得到所谓的预测值的输出。当输入值提供给神经网络的输入层时,它没有进行任何操作。在隐含层中,第二个隐含层从第一个隐含层获取预测中间结果值并进行计算操作和激活操作,然后将得到的预测中间结果值传递给下一个隐含层。在后面的层中执行相同的操作,最后在神经网络的输出层得到输出值。
正向处理后,得到一个被称为预测值的输出值。为了计算误差,将预测值与实际输出值进行比较,获得对应的误差值。反向传播使用微分学的链式法则,在链条法则中,首先计算对应神经网络的最后一层权值的误差值的导数。称这些导数为梯度,然后使用这些梯度来计算神经网络中的倒数第二层的梯度。重复此过程,直到得到神经网络中每个权值对应的梯度。最后,将神经网络中每个权值减去对应的梯度,从而对权值进行一次更新,以达到减少误差值的目的。
对于神经网络来说,微调是载入训练过的神经网络,微调过程与训练过程相同,分为两个阶段,第一阶段是信号的正向处理,第二阶段是反向传播梯度,对训练过的神经网络的权值进行更新。训练与微调的不同之处在于,训练是随机对初始化的神经网络进行处理,从头开始训练神经网络,而微调不是。
在神经网络进行训练或微调过程中,神经网络每经过一次信号的正向处理以及对应一次误差的反向传播过程,神经网络中的权值利用梯度进行一次更新,此时称为一次迭代(iteration)。为了获得精度符合预期的神经网络,在训练过程中需要很庞大的样本数据集。在这种情况下,一次性将样本数据集输入计算机是不可能的。因此,为了解决这个问题,需要把样本数据集分成多个块,每块传递给计算机,每块数据集正向处理后,对应更新一次神经网络的权值。当一个完整的样本数据集通过了神经网络一次正向处理并且对应返回了一次权值更新,这个过程称为一个周期(epoch)。实际中,在神经网络中传递一次完整的数据集是不够的,需要将完整的数据集在同一神经网络中传递多次,即需要多个周期,最终获得精度符合预期的神经网络。
在神经网络进行训练或微调过程中,一般希望速度越快越好,准确率越高越好。神经网络的数据通过高精度数据格式表示,比如:浮点数,所以在训练或微调过程中,涉及的数据均为高精度数据格式,然后再将训练好的神经网络进行量化。以量化对象是整个神经网络的权值、且量化后的权值均为8bit定点数为例,由于一个神经网络中常常有数百万连接,几乎所有空间都被神经元连接的权值所占据。况且这些权值都是不同的浮点数。每层权值都趋向于某个确定区间的正态分布,例如(-3.0,3.0)。将神经网络中每层的权值对应的最大值和最小值保存下来,将每个浮点数值采用8bit定点数表示。其中,在最大值、最小值范围内区间线性划分256个量化间隔,每个量化间隔用一个8bit定点数表示。例如:在(-3.0,3.0)区间内,字节0表示-3.0,字节255表示3.0。以此类推,字节128表示0。
对于高精度数据格式表示的数据,以浮点数为例,根据计算机体系结构可知,基于浮点数的运算表示法则、定点数的运算表示法则,对于同样长度的定点运算和浮点运算,浮点运算计算模式更为复杂,需要更多的逻辑器件来构成浮点运算器。这样从体积上来说,浮点运算器的体积比定点运算器的体积要大。并且,浮点运算器需要消耗更多的资源去处理,使得定点运算和浮点运算二者之间的功耗差距通常是数量级的。简言之,浮点运算器占用的芯片面积和功耗相比于定点运算器都要大很多倍。
但是,浮点运算又有其不可取代性。首先,定点运算虽然直观,但是固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数,可能出现溢出的情况。
此外,具体使用人工智能处理器芯片做训练或微调时,通常更倾向于浮点运算器,主要是因为在有监督学习的神经网络中,只有浮点运算才能记录和捕捉到训练时很小的增量。那么,如何在不增加人工智能处理器芯片面积和功耗的前提下,如何大幅提升芯片做训练的运算能力是目前急需解决的问题。
对于本领域的技术人员来说,使用低位宽表示的定点数进行训练,经实践反馈可知需要使用高于8bit定点数来处理反向传播梯度,这使得使用低位宽表示的定点数实现训练的过程异常复杂。如何将定点运算器代替浮点运算器,达到定点运算的快速度,提升人工智能处理器芯片的峰值算力的同时满足运算所需的浮点运算的精度是本说明书解决的技术问题。
基于上述技术问题的描述,神经网络的一个特性是对输入噪声容忍度很高。如果考虑识别照片中物体,神经网络能忽略主要噪声,把注意力放在重要的相似性。该功能意味着神经网络可以把低精度计算作为一种噪声源,在容纳较少信息的数值格式下仍然能产生准确的预测结果。要做好低精度训练或微调,就要找到一个具有适普性的数据表示,既能改善数据的溢出情况,又能更好的表达目标区间范围内0附近的数据。因此,这个数据表示需要自适应性,能随着训练或微调的过程进行调整。
另外,大部分神经网络模型需要大量的运算以及内存访问。一些神经网络加速器可以提供较高的计算性能。然而,目前主流的神经网络加速器的运算能力,远远超出了目前外部存储器的带宽。下面以ResNet-18神经网络中各层的计算量以及内存访问量为例,进行说明。
在ResNet-18神经网络中,每一层中的运算量与内存访问量的比率是不同的,因而对于带宽和计算能力具有不同的要求。以逐元素层(element-wise layer)为例,如果计算能力为1GFLOPS(Giga Floating-point Operations Per Second每秒所执行的浮点运算次数)的话,那么所需要的带宽是12GB/s。同时,对于卷积层来说,对于相同的1GFLOPS的计算能力,对带宽的要求仅为10MB/s。虽然神经网络加速器的硬件已经经过了优化设计,试图尽量在内存带宽与计算能力之间取得平衡,但是尚无法达到最佳的性能。在caffe框架下,本申请的发明人进一步统计了整个ResNet-18神经网络中每一层的计算能力与内存访问的比例,并且发现,95%以上的数据传输量是在某些层中(包括卷积层,BatchNorm层,Scale层,ReLU层以及逐元素层)。然而,除了卷积层之外,这些层中的计算量非常小,小于整个神经网络中的1%。因此,内存访问目前是人工智能处理器执行神经网络过程中的一个严重的瓶颈。
神经网络所映射的计算图中的算子在CPU和人工智能处理器上通过核函数实现,是一种“片外存储→片上计算→片外存储”的模式,即神经网络中的算子的输入数据和输出数存于全局存储中,核函数需要由全局存储中读取输入数据,完成计算,将结果存回全局存储中。这带来了两个问题:首先,每个算子关于输入数据和输出数据的访存无法通过算子内的优化来避免;其次,每个算子都需要启动开销,对CPU之外的异构计算设备来说更是如此。为了解决这些问题,将神经网络对应的计算图中的两个或者更多连续的算子的核函数合并为一个新的核函数,使得所述的这些算子对应的计算任务只需要一次调度开销。因而,可以消除大量的从外部存储器(DRAM)到片上存储器的数据传输、以及从片上存储器到外部存储器的数据传输。经过测试,发明人发现,在ResNet-18神经网络中,如果所有的算子可以融合在一起的话,可以减少99.6%的数据传输。
然而,很难将实际的神经网络中的所有算子都融合在一起。其中的原因包括:在实际中,片上存储器的大小与神经网络处理的数据规模之间的不匹配,因为人工智能处理器的面积开销不可能太大,相应地,对人工智能处理器的片上存储器的面积开销也有限制。并且,人工智能处理器的片上存储器所需的功耗开销也应在合理范围之内。这些原因导致人工智能处理器的片上存储的数据规模有一定的限制。因而,假如把神经网络中的所有算子都融合在一起,那些被融合算子的中间数据的数据规模与片上存储器的实际存储的数据规模不相匹配。为了缓解这个矛盾,进一步分析可知,这些算子之间的中间结果被纳入了融合后的核函数的优化范围中,部分中间结果的访存因此存在可以被优化的可能,这种对中间结果的优化通常是基于计算过程中可以利用的数据局部独立性。基于这一工作原理,在一算子中,输出数据集合中的每一个点仅依赖于输入数据集合内的一个限定的区域。因此,输入数据和输出数据均可以被分隔或拆分成多个块,可以单独地计算每一个块,实现将神经网络对应的计算图中更多的算子融合在一起。
基于上述描述,如图2所示,为本申请提出的一种神经网络的量化参数确定方法流程图。利用图2所示的技术方案确定的量化参数用于对待量化数据进行数据表示,从而确认量化后的定点数。所述量化后的定点数用于进行神经网络的训练、微调或推理。所述方法包括:
步骤201):遍历所述神经网络对应的计算图中的算子,从所述计算图中选择当前算子和待融合算子。
以caffe为例,神经网络包括多个处理层,包括但不限于卷积层、BatchNorm层、Scale层、ReLU层、池化层(Pooling layer)、逐元素层、内积层(InnerProduct layer)、SoftMax层等。
待融合算子对应层称谓待融合层,当前算子对应层称谓当前层,待融合层位于当前层的下游。但本领域技术人员容易理解,待融合算子对应层也可以位于当前算子对应层的上游。以卷积层和BatchNorm层为例,如果卷积层作为当前层,BatchNorm层作为待融合层,则BatchNorm层可以位于卷积层的上游,即BatchNorm层的输出数据是卷积层的输入数据。BatchNorm层也可以位于卷积层的下游,即卷积层的输出数据是BatchNorm层的输入数据。
另外根据本申请的一个优选实施例,选择所述神经网络的第一层作为当前层,选择与其紧密相邻的下一层为待融合层,逐层进行融合判断。
步骤202):根据人工智能处理器的片上存储器的可用存储容量,确定拆分尺寸。
步骤203):根据所述拆分尺寸将所述待融合算子的输出数据拆分成多个数据块。
图13示出了待融合层的输出数据OD2,其例如为M*N维的数据。按照预设的拆分尺寸,待融合层的输出数据OD2被拆分成m*n个输出块,其中m小于或等于M,n小于或等于N,分别为OD2(1,1)、OD2(1,2)、一直到OD2(m,n)。根据本申请的一个优选实施例,所述拆分尺寸选择成使得所述待融合层L2的输出数据OD2能够被均匀地拆分成m*n份。但本申请不限于此,也可以实现非均匀地拆分,例如图13中,第m行的输出块与第n列的输出块的尺寸,可以小于其余输出块的尺寸,这些都在本申请的保护范围内。
步骤204):基于所述待融合算子的输出数据的数据块的尺寸,映射得到与对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块的尺寸。
图14示出了步骤204的一个实施例。如图14所示,其中将当前层L1和待融合层L2以数据变换的方式示出,而未示出实体的层结构。对于当前层L1,其输入数据为ID1,当前层L1对输入数据ID1进行预设的变换处理后,得到输出数据OD1,输出数据OD1将作为输入数据,提供给待融合层L2,输出数据OD1也可称为当前层L1与待融合层L2之间的中间数据。待融合层L2对该中间数据OD1进行预设的变换处理后,得到输出数据OD2。
由于当前层L1和待融合层L2中的每一层所执行的数据变换处理都可以是预先设定的,因此根据输出数据的输出块,可以反向推导出该层的输入数据的数据块。例如在图14中,以输出数据的输出块OD2(m,1)为例,根据待融合层L2所执行的变换处理,可以推导得到中间数据OD1中的数据块OD1(m,1)的数据块尺寸,数据块OD1(m,1)的数据块尺寸可以比输出块OD2(m,1)的尺寸更大、更小、或者二者相同,这些都在本申请的保护范围内。类似的,根据中间数据OD1中的数据块OD1(m,1)的数据块尺寸,并根据所述当前层L1所执行的变换处理,可以得到所述当前层L1的输入数据ID1的数据块ID1(m,1)的尺寸。换句话说,上述过程,是根据待融合层的输出数据块尺寸,反向推导得到当前层中所需要的输入数据的数据块尺寸、以及中间数据的数据块尺寸。
图14中示出了待融合层L2是位于当前层L1下游,并且二者紧密相邻,当前层L1的输出即为待融合层L2的输入。本申请的保护范围不限于此,待融合层L2与当前层L1之间也可以相隔更多的层。在此情况下,也可以应用本申请上述的教示,通过反向推导,得到当前层中所需要的输入数据的数据块尺寸、以及中间数据的数据块尺寸,当然在此情况下,具有多层的中间数据,这些都在本申请的保护范围内。
如图15所示,为待量化数据确定的一工程流程图。下面参考图15进行详细描述。
步骤1:遍历所述神经网络对应的计算图中的算子,从计算图中选择当前算子和待融合算子。
步骤2:根据人工智能处理器的片上存储器的可用存储容量,确定拆分尺寸。
步骤3:根据所述拆分尺寸将所述待融合算子的输出数据拆分成多个数据块。
步骤4:进行内存分配。在实际应用中,将人工智能处理的片上内存或者片上内存的规定部分分配给所述输出块、输入数据的数据块、以及中间数据的数据块。
步骤5:判断内存分配是否成功。例如可以将所述输出块的尺寸(即拆分尺寸)、输入数据的数据块尺寸、以及中间数据的数据块尺寸之和与可供分配的片上存储器的存储空间进行比较,如果未超出该存储空间,则分配成功。同时,确定了待量化数据;如果超出该存储空间,则分配失败,进行到步骤6。
步骤6,判断拆分尺寸是否可以减小。本领域技术人员容易理解,拆分尺寸可以是动态变化的,例如在刚开始判断一个待融合算子是否可与当前算子融合的阶段,可以将拆分尺寸设定为较大的值。如果在该拆分尺寸下,判断的结论为不可融合,那么可以尝试减小拆分尺寸,如步骤7所示的。拆分尺寸减小的幅度,可以根据需要来设定。当然,本领域技术人员容易理解,拆分尺寸不能无限制减小,可设置其下限阈值。在步骤6,当判断拆分尺寸尚未达到其下限阈值时,进行到步骤7,减小拆分尺寸,回到步骤2,根据减小后的拆分尺寸,将所述待融合算子的输出数据重新拆分成对应的输出块,并进行后续的处理和判断;当判断拆分尺寸已经达到其下限阈值时,则判断不可进一步融合,直至判断结果是当前算子与待融合算子融合在一起。
步骤205):所述待融合算子的输出数据的数据块、对应的所述当前算子的输入数据的数据块、以及所述当前算子与待融合算子之间的中间数据的数据块作为待量化数据,获得每种待量化数据的统计结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据。
正如前文所述,在训练或微调神经网络的过程中,神经网络每层包括四种数据,分别为神经元、权值、梯度和偏置。在推理过程中,神经网络每层包括三种数据,分别为神经元、权值和偏置。这些数据均以高精度数据格式表示,本说明书以浮点数作为高精度数据为例。需要明确的是,以浮点数为例仅仅是例举的部分情况,而不是穷举,本领域技术人员在理解本技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,比如:高精度数据可以是表示范围大且表示的最小精度小的高数据位宽的定点数,采用本技术方案均可转为低数据位宽的定点数。但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
不管什么样的神经网络结构,在训练或微调神经网络的过程中,待量化数据包括神经网络的神经元、权值、梯度、偏置中的至少一种数据,在推理过程中,待量化数据包括神经网络的神经元、权值、偏置中的至少一种数据。
下面以待量化数据是神经网络中目标层的神经元和权值这两种数据为例,并详细描述本技术方案。在本步骤中,对目标层中每层的神经元和权值分别进行统计,获得每种待量化数据的最大值、最小值,也可以获得每种待量化数据的绝对值最大值。其中,目标层作为神经网络中需要量化的层,可以是一层,也可以是多层。以一层为单位,每种待量化数据的绝对值最大值可以通过每种待量化数据中的最大值和最小值方式确认。也可以先将每种待量化数据求绝对值,遍历求绝对值后的结果,获得每种待量化数据的绝对值最大值。
在实际应用中,按照每种待量化数据中的最大值和最小值方式获取每种待量化数据的绝对值最大值的原因在于,量化时,常规情况下会将目标层中每层的待量化数据对应的最大值和最小值保存下来,无需消耗更多的资源去对待量化数据求绝对值,直接基于保存的待量化数据对应的最大值和最小值来获取绝对值最大值即可。
步骤206):利用每种待量化数据的统计结果以及数据位宽确定对应量化参数;其中,所述量化参数用于人工智能处理器对神经网络运算过程中的数据进行对应量化。
在本步骤中,量化参数可以分以下六种情况。第一种情况:量化参数是点位置参数s。这种情况下,可以利用如下的公式(1)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置参数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(1)中的round取整运算。此时,用n位定点数可以表示浮点数的最大值A为2s(2n-1-1),那么n位定点数可以表示待量化数据的数域中最大值为2s(2n-1-1),n位定点数可以表示待量化数据的数域中最小值为-2s(2n-1-1)。由式(1)可知,采用第一种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s,量化间隔记为C。
设Z为待量化数据的数域中所有浮点数的绝对值最大值,则A需要包含Z,且Z要大于因此有如下公式(2)约束:
2s(2n-1-1)≥Z>2s-1(2n-1-1) (2)
因此,得到
根据式(3)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
第二种情况:量化参数是第一缩放系数f1。这种情况下,可以利用如下的公式(4)对待量化数据进行量化,得到量化数据Ix:
其中,f1为第一缩放系数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(4)中的round取整运算。由式(4)可知,采用第二种情况对应的量化参数对待量化数据进行量化时,量化间隔为f1,量化间隔记为C。
对于第一缩放系数f1来说,有一种情况,即:点位置参数s为固定已知值,不再发生变化,设2s=T,T为固定值,那么,用n位定点数可以表示浮点数的最大值A为(2n-1-1)×T。这种情况下,最大值A取决于数据位宽n。设Z为待量化数据的数域中所有数的绝对值最大值,则此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1。还有一种情况,在工程应用中,2s×f2作为一个整体当做第一缩放系数f1。此时,就可以当做不存在独立的点位置参数s。其中,f2为第二缩放系数。设Z为待量化数据的数域中所有数的绝对值最大值,则此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1。
根据式(5)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
第三种情况:量化参数是点位置参数s和第二缩放系数f2。这种情况下,可以利用如下的公式(6)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置参数,f2为第二缩放系数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(6)中的round取整运算。用n位定点数可以表示的待量化数据的数域中的最大值A为2s(2n-1-1)。由式(6)可知,采用第三种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s×f2,量化间隔记为C。
设Z为待量化数据的数域中所有数的绝对值最大值,此时,根据公式(2)可得:
即
时,根据公式(2),Z可以无损精确表示。当f2=1时,公式(6)与公式(1),n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×2s×f2,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×2s×f2。
根据式(7)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
如图3所示,对称的定点数表示示意图。图3所示的待量化数据的数域是以“0”为对称中心分布。Z为待量化数据的数域中所有浮点数的绝对值最大值,在图3中,A为n位定点数可以表示的浮点数的最大值,浮点数A转换为定点数是2n-1-1。为了避免溢出,A需要包含Z。实际中,神经网络运算过程中的浮点数据趋向于某个确定区间的正态分布,但是并不一定满足以“0”为对称中心的分布,这时用定点数表示时,容易出现溢出情况。为了改善这一情况,量化参数中引入偏移量,如图4所示。在图4中,待量化数据的数域不是以“0”为对称中心分布,Zmin是待量化数据的数域中所有浮点数的最小值,Zmax是待量化数据的数域中所有浮点数的最大值。P为Zmin~Zmax之间的中心点,将待量化数据的数域整体偏移,使得平移后的待量化数据的数域以“0”为对称中心分布,平移后的待量化数据的数域中的绝对值最大值为Z。由图4可知,偏移量为“0”点到“P”点之间的水平距离,该距离称为偏移量O。其中,
基于上述关于偏移量O的描述,出现第四种量化参数的情况。第四种情况:量化参数包括点位置参数和偏移量。这种情况下,可以利用如下的公式(8)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置参数,O为偏移量,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(8)中的round取整运算。此时,用n位定点数可以表示浮点数的最大值A为2s(2n-1-1),那么n位定点数可以表示待量化数据的数域中最大值为2s(2n-1-1)+O,n位定点数可以表示待量化数据的数域中最小值为-2s(2n-1-1)+O。由式(8)可知,采用第四种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s,量化间隔记为C。
设Z为待量化数据的数域中所有浮点数的绝对值最大值,则A需要包含Z,且Z要大于根据公式(2)获得进而得到
根据式(9)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
基于上述关于偏移量O的描述,出现第五种量化参数的情况。第五种情况:量化参数包括第一缩放系数f1和偏移量O。这种情况下,可以利用如下的公式(10)对待量化数据进行量化,得到量化数据Ix:
其中,f1为第一缩放系数,O为偏移量,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(10)中的round取整运算。此时,有一种情况,即:点位置参数s为固定已知值,不再发生变化,设2s=T,T为固定值。那么,用n位定点数可以表示浮点数的最大值A为(2n-1-1)×T。这种情况下,最大值A取决于数据位宽n。设Z为待量化数据的数域中所有数的绝对值最大值,则此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1。还有一种情况,在工程应用中,2s×f2作为一个整体当作第一缩放系数f1。此时,就可以当作不存在独立的点位置参数s。其中,f2为第二缩放系数。设Z为待量化数据的数域中所有数的绝对值最大值,则此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1+O,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1+O。
由式(10)可知,采用第五种情况对应的量化参数对待量化数据进行量化时,量化间隔为f1,量化间隔记为C。
根据式(11)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
基于上述关于偏移量O的描述,出现第六种量化参数的情况。第六种情况:量化参数包括点位置参数、第二缩放系数f2和偏移量O。这种情况下,可以利用如下的公式(12)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置参数,偏移量O,f2为第二缩放系数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(12)中的round取整运算。用n位定点数可以表示的待量化数据的数域中的最大值A为2s(2n-1-1)。由式(12)可知,采用第六种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s×f2,量化间隔记为C。
设Z为待量化数据的数域中所有数的绝对值最大值,此时,根据公式(2)可得:
即
时,根据公式(2),Z可以无损精确表示。当f2=1时,n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×2s×f2+O,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×2s×f2+O。
根据式(13)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
上述详细描述了6种量化参数的确定过程,仅仅是实施例说明。量化参数的种类在不同的实施例中可以与以上的描述不同。由公式(1)~公式(13)可知,点位置参数和缩放系数均与数据位宽有关。不同的数据位宽,导致点位置参数和缩放系数不同,从而影响量化精度。在训练或微调过程中,在一定的迭代(iterations)的次数范围内,使用相同的数据位宽量化对神经网络运算的总体精度影响不大。超过一定的迭代次数,再使用同一数据位宽量化就无法满足训练或微调对精度的要求。这就需要随着训练或微调的过程对数据位宽n进行调整。简单地,可以人为设置数据位宽n。在不同的迭代次数范围内,调用提前设置的对应的数据位宽n。但是,前文已经提到,使用低位宽表示的定点数实现训练的过程异常复杂。这种人为提前设置数据位宽的调整方式基本上是不符合实际应用的需求。
在本技术方案中,根据量化误差diffbit对数据位宽n进行调整。进一步详说,将量化误差diffbit与阈值进行比较,并获取比较结果。其中,阈值包括第一阈值和第二阈值,且第一阈值大于第二阈值,比较结果有三种情况,第一种情况为:量化误差diffbit大于等于所述第一阈值,这种情况下,对所述数据位宽进行增加。第二种情况为:量化误差diffbit小于等于所述第二阈值,这种情况下,对所述数据位宽进行减少。第三种情况为:量化误差diffbit处于所述第一阈值和所述第二阈值之间,这种情况下,所述数据位宽保持不变。在实际应用中,第一阈值和第二阈值可以为经验值,也可以为可变的超参数。常规的超参数的优化方法均适于第一阈值和第二阈值,这里不再赘述超参数的优化方案。
需要强调的是,可以将数据位宽按照固定的位数步长进行调整,也可以根据量化误差与误差阈值之间的差值的不同,按照可变的调整步长调整数据位宽,最终根据神经网络运算过程的实际需要,将数据位宽调整的更长或更短。比如:当前卷积层的数据位宽n为16,根据量化误差diffbit将数据位宽n调整为12。也就是说,在实际应用中,数据位宽n取值为12而不必取值为16即可满足神经网络运算过程中对精度的需求,这样在精度允许范围内可以大大提到定点运算速度,从而提升了人工智能处理器芯片的资源利用率。
对于量化误差diffbit来说,根据量化后的数据与对应的量化前的数据确定量化误差。在实际应用中,有三种量化误差确定方式,均可适用于本技术方案。第一种方式:根据量化间隔、量化后的数据的个数以及对应的量化前的数据按照公式(14)确定量化误差。
其中,C为量化时对应的量化间隔,m为量化后获得的量化数据的个数,Fi为待量化对应的浮点值,其中,i为待量化数据集合中数据的下标。
第二种方式:根据量化后的数据以及对应的反量化数据按照公式(15)确定量化误差diffbit。
其中,Fi为待量化对应的浮点值,其中,i为待量化数据集合中数据的下标。为浮点值对应的反量化数据。
第三种方式:根据量化后的数据以及对应的反量化数据按照公式(16)确定量化误差diffbit。
其中,Fi为待量化对应的浮点值,其中,i为待量化数据集合中数据的下标。为浮点值对应的反量化数据。
需要强调的是,上述获取量化误差diffbit的方式仅仅是例举的部分情况,而不是穷举,本领域技术人员在理解本申请技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,凡是支持根据量化后的数据与对应的量化前的数据确定量化误差的变形公式,但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
对于数据位宽来说,图5a为训练过程中神经网络的权值数据变动幅度曲线图之一。图5b为训练过程中神经网络的权值数据变动幅度曲线图之二。在图5a和图5b中,横坐标表示是迭代数,纵坐标表示是权值取对数后的最大值。图5a所示的权值数据变动幅度曲线展示神经网络的任一卷积层同一周期(epoch)内在不同迭代对应的权值数据变动情况。在图5b中,conv0层对应权值数据变动幅度曲线A,conv1层对应权值数据变动幅度曲线B,conv2层对应权值数据变动幅度曲线C,conv3层对应权值数据变动幅度曲线D,conv4层对应权值数据变动幅度曲线e。由图5a和图5b可知,同一个周期(epoch)内,在训练初期,每次迭代权值变化幅度比较大。在训练中后期,每次迭代权值的变化幅度不会太大。此种情况下,在训练中后期,因为每次迭代前后权值数据变化幅度不大,使得每代的对应层的权值数据之间在一定的迭代间隔内具有相似性,在神经网络训练过程中每层涉及的数据量化时可以采用上一次迭代时对应层量化时使用的数据位宽。但是,在训练初期,由于每次迭代前后权值数据的变化幅度比较大,为了满足量化所需的浮点运算的精度,在训练初期的每一次迭代,利用上一次迭代对应层量化时采用的数据位宽对当前代的对应层的权值数据进行量化,或者基于当前层预设的数据位宽n对当前层的权值数据进行量化,获得量化后的定点数。根据量化后的权值数据和对应的量化前的权值数据,确定量化误差diffbit,根据量化误差diffbit与阈值的比较结果,对上一次迭代对应层量化时采用的数据位宽n或者当前层预设的数据位宽n进行调整,将调整后的数据位宽应用于当前次迭代的对应层的权值数据的量化。进一步地,在训练或微调过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络训练或微调过程中,神经网络的每一次迭代内的每层的数据位宽只适用用于对应的神经网络层。
上述以权值数据为例,在神经网络训练或微调过程中,神经元数据和梯度数据分别对应的数据位宽亦如此,此处不再赘述。
在神经网络推理过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络推理过程中,神经网络的每层的数据位宽应用于对应层。在实际应用中,推理过程中每次的输入神经元数据很有可能不相同或者不相似,并且,由于神经网络的每层之间的权值数据相互独立,那么神经网络隐含层中的每层的输入神经元数据就不相似。量化时,上一层的输入神经元数据使用的数据位宽就不适于应用于当前层的输入神经元数据。基于此,为了满足量化所需的浮点运算的精度,在推理时,利用上一层的输入神经元数据量化时采用的数据位宽对当前层的输入神经元数据进行量化,或者基于当前层预设的数据位宽n对当前层的输入神经元数据进行量化,获得量化后的定点数。根据量化前的输入神经元数据和对应的量化后的输入神经元数据,确定量化误差diffbit,根据量化误差diffbit与阈值的比较结果,对上一层的输入神经元数据量化时采用的数据位宽n或者当前层预设的数据位宽n进行调整,将调整后的数据位宽应用于当前层的输入神经元数据的量化。权值数据对应的数据位宽亦如此,此处不再赘述。
对于量化参数来说,由图5a可知,同一个周期(epoch)内,在训练初期,每次迭代权值变化幅度比较大。在训练中后期,由于每一次迭代前后权值数据变化幅度不大,使得每次迭代的对应层的权值数据之间在一定的迭代间隔内具有相似性,这样量化时当前次迭代的每层的数据可以延用上一次迭代的对应层的对应数据的量化参数,在训练的中后期不用代代都重新确认量化参数,仅仅在训练初期的每次迭代的每层确认量化参数,这样仍然能够满足神经网络运算所需的浮点运算的精度,大大提高了量化时的效率。进一步地,在训练或微调过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络训练或微调过程中,神经网络的每一次迭代内的每层的量化参数应用于对应层的对应待量化数据。
上述以权值数据为例,在神经网络训练或微调过程中,神经元数据和梯度数据分别对应的量化参数亦如此,此处不再赘述。
在神经网络推理过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络推理过程中,神经网络的每层的量化参数应用于对应层的待量化数据。比如:神经网络的当前层为卷积层,根据卷积层的待量化数据按照图2所示的技术方案获得了当前卷积层的待量化数据的量化参数,该量化参数只能应用于当前的卷积层,而不能应用于该神经网络的其他层,即使其它层为卷积层也不适用。
综上所述,数据位宽和量化参数的延用策略基于数据之间的相似性来确定,如果数据之间具有相似性,则数据位宽和量化参数可以延用,如果数据之间不具有相似性,则需要对数据位宽或量化参数进行调整。数据之间的相似性的度量通常采用KL散度来衡量,也可以采用下式(17)来衡量。
absmax(A)≈absmax(B)且mean(A)≈mean(B) (17)
在某些实施例中,如果数据A和数据B满足式(17),则判断数据A和数据B之间具有相似性。
需要说明的是,关于上述描述的量化误差的确认方法、数据位宽的调整方法、数据位宽和量化参数的延用策略均仅仅是例举的部分情况,而不是穷举,比如:上述的量化误差的确认方法、数据位宽的调整方法、数据位宽和量化参数的延用策略均适用于神经网络的微调过程。还有,关于数据之间的相似性的度量,上述列举了KL散度以及公式(17)对相似性的度量方法,仅仅是例举的部分情况,而不是穷举,比如:直方图匹配法、矩阵分解法、基于特征点的图像相似度计算法、邻近度度量标准法等等。本领域技术人员在理解本申请技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
综上所述,在训练中后期,因为每次迭代前后权值数据变化幅度不大,使得每次迭代的对应层的权值数据之间在一定的迭代间隔内具有相似性,为了使得本技术方案在训练或微调中具有更好的适普性,满足人工智能处理器芯片的资源达到合理的应用,需要一种策略确定迭代间隔,使得在该迭代间隔范围内,每一次迭代的对应层的数据位宽n保持不变,超过该迭代间隔,数据位宽n就要发生变化,就无需代代确定是否对数据位宽n进行调整。同理,量化参数亦如此,从而达到提升人工智能处理器芯片的峰值算力的同时满足量化所需的浮点运算的精度。
如图6所示,为确定目标迭代间隔的方法流程图之一。在图6所示的技术方案中,目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽。所述目标迭代间隔的确定步骤包括:
步骤601):在预判时间点,确定权值迭代过程中所述待量化数据对应点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点。
在本步骤中,按照公式(18),所述点位置参数的变化趋势值根据当前预判时间点对应的权值迭代过程中的点位置参数的滑动平均值、上一预判时间点对应的权值迭代过程中的点位置参数的滑动平均值确定,或者根据当前预判时间点对应的权值迭代过程中的点位置参数、上一预判时间点对应的权值迭代过程中的点位置参数的滑动平均值确定。式18的表达式为:
diffupdate1=|M(t)-M(t-1)|=α|s(t)-M(t-1)| (18)
公式18中,M为点位置参数s随着训练迭代增加的滑动平均值。其中,M(t)为第t个预判时间点对应的点位置参数s随着训练迭代增加的滑动平均值,根据公式(19)获得M(t)。s(t)为第t个预判时间点对应的点位置参数s。M(t-1)为第t-1个预判时间点对应的点位置参数s的滑动平均值,α为超参数。diffupdate1衡量点位置参数s变化趋势,由于点位置参数s的变化也变相体现在当前待量化数据中数据最大值Zmax的变化情况。diffupdate1越大,说明数值范围变化剧烈,需要间隔更短的更新频率,即目标迭代间隔更小。
M(t)←α×s(t-1)+(1-α)×M(t-1) (19)
步骤602):根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
在本技术方案中,根据式(20)确定目标迭代间隔。对于目标迭代间隔来说,同一目标迭代间隔内量化过程中采用相同的所述数据位宽,不同目标迭代间隔内量化过程中采用的数据位宽可以相同,也可以不同。
式(20)中,I为目标迭代间隔。diffupdate1为点位置参数的变化趋势值。β、γ为经验值,也可以为可变的超参数。常规的超参数的优化方法均适于β、γ,这里不再赘述超参数的优化方案。
对于本技术方案来说,预判时间点包括第一预判时间点,根据目标迭代间隔确定第一预判时间点。具体地,在训练或微调过程中的第t个预判时间点,利用上一次迭代对应层量化时采用的数据位宽对当前次迭代的对应层的权值数据进行量化,获得量化后的定点数,根据量化前的权值数据和对应的量化前的权值数据,确定量化误差diffbit。将量化误差diffbit分别与第一阈值和第二阈值进行比较,利用比较结果确定是否对上一次迭代对应层量化时采用的数据位宽进行调整。假如:第t个第一预判时间点对应第100次迭代,第99次迭代使用的数据位宽为n1。在第100次迭代,根据数据位宽n1确认量化误差diffbit,将量化误差diffbit与第一阈值、第二阈值进行比较,获得比较结果。如果根据比较结果确认数据位宽n1无需改变,利用式(20)确认目标迭代间隔为8次迭代,当第100次迭代作为当前目标迭代间隔内的起始迭代,那么第100次迭代~第107次迭代作为当前目标迭代间隔,当第100次迭代作为上一目标迭代间隔的最末迭代,那么第101次迭代~第108次迭代作为当前目标迭代间隔。在当前目标迭代间隔内量化时每代仍然延用上一个目标迭代间隔所使用的数据位宽n1。这种情况,不同的目标迭代间隔之间量化时所使用的数据位宽可以相同。如果以第100次迭代~第107次迭代作为当前的目标迭代间隔,那么下一个目标迭代间隔内的第108次迭代作为第t+1个第一预判时间点,如果第101次迭代~第108次迭代作为当前的目标迭代间隔,那么当前的目标迭代间隔内的第108次迭代作为第t+1个第一预判时间点。在第t+1个第一预判时间点,根据数据位宽n1确认量化误差diffbit,将量化误差diffbit与第一阈值、第二阈值进行比较,获得比较结果。根据比较结果确定数据位宽n1需要更改为n2,并利用公式(20)确认目标迭代间隔为55次迭代。那么第108次迭代~第163次迭代或者第109次迭代~第163次迭代作为目标迭代间隔,在该目标迭代间隔内量化时每代使用数据位宽n2。这种情况下,不同的目标迭代间隔之间量化时所使用的数据位宽可以不同。
对于本技术方案来说,不管第一预判时间点是目标迭代间隔内的起始迭代还是最末迭代,均适于公式(18)来获得点位置参数的变化趋势值。如果当前时刻的第一预判时间点为当前目标迭代间隔的起始迭代,那么在公式(18)中,M(t)为当前目标迭代间隔的起始迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值,s(t)为当前目标迭代间隔的起始迭代对应时间点所对应的点位置参数s,M(t-1)为上一目标迭代间隔的起始迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值。如果当前时刻的第一预判时间点为当前目标迭代间隔的最末迭代,那么在公式(18)中,M(t)为当前目标迭代间隔的最末迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值,s(t)为当前目标迭代间隔的最末迭代对应时间点所对应的点位置参数s,M(t-1)为上一目标迭代间隔的最末迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值。
对于本技术方案来说,在包括第一预判时间点的基础上,预判时间点还可以包括第二预判时间点。第二预判时间点是根据数据变动幅度曲线确定的。基于大数据在神经网络训练过程中数据变动幅度情况,获得如图5a所示的所述数据变动幅度曲线。
以权值数据为例,由图5a所示的数据变动幅度曲线可知,从训练开始到第T次迭代的迭代间隔周期内,每次权值更新时,数据变动幅度非常大。在当前预判时间点,量化时,当前次迭代先利用上一次迭代的数据位宽n1进行量化,获得的量化结果与对应的量化前的数据确定对应的量化误差,量化误差分别与第一阈值、第二阈值进行比较,根据比较结果对数据位宽n1进行调整,获得数据位宽n2。利用数据位宽n2对当前次迭代涉及的待量化权值数据进行量化。然后根据式(20)确定目标迭代间隔,从而确定第一预判时间点,在第一预判时间点再判断是否调整数据位宽以及如何调整,并根据公式(20)确定下一目标迭代间隔来获得下一个第一预判时间点。由于训练开始到第T次迭代的迭代间隔周期内,每一次迭代前后权值数据变化幅度非常大,使得每次迭代的对应层的权值数据之间不具有相似性,为了满足精度问题,量化时当前次迭代的每层的数据不能延用上一次迭代的对应层的对应量化参数,在前T次迭代可以代代调整数据位宽,此时,量化时前T次迭代中每次迭代使用的数据位宽均不同,目标迭代间隔为1次迭代。为了人工智能处理器芯片的资源达到最优化利用,前T次迭代的目标迭代间隔可以根据图5a所示的数据变动幅度曲线图所揭示的规律提前预设好,即:根据数据变动幅度曲线前T次迭代的目标迭代间隔直接预设,无需经过公式(20)确认前T次迭代的每次迭代对应的权值更新迭代完成时的时间点作为第二预判时间点。从而使得人工智能处理器芯片的资源更为合理的利用。图5a所示的数据变动幅度曲线从第T次迭代开始变动幅度不大,在训练的中后期不用代代都重新确认量化参数,在第T次迭代或者第T+1次迭代,利用当前次迭代对应量化前的数据以及量化后的数据确定量化误差,根据量化误差确定对数据位宽是否需要调整以及如何调整,还要根据公式(20)确定目标迭代间隔。如果确认的目标迭代间隔为55次迭代,这就要求从第T次迭代或第T+1次迭代之后隔55次迭代对应的时间点作为第一预判时间点再判断是否调整数据位宽以及如何调整,并根据公式(20)确定下一目标迭代间隔,从而确定下一个第一预判时间点,直至同一周期(epoch)内所有代运算完成。在此基础上,在每个周期(epoch)之后,再对数据位宽或量化参数做适应性调整,最终使用量化后的数据获得精度符合预期的神经网络。
特别地,假如:根据图5a所示的权值数据变动幅度曲线图确定T取值为130(这个数值与图5a不对应,为方便描述,仅仅是假设T取值为130,不限于在假设值。),那么训练过程中的第130次迭代作为第二预判时间点,当前的第一预判时间点为训练过程中的第100次迭代,在第100次迭代,经公式(20)确定目标迭代间隔为35次迭代。在该目标迭代间隔内,训练至第130次迭代,到达第二预判时间点,此时就要在第130次迭代对应的时间点确定对数据位宽是否需要调整以及如何调整,还要根据公式(20)确定目标迭代间隔。假如该情况下确定的目标迭代间隔为42次迭代。就要从第130次迭代起至第172次迭代作为目标迭代间隔,目标迭代间隔为35次迭代时确定的第一预判时间点对应的第135次迭代处于目标迭代间隔为42次迭代内,在第135次迭代,可以再根据公式(20)判断是否需要调整数据位宽以及如何调整。也可以不在第135次迭代做评估预判,直接到第172次迭代再执行是否需要调整数据位宽的评估以及如何调整。总之,是否在第135次迭代进行评估和预判均适于本技术方案。
综上,根据数据变动幅度曲线提前预设第二预判时间点,在训练或微调的初期,无需花费人工智能处理器芯片的资源来确定目标迭代间隔,在预设好的第二预判时间点上直接根据量化误差来调整数据位宽,并利用调整好的数据位宽来量化当前次迭代涉及的待量化数据。在训练或微调的中后期,根据公式(20)获得目标迭代间隔,从而确定对应的第一预判时间点,在每个第一预判时间点上确定是否调整数据位宽以及如何调整。这样在能够满足神经网络运算所需的浮点运算的精度的同时合理利用人工智能处理器芯片的资源,大大提高了量化时的效率。
在实际中,为了获得更准确的数据位宽的目标迭代间隔,不仅仅根据点位置参数的变化趋势值diffupdate1,可以同时考虑点位置参数的变化趋势值diffupdate1和数据位宽的变化趋势值diffupdate2。如图7所示,为确定目标迭代间隔的方法流程图之二。所述目标迭代间隔的确定步骤包括:
步骤701):在预判时间点,确定权值迭代过程中所述待量化数据对应点位置参数的变化趋势值、数据位宽的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点。
需要强调的是,图6所示的关于基于点位置参数的变化趋势值确定数据位宽的目标迭代间隔的技术方案内容适用于图7所示的技术方案,这里不再赘述。
在本步骤中,根据式(21)来利用对应所述量化误差确定所述数据位宽的变化趋势值。
公式(21)中,δ为超参数,diffbit为量化误差;diffupdate2为数据位宽的变化趋势值。diffupdate2衡量量化时采用的数据位宽n的变化趋势,diffupdate2越大越有可能需要更新定点的位宽,需要间隔更短的更新频率。
对于图7中涉及的点位置参数的变化趋势值仍然可根据公式(18)获得,对于公式(18)中的M(t)根据公式(19)获得。diffupdate1衡量点位置参数s变化趋势,由于点位置参数s的变化也变相体现在当前待量化数据中数据最大值Zmax的变化情况。diffupdate1越大,说明数值范围变化剧烈,需要间隔更短的更新频率,即目标迭代间隔更小。
步骤702):根据所述点位置参数的变化趋势值和所述数据位宽的变化趋势值确定对应所述目标迭代间隔。
在本技术方案中,根据公式(22)确定目标迭代间隔。对于目标迭代间隔来说,同一目标迭代间隔内量化过程中采用相同的所述数据位宽,不同目标迭代间隔内量化过程中采用的数据位宽可以相同,也可以不同。
公式(22)中,I为目标迭代间隔。β、γ为超参数。diffupdate1为点位置参数的变化趋势值。diffupdate2为数据位宽的变化趋势值。β、γ为经验值,也可以为可变的超参数。常规的超参数的优化方法均适于β、γ,这里不再赘述超参数的优化方案。
对于本技术方案来说,diffupdate1是用来衡量点位置参数s的变化情况,但是由数据位宽n的变化而导致的点位置参数s的变化是要忽略掉的。因为这已经在diffupdate2中体现过了数据位宽n的变化。如果在diffupdate1中不做这个忽略的操作,那么根据公式(22)确定的目标迭代间隔I是不准确的,造成第一预判时间点过多,在训练或微调过程中,易频繁的做数据位宽n是否更新以及如何更新的操作,从而造成人工智能处理器芯片的资源没有合理利用。
基于上述描述,diffupdate1根据M(t)确定。假设第t-1个预判时间点对应的数据位宽为n1,对应的点位置参数为s1,点位置参数随着训练迭代增加的滑动平均值为m1。利用数据位宽n1对待量化数据进行量化,获得量化后的定点数。根据量化前的数据和对应的量化后的数据,确定量化误差diffbit,根据量化误差diffbit与阈值的比较结果,将数据位宽n1调整为n2,数据位宽调整了|n1-n2|位,第t个预判时间点量化时使用的数据位宽为n2。为了忽略由数据位宽的变化而导致的点位置参数的变化,在确定M(t)时可以选出下述两种优化方式中的其中一种即可。第一种方式:如果数据位宽增加了|n1-n2|位,则s(t-1)取值为s1-|n1-n2|,M(t-1)取值为m1-|n1-n2|,将s(t-1)、M(t-1)代入公式(19)中,获得M(t),即为第t个预判时间点对应的点位置参数随着训练迭代增加的滑动平均值。如果数据位宽减少了|n1-n2|位,则s(t -1)取值为s1+n1-n2|,M(t-1)取值为m1+|n1-n2|,将s(t-1)、M(t-1)代入公式(19)中,获得M(t),即为第t个预判时间点对应的点位置参数随着训练迭代增加的滑动平均值。第二种方式:不管数据位宽是增加了|n1-n2|位还是减少了|n1-n2|,s(t-1)取值为s1,M(t-1)取值为m1,将s(t-1)、M(t-1)代入公式(19)中,获得M(t)。在数据位宽增加|n1-n2|位时,将M(t)减去|n1-n2|,在数据位宽减少|n1-n2|位时,将M(t)加上|n1-n2|,结果作为第t个预判时间点对应的点位置参数随着训练迭代增加的滑动平均值。这两种方式是等价的,均可以忽略由数据位宽的变化而导致的点位置参数的变化,获得更为精准的目标迭代间隔,从而提高人工智能处理器芯片的资源利用率。
在实际应用中,数据位宽n和点位置参数s对量化精度影响很大,量化参数中的第二缩放系数f2以及偏移量O对量化精度影响不大。对于第一缩放系数f1来说,上文已经提及,如果属于第二种情况,将2s×f2作为一个整体当做第一缩放系数f1,由于点位置参数s对量化精度影响很大,那么此种情况下的第一缩放系数f1对量化影响很大。所以,在本技术方案中,不管数据位宽n是否发生变化、点位置参数s可变的情况下,确定点位置参数s的目标迭代间隔也是一件非常有意义的事情,图6所示的技术方案的思想可应用于确定点位置参数s的目标迭代间隔。因此,确定点位置参数s的目标迭代间隔的方法如图8所示。包括:
步骤801):在预判时间点,确定权值迭代过程中涉及的待量化数据对应点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述量化参数进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点。
步骤802):根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
需要强调的是,图6所示的关于基于点位置参数的变化趋势值确定量化参数的目标迭代间隔的技术方案内容适用于图8所示的技术方案,这里不再赘述。对于图8所示的技术方案来说,量化参数优选为点位置参数。
需要说明的是,关于上述确定数据位宽的目标迭代间隔和量化参数的目标迭代间隔均仅仅是例举的部分情况,而不是穷举,本领域技术人员在理解本申请技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,比如:在确定数据位宽的目标迭代间隔内再确定量化参数的目标迭代间隔也适用于图6、图7和图8所示的技术方案。但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
利用本技术方案确定量化参数,根据量化误差对数据位宽或量化参数进行调整,并确定了对数据位宽或量化参数是否调整的目标迭代间隔,达到神经网络运算过程中在适合的时间点对数据位宽或量化参数进行调整,使得在合适的迭代时间点使用合适的量化参数,实现人工智能处理器芯片执行神经网络运算达到定点运算的速度,提升了人工智能处理器芯片的峰值算力的同时满足运算所需的浮点运算的精度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图2、图6、图7、图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图6、图7、图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图9所示,为本申请提出的一种神经网络的量化参数确定装置的硬件配置的框图。在图9中,神经网络的量化参数确定装置10可以包括处理器110和存储器120。在图9的神经网络的量化参数确定装置10中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:神经网络的量化参数确定装置10还可以包括与图10中所示的组成元素不同的常见组成元素。比如:定点运算器。
神经网络的量化参数确定装置10可以对应于具有各种处理功能的计算设备,例如,用于生成神经网络、训练或学习神经网络、将浮点型神经网络量化为定点型神经网络、或者重新训练神经网络的功能。例如,神经网络的量化参数确定装置10可以被实现为各种类型的设备,例如个人计算机(PC)、服务器设备、移动设备等。
处理器110控制神经网络的量化参数确定装置10的所有功能。例如,处理器110通过执行神经网络的量化参数确定装置10上的存储器120中存储的程序,来控制神经网络的量化参数确定装置10的所有功能。处理器110可以由神经网络的量化参数确定装置10中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)、人工智能处理器芯片(IPU)等来实现。然而,本公开并不限于此。
存储器120是用于存储神经网络的量化参数确定装置10中处理的各种数据的硬件。例如,存储器120可以存储神经网络的量化参数确定装置10中的处理过的数据和待处理的数据。存储器120可存储处理器110已处理或要处理的神经网络运算过程中涉及的数据集,例如,未训练的初始神经网络的数据、在训练过程中生成的神经网络的中间数据、完成了所有训练的神经网络的数据、经量化的神经网络的数据等。此外,存储器120可以存储要由神经网络的量化参数确定装置10驱动的应用、驱动程序等。例如:存储器120可以存储与将由处理器110执行的神经网络的训练算法、量化算法等有关的各种程序。存储器120可以是DRAM,但是本公开不限于此。存储器120可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器120可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡、高速缓存(caches)或记忆棒中的至少一项。
处理器110可以通过反复训练(学习)给定的初始神经网络来生成经训练的神经网络。在这种状态下,在保证神经网络的处理准确度的意义上,初始神经网络的参数为高精度数据表示格式,例如具有32比特浮点精度的数据表示格式。参数可以包括向/从神经网络输入/输出的各种类型的数据,例如:神经网络的输入/输出神经元、权值、偏置等。与定点运算相比,浮点运算过程中需要相对大量的运算和相对频繁的存储器访问。具体而言,神经网络处理所需的大部分运算已知为各种卷积运算。因此,在具有相对低的处理性能的移动设备(诸如智能电话、平板电脑、可穿戴设备等、嵌入式设备等)中,神经网络高精度数据运算会使得移动设备的资源没有充分利用。结果是,为了在允许的精度损失范围内驱动神经网络运算,充分减少上述设备中的运算量,可以对在神经网络运算过程中涉及的高精度数据进行量化,转换为低精度的定点数。
考虑到部署神经网络的例如移动设备、嵌入式设备等设备的处理性能,神经网络的量化参数确定装置10执行将经训练的神经网络的参数转换为具有特定比特数的定点型的量化,并且神经网络的量化参数确定装置10向部署神经网络的设备发送对应的量化参数,使得在人工智能处理器芯片执行训练、微调等运算操作时为定点数运算操作。部署神经网络的设备可以是通过使用神经网络来执行语音识别、图像识别等的自主车辆、机器人、智能电话、平板设备、增强现实(AR)设备、物联网(IoT)设备等,但是本公开不限于此。
处理器110从存储器120中获取神经网络运算过程中的数据。该数据包括神经元、权值、偏置和梯度中的至少一种数据,利用图2所示的技术方案确定对应的量化参数,利用量化参数对神经网络运算过程中的目标数据进行量化。将量化后的数据执行神经网络运算操作。该运算操作包括但不限于训练、微调、推理。
处理器110根据量化误差diffbit对数据位宽n进行调整,且处理器110可以执行图6、图7和图8所示的目标迭代间隔的方法的程序去确定数据位宽的目标迭代间隔或量化参数的目标迭代间隔。
综上,本说明书实施方式提供的一种神经网络的量化参数确定装置,其存储器120和处理器110实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本实施方式中,所述处理器110可以按任何适当的方式实现。例如,所述处理器110可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
如图10所示,为本申请提出的神经网络的量化参数确定装置应用于人工智能处理器芯片的应用示意图。参考图10,如上所述,在诸如PC、服务器等神经网络的量化参数确定装置10中,处理器110执行量化操作,将神经网络运算过程中涉及的浮点数据量化为定点数,人工智能处理器芯片上的定点运算器采用量化获得的定点数执行训练、微调或推理。人工智能处理器芯片是用于驱动神经网络的专用硬件。由于人工智能处理器芯片是以相对较低的功率或性能实现的,利用本技术方案采用低精度的定点数实现神经网络运算,与高精度数据相比,读取低精度的定点数时所需内存带宽更小,可以更好的使用人工智能处理器芯片的caches,避免访存瓶颈。同时,在人工智能处理器芯片上执行SIMD指令时,在一个时钟周期内实现更多计算,达到更快地执行神经网络运算操作。
进一步地,面对同样长度的定点运算和高精度数据运算,尤其是定点运算和浮点运算之间比对可知,浮点运算计算模式更为复杂,需要更多的逻辑器件来构成浮点运算器。这样从体积上来说,浮点运算器的体积比定点运算器的体积要大。并且,浮点运算器需要消耗更多的资源去处理,达到定点运算和浮点运算二者之间的功耗差距通常是数量级的。
综上所述,本技术方案能够让人工智能处理器芯片上的浮点运算器更换为定点运算器,使得人工智能处理器芯片的功耗更低。这一点对于移动设备尤其重要。也就是说,本技术方案打开了一扇通向大量不能高效运行浮点计算代码的嵌入式系统的大门,让物联网世界广泛应用成为可能。
在本技术方案中,人工智能处理器芯片可以对应于例如神经处理单元(NPU)、张量处理单元(TPU)、神经引擎等,它们是用于驱动神经网络的专用芯片,但是本公开不限于此。
在本技术方案中,人工智能处理器芯片可以在独立于神经网络的量化参数确定装置10的单独设备中实现,神经网络的量化参数确定装置10也可以作为人工智能处理器芯片的一部分功能模块来实现。但是本公开不限于此。
在本技术方案中,通用处理器(比如CPU)的操作系统基于本技术方案生成指令,将生成的指令发送至人工智能处理器芯片(比如GPU)上,由人工智能处理器芯片去执行指令操作实现神经网络的量化参数的确定以及量化过程。还有一种应用情况,通用处理器基于本技术方案直接确定对应的量化参数,通用处理器直接根据量化参数将对应的目标数据进行量化,人工智能处理器芯片利用量化后的数据执行定点运算操作。更甚者,通用处理器(比如CPU)和人工智能处理器芯片(比如GPU)流水化操作,通用处理器(比如CPU)的操作系统基于本技术方案生成指令,且对目标数据进行拷贝的同时人工智能处理器芯片(比如GPU)进行神经网络运算操作,这样可以把某些时间消耗隐藏起来。但是本公开不限于此。
在本实施例中,本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述所述的神经网络的量化参数确定方法。
由上可见,在神经网络运算过程中,量化时利用本公开的技术方案确定量化参数,该量化参数用于人工智能处理器对神经网络运算过程中的数据进行量化,将高精度数据转换为低精度定点数,可以减少神经网络运算过程中涉及的数据存储所有的空间大小。例如:float32转化为fix8可以将模型参数减少4倍。由于数据存储空间变小,使得神经网络部署时使用更小的空间,使得人工智能处理器芯片上的片上内存可以容纳更多的数据,减少了人工智能处理器芯片访存数据,提高计算性能。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端和服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端和服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端和服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
如图11所示,为本申请提出的一种神经网络的量化参数确定设备的功能框图。所述方法包括:
统计结果获取单元a,用于获取每种待量化数据的统计结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据;
量化参数确定单元b,用于利用每种待量化数据的统计结果以及数据位宽确定对应量化参数;其中,所述量化参数用于人工智能处理器对神经网络运算过程中的数据进行对应量化。
在本实施例中,可选地,所述神经网络的量化参数确定设备还包括:
第一量化单元,用于利用对应量化参数对所述待量化数据进行量化。
在本实施例中,可选地,所述神经网络的量化参数确定设备还包括:
第二量化单元,用于利用对应量化参数对目标数据进行量化;其中,所述目标数据的特征与所述待量化数据的特征之间具有相似性。
在本实施例中,所述神经网络运算过程包括神经网络训练、神经网络推理、神经网络微调中的至少一种运算。
在本实施例中,所述统计单元获得的统计结果为每种待量化数据中的最大值和最小值。
在本实施例中,所述统计单元获得的统计结果为每种待量化数据中的绝对值最大值。
在本实施例中,所述统计单元根据每种待量化数据中的最大值和最小值确定所述绝对值最大值。
在本实施例中,所述量化参数确定单元根据每种待量化数据中的最大值、最小值以及所述数据位宽确定量化参数。
在本实施例中,所述量化参数确定单元根据每种待量化数据中的绝对值最大值、所述数据位宽确定量化参数。
在本实施例中,所述量化参数确定单元确定的所述量化参数为点位置参数或第一缩放系数。
在本实施例中,所述量化参数确定单元根据点位置参数和第二缩放系数确定所述第一缩放系数;其中,确定第一缩放系数时使用的点位置参数为已知固定值,或所述点位置参数和对应的所述第二缩放系数相乘的结果整体作为第一缩放系数应用于神经网络运算过程中的数据量化。
在本实施例中,所述量化参数确定单元确定的所述量化参数包括点位置参数和第二缩放系数。
在本实施例中,所述量化参数确定单元根据所述点位置参数、所述统计结果、所述数据位宽确定所述第二缩放系数。
在本实施例中,所述量化参数确定单元确定的所述量化参数还包括偏移量。
在本实施例中,所述量化参数确定单元根据每种待量化数据的统计结果确定所述偏移量。
在本实施例中,所述量化参数确定单元使用的数据位宽是预设值。
在本实施例中,所述量化参数确定单元包括调整模块和量化误差确定模块;其中,
所述调整模块,用于根据对应的量化误差对数据位宽进行调整;
所述量化误差确定模块,用于根据量化后的数据与对应的量化前的数据确定所述量化误差。
在本实施例中,所述调整模块具体用于:
所述量化误差与阈值进行比较,根据比较结果,调整所述数据位宽;其中,所述阈值包括第一阈值和第二阈值中的至少一个。
在本实施例中,所述调整模块包括第一调整子模块,其中,所述第一调整子模块用于:
所述量化误差大于等于所述第一阈值,则对所述数据位宽进行增加。
在本实施例中,所述调整模块包括第二调整子模块,其中,所述第二调整子模块用于:
所述量化误差小于等于所述第二阈值,则对所述数据位宽进行减少。
在本实施例中,所述调整模块包括第三调整子模块,其中,所述第三调整子模块用于:
所述量化误差处于所述第一阈值和所述第二阈值之间,则所述数据位宽保持不变。
在本实施例中,所述量化误差确定模块包括:
量化间隔确定子模块,用于根据所述数据位宽确定量化间隔;
第一量化误差确定子模块,用于根据所述量化间隔、所述量化后的数据的个数与对应的量化前的数据确定量化误差。
在本实施例中,所述量化误差确定模块包括:
反量化数据确定子模块,用于对量化后的数据进行反量化,获得反量化数据;其中,所述反量化数据的数据格式与对应的量化前的数据的数据格式相同;
第二量化误差确定子模块,用于根据所述量化后的数据以及对应的反量化数据确定量化误差。
在本实施例中,所述量化误差确定模块使用的所述量化前的数据是所述待量化数据。
在本实施例中,所述量化误差确定模块使用的所述量化前的数据是在目标迭代间隔内的权值更新迭代过程中涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽。
在本实施例中,所述神经网络的量化参数确定设备还包括第一目标迭代间隔确定单元;其中,所述第一目标迭代间隔确定单元包括:
第一变化趋势值确定模块,用于在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
第一目标迭代间隔模块,用于根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
在本实施例中,所述第一目标迭代间隔确定单元包括:
第二变化趋势值确定模块,用于在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值、数据位宽的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
第二目标迭代间隔模块,用于根据所述点位置参数的变化趋势值和所述数据位宽的变化趋势值确定对应所述目标迭代间隔。
在本实施例中,所述第一目标迭代间隔确定单元还包括第一预判时间点确定单元;其中,
所述第一预判时间点确定单元,用于根据所述目标迭代间隔确定所述第一预判时间点。
在本实施例中,所述第一目标迭代间隔确定单元还包括第二预判时间点确定单元;其中,所述第二预判时间点确定单元,用于根据数据变动幅度曲线确定第二预判时间点;其中,所述数据变动幅度曲线是对权值更新迭代过程中数据变动幅度情况进行统计获得的。
在本实施例中,所述第一变化趋势值确定模块和所述第二变化趋势值确定模块均根据当前预判时间点对应的点位置参数的滑动平均值、上一预判时间点对应的点位置参数的滑动平均值确定所述点位置参数的变化趋势值。
在本实施例中,所述第一变化趋势值确定模块和所述第二变化趋势值确定模块均根据当前预判时间点对应的点位置参数、上一预判时间点对应的点位置参数的滑动平均值确定所述点位置参数的变化趋势值。
在本实施例中,所述第一变化趋势值确定模块和所述第二变化趋势值确定模块均包括:
当前预判时间点对应的点位置参数确定子模块,用于根据上一预判时间点对应的点位置参数与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数;
调整结果确定子模块,用于根据所述数据位宽的调整值对所述上一预判时间点对应的点位置参数的滑动平均值进行调整,获得调整结果;
第一滑动平均值确定子模块,用于根据所述当前预判时间点对应的点位置参数、所述调整结果确定当前预判时间点对应的点位置参数的滑动平均值。
在本实施例中,所述第一变化趋势值确定模块和所述第二变化趋势值确定模块均包括:
中间结果确定子模块,用于根据上一预判时间点对应的点位置参数与上一预判时间点对应的点位置参数的滑动平均值确定当前预判时间点对应的点位置参数的滑动平均值的中间结果;
第二滑动平均值确定子模块,用于根据当前预判时间点对应的点位置参数的滑动平均值的中间结果与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数的滑动平均值。
在本实施例中,所述第二变化趋势值确定模块根据对应所述量化误差确定数据位宽的变化趋势值。
在本实施例中,所述第一目标迭代间隔确定单元还包括:
量化误差确定模块,用于确定对应量化误差;其中,所述量化误差对应的量化前的数据是所述预判时间点对应的权值更新迭代过程中涉及的待量化数据;
数据位宽确定模块,用于根据对应量化误差,确定所述目标迭代间隔内量化过程中采用的数据位宽。
在本实施例中,所述数据位宽确定模块具体用于:
所述量化误差与阈值进行比较,根据比较结果,对上一目标迭代间隔内量化过程中采用的数据位宽进行调整,调整结果作为当前目标迭代间隔内量化过程中采用的数据位宽。
在本实施例中,所述量化误差确定模块使用的所述量化前的数据是在目标迭代间隔内的权值更新迭代时涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述量化参数。
在本实施例中,所述神经网络的量化参数确定设备还包括第二目标迭代间隔确定单元;其中,所述第二目标迭代间隔确定单元包括:
第三变化趋势值确定模块,用于在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述量化参数进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
第三目标迭代间隔模块,用于根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
在本实施例中,所述量化参数确定单元根据统计结果、和所述数据位宽确定所述点位置参数。
应该理解,上述的装置实施例仅是示意性的,本披露的设备还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要选择其中的部分或者全部单元来实现。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要选择其中的部分或者全部单元来实现。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如:CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如:阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在本技术方案中,本披露还公开了一种人工智能芯片,其包括了上述神经网络的量化参数确定设备。
在本技术方案中,本披露还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图12示出根据本披露实施例的板卡的结构框图,参阅图12,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
依据以下条款可更好地理解前述内容:
A1.一种神经网络的量化参数确定方法,所述方法包括:
遍历所述神经网络对应的计算图中的算子,从所述计算图中选择当前算子和待融合算子;
根据人工智能处理器的片上存储器的可用存储容量,确定拆分尺寸;
根据所述拆分尺寸将所述待融合算子的输出数据拆分成多个数据块;
基于所述待融合算子的输出数据的数据块的尺寸,映射得到与对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块的尺寸;
所述待融合算子的输出数据的数据块、对应的所述当前算子的输入数据的数据块、以及所述当前算子与待融合算子之间的中间数据的数据块作为待量化数据,获得每种待量化数据的统计结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据;
利用每种待量化数据的统计结果以及数据位宽确定对应量化参数;其中,所述量化参数用于人工智能处理器对神经网络运算过程中的数据进行对应量化;所述量化参数为点位置参数。
A2.如A1所述的方法,所述方法还包括:
利用对应量化参数对所述待量化数据进行量化。
A3.如A1或A2所述的方法,所述方法还包括:
利用对应量化参数对目标数据进行量化;其中,所述目标数据的特征与所述待量化数据的特征之间具有相似性。
A4.如A1所述的方法,所述神经网络运算过程包括神经网络训练、神经网络推理、神经网络微调中的至少一种运算。
A5.如A1所述的方法,所述统计结果为每种待量化数据中的最大值和最小值。
A6.如A1所述的方法,所述统计结果为每种待量化数据中的绝对值最大值。
A7.如A6所述的方法,所述绝对值最大值根据每种待量化数据中的最大值和最小值确定。
A8.如A5所述的方法,所述量化参数根据每种待量化数据中的最大值、最小值以及所述数据位宽确定。
A9.如A6或A7所述的方法,所述量化参数根据每种待量化数据中的绝对值最大值、所述数据位宽确定。
A10.如A1所述的方法,所述数据位宽是预设值。
A11.如A1所述的方法,所述数据位宽根据对应的量化误差进行调整;其中,所述量化误差是根据量化后的数据与对应的量化前的数据确定。
A12.如A11所述的方法,所述数据位宽的调整步骤包括:
所述量化误差与阈值进行比较,根据比较结果,调整所述数据位宽;其中,所述阈值包括第一阈值和第二阈值中的至少一个。
A13.如A12所述的方法,调整所述数据位宽的步骤包括:
所述量化误差大于等于所述第一阈值,则对所述数据位宽进行增加。
A14.如A12所述的方法,调整所述数据位宽的步骤包括:
所述量化误差小于等于所述第二阈值,则对所述数据位宽进行减少。
A15.如A12所述的方法,调整所述数据位宽的步骤包括:
所述量化误差处于所述第一阈值和所述第二阈值之间,则所述数据位宽保持不变。
A16.如A11所述的方法,所述量化误差的获取方法包括:
根据所述数据位宽确定量化间隔;
根据所述量化间隔、所述量化后的数据的个数与对应的量化前的数据确定量化误差。
A17.如A11所述的方法,所述量化误差的获取方法包括:
对量化后的数据进行反量化,获得反量化数据;其中,所述反量化数据的数据格式与对应的量化前的数据的数据格式相同;
根据所述量化后的数据以及对应的反量化数据确定量化误差。
A18.如A11所述的方法,所述量化前的数据是所述待量化数据。
A19.如A11所述的方法,所述量化前的数据是在目标迭代间隔内的权值更新迭代过程中涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽。
A20.如A19所述的方法,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
A21.如A19所述的方法,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值、数据位宽的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值和所述数据位宽的变化趋势值确定对应所述目标迭代间隔。
A22.如A20或A21所述的方法,所述预判时间点包括第一预判时间点;其中,所述第一预判时间点是根据所述目标迭代间隔确定的。
A23.如A22所述的方法,所述预判时间点还包括第二预判时间点;其中,所述第二预判时间点是根据数据变动幅度曲线确定的;所述数据变动幅度曲线是对权值更新迭代过程中数据变动幅度情况进行统计获得的。
A24.如A20~A23任一项所述的方法,所述点位置参数的变化趋势值根据当前预判时间点对应的点位置参数的滑动平均值、上一预判时间点对应的点位置参数的滑动平均值确定。
A25.如A20~A23任一项所述的方法,所述点位置参数的变化趋势值根据当前预判时间点对应的点位置参数、上一预判时间点对应的点位置参数的滑动平均值确定。
A26.如A24所述的方法,所述当前预判时间点对应的点位置参数的滑动平均值的确定步骤包括:
根据上一预判时间点对应的点位置参数与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数;
根据所述数据位宽的调整值对所述上一预判时间点对应的点位置参数的滑动平均值进行调整,获得调整结果;
根据所述当前预判时间点对应的点位置参数、所述调整结果确定当前预判时间点对应的点位置参数的滑动平均值。
A27.如A24所述的方法,所述当前预判时间点对应的点位置参数的滑动平均值的确定步骤包括:
根据上一预判时间点对应的点位置参数与上一预判时间点对应的点位置参数的滑动平均值确定当前预判时间点对应的点位置参数的滑动平均值的中间结果;
根据当前预判时间点对应的点位置参数的滑动平均值的中间结果与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数的滑动平均值。
A28.如A21所述的方法,所述数据位宽的变化趋势值根据对应所述量化误差确定。
A29.如A20~A23任一项所述的方法,所述目标迭代间隔内量化过程中采用的数据位宽的确定步骤包括:
确定对应量化误差;其中,所述量化误差对应的量化前的数据是所述预判时间点对应的权值更新迭代过程中涉及的待量化数据;
根据对应量化误差,确定所述目标迭代间隔内量化过程中采用的数据位宽。
A30.如A29所述的方法,确定所述目标迭代间隔内量化过程中采用的数据位宽的步骤包括:
所述量化误差与阈值进行比较,根据比较结果,对上一目标迭代间隔内量化过程中采用的数据位宽进行调整,调整结果作为当前目标迭代间隔内量化过程中采用的数据位宽。
A31.如A11所述的方法,所述量化前的数据是在目标迭代间隔内的权值更新迭代时涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述量化参数。
A32.如31所述的方法,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述量化参数进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
A33.如A1所述的方法,所述点位置参数根据统计结果、和所述数据位宽确定。
A34.如A1所述的方法,所述方法还包括:
基于所述拆分尺寸、所述当前算子的输入数据的数据块的尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块的尺寸,判断是否将所述当前算子与待融合算子融合在一起;
根据判断结果确定拆分尺寸。
A35.如A34所述的方法,根据判断结果确定拆分尺寸的步骤包括:
所述判断结果为不可将所述当前算子与待融合算子融合在一起,调整当前的拆分尺寸,根据调整后的拆分尺寸将所述待融合算子的输出数据拆分成对应的数据块;
基于所述待融合算子的数据块,映射得到与对应的所述当前算子的输入数据的数据块、以及所述当前算子与所述待融合算子之间的中间数据的数据块。
A36.如A1所述的方法,所述当前算子与所述待融合算子之间的数据流向为单向的。
A37.一种神经网络的量化参数确定装置,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现A1~A36中任一项所述方法的步骤。
A38.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时,实现如权利要求A1~A36中任一项所述的方法的步骤。
以上已经描述了本披露的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (38)
1.一种神经网络的量化参数确定方法,其特征在于,所述方法包括:
遍历所述神经网络对应的计算图中的算子,从所述计算图中选择当前算子和待融合算子;
根据人工智能处理器的片上存储器的可用存储容量,确定拆分尺寸;
根据所述拆分尺寸将所述待融合算子的输出数据拆分成多个数据块;
基于所述待融合算子的输出数据的数据块的尺寸,映射得到与对应的所述当前算子的输入数据的数据块尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块的尺寸;
所述待融合算子的输出数据的数据块、对应的所述当前算子的输入数据的数据块、以及所述当前算子与待融合算子之间的中间数据的数据块作为待量化数据,获得每种待量化数据的统计结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据;
利用每种待量化数据的统计结果以及数据位宽确定对应量化参数;其中,所述量化参数用于人工智能处理器对神经网络运算过程中的数据进行对应量化;所述量化参数为点位置参数。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
利用对应量化参数对所述待量化数据进行量化。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
利用对应量化参数对目标数据进行量化;其中,所述目标数据的特征与所述待量化数据的特征之间具有相似性。
4.如权利要求1所述的方法,其特征在于,所述神经网络运算过程包括神经网络训练、神经网络推理、神经网络微调中的至少一种运算。
5.如权利要求1所述的方法,其特征在于,所述统计结果为每种待量化数据中的最大值和最小值。
6.如权利要求1所述的方法,其特征在于,所述统计结果为每种待量化数据中的绝对值最大值。
7.如权利要求6所述的方法,其特征在于,所述绝对值最大值根据每种待量化数据中的最大值和最小值确定。
8.如权利要求5所述的方法,其特征在于,所述量化参数根据每种待量化数据中的最大值、最小值以及所述数据位宽确定。
9.如权利要求6或7所述的方法,其特征在于,所述量化参数根据每种待量化数据中的绝对值最大值、所述数据位宽确定。
10.如权利要求1所述的方法,其特征在于,所述数据位宽是预设值。
11.如权利要求1所述的方法,其特征在于,所述数据位宽根据对应的量化误差进行调整;其中,所述量化误差是根据量化后的数据与对应的量化前的数据确定。
12.如权利要求11所述的方法,其特征在于,所述数据位宽的调整步骤包括:
所述量化误差与阈值进行比较,根据比较结果,调整所述数据位宽;其中,所述阈值包括第一阈值和第二阈值中的至少一个。
13.如权利要求12所述的方法,其特征在于,调整所述数据位宽的步骤包括:
所述量化误差大于等于所述第一阈值,则对所述数据位宽进行增加。
14.如权利要求12所述的方法,其特征在于,调整所述数据位宽的步骤包括:
所述量化误差小于等于所述第二阈值,则对所述数据位宽进行减少。
15.如权利要求12所述的方法,其特征在于,调整所述数据位宽的步骤包括:
所述量化误差处于所述第一阈值和所述第二阈值之间,则所述数据位宽保持不变。
16.如权利要求11所述的方法,其特征在于,所述量化误差的获取方法包括:
根据所述数据位宽确定量化间隔;
根据所述量化间隔、所述量化后的数据的个数与对应的量化前的数据确定量化误差。
17.如权利要求11所述的方法,其特征在于,所述量化误差的获取方法包括:
对量化后的数据进行反量化,获得反量化数据;其中,所述反量化数据的数据格式与对应的量化前的数据的数据格式相同;
根据所述量化后的数据以及对应的反量化数据确定量化误差。
18.如权利要求11所述的方法,其特征在于,所述量化前的数据是所述待量化数据。
19.如权利要求11所述的方法,其特征在于,所述量化前的数据是在目标迭代间隔内的权值更新迭代过程中涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽。
20.如权利要求19所述的方法,其特征在于,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
21.如权利要求19所述的方法,其特征在于,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值、数据位宽的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值和所述数据位宽的变化趋势值确定对应所述目标迭代间隔。
22.如权利要求20或21所述的方法,其特征在于,所述预判时间点包括第一预判时间点;其中,所述第一预判时间点是根据所述目标迭代间隔确定的。
23.如权利要求22所述的方法,其特征在于,所述预判时间点还包括第二预判时间点;其中,所述第二预判时间点是根据数据变动幅度曲线确定的;所述数据变动幅度曲线是对权值更新迭代过程中数据变动幅度情况进行统计获得的。
24.如权利要求20或21所述的方法,其特征在于,所述点位置参数的变化趋势值根据当前预判时间点对应的点位置参数的滑动平均值、上一预判时间点对应的点位置参数的滑动平均值确定。
25.如权利要求20或21所述的方法,其特征在于,所述点位置参数的变化趋势值根据当前预判时间点对应的点位置参数、上一预判时间点对应的点位置参数的滑动平均值确定。
26.如权利要求24所述的方法,其特征在于,所述当前预判时间点对应的点位置参数的滑动平均值的确定步骤包括:
根据上一预判时间点对应的点位置参数与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数;
根据所述数据位宽的调整值对所述上一预判时间点对应的点位置参数的滑动平均值进行调整,获得调整结果;
根据所述当前预判时间点对应的点位置参数、所述调整结果确定当前预判时间点对应的点位置参数的滑动平均值。
27.如权利要求24所述的方法,其特征在于,所述当前预判时间点对应的点位置参数的滑动平均值的确定步骤包括:
根据上一预判时间点对应的点位置参数与上一预判时间点对应的点位置参数的滑动平均值确定当前预判时间点对应的点位置参数的滑动平均值的中间结果;
根据当前预判时间点对应的点位置参数的滑动平均值的中间结果与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数的滑动平均值。
28.如权利要求21所述的方法,其特征在于,所述数据位宽的变化趋势值根据对应所述量化误差确定。
29.如权利要求20或21所述的方法,其特征在于,所述目标迭代间隔内量化过程中采用的数据位宽的确定步骤包括:
确定对应量化误差;其中,所述量化误差对应的量化前的数据是所述预判时间点对应的权值更新迭代过程中涉及的待量化数据;
根据对应量化误差,确定所述目标迭代间隔内量化过程中采用的数据位宽。
30.如权利要求29所述的方法,其特征在于,确定所述目标迭代间隔内量化过程中采用的数据位宽的步骤包括:
所述量化误差与阈值进行比较,根据比较结果,对上一目标迭代间隔内量化过程中采用的数据位宽进行调整,调整结果作为当前目标迭代间隔内量化过程中采用的数据位宽。
31.如权利要求11所述的方法,其特征在于,所述量化前的数据是在目标迭代间隔内的权值更新迭代时涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述量化参数。
32.如权利要求31所述的方法,其特征在于,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述量化参数进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
33.如权利要求1所述的方法,其特征在于,所述点位置参数根据统计结果、和所述数据位宽确定。
34.如权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述拆分尺寸、所述当前算子的输入数据的数据块的尺寸、以及所述当前算子与待融合算子之间的中间数据的数据块的尺寸,判断是否将所述当前算子与待融合算子融合在一起;
根据判断结果确定拆分尺寸。
35.如权利要求34所述的方法,其特征在于,根据判断结果确定拆分尺寸的步骤包括:
所述判断结果为不可将所述当前算子与待融合算子融合在一起,调整当前的拆分尺寸,根据调整后的拆分尺寸将所述待融合算子的输出数据拆分成对应的数据块;
基于所述待融合算子的数据块,映射得到与对应的所述当前算子的输入数据的数据块、以及所述当前算子与所述待融合算子之间的中间数据的数据块。
36.如权利要求1所述的方法,其特征在于,所述当前算子与所述待融合算子之间的数据流向为单向的。
37.一种神经网络的量化参数确定装置,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~36中任一项所述方法的步骤。
38.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被执行时,实现如权利要求1~36中任一项所述的方法的步骤。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505239 | 2019-06-12 | ||
CN2019105052397 | 2019-06-12 | ||
CN201910515355 | 2019-06-14 | ||
CN2019105153557 | 2019-06-14 | ||
CN201910528537 | 2019-06-18 | ||
CN2019105285378 | 2019-06-18 | ||
CN2019105701250 | 2019-06-27 | ||
CN201910570125 | 2019-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112085186A CN112085186A (zh) | 2020-12-15 |
CN112085186B true CN112085186B (zh) | 2024-03-05 |
Family
ID=69185300
Family Applications (14)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910887861.9A Active CN112085184B (zh) | 2019-06-12 | 2019-09-19 | 量化参数调整方法、装置及相关产品 |
CN201910960385.9A Active CN112085193B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910887544.7A Active CN112085183B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络运算方法及装置以及相关产品 |
CN201910960314.9A Active CN112085192B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910889339.4A Active CN112085188B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910888150.3A Active CN112085185B (zh) | 2019-06-12 | 2019-09-19 | 量化参数调整方法、装置及相关产品 |
CN201910888626.3A Active CN112085186B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910959831.4A Active CN112085190B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910959360.7A Active CN112085189B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910959851.1A Active CN112085191B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201980005061.8A Pending CN112400176A (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910886577.XA Active CN112085181B (zh) | 2019-06-12 | 2019-09-19 | 神经网络量化方法及装置以及相关产品 |
CN202010402271.5A Active CN111652368B (zh) | 2019-06-12 | 2020-05-13 | 一种数据处理方法及相关产品 |
CN202010401876.2A Active CN111652367B (zh) | 2019-06-12 | 2020-05-13 | 一种数据处理方法及相关产品 |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910887861.9A Active CN112085184B (zh) | 2019-06-12 | 2019-09-19 | 量化参数调整方法、装置及相关产品 |
CN201910960385.9A Active CN112085193B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910887544.7A Active CN112085183B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络运算方法及装置以及相关产品 |
CN201910960314.9A Active CN112085192B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910889339.4A Active CN112085188B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910888150.3A Active CN112085185B (zh) | 2019-06-12 | 2019-09-19 | 量化参数调整方法、装置及相关产品 |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910959831.4A Active CN112085190B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910959360.7A Active CN112085189B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910959851.1A Active CN112085191B (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201980005061.8A Pending CN112400176A (zh) | 2019-06-12 | 2019-09-19 | 一种神经网络的量化参数确定方法及相关产品 |
CN201910886577.XA Active CN112085181B (zh) | 2019-06-12 | 2019-09-19 | 神经网络量化方法及装置以及相关产品 |
CN202010402271.5A Active CN111652368B (zh) | 2019-06-12 | 2020-05-13 | 一种数据处理方法及相关产品 |
CN202010401876.2A Active CN111652367B (zh) | 2019-06-12 | 2020-05-13 | 一种数据处理方法及相关产品 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11675676B2 (zh) |
EP (4) | EP3770823A4 (zh) |
JP (3) | JP7578493B2 (zh) |
KR (3) | KR102656332B1 (zh) |
CN (14) | CN112085184B (zh) |
WO (2) | WO2020248424A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11740898B2 (en) | 2018-02-13 | 2023-08-29 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
CN110162162B (zh) | 2018-02-14 | 2023-08-18 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
WO2020001438A1 (zh) | 2018-06-27 | 2020-01-02 | 上海寒武纪信息科技有限公司 | 片上代码断点调试方法、片上处理器及芯片断点调试系统 |
US11507823B2 (en) * | 2019-01-22 | 2022-11-22 | Black Sesame Technologies Inc. | Adaptive quantization and mixed precision in a network |
US11966818B2 (en) | 2019-02-21 | 2024-04-23 | Hewlett Packard Enterprise Development Lp | System and method for self-healing in decentralized model building for machine learning using blockchain |
US11676029B2 (en) * | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
EP3770823A4 (en) | 2019-06-12 | 2021-01-27 | Shanghai Cambricon Information Technology Co., Ltd | QUANTIFICATION PARAMETER DETERMINATION PROCESS FOR NEURONAL NETWORK, AND RELATED PRODUCT |
CN110490309B (zh) * | 2019-08-14 | 2022-06-07 | 中科寒武纪科技股份有限公司 | 一种用于神经网络的算子融合方法及其相关产品 |
EP4020321A4 (en) | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
EP4024280A4 (en) | 2019-08-27 | 2022-11-16 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD AND APPARATUS, COMPUTER EQUIPMENT AND STORAGE MEDIA |
CN112487182B (zh) * | 2019-09-12 | 2024-04-12 | 华为技术有限公司 | 文本处理模型的训练方法、文本处理方法及装置 |
US12039427B2 (en) * | 2019-09-24 | 2024-07-16 | Baidu Usa Llc | Cursor-based adaptive quantization for deep neural networks |
JP7354736B2 (ja) * | 2019-09-30 | 2023-10-03 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
US11775611B2 (en) * | 2019-11-01 | 2023-10-03 | Samsung Electronics Co., Ltd. | Piecewise quantization for neural networks |
JP2021111081A (ja) * | 2020-01-09 | 2021-08-02 | 富士通株式会社 | 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法 |
US20210241183A1 (en) * | 2020-01-31 | 2021-08-05 | Hewlett Packard Enterprise Development Lp | Adaptively synchronizing learning of multiple learning models |
CN113741619B (zh) * | 2020-05-27 | 2024-03-12 | 安徽寒武纪信息科技有限公司 | 时钟控制装置及相关产品 |
KR20220033713A (ko) * | 2020-09-10 | 2022-03-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그 동작 방법 |
CN112686001B (zh) * | 2021-01-05 | 2021-12-03 | 中科三清科技有限公司 | 气象数据的变换方法、传输方法、服务器及数据传输系统 |
JP7512914B2 (ja) | 2021-01-26 | 2024-07-09 | 株式会社デンソー | ニューラルネットワーク量子化方法、装置及びプログラム |
KR102507461B1 (ko) * | 2021-02-16 | 2023-03-07 | 고려대학교 산학협력단 | 레이어-단위 양자화 신경망을 위한 인-메모리 가속기 및 이의 동작 방법 |
CN112990457B (zh) * | 2021-03-26 | 2024-05-03 | 开放智能机器(上海)有限公司 | 离线量化调优方法、装置、设备、介质及程序产品 |
CN113220606B (zh) * | 2021-05-07 | 2021-11-26 | 珠海市芯动力科技有限公司 | 神经网络权值存储方法、读取方法及相关设备 |
JP2023069780A (ja) * | 2021-11-08 | 2023-05-18 | 富士通株式会社 | 演算プログラム、演算方法及び計算機 |
WO2023128024A1 (ko) * | 2021-12-30 | 2023-07-06 | 한국전자기술연구원 | 딥러닝 네트워크 양자화 처리 방법 및 시스템 |
CN114444688A (zh) * | 2022-01-14 | 2022-05-06 | 百果园技术(新加坡)有限公司 | 神经网络的量化方法、装置、设备、存储介质及程序产品 |
KR20230136572A (ko) * | 2022-03-18 | 2023-09-26 | 인텔렉추얼디스커버리 주식회사 | 신경망 기반 특징 텐서 압축 방법 및 장치 |
CN114611697B (zh) * | 2022-05-11 | 2022-09-09 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
KR20240102632A (ko) * | 2022-12-26 | 2024-07-03 | 삼성전자주식회사 | 신경망 모델 양자화 장치 및 방법 |
WO2024158174A1 (ko) * | 2023-01-25 | 2024-08-02 | 삼성전자주식회사 | 모델의 연산과 관련된 오퍼레이터의 양자화를 위한 전자 장치 및 방법 |
KR20240136759A (ko) * | 2023-03-07 | 2024-09-19 | 주식회사 사피온코리아 | 외부환경의 변화를 고려한 딥러닝 신경망 모델의 양자화 방법 및 장치 |
CN117787358B (zh) * | 2024-01-16 | 2024-07-30 | 之江实验室 | 一种基于阻变存储器的模型量化方法、装置以及设备 |
CN117910421B (zh) * | 2024-03-15 | 2024-07-16 | 南京美辰微电子有限公司 | 一种基于神经网络的动态近似电路计算部署方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229681A (zh) * | 2017-12-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种神经网络模型压缩方法、系统、装置及可读存储介质 |
CN108427990A (zh) * | 2016-01-20 | 2018-08-21 | 北京中科寒武纪科技有限公司 | 神经网络计算系统和方法 |
CN109740754A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109740739A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
Family Cites Families (259)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2604712B2 (ja) * | 1985-10-18 | 1997-04-30 | ソニー株式会社 | テレビジヨン信号の高能率符号化/復号装置 |
JPS63111768A (ja) * | 1986-10-30 | 1988-05-17 | Nec Corp | 画像デ−タ量子化装置 |
JPH0375860A (ja) | 1989-08-18 | 1991-03-29 | Hitachi Ltd | パーソナライズド端末 |
JPH087475B2 (ja) | 1990-01-29 | 1996-01-29 | 富士ゼロックス株式会社 | カラー画像形成装置及びその使用方法 |
US5052043A (en) | 1990-05-07 | 1991-09-24 | Eastman Kodak Company | Neural network with back propagation controlled through an output confidence measure |
EP0509576B1 (en) * | 1991-04-18 | 1998-01-28 | Ampex Systems Corporation | Method and apparatus for determining a quantizing factor for processes involving multiple compression/decompression of data |
US6144977A (en) | 1995-07-10 | 2000-11-07 | Motorola, Inc. | Circuit and method of converting a floating point number to a programmable fixed point number |
GB9602701D0 (en) | 1996-02-09 | 1996-04-10 | Canon Kk | Image manipulation |
JPH09224246A (ja) * | 1996-02-15 | 1997-08-26 | Sony Corp | 画像圧縮符号化および画像圧縮復号化装置 |
JPH10233691A (ja) * | 1998-03-30 | 1998-09-02 | Nec Corp | 符号化方式および復号方式 |
JPH11306268A (ja) | 1998-04-17 | 1999-11-05 | Sunao Shibata | 半導体演算装置 |
US7242414B1 (en) | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
JP2000293371A (ja) | 1999-04-09 | 2000-10-20 | Hitachi Ltd | マイクロプログラム制御方法及び装置 |
US6671796B1 (en) | 2000-02-25 | 2003-12-30 | Sun Microsystems, Inc. | Converting an arbitrary fixed point value to a floating point value |
US6931639B1 (en) | 2000-08-24 | 2005-08-16 | International Business Machines Corporation | Method for implementing a variable-partitioned queue for simultaneous multithreaded processors |
EP1315846B1 (en) | 2000-09-07 | 2007-02-21 | Nippon Steel Corporation | Hexavalent chromium-free surface-treating agent for sn- or al-based coated steel sheet, and surface treated steel sheet |
US7062445B2 (en) * | 2001-01-26 | 2006-06-13 | Microsoft Corporation | Quantization loop with heuristic approach |
US20020138714A1 (en) | 2001-03-22 | 2002-09-26 | Sun Microsystems, Inc. | Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution |
CN1270273C (zh) | 2001-04-19 | 2006-08-16 | 艾利森电话股份有限公司 | 自适应存储器分配 |
US20030167460A1 (en) | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
JP4148356B2 (ja) * | 2002-11-18 | 2008-09-10 | 学校法人東海大学 | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム |
US7236995B2 (en) | 2002-12-27 | 2007-06-26 | Arm Limited | Data processing apparatus and method for converting a number between fixed-point and floating-point representations |
DE10316381A1 (de) | 2003-04-10 | 2004-10-28 | Bayer Technology Services Gmbh | Verfahren zum Training von neuronalen Netzen |
JP3889738B2 (ja) * | 2003-09-26 | 2007-03-07 | 三洋電機株式会社 | 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム |
JP4202244B2 (ja) | 2003-12-22 | 2008-12-24 | Necエレクトロニクス株式会社 | Vliw型dsp,及びその動作方法 |
US20060161375A1 (en) | 2004-12-30 | 2006-07-20 | Allen Duberstein | Optimizing processing speed based on measured temperatures |
KR100762591B1 (ko) * | 2005-09-29 | 2007-10-01 | 엘지전자 주식회사 | 비디오 코덱의 양자화 파라미터 결정방법 |
US7721128B2 (en) | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
WO2007116551A1 (ja) * | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
CN1851668A (zh) | 2006-06-01 | 2006-10-25 | 北京天碁科技有限公司 | 片上系统芯片、片上系统芯片的跟踪调试系统及方法 |
JP5224666B2 (ja) * | 2006-09-08 | 2013-07-03 | 株式会社東芝 | オーディオ符号化装置 |
DE102006059156B4 (de) | 2006-12-14 | 2008-11-06 | Advanced Micro Devices, Inc., Sunnyvale | Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem |
US20110060587A1 (en) | 2007-03-07 | 2011-03-10 | Phillips Michael S | Command and control utilizing ancillary information in a mobile voice-to-speech application |
US8560591B2 (en) | 2007-04-25 | 2013-10-15 | International Business Machines Corporation | Detection of potential need to use a larger data format in performing floating point operations |
US8051117B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Shift significand of decimal floating point data |
US8190664B2 (en) | 2007-04-26 | 2012-05-29 | International Business Machines Corporation | Employing a mask field of an instruction to encode a sign of a result of the instruction |
US8051118B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Composition of decimal floating point data |
JP5184824B2 (ja) | 2007-06-15 | 2013-04-17 | キヤノン株式会社 | 演算処理装置及び方法 |
JP2009110353A (ja) | 2007-10-31 | 2009-05-21 | Hitachi Ltd | マイクロコントローラ及び制御システム |
US7904287B2 (en) | 2007-11-13 | 2011-03-08 | International Business Machines Corporation | Method and system for real-time prediction of power usage for a change to another performance state |
JP4998794B2 (ja) | 2007-11-29 | 2012-08-15 | Nkワークス株式会社 | 画像補正方法と画像補正装置 |
KR101518237B1 (ko) * | 2008-09-01 | 2015-05-15 | 삼성전자주식회사 | 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치 |
US20100073068A1 (en) | 2008-09-22 | 2010-03-25 | Hanwoo Cho | Functional block level thermal control |
CN101754490B (zh) * | 2008-12-17 | 2012-11-07 | 电信科学技术研究院 | 一种数据传输的方法、系统和装置 |
KR101596954B1 (ko) | 2009-01-29 | 2016-02-24 | 엘지디스플레이 주식회사 | 데이터 압축과 복원 방법 및 장치와 이를 이용한 액정표시장치 |
JP2010233691A (ja) | 2009-03-30 | 2010-10-21 | Kyoraku Sangyo Kk | 遊技機、周辺基板、認証方法、プログラム |
CN101572829B (zh) | 2009-06-10 | 2011-02-02 | 中国联合网络通信集团有限公司 | Iptv视频质量监测方法、装置和系统 |
EP2336882A1 (en) | 2009-12-18 | 2011-06-22 | Telefonaktiebolaget L M Ericsson (PUBL) | Technique for run-time provision of executable code using off-device services |
WO2011132277A1 (ja) | 2010-04-21 | 2011-10-27 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
JP2011253374A (ja) | 2010-06-02 | 2011-12-15 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
US8452463B2 (en) | 2010-06-04 | 2013-05-28 | Apple Inc. | Adjusting the thermal behavior of a computing system using indirect information about ambient temperature |
US8694572B2 (en) | 2010-07-06 | 2014-04-08 | Silminds, Llc, Egypt | Decimal floating-point fused multiply-add unit |
CN102622207B (zh) * | 2011-01-30 | 2015-07-22 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
US8924455B1 (en) | 2011-02-25 | 2014-12-30 | Xilinx, Inc. | Multiplication of matrices using systolic arrays |
JP6062356B2 (ja) | 2011-02-28 | 2017-01-18 | 株式会社メガチップス | 画像符号化装置 |
CN102761509B (zh) | 2011-04-27 | 2016-01-06 | 联芯科技有限公司 | Ofdm系统的接收系统及降低接收系统内存的方法 |
WO2012155105A1 (en) | 2011-05-12 | 2012-11-15 | Apple Inc. | Presence sensing |
CN102789413B (zh) | 2011-05-23 | 2016-02-17 | 同济大学 | 一种并行程序的调试系统及方法 |
US8594982B2 (en) | 2011-06-09 | 2013-11-26 | Pulsar Informatics, Inc. | Systems and methods for distributed calculation of fatigue-risk prediction and optimization |
CN102291773B (zh) * | 2011-07-18 | 2014-12-10 | 电信科学技术研究院 | 一种数据压缩方法和设备 |
CN102404673B (zh) | 2011-11-24 | 2013-12-18 | 苏州上声电子有限公司 | 数字化扬声器系统通道均衡与声场控制方法和装置 |
CN103152673B (zh) | 2011-12-07 | 2015-07-08 | 中国科学院声学研究所 | 基于四元码动态失配整形的数字扬声器驱动方法和装置 |
US8856602B2 (en) | 2011-12-20 | 2014-10-07 | International Business Machines Corporation | Multi-core processor with internal voting-based built in self test (BIST) |
JP6056162B2 (ja) | 2012-03-12 | 2017-01-11 | 三菱マテリアル株式会社 | パワーモジュールの製造方法 |
CN102684701B (zh) | 2012-04-27 | 2014-07-09 | 苏州上声电子有限公司 | 基于编码转换的数字扬声器驱动方法和装置 |
DE102012009502A1 (de) | 2012-05-14 | 2013-11-14 | Kisters Ag | Verfahren zum Trainieren eines künstlichen neuronalen Netzes |
US9417891B2 (en) | 2012-06-11 | 2016-08-16 | Vmware, Inc. | Unified storage/VDI provisioning methodology |
US9224089B2 (en) * | 2012-08-07 | 2015-12-29 | Qualcomm Incorporated | Method and apparatus for adaptive bit-allocation in neural systems |
US9063731B2 (en) | 2012-08-27 | 2015-06-23 | Samsung Electronics Co., Ltd. | Ultra low power apparatus and method to wake up a main processor |
CN102903089B (zh) | 2012-09-07 | 2014-12-17 | 山东大学 | 一种Linux环境下生成遥感图像快视图的方法 |
US9412366B2 (en) | 2012-09-18 | 2016-08-09 | Adobe Systems Incorporated | Natural language image spatial and tonal localization |
JP5913059B2 (ja) | 2012-11-13 | 2016-04-27 | 日本電信電話株式会社 | 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法 |
CN102981854A (zh) | 2012-11-16 | 2013-03-20 | 天津市天祥世联网络科技有限公司 | 基于浮点数运算内联函数库的神经网络优化方法 |
WO2014081007A1 (ja) | 2012-11-22 | 2014-05-30 | 学校法人慶應義塾 | アクリル系共重合体、光学フィルム、偏光板および液晶表示装置 |
US9851977B2 (en) | 2012-12-06 | 2017-12-26 | Kalray | Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization |
US9720732B1 (en) | 2013-02-11 | 2017-08-01 | Amazon Technologies, Inc. | Parameter selection for optimization of task execution based on execution history for prior tasks |
JP2014170295A (ja) | 2013-03-01 | 2014-09-18 | Honda Motor Co Ltd | 物体認識システム及び物体認識方法 |
US12047340B2 (en) | 2013-04-29 | 2024-07-23 | Dell Products L.P. | System for managing an instructure with security |
US20150063461A1 (en) * | 2013-08-27 | 2015-03-05 | Magnum Semiconductor, Inc. | Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding |
JP6184891B2 (ja) | 2014-03-12 | 2017-08-23 | 東芝メモリ株式会社 | 情報処理装置、半導体チップ、情報処理方法およびプログラム |
CN105100810B (zh) * | 2014-05-16 | 2018-02-13 | 中国科学院声学研究所 | 一种成像声纳实时处理系统中的图像压缩解压方法及系统 |
US9507405B2 (en) | 2014-06-18 | 2016-11-29 | Oracle International Corporation | System and method for managing power in a chip multiprocessor using a proportional feedback mechanism |
US10318882B2 (en) * | 2014-09-11 | 2019-06-11 | Amazon Technologies, Inc. | Optimized training of linear machine learning models |
US9575537B2 (en) | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
GB2524126B (en) | 2014-08-28 | 2016-07-27 | Imagination Tech Ltd | Combining paths |
US9916130B2 (en) | 2014-11-03 | 2018-03-13 | Arm Limited | Apparatus and method for vector processing |
FR3030077B1 (fr) | 2014-12-10 | 2016-12-02 | Arnault Ioualalen | Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule. |
EP3035204B1 (en) | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US20170061279A1 (en) | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
EP3089080A1 (en) | 2015-04-27 | 2016-11-02 | Universität Zürich | Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10083395B2 (en) | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
CN104899641B (zh) | 2015-05-25 | 2018-07-13 | 杭州朗和科技有限公司 | 深度神经网络学习方法、处理器和深度神经网络学习系统 |
WO2016199151A2 (en) | 2015-06-10 | 2016-12-15 | Mobileye Vision Technologies Ltd. | Image processor and methods for processing an image |
CN104978303B (zh) | 2015-06-19 | 2019-06-04 | 上海兆芯集成电路有限公司 | 单芯片整合的传感器集线器和多传感器管理方法 |
CN106469291A (zh) | 2015-08-19 | 2017-03-01 | 中兴通讯股份有限公司 | 图像处理方法及终端 |
US10970617B2 (en) * | 2015-08-21 | 2021-04-06 | Institute Of Automation Chinese Academy Of Sciences | Deep convolutional neural network acceleration and compression method based on parameter quantification |
US10031765B2 (en) | 2015-09-24 | 2018-07-24 | Intel Corporation | Instruction and logic for programmable fabric hierarchy and cache |
WO2017055609A1 (en) | 2015-09-30 | 2017-04-06 | Piksel, Inc | Improved video stream delivery via adaptive quality enhancement using error correction models |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
CN106570559A (zh) | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
US9930248B2 (en) | 2015-11-17 | 2018-03-27 | Eman Bayani | Digital image capturing device system and method |
CN106814639A (zh) | 2015-11-27 | 2017-06-09 | 富泰华工业(深圳)有限公司 | 语音控制系统及方法 |
CN105893419A (zh) | 2015-11-30 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种多媒体照片生成方法、装置、设备及手机 |
US10699186B2 (en) | 2015-12-02 | 2020-06-30 | Google Llc | Determining orders of execution of a neural network |
CN111353588B (zh) | 2016-01-20 | 2024-03-05 | 中科寒武纪科技股份有限公司 | 用于执行人工神经网络反向训练的装置和方法 |
CN106997236B (zh) | 2016-01-25 | 2018-07-13 | 亮风台(上海)信息科技有限公司 | 基于多模态输入进行交互的方法和设备 |
US10733531B2 (en) | 2016-01-27 | 2020-08-04 | Bonsai AI, Inc. | Artificial intelligence engine having an architect module |
US10497089B2 (en) | 2016-01-29 | 2019-12-03 | Fotonation Limited | Convolutional neural network |
JP2017156511A (ja) | 2016-03-01 | 2017-09-07 | ソニー株式会社 | 情報処理装置、情報処理方法、およびプログラム |
US10103714B2 (en) | 2016-03-01 | 2018-10-16 | Qualcomm Incorporated | Adjust voltage for thermal mitigation |
US10019779B2 (en) | 2016-03-08 | 2018-07-10 | Amazon Technologies, Inc. | Browsing interface for item counterparts having different scales and lengths |
CN109073339B (zh) * | 2016-03-31 | 2020-08-25 | 可利尔Px科技有限公司 | 温度控制装置和具有静态冷却能力的系统 |
US10552119B2 (en) | 2016-04-29 | 2020-02-04 | Intel Corporation | Dynamic management of numerical representation in a distributed matrix processor architecture |
CN107330515A (zh) | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
US11055063B2 (en) | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
US10187568B1 (en) | 2016-05-02 | 2019-01-22 | Bao Tran | Video smart phone |
GB201607713D0 (en) * | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
CN105978611B (zh) | 2016-05-12 | 2019-09-17 | 京信通信系统(中国)有限公司 | 一种频域信号压缩方法及装置 |
AU2016203619A1 (en) | 2016-05-31 | 2017-12-14 | Canon Kabushiki Kaisha | Layer-based operations scheduling to optimise memory for CNN applications |
EP3252949B1 (en) | 2016-06-01 | 2020-03-18 | Intel IP Corporation | Methods and devices for predistortion of signals |
US20170357910A1 (en) | 2016-06-10 | 2017-12-14 | Apple Inc. | System for iteratively training an artificial intelligence using cloud-based metrics |
CN107545889B (zh) | 2016-06-23 | 2020-10-23 | 华为终端有限公司 | 适用于模式识别的模型的优化方法、装置及终端设备 |
US20180005111A1 (en) * | 2016-06-30 | 2018-01-04 | International Business Machines Corporation | Generalized Sigmoids and Activation Function Learning |
CN106156310A (zh) | 2016-06-30 | 2016-11-23 | 努比亚技术有限公司 | 一种图片处理装置和方法 |
US10372588B2 (en) | 2016-07-08 | 2019-08-06 | International Business Machines Corporation | Providing debug information on production containers using debug containers |
US11222263B2 (en) | 2016-07-28 | 2022-01-11 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
DE102016214786A1 (de) | 2016-08-09 | 2018-02-15 | Fujitsu Limited | Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren |
CN107688855B (zh) | 2016-08-12 | 2021-04-13 | 赛灵思公司 | 针对于复杂神经网络的分层量化方法与装置 |
US20180046903A1 (en) | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
CN106354568A (zh) | 2016-08-23 | 2017-01-25 | 京信通信技术(广州)有限公司 | 一种不同进程间的通信方法及通信装置 |
CN107797913A (zh) | 2016-09-07 | 2018-03-13 | 大陆汽车电子(连云港)有限公司 | 一种实时系统的软件分析系统与方法 |
US20180075347A1 (en) * | 2016-09-15 | 2018-03-15 | Microsoft Technology Licensing, Llc | Efficient training of neural networks |
US11907760B2 (en) | 2016-09-23 | 2024-02-20 | Apple Inc. | Systems and methods of memory allocation for neural networks |
CN106650922B (zh) | 2016-09-29 | 2019-05-03 | 清华大学 | 硬件神经网络转换方法、计算装置、软硬件协作系统 |
US20180096243A1 (en) | 2016-09-30 | 2018-04-05 | General Electric Company | Deep learning for data driven feature representation and anomaly detection |
US10726330B2 (en) | 2016-10-11 | 2020-07-28 | The Research Foundation For The State University Of New York | System, method, and accelerator to process convolutional neural network layers |
US11321609B2 (en) * | 2016-10-19 | 2022-05-03 | Samsung Electronics Co., Ltd | Method and apparatus for neural network quantization |
CN106485316B (zh) | 2016-10-31 | 2019-04-02 | 北京百度网讯科技有限公司 | 神经网络模型压缩方法以及装置 |
CN106502626A (zh) | 2016-11-03 | 2017-03-15 | 北京百度网讯科技有限公司 | 数据处理方法和装置 |
US10216479B2 (en) | 2016-12-06 | 2019-02-26 | Arm Limited | Apparatus and method for performing arithmetic operations to accumulate floating-point numbers |
CN106815551B (zh) * | 2016-12-08 | 2019-09-10 | 新疆农业大学 | 一种森林资源管理的变异函数参数拟合的优化方法 |
WO2018103736A1 (en) | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN106600070A (zh) * | 2016-12-20 | 2017-04-26 | 郭建峰 | 基于ipso‑bp神经网络的短期股价预测算法 |
US10997492B2 (en) | 2017-01-20 | 2021-05-04 | Nvidia Corporation | Automated methods for conversions to a lower precision data format |
CN108345939B (zh) | 2017-01-25 | 2022-05-24 | 微软技术许可有限责任公司 | 基于定点运算的神经网络 |
JP7004503B2 (ja) * | 2017-01-27 | 2022-01-21 | ラピスセミコンダクタ株式会社 | 自動利得制御回路(agc)、逆拡散回路及び受信データの再生方法 |
CN106951587A (zh) | 2017-02-15 | 2017-07-14 | 芯启源(南京)半导体科技有限公司 | Fpga调试系统及方法 |
CN106951962B (zh) | 2017-03-22 | 2020-09-01 | 南京地平线机器人技术有限公司 | 用于神经网络的复合运算单元、方法和电子设备 |
US10402932B2 (en) | 2017-04-17 | 2019-09-03 | Intel Corporation | Power-based and target-based graphics quality adjustment |
US10332302B2 (en) | 2017-04-17 | 2019-06-25 | Intel Corporation | Scatter gather engine |
CN109121435A (zh) * | 2017-04-19 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
CN108734287A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
CN107025629B (zh) | 2017-04-27 | 2021-03-26 | 维沃移动通信有限公司 | 一种图像处理方法及移动终端 |
KR102034661B1 (ko) * | 2017-04-28 | 2019-10-21 | 서울대학교산학협력단 | 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치 |
US11842280B2 (en) * | 2017-05-05 | 2023-12-12 | Nvidia Corporation | Loss-scaling for deep neural network training with reduced precision |
US10019668B1 (en) | 2017-05-19 | 2018-07-10 | Google Llc | Scheduling neural network processing |
KR102526650B1 (ko) * | 2017-05-25 | 2023-04-27 | 삼성전자주식회사 | 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치 |
CN115841137A (zh) * | 2017-06-06 | 2023-03-24 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
CN115688877A (zh) * | 2017-06-06 | 2023-02-03 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
TWI675335B (zh) | 2017-06-09 | 2019-10-21 | 宏達國際電子股份有限公司 | 訓練任務優化系統、訓練任務優化方法及其非暫態電腦可讀媒體 |
CN107197297B (zh) | 2017-06-14 | 2019-12-10 | 中国科学院信息工程研究所 | 一种检测基于dct系数隐写的视频隐写分析方法 |
US10944902B2 (en) | 2017-06-20 | 2021-03-09 | Adobe Inc. | Digital image generation using capture support data |
US9916531B1 (en) * | 2017-06-22 | 2018-03-13 | Intel Corporation | Accumulator constrained quantization of convolutional neural networks |
WO2019005088A1 (en) | 2017-06-30 | 2019-01-03 | Intel Corporation | HETEROGENEOUS MULTIPLIER |
CN109214509B (zh) | 2017-07-05 | 2021-07-06 | 中国科学院沈阳自动化研究所 | 一种用于深度神经网络高速实时量化结构和运算实现方法 |
CN107451654B (zh) | 2017-07-05 | 2021-05-18 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
US10427306B1 (en) | 2017-07-06 | 2019-10-01 | X Development Llc | Multimodal object identification |
CN107729990B (zh) | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN107451658B (zh) | 2017-07-24 | 2020-12-15 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107688849B (zh) | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
CN107679618B (zh) * | 2017-07-28 | 2021-06-11 | 赛灵思电子科技(北京)有限公司 | 一种静态策略定点化训练方法及装置 |
US11481218B2 (en) | 2017-08-02 | 2022-10-25 | Intel Corporation | System and method enabling one-hot neural networks on a machine learning compute platform |
CN109388779A (zh) * | 2017-08-03 | 2019-02-26 | 珠海全志科技股份有限公司 | 一种神经网络权重量化方法和神经网络权重量化装置 |
KR102601604B1 (ko) * | 2017-08-04 | 2023-11-13 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
KR20200029510A (ko) | 2017-08-08 | 2020-03-18 | 삼성전자주식회사 | 네트워크에서 메모리 요구 사항을 결정하는 방법 및 장치 |
US20190050710A1 (en) | 2017-08-14 | 2019-02-14 | Midea Group Co., Ltd. | Adaptive bit-width reduction for neural networks |
CN110663048B (zh) | 2017-09-05 | 2023-10-24 | 松下电器(美国)知识产权公司 | 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及记录介质 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN109558945A (zh) * | 2017-09-25 | 2019-04-02 | 三星电子株式会社 | 对人工神经网络及浮点神经网络进行量化的方法及装置 |
US10224954B1 (en) | 2017-09-29 | 2019-03-05 | Intel Corporation | Floating point to fixed point conversion |
US11450319B2 (en) | 2017-09-29 | 2022-09-20 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Image processing apparatus and method |
US10223114B1 (en) | 2017-09-29 | 2019-03-05 | Intel Corporation | Fixed point to floating point conversion |
CN107679490B (zh) * | 2017-09-29 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 用于检测图像质量的方法和装置 |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
KR102379954B1 (ko) | 2017-09-29 | 2022-03-28 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 화상처리장치 및 방법 |
JP6540770B2 (ja) | 2017-10-17 | 2019-07-10 | 富士通株式会社 | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 |
KR102564456B1 (ko) * | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
US10410121B2 (en) | 2017-10-25 | 2019-09-10 | SparkCognition, Inc. | Adjusting automated neural network generation based on evaluation of candidate neural networks |
US20210061028A1 (en) | 2017-10-26 | 2021-03-04 | Applied Mechatronic Products | Apparatus and method for vehicular monitoring, analysis, and control |
KR20190054454A (ko) * | 2017-11-13 | 2019-05-22 | 삼성전자주식회사 | 인공 신경망의 양자화 방법 및 장치 |
US10783634B2 (en) | 2017-11-22 | 2020-09-22 | General Electric Company | Systems and methods to deliver point of care alerts for radiological findings |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
CN108053028B (zh) | 2017-12-21 | 2021-09-14 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
US11636327B2 (en) | 2017-12-29 | 2023-04-25 | Intel Corporation | Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism |
US11373088B2 (en) | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
CN108288089A (zh) * | 2018-01-29 | 2018-07-17 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
CN108229663A (zh) * | 2018-01-29 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
US20190251429A1 (en) | 2018-02-12 | 2019-08-15 | Kneron, Inc. | Convolution operation device and method of scaling convolution input for convolution neural network |
US11740898B2 (en) | 2018-02-13 | 2023-08-29 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11106598B2 (en) | 2018-02-13 | 2021-08-31 | Shanghai Cambricon Information Technology Co., Ltd. | Computing device and method |
CN110162162B (zh) | 2018-02-14 | 2023-08-18 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
JP7056225B2 (ja) | 2018-02-26 | 2022-04-19 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
US10628275B2 (en) | 2018-03-07 | 2020-04-21 | Nxp B.V. | Runtime software-based self-test with mutual inter-core checking |
US11475306B2 (en) | 2018-03-22 | 2022-10-18 | Amazon Technologies, Inc. | Processing for multiple input data sets |
CN108631727B (zh) * | 2018-03-26 | 2019-08-09 | 河北工业大学 | 一种基于卷积神经网络的太阳能电池板缺陷识别方法 |
CN108491928B (zh) * | 2018-03-29 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 模型参数发送方法、装置、服务器及存储介质 |
CN108509627B (zh) * | 2018-04-08 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 数据离散化模型训练方法和装置、数据离散方法 |
CN108510067B (zh) * | 2018-04-11 | 2021-11-09 | 西安电子科技大学 | 基于工程化实现的卷积神经网络量化方法 |
US11562213B2 (en) | 2018-04-17 | 2023-01-24 | Intel Corporation | Methods and arrangements to manage memory in cascaded neural networks |
CN108596328B (zh) * | 2018-04-26 | 2021-02-02 | 北京市商汤科技开发有限公司 | 一种定点化方法及装置、计算机设备 |
US10691413B2 (en) | 2018-05-04 | 2020-06-23 | Microsoft Technology Licensing, Llc | Block floating point computations using reduced bit-width vectors |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
CN108717570A (zh) * | 2018-05-23 | 2018-10-30 | 电子科技大学 | 一种脉冲神经网络参数量化方法 |
CN115268082A (zh) | 2018-05-31 | 2022-11-01 | 中强光电股份有限公司 | 头戴式显示装置 |
US10360304B1 (en) | 2018-06-04 | 2019-07-23 | Imageous, Inc. | Natural language processing interface-enabled building conditions control system |
CN109062540B (zh) | 2018-06-06 | 2022-11-25 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
CN109063820A (zh) | 2018-06-07 | 2018-12-21 | 中国科学技术大学 | 利用时频联合长时循环神经网络的数据处理方法 |
CN108830331A (zh) * | 2018-06-22 | 2018-11-16 | 西安交通大学 | 一种基于全卷积网络的探地雷达目标检测方法 |
CN109102064B (zh) * | 2018-06-26 | 2020-11-13 | 杭州雄迈集成电路技术股份有限公司 | 一种高精度的神经网络量化压缩方法 |
CN109146057B (zh) | 2018-06-26 | 2020-12-08 | 杭州雄迈集成电路技术股份有限公司 | 一种基于查表计算的高精度的神经网络工程化方法 |
WO2020001438A1 (zh) | 2018-06-27 | 2020-01-02 | 上海寒武纪信息科技有限公司 | 片上代码断点调试方法、片上处理器及芯片断点调试系统 |
CN110728364A (zh) | 2018-07-17 | 2020-01-24 | 上海寒武纪信息科技有限公司 | 一种运算装置和运算方法 |
CN109002889B (zh) * | 2018-07-03 | 2021-12-17 | 华南理工大学 | 自适应迭代式卷积神经网络模型压缩方法 |
CN109214504B (zh) * | 2018-08-24 | 2020-09-04 | 北京邮电大学深圳研究院 | 一种基于fpga的yolo网络前向推理加速器设计方法 |
KR102519467B1 (ko) | 2018-08-28 | 2023-04-06 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체 |
WO2020062392A1 (zh) | 2018-09-28 | 2020-04-02 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN109472353B (zh) | 2018-11-22 | 2020-11-03 | 浪潮集团有限公司 | 一种卷积神经网络量化电路及量化方法 |
CN109598331A (zh) * | 2018-12-04 | 2019-04-09 | 北京芯盾时代科技有限公司 | 一种欺诈识别模型训练方法、欺诈识别方法及装置 |
CN109685202B (zh) | 2018-12-17 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质和电子装置 |
GB2580171B (en) * | 2018-12-21 | 2021-02-17 | Imagination Tech Ltd | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation |
CN109754074A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 一种神经网络量化方法、装置以及相关产品 |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN109800865B (zh) * | 2019-01-24 | 2021-03-23 | 北京市商汤科技开发有限公司 | 神经网络生成及图像处理方法和装置、平台、电子设备 |
US20190164057A1 (en) * | 2019-01-30 | 2019-05-30 | Intel Corporation | Mapping and quantification of influence of neural network features for explainable artificial intelligence |
CN109859135B (zh) * | 2019-01-31 | 2021-05-07 | 北京邮电大学 | 一种应用于关联成像的图像增强处理方法 |
CN109800877B (zh) | 2019-02-20 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
CN109902745A (zh) | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
CN110020616B (zh) | 2019-03-26 | 2021-05-11 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110008952B (zh) | 2019-03-26 | 2021-06-15 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110059733A (zh) | 2019-04-01 | 2019-07-26 | 苏州科达科技股份有限公司 | 卷积神经网络的优化及快速目标检测方法、装置 |
CN109993296B (zh) | 2019-04-01 | 2020-12-29 | 安徽寒武纪信息科技有限公司 | 量化实现方法及相关产品 |
CN111832738B (zh) | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
US11934940B2 (en) | 2019-04-18 | 2024-03-19 | Cambricon Technologies Corporation Limited | AI processor simulation |
US20200364552A1 (en) * | 2019-05-13 | 2020-11-19 | Baidu Usa Llc | Quantization method of improving the model inference accuracy |
US11531893B2 (en) * | 2019-06-03 | 2022-12-20 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
US11676029B2 (en) * | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
EP3770823A4 (en) | 2019-06-12 | 2021-01-27 | Shanghai Cambricon Information Technology Co., Ltd | QUANTIFICATION PARAMETER DETERMINATION PROCESS FOR NEURONAL NETWORK, AND RELATED PRODUCT |
US20210374510A1 (en) | 2019-08-23 | 2021-12-02 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
EP4020321A4 (en) | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
JP7146955B2 (ja) | 2019-08-23 | 2022-10-04 | 安徽寒武紀信息科技有限公司 | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 |
EP4024280A4 (en) | 2019-08-27 | 2022-11-16 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD AND APPARATUS, COMPUTER EQUIPMENT AND STORAGE MEDIA |
CN110780845B (zh) | 2019-10-17 | 2021-11-30 | 浙江大学 | 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法 |
-
2019
- 2019-09-19 EP EP19786896.1A patent/EP3770823A4/en active Pending
- 2019-09-19 CN CN201910887861.9A patent/CN112085184B/zh active Active
- 2019-09-19 CN CN201910960385.9A patent/CN112085193B/zh active Active
- 2019-09-19 CN CN201910887544.7A patent/CN112085183B/zh active Active
- 2019-09-19 CN CN201910960314.9A patent/CN112085192B/zh active Active
- 2019-09-19 KR KR1020207038085A patent/KR102656332B1/ko active IP Right Grant
- 2019-09-19 CN CN201910889339.4A patent/CN112085188B/zh active Active
- 2019-09-19 WO PCT/CN2019/106801 patent/WO2020248424A1/zh unknown
- 2019-09-19 CN CN201910888150.3A patent/CN112085185B/zh active Active
- 2019-09-19 EP EP19932304.9A patent/EP3998554A4/en active Pending
- 2019-09-19 JP JP2020573207A patent/JP7578493B2/ja active Active
- 2019-09-19 CN CN201910888626.3A patent/CN112085186B/zh active Active
- 2019-09-19 KR KR1020207038084A patent/KR102609719B1/ko active IP Right Grant
- 2019-09-19 CN CN201910959831.4A patent/CN112085190B/zh active Active
- 2019-09-19 KR KR1020207038081A patent/KR20210018352A/ko not_active Application Discontinuation
- 2019-09-19 CN CN201910959360.7A patent/CN112085189B/zh active Active
- 2019-09-19 EP EP19218382.0A patent/EP3772023B1/en active Active
- 2019-09-19 US US16/622,541 patent/US11675676B2/en active Active
- 2019-09-19 WO PCT/CN2019/106754 patent/WO2020248423A1/zh unknown
- 2019-09-19 EP EP19218379.6A patent/EP3772022B1/en active Active
- 2019-09-19 CN CN201910959851.1A patent/CN112085191B/zh active Active
- 2019-09-19 CN CN201980005061.8A patent/CN112400176A/zh active Pending
- 2019-09-19 CN CN201910886577.XA patent/CN112085181B/zh active Active
-
2020
- 2020-05-13 CN CN202010402271.5A patent/CN111652368B/zh active Active
- 2020-05-13 CN CN202010401876.2A patent/CN111652367B/zh active Active
- 2020-12-28 JP JP2020219684A patent/JP7167405B2/ja active Active
- 2020-12-28 JP JP2020219685A patent/JP7166704B2/ja active Active
-
2021
- 2021-12-10 US US17/547,972 patent/US12093148B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427990A (zh) * | 2016-01-20 | 2018-08-21 | 北京中科寒武纪科技有限公司 | 神经网络计算系统和方法 |
CN108229681A (zh) * | 2017-12-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种神经网络模型压缩方法、系统、装置及可读存储介质 |
CN109740754A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109740739A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085186B (zh) | 一种神经网络的量化参数确定方法及相关产品 | |
US11676028B2 (en) | Neural network quantization parameter determination method and related products | |
JP7146955B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146952B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146953B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
WO2021036890A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110717585B (zh) | 神经网络模型的训练方法、数据处理方法和相关产品 | |
CN112085176A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113947177A (zh) | 一种量化校准方法、计算装置和计算机可读存储介质 | |
CN112085177A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085151A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20220222041A1 (en) | Method and apparatus for processing data, and related product | |
WO2023201424A1 (en) | System and method for adaptation of containers for floating-point data for training of a machine learning model |
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 |