CN112085183B - 一种神经网络运算方法及装置以及相关产品 - Google Patents
一种神经网络运算方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN112085183B CN112085183B CN201910887544.7A CN201910887544A CN112085183B CN 112085183 B CN112085183 B CN 112085183B CN 201910887544 A CN201910887544 A CN 201910887544A CN 112085183 B CN112085183 B CN 112085183B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- target data
- iteration
- quantized
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 231
- 238000000034 method Methods 0.000 title claims abstract description 223
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 20
- 238000012544 monitoring process Methods 0.000 claims abstract description 6
- 238000013139 quantization Methods 0.000 claims description 528
- 238000012549 training Methods 0.000 claims description 60
- 210000002569 neuron Anatomy 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000737 periodic effect Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 29
- 230000002829 reductive effect Effects 0.000 description 25
- 210000002364 input neuron Anatomy 0.000 description 10
- 230000036961 partial effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000002441 reversible effect Effects 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 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 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization 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
技术领域
本披露涉及人工智能技术领域,尤其涉及一种神经网络运算方法及装置以及相关产品。
背景技术
近年来,人工智能技术得到了快速发展,由于其准确度较高,已经广泛应用到众多领域,包括图像分类、语音识别、自然语音处理等。然而随着人工智能技术的不断发展,待处理的数据的规模不断扩大,运算复杂度不断升高,大大增加了软硬件平台运算的开销,因而对其提出了更高的要求。那么如何能够在软硬件开销和计算准确度上取得平衡,成为了一个重要的问题。
发明内容
为了解决上述所述的技术问题,本披露提出一种神经网络运算方法及装置以及相关产品。
为实现上述目的,本披露提供一种神经网络运算方法,所述方法包括:
确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
根据所述量化数据对神经网络进行运算。
为实现上述目的,本披露提供一种神经网络运算装置,所述装置包括:
量化参数确定模块,用于确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
执行模块,用于根据所述量化数据对神经网络进行运算。
为实现上述目的,本披露提供一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述所述方法。
为实现上述目的,本披露提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述方法的步骤。
为实现上述目的,本披露提供一种人工智能芯片,所述芯片包括上述的神经网络运算装置。
为实现上述目的,本披露提供一种电子设备,所述电子设备包括上述的人工智能芯片。
为实现上述目的,本披露提供一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
在本披露的实施例中,对于所述神经网络,确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;根据量化参数对对应的待量化数据进行量化,得到量化数据;根据得到的量化数据对神经网络进行运算。采用量化后的数据进行神经网络运算,能够在保证计算准确度的情况下,有效提高神经网络的运算速度,降低对存储开销和运算器的面积功耗开销的需求,从而有效降低对软硬件平台的开销需求,提高整体的运算效率,满足对软硬件开销和计算准确度上取得平衡的需求。
根据下面参考附图对示例性实施例的详细说明,本披露的其它特征及方面将变得清楚。
附图说明
为了更清楚地说明本披露实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本披露的一些实施例,而非对本披露的限制。
图1示出根据本披露实施例的神经网络运算方法的流程图;
图2示出根据本披露实施例的神经网络运算方法的流程图;
图3示出根据本披露实施例的神经网络运算方法的流程图;
图4示出根据本披露实施例的神经网络运算方法的流程图;
图5示出根据本披露实施例的神经网络运算方法中量化参数不包括偏移量时,量化前后的数据对应示意图;
图6示出根据本披露实施例的神经网络运算方法的流程图;
图7示出根据本披露实施例的神经网络运算方法中量化参数包括偏移量时,量化前后的数据对应示意图;
图8示出根据本披露实施例的神经网络运算方法的流程图;
图9示出根据本披露实施例的神经网络运算方法的流程图;
图10示出根据本披露实施例的神经网络运算方法的流程图;
图11示出根据本披露实施例的神经网络运算方法的流程图;
图12示出根据本披露实施例的神经网络运算方法的流程图;
图13示出根据本披露实施例的神经网络运算方法的流程图;
图14示出根据本披露实施例的神经网络运算方法的流程图;
图15示出根据本披露实施例的神经网络运算方法的流程图;
图16示出根据本披露实施例的神经网络运算方法的流程图;
图17示出根据本披露实施例的神经网络运算装置的示意图;
图18示出根据本披露实施例的板卡的结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本披露,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本披露同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本披露的主旨。
近年来,得益于人工智能技术的快速发展和计算机算力的不断提高,神经网络算法能够在多个领域上取得巨大的成功,成为了快速发展的一个领域。但是随着神经网络的快速发展,待处理数据的规模不断提高,算法复杂度也在不断提升,因而给软硬件平台都提出了更高的要求。常见的CPU等通用处理器为了保证计算的精确度,往往不断扩大其支持的数据位宽,如32位单精度浮点数,64位双精度浮点数,甚至有128位浮点数。显然,当数据位宽增加,软件方面,会大大降低运算速度,而硬件方面,相应的运算器的面积和功耗都成比例的增加,相应的数据存储开销也会增大。因此,对于神经网络算法,显然运算效率是十分低下的。
虽然已经有研究表明,对于神经网络算法而言,采用16位定点数据,可以在不影响精度的情况下大大降低其硬件开销,但是这只局限于推理阶段。对于神经网络的训练阶段而言,依然需要采用浮点数进行训练,才能保证其训练的精度。显然,现有的方法中,无法在神经网络的准确度和软硬件开销中取得有效的平衡。因此,面对上述问题,本披露提出一种神经网络运算方法及装置以及相关产品,对神经网络的待处理数据进行量化,并基于量化后的数据进行运算,从而能够在保证准确度的情况下,大大降低软硬件开销。
下面结合附图,对本披露实施例提供的一种神经网络运算方法及装置以及相关产品的具体实施方式进行详细说明。
图1示出根据本披露实施例的神经网络运算方法的流程图。该神经网络的运算方法可应用于通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)中,本披露对神经网络量化方法所应用的处理器的类型不作限制。
如图1所示,所述神经网络运算方法包括:
步骤S10,确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种。
神经网络待量化数据可以为一个神经网络中的所有数据,也可以为一个神经网络中的某几层的全部数据,也可以为一个神经网络中的某几层的部分数据,如处理器一次处理的数据规模。这里待处理数据可以执行卷积运算、全连接运算、池化运算等,也可以执行神经网络训练过程中的前向传递阶段的运算和/或反向传递阶段的运算。在本披露中,对模型的规模、运算的类型和运算的阶段不作限定。
在一种可能的实现方式中,所述的待量化数据包括神经元、偏置、梯度、权值中的至少一种。
用于执行神经网络运算的待运算数据可以包括神经元、偏置、梯度、权值,其中梯度可进一步包括权值梯度和神经元梯度。可以根据需求,将神经网络的待运算数据的至少一种作为待量化数据。当运算过程中包括多种待量化数据,可分别利用本披露中的量化方法对每种待量化数据进行量化,得到与每种待量化数据相应的量化数据,进行运算。
在运算过程中,对同一数据可以只量化一次,也可以量化多次。以训练运算为例,在前向传递过程中利用量化方法得到相应的量化数据后,在反向传递过程中继续沿用之前得到的量化数据;又如在前向传递过程中利用量化方法得到相应的量化数据后,在反向传递过程中使用未量化的数据;也可以对同一数据量化多次,如在不同阶段分别进行量化,即在前向传递过程中利用量化方法得到相应的量化数据,在反向传递过程中再次利用量化方法得到相应的量化数据。
在量化过程中,可以对所有待量化数据利用本披露所述的量化方法进行量化得到相应的量化数据,也可以对部分待量化数据利用本披露所述的量化方法进行量化得到相应的量化数据。本披露对此不做限定。
与神经网络待量化数据对应的量化参数包括点位置、缩放系数和偏移量中的至少一种。对于不同的待量化数据,可以对应相同类型和/或相同数量的量化参数,可以对应不同类型和/或不同数量的量化参数,如对于待量化数据1,可以对应点位置1和缩放系数1;对于待量化数据2,可以对应偏移量1;对于待量化数据3,可以对应点位置1、缩放系数2和偏移量2。其中,所述量化参数可以在每次迭代中进行调整,也可以在指定迭代中进行调整。调整后的量化参数可以在当前迭代中直接使用,也可以在下次迭代中开始使用。本披露对此不做限定。
确定待量化数据的量化参数的方法可以采用查表法,即通过查表的方式,查找出与待量化数据对应的预设的量化参数。也可以根据待量化数据和对应的数据位宽确定,其中数据位宽可以使用预设值,也可以使用在运算中对其更新的更新值。
步骤S20,根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据。
可以利用设定的量化参数对对应的待量化数据进行量化。其中,所述量化方法可以包括取整、缩放、移位等操作,也可以是多种操作的组合。当神经网络包括多种待量化数据时,可以分别根据对应的量化参数,对待量化数据分别进行量化。
在一种可能的实现方式中,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,所述点位置为量化后小数点的位置,所述缩放系数为量化后数据的最大值与待量化数据的最大绝对值之间的比值,所述偏移量为待量化数据的中间值。
在一种可能的实现方式中,量化参数可以包括点位置。可以利用如下的公式(1)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(1)中的四舍五入的取整运算。可以理解的是,在数据位宽一定的情况下,根据点位置量化得到的量化数据中,小数点后的位数越多,量化数据的量化精度越大。
在一种可能的实现方式中,量化参数可以包括缩放系数。可以利用如下的公式(2)对待量化数据进行量化,得到量化数据Ix:
其中,f为缩放系数,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(2)中的四舍五入的取整运算。可以理解的是,在数据位宽一定的情况下,采用不同的缩放系数,可以调整量化后数据的数值范围。
在一种可能的实现方式中,量化参数可以包括偏移量。可以利用如下的公式(3)对待量化数据进行量化,得到量化数据Ix:
Ix=round(Fx-o) 公式(3)
其中,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(3)中的四舍五入的取整运算。可以理解的是,在数据位宽一定的情况下,采用不同的偏移量,可以调整量化后数据的数值与量化前数据之间的偏移量。
在一种可能的实现方式中,量化参数可以包括点位置和缩放系数。可以利用如下的公式(4)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置,f为缩放系数,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(4)中的四舍五入的取整运算。
在一种可能的实现方式中,量化参数可以包括点位置和偏移量。可以利用如下的公式(5)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(5)中的四舍五入的取整运算。
在一种可能的实现方式中,量化参数可以包括点位置、缩放系数和偏移量。可以利用如下的公式(6)对待量化数据进行量化,得到量化数据Ix:
其中,s为点位置,f为缩放系数,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(6)中的四舍五入的取整运算。
在本实施例中,量化参数包括点位置、缩放系数和偏移量中的至少一种。采用不同的量化参数的组合对待量化数据进行量化,可以产生不同精度的量化结果。可以根据需求对量化参数进行灵活组合后按需取用。
步骤S30,根据所述量化数据对神经网络进行运算。
根据量化数据对神经网络进行运算,所述运算包括推理运算、训练运算和微调运算中的至少一种,包括部分运算或者整体运算,例如推理运算中的某几层运算或者,某几层中的某一部分运算,也可以是整个神经网络的运算。又如可以执行前向传递阶段和反向传递阶段,其中反向传递阶段又可以进一步细分为传播阶段和权值更新阶段。所述量化数据可以在其中某个或某几个阶段进行,也可以在整个运算过程中进行,本披露对此不做限定。
在本实施例中,确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;根据所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;根据所述量化数据对神经网络进行运算。
采用这样的运算方法,选取与待量化数据对应的量化参数,能够更有针对性的对待量化数据进行量化。这样,一方面能够最大限度的利用量化数据保留待量化数据的信息,从而最大可能的保证计算准确度;另一方面,能够通过量化有效将浮点数量化为定点数,或者将高精度或者高位宽的定点数量化为相应的低精度或低位宽的定点数,有效降低了相应的硬件运算器的面积和功耗开销,同时降低了存储开销,从而降低了对硬件平台资源的需求,同时提高了运算速度和效率,相当于减轻了软件开销的压力,因此可以认为在准确度和软硬件平台资源开销之间取得了很好的平衡。
图2示出了根据本披露实施例的神经网络运算方法的流程图。如图2所示,神经网络运算方法中的步骤S10包括:
步骤S11,通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
在一种可能的实现方式中,神经网络的待量化数据与对应的量化参数可以是预设的,其相应的关系表保存在片上或者片外的某一存储区域中,在使用的时候,通过查表的方式获取其相应的量化参数,从而确定待量化数据对应的量化参数。其中,对于不同的待量化数据可以采用一对一的对应方式,即对于一个或一组待量化数据对应一个或一组量化参数;也可以采用多对一的对应方式,即对于多个或多组待量化数据对应一个或一组量化参数;也可以采用一对多的对应方式,即对于一个或一组待量化数据对应多个或多组量化参数,如前向传递阶段和反向传递阶段,同一待量化数据分别对应不同的量化参数。本披露对待量化数据和量化参数之间的对应关系不做限定。
采用查表的方式查找待量化数据与量化参数之间对应关系,能够方便快捷的确定所需的量化参数,能够提高量化效率,从而提高整体的执行效率,降低整体的运算开销。
图3示出了根据本披露实施例的神经网络运算方法的流程图。如图3所示,神经网络运算方法中的步骤S10包括:
步骤S12,根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
对每种待量化数据预设相应的数据位宽,如n,根据数据位宽n来计算得到对应的量化参数。对于不同类型的待量化数据可以采用相同的数据位宽也可以采用不同的数据位宽。在训练过程中,数据位宽可以固定不变,也可以根据需求进行调整。
利用待量化数据和对应的数据位宽来确定对应的量化参数,可以根据数据调整所需要的量化参数,从而能够更为灵活、更具有针对性,从而能够有效提高训练准确度。
在一种可能的实现方式中,神经网络的待量化数据与对应的量化参数可以是预设的和通过计算的方式获取组合的,如对于同一组待量化数据,其中一种对应的量化参数是预设的,另一种对应的量化参数是通过计算的方式获取的。具体举例,对于待量化数据AA,对应两种量化参数,为点位置BB和偏移量CC,可以通过AA和AA对应的数据位宽计算得到点位置BB,并通过查表的方式获得偏移量CC。
图4示出了根据本披露实施例的神经网络运算方法的流程图。如图4所示,神经网络运算方法中的步骤S12包括:
步骤S121,当所述量化参数不包括偏移量时,目标数据的点位置由所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,量化参数可以包括点位置而不包括偏移量时,将任一待量化数据作为目标数据,目标数据可以为神经元、权值、梯度、偏置中的任意一种。获取目标数据的点位置的方法可以为通过获取目标数据的绝对值最大值,利用绝对值最大值获得目标数据的点位置。这里对获取绝对值最大值的方法不做限定,譬如可以通过记录最大值和最小值,最后对两个最大值和最小值的绝对值进行比较得到绝对值最大值,也可以通过依次比较每个元素的绝对值,始终记录当前的绝对值最大值从而得到最终的绝对值最大值。
图5示出根据本披露实施例的神经网络运算方法中量化参数不包括偏移量时,量化前后的数据对应示意图。如图5所示,Z1为目标数据中的绝对值最大值,目标数据对应的数据位宽n为8,A为用n量化目标数据后可以表示的最大值,A为2s(2n-1-1)。A需要包含Z1,且Z1要大于可以用公式(7)对此进行约束:
2s(2n-1-1)≥Z1>2s-1(2n-1-1) 公式(7)
可以根据目标数据中的绝对值最大值和数据位宽,计算得到目标数据的点位置。例如,可以利用如下公式(8)计算得到量化参数不包括偏移量时,目标数据的点位置s:
其中,ceil为向上取整,Z1为目标数据中的绝对值最大值,s为目标数据的点位置,n为目标数据对应的数据位宽。
在本实施例中,当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和所述目标数据对应的数据位宽,得到所述目标数据的点位置。根据目标数据计算得到与之对应的点位置,可以更加符合目标数据自身的特征,使得目标数据的量化精度更高。
图6示出了根据本披露实施例的神经网络运算方法的流程图。如图6所示,神经网络运算方法中的步骤S12包括:
步骤S122,当所述量化参数包括偏移量时,目标数据的点位置由所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,量化参数包括点位置和偏移量,将任一待量化数据作为目标数据,目标数据可以为神经元、权值、梯度、偏置中的任意一种。获取目标数据的点位置的方法可以为通过获取目标数据的最大值和最小值,利用目标数据的最大值和最小值以及目标数据对应的数据位宽确定所述目标数据的点位置。
图7示出根据本披露实施例的神经网络运算方法中量化参数包括偏移量时,量化前后的数据对应示意图。如图7所示,A1和A2为用n量化目标数据后可以表示的最大值和最小值,Zmin为目标数据中所有元素的最小值,Zmax为目标数据中所有元素的最大值,可以将目标数据按照偏移量o进行平移后,再进行量化。
可以根据目标数据中的最大值、最小值和数据位宽,计算得到目标数据的点位置。例如,可以根据公式(9)计算得到量化参数包括偏移量时目标数据的点位置s:
其中,ceil为向上取整,s为点位置,n为目标数据对应的数据位宽。
在本实施例中,由于增加了偏移量,可以更具有针对性的利用目标数据自身的数据分布特性,从而提高数据表达效率,在相同的数据位宽中可以表示更多的数据,从而使得量化精度更高。
图8示出了根据本披露实施例的神经网络运算方法的流程图。如图8所示,神经网络运算方法中的步骤S12包括:
步骤S123,当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值。
步骤S124,根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数。
在一种可能的实现方式中,量化参数包括缩放系数且不包括偏移量时,将任一待量化数据作为目标数据,目标数据可以为神经元、权值、梯度、偏置中的任意一种。目标数据中的绝对值最大值可参照上述实施例中的相关阐述。
可以利用公式(10)计算得到量化参数包括点位置不包括偏移量时,目标数据的缩放系数f:
其中,A为量化参数不包括偏移量时,目标数据量化后数据的最大值,可以利用公式(11)计算A:
可以利用公式(12)计算得到量化参数不包括点位置和偏移量时,目标数据的缩放系数f:
其中,ceil为向上取整,Z1为目标数据中的绝对值最大值,s为目标数据的点位置,n为目标数据对应的数据位宽,A为量化参数不包括偏移量时,目标数据量化后数据的最大值,可以利用上述公式(11)计算A。
图9示出了根据本披露实施例的神经网络运算方法的流程图。如图9所示,神经网络运算方法中的步骤S12包括:
步骤S125,当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值。
步骤S126,根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数。
如图7所示,可以根据公式(13)计算得到量化参数包括偏移量和点位置时目标数据的缩放系数f:
其中,A1和A2为用n量化目标数据后可以表示的最大值和最小值,Zmin为目标数据中所有元素的最小值,Zmax为目标数据中所有元素的最大值,可以将目标数据按照偏移量o进行平移后,再进行量化。
也可以根据公式(14)计算得到量化参数包括偏移量不包括点位置时目标数据的缩放系数f:
其中,ceil为向上取整,s为点位置,n为目标数据对应的数据位宽。A1、A2和Z2的定义同上。
在本实施例中,当所述量化参数包括偏移量,根据目标数据对应的数据位宽确定目标数据量化后的最大值,根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,分别得到在包括所述目标数据的点位置和不包括所述目标数据的点位置时的缩放系数。对量化数据进行缩放,从而能够更加符合数据的表示规律,提高目标数据表示的有效率,提高目标数据的量化精度。
图10示出了根据本披露实施例的神经网络运算方法的流程图。如图10所示,神经网络训练方法中的步骤S12包括:
步骤S127,所述目标数据的偏移量由所述目标数据的最大值和最小值确定,所述目标数据为任意一种待量化数据。
可以利用公式(15)计算得到量化参数包括偏移量时目标数据的偏移量o:
在本实施例中,根据目标数据的最大值和最小值确定所述目标数据的偏移量,更加符合数据的分布规律,避免了数据分布不均匀、不对称时导致的部分表示数据的无意义性,从而提高了目标数据表示的有效率,提高目标数据的量化精度。
图11示出了根据本披露实施例的神经网络运算方法的流程图。如图11所示,神经网络运算方法还包括:
步骤S40,根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据。
所述量化数据的误差可以由目标数据Fx与对应的量化数据Ix之间的平均误差、均方误差等确定,也可以将目标数据的量化数据Ix进行反量化后得到目标数据的反量化数据利用所述目标数据的反量化数据/>与对应的目标数据Fx得到所述目标数据的量化误差diffbit。其中,将目标数据的量化数据Ix进行反量化后得到目标数据的反量化数据/>可以为:
当量化参数包括点位置时,可以根据公式(16)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
其中:round为取整运算,为目标数据的反量化数据,s为目标数据对应的点位置。
当量化参数包括缩放系数时,可以根据公式(17)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
其中:round为取整运算。为目标数据的反量化数据,f为缩放系数。
当量化参数包括偏移量时,可以根据公式(18)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
其中:round为取整运算。为目标数据的反量化数据,o为缩放系数。
当量化参数包括点位置和缩放系数时,可以根据公式(19)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
当量化参数包括点位置和偏移量时,可以根据公式(20)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
当量化参数包括缩放系数和偏移量时,可以根据公式(21)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
当量化参数包括点位置、缩放系数和偏移量时,可以根据公式(22)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
上述取整运算可以为四舍五入取整运算,也可以为向上取整运算、向零取整运算等,本披露对此不做限定。
利用所述目标数据的反量化数据与对应的目标数据Fx得到所述目标数据的量化误差diffbit可以为:
可以通过计算量化间隔相关的方法,例如可以通过公式(23)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit:
其中,B为量化间隔,p为目标数据中的各元素的数量,s为目标数据的点位置。B的取值可以根据量化参数进行确定,当量化参数包括点位置s时,B=2s;当量化参数包括点位置s和缩放系数f时,B=2s×f。
也可以通过计算两个数据的均值之间的差的方法,例如通过公式(24)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit:
也可以通过计算两个数据的差之间的均值的方法,例如通过公式(25)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit:
步骤S50,根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽。
所述误差阈值用于表示期望的量化误差范围。可以采用预设的固定的误差阈值。也可以采用预设的初始值,而后随着运算进行调整。当处于不同的运算阶段,误差阈值的调整方式可以相同也可以不同。例如对于训练阶段,误差阈值每次调整的幅度较大;对于微调阶段,数据较为稳定,误差阈值可以每次调整的幅度较小。也可以根据量化参数进行调整,例如误差阈值采用和目标数据相同的点位置,当目标数据的点位置改变时,误差阈值随之改变。
根据所述量化误差和误差阈值调整所述目标数据对应的数据位宽,可以为所述量化误差和误差阈值的比较结果,也可以通过所述量化误差和误差阈值的绝对值的比值结果,对数据位宽进行增大、减小或者保持不变。
步骤S60,根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数。
根据调整后的数据位宽,可以对目标数据对应的量化参数进行相应的调整。可以根据上述公式(8)至公式(15)中所述的公式调整所需要的量化参数,包括目标数据的点位置、缩放系数和/或偏移量,得到调整后的目标数据的点位置、缩放系数和/或偏移量。
步骤S70,根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据。
步骤S80,根据所述目标数据对应的调整后的量化数据对神经网络进行运算。
根据调整后的量化数据对神经网络进行运算,包括推理运算、训练运算和/或微调运算,可以执行其中的部分运算可以执行全部运算,还可以执行其中某一个阶段的运算,例如训练阶段的前向传递阶段、反向传递阶段中的传播阶段和/或权值更新阶段。
在本实施例中,根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;根据所述目标数据对应的调整后的量化数据对神经网络进行运算。从而能够根据目标数据和目标数据对应的量化误差调整量化相关的数据位宽和量化参数,从而使得量化参数能够更符合目标数据的数据特征和数据分布,提高数据表示的有效率,降低数据量化所带来的量化误差,从而整体提高神经网络运算的准确率。
图12示出了根据本披露实施例的神经网络运算方法的流程图。如图12所示,所述神经网络运算方法中的步骤S50还包括:
步骤S51,当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
当量化误差大于第一误差阈值时,目标数据对应的量化数据的精度损失过大,从而会大大影响神经网络运算的精确度。于是增加所述数据位宽,以提高目标数据对应的量化数据的表示精度。其中,可以每次增加预设的固定长度的数据位宽,例如当原目标数据的量化数据位宽为8位,第一次调整时增加4位,第二次调整时也增加4位。对于不同的运算阶段,所述的预设的固定长度的数据位宽可以相同也可以不同,例如对于训练阶段,每次增加8位,而对于微调阶段,每次增加4位。对于不同类型的待量化数据,所述的预设的固定长度的数据位宽可以相同也可以不同,例如对于神经元数据,每次增加2位,对于梯度数据,每次增加4位。
在本实例中,当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽,从而能够根据量化误差和第一误差阈值的比较结果获悉当前的目标数据的数据位宽所对应的目标数据的量化数据的表示精度是不够的,因此通过增大目标数据的数据位宽,提高对应的量化数据的表示精度,从而提高神经网络的运算准确度。对于不同阶段、不同待量化数据的类型,设置不同的预设的调整的数据位宽,更具有针对性的适配不同数据在不同阶段的数据特征,提高数据调整的效率,减少数据位宽调整次数,从而降低在软硬件平台上调整数据位宽所带来的时间和资源开销。
图13示出了根据本披露实施例的神经网络运算方法的流程图。如图13所示,所述神经网络运算方法还包括:
步骤S52,根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差。
步骤S53,根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
根据目标数据调整后的量化误差,多次对所述数据目标数据的数据位宽进行调整,即增加数据位宽,直到调整后的量化误差满足给定条件,即调整后的量化误差不大于第一误差阈值。每次对数据位宽的增加量可以相同也可以不同,例如第一次对数据位宽增加8位,第二次和第三次均增加8位。或者第一次增加8位,第二次增加4位,第三次增加2位。每次对数据位宽的增加量可以为预设值,也可以为变化量,上例中每次增加的数据位宽都是预设的数值,也可以为预设的规则,例如给定初始增加值8位,而后每次增加量为前一次的1/2位,即4位、2位,达到指定最小值2位,则之后每次固定增加2位。
在本实施例中,根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。采用这样的方式,能够在当前运算中对数据进行多次调整,直到在当前运算中满足条件,而后再进行整体运算,从而避免了在数据未达到所需要求就进行整体运算所带来的无效运算,节省了调整的时间和调整和运算所带来的资源的开销。
图14示出了根据本披露实施例的神经网络运算方法的流程图。如图14所示,所述神经网络运算方法中的步骤S50还包括:
步骤S54,当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
当量化误差小于第二误差阈值时,目标数据所需的量化位宽已远超预期,即虽然保证了数据的表示精度,但是大大增大了存储开销和运算开销。因此减小所述的数据位宽,以提高对软硬件资源的有效利用。其中,可以每次减小预设的固定长度的数据位宽,例如当原目标数据的量化数据位宽为32位,第一次调整时减小4位,第二次调整时也减小4位。对于不同的运算阶段,所述的预设的固定长度的数据位宽可以相同也可以不同,例如对于训练阶段,每次较小4位,而对于微调阶段,每次减小2位。对于不同类型的待量化数据,所述的预设的固定长度的数据位宽可以相同也可以不同,例如对于神经元数据,每次减小2位,对于梯度数据,每次减小4位。
在本实例中,当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽,从而能够根据量化误差和第二误差阈值的比较结果获悉采用当前的目标数据的数据位宽来量化目标数据是足够的,但是会对软硬件平台的资源开销造成大量的浪费。因此通过减小目标数据的数据位宽的方式,以降低软硬件平台的资源开销方面的浪费。对于不同阶段、不同待量化数据的类型,设置不同的预设的调整的数据位宽,更具有针对性的适配不同数据在不同阶段的数据特征,提高数据调整的效率,减少数据位宽调整次数,从而降低在软硬件平台上调整数据位宽所带来的时间和资源开销。
图15示出了根据本披露实施例的神经网络运算方法的流程图。如图15所示,所述神经网络运算方法还包括:
步骤S55,根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差。
步骤S56,根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
根据目标数据调整后的量化误差,多次对所述目标数据的数据位宽进行调整,即减少数据位宽,直到调整后的量化误差满足给定条件,即调整后的量化误差不小于第二误差阈值。每次对数据位宽的减少量可以相同也可以不同,例如第一次对数据位宽减少2位,第二次和第三次均减少2位。或者第一次减少4位,第二次减少2位,第三次减少1位。每次对数据位宽的减少量可以为预设值,也可以为变化量,上例中每次减少的数据位宽都是预设的数值,也可以为预设的规则,例如给定初始减少值4位,而后每次减少量为前一次的1/2位,即2位、1位,达到指定最小值1位,则之后每次固定减少1位。
在本实施例中,根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。采用这样的方式,能够在当前运算中对数据进行多次调整,直到在当前运算中满足条件,而后再进行整体运算,从而避免了在数据未达到所需要求就进行整体运算所带来的无效运算,节省了调整的时间和调整和运算所带来的资源的开销。
在一种可能的实现方式中,所述方法还包括:
当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽;当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
同时设置第一误差阈值和第二误差阈值,可以对两个阈值设置优先级,例如优先比较第一误差阈值,所述量化误差大于第一误差阈值,表示所属量化数据的表示精度不够,需要对所述数据位宽进行增大。否则,再将量化误差与第二误差阈值进行比较,以判断是否需要对所述数据位宽进行减小。也可以对两个阈值进行同时比较,当量化误差大于第一误差阈值时,增加所述数据位宽;当量化误差小于第二误差阈值时,减小所述数据位宽;当量化数据不大于第一误差阈值且不小于第二误差阈值时,所述数据位宽保持不变。
在一种可能的实现方式中,所述神经网络运算方法还包括:
根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
其中历史迭代间隔为所述当前迭代之前的迭代,可以包括当前迭代之前的多个迭代。所述目标迭代间隔至少包括一次迭代。
在神经网络运算的微调阶段和/或训练阶段包括多个迭代。神经网络中的各待量化层,在进行一次正向运算和一次反向运算,并对待量化层的权值进行更新后,完成一次迭代。在多次迭代中,待量化层中的目标数据和/或目标数据对应的量化数据的数据变动幅度,可以用于衡量在不同迭代中的目标数据和/或量化数据是否可采用相同的量化参数进行量化。若当前迭代以及历史迭代中目标数据的数据变动幅度较小,例如小于设定的幅度变动阈值时,可以在多个数据变动幅度较小的多个迭代中采用相同的量化参数。
可以通过提取预存的量化参数的方式,确定与目标数据对应的量化参数。在不同的迭代中对目标数据进行量化时,需要在各迭代提取与目标数据对应的量化参数。若多个迭代的目标数据和/或目标数据对应的量化数据的数据变动幅度较小,可将在数据变动幅度较小的多个迭代中采用的相同的量化参数进行暂存,各迭代在进行量化时可以利用暂存的量化参数进行量化运算,不用在每次迭代提取量化参数。
也可以根据目标数据和数据位宽计算得到量化参数。在不同的迭代中对目标数据进行量化时,需要在各迭代分别计算量化参数。若多个迭代的目标数据和/或目标数据对应的量化数据的数据变动幅度较小,可将在数据变动幅度较小的多个迭代中采用相同的量化参数,则各迭代均可以直接使用其中第一个迭代计算得到的量化参数,而不是每次迭代计算量化参数。
可以理解的是,当目标数据为权值时,各迭代之间的权值在不断更新,若多个迭代的权值的数据变动幅度较小,或多个迭代的权值对应的量化数据的数据变动幅度较小,可以在多个迭代中利用相同的量化参数对权值进行量化。
可以根据目标数据的数据变动幅度确定目标迭代间隔,目标迭代间隔包括至少一次迭代,可以在目标迭代间隔内的各迭代使用相同的量化参数,即在目标迭代间隔内的各迭代不再更新目标数据的量化参数。神经网络根据目标迭代间隔更新目标数据的量化参数,包括在目标迭代间隔内的迭代,不获取预设的量化参数或不计算量化参数,即在目标迭代间隔内的迭代不更新量化参数。而在目标迭代间隔外的迭代,再获取预设的量化参数或计算量化参数,即在目标迭代间隔外的迭代更新量化参数。
可以理解的是,多个迭代之间的目标数据或目标数据的量化数据的数据变动幅度越小,确定出的目标迭代间隔包括的迭代次数越多。可以根据计算得到的数据变动幅度,查找预设的数据变动幅度与迭代间隔的对应关系,确定与计算得到的数据变动幅度对应的目标迭代间隔。可以根据需求预设数据变动幅度与迭代间隔的对应关系。也可以根据计算得到的数据变动幅度,利用设定的计算方法计算得到目标迭代间隔。本披露不限定数据变动幅度的计算方式,以及目标迭代间隔的获取方式。
在本实施例中,在神经网络运算的微调阶段和/或训练阶段,获取当前迭代以及历史迭代中目标数据的数据变动幅度,根据所述目标数据的数据变动幅度,确定目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。可以根据多个迭代中目标数据或目标数据对应的量化数据的数据变动幅度,确定目标迭代间隔。神经网络可以根据目标迭代间隔确定是否更新量化参数。由于目标迭代间隔所包括的多个迭代的数据变动幅度较小,目标迭代间隔内的迭代不更新量化参数也可以保证量化精度。而目标迭代间隔内的多个迭代不更新量化参数,可以减少量化参数的提取次数或计算次数,从而提高神经网络的运算效率。
在一种可能的实现方式中,所述神经网络运算方法中还包括:
根据当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
如本披露上述实施例所述,目标数据的量化参数可以预设,也可以根据目标数据对应的数据位宽计算得到。而不同待量化层中目标数据对应的数据位宽,或相同待量化层中目标数据在不同迭代中对应的数据位宽,可以根据本披露上述实施例中的方式进行自适应调整。
当目标数据的数据位宽不可自适应调整,为预设的数据位宽时,可以根据目标数据在当前迭代的预设的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽。在目标迭代间隔内的各迭代可不使用自身的预设值。
当目标数据的数据位宽可自适应调整时,可以根据目标数据在当前迭代对应的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽。在数据位宽可自适应调整时,包括数据位宽可进行一次调整或多次调整,可以将目标数据在当前迭代进行自适应调整后的数据位宽,作为目标迭代间隔内的各迭代对应的数据位宽,在目标迭代间隔内的各迭代不再对数据位宽进行自适应调整(更新)。目标数据在当前迭代可以使用自适应调整后的数据位宽,也可以使用自适应调整前的数据位宽,本披露对此不作限定。
在目标迭代间隔以外的其他迭代,由于目标数据的数据变动幅度不满足设定条件,可以根据本披露上述的方法对数据位宽进行自适应调整,得到更加符合当前迭代的目标数据的数据位宽,也可使用本披露中的目标迭代间隔的计算方法,计算得到新的目标迭代间隔并使用,从而在保证目标迭代间隔以外的迭代的量化精度的同时,提高神经网络的运行效率。
在目标迭代间隔内的各迭代的数据位宽相同,各迭代可以根据相同的数据位宽各自计算得到对应的量化参数。量化参数可以包括点位置、缩放系数和偏移量中的至少一种。在目标迭代间隔内的各迭代,可以根据相同的数据位宽分别计算得到量化参数。量化参数包括点位置、缩放系数和偏移量时,在目标迭代间隔内的各迭代,可利用相同的数据位宽,分别计算各自对应的点位置、缩放系数和偏移量。
在根据当前迭代的数据位宽,确定目标迭代间隔内各迭代的数据位宽的同时,可以根据当前迭代的量化参数,确定目标迭代间隔内各迭代的对应的量化参数。目标迭代间隔内各迭代的量化参数,也不再重新根据相同的数据位宽计算得到,可以进一步提高神经网络的运算效率。可以根据当前迭代的全部量化参数或部分量化参数,确定目标迭代间隔内各迭代的对应的量化参数。当根据当前迭代的部分量化参数,确定目标迭代间隔内各迭代的对应的量化参数时,剩余部分的量化参数,在目标迭代间隔内各迭代仍需计算。
例如,量化参数包括点位置、缩放系数和偏移量。可以根据当前迭代的数据位宽和点位置,确定目标迭代间隔内各迭代的数据位宽和点位置。则目标迭代间隔内各迭代的缩放系数和偏移量需要根据相同的数据位宽计算得到。也可以根据当前迭代的数据位宽、点位置、缩放系数和偏移量,确定目标迭代间隔内各迭代的数据位宽、点位置、缩放系数和偏移量,则目标迭代间隔内各迭代的各量化参数均不需要计算得到。
在本实施例中,根据目标数据在当前迭代对应的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据目标数据在目标迭代间隔内的迭代对应的数据位宽,确定量化参数。在目标迭代间隔内的各迭代的数据位宽,根据当前迭代的数据位宽确定,由于目标迭代间隔内各迭代的目标数据的数据变化幅度满足设定的条件,利用相同的数据位宽计算得到的量化参数,可以保证目标迭代间隔内的各迭代的量化精度。目标迭代间隔内各迭代使用相同的数据位宽,也可以提高神经网络的运算效率。在对神经网络进行量化后运算结果的准确率和神经网络的运算效率之间,达到平衡。
在一种可能的实现方式中,所述神经网络运算方法中还包括:
根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
在量化参数中,相对于缩放系数和偏移量,不同的点位置对相同目标数据的量化结果产生的影响较大。可以根据目标数据在当前迭代对应的点位置,确定目标迭代间隔内的迭代对应的点位置。当数据位宽不可自适应调整时,可以将目标数据在当前迭代预设的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置,也可以将目标数据在当前迭代根据预设的数据位宽计算得到的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置。当数据位宽可自适应调整时,可以将目标数据在当前迭代调整后的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置。
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置的同时,也可以根据目标数据在当前迭代对应的缩放系数,确定所述目标数据在所述目标迭代间隔内的迭代对应的缩放系数,和/或根据目标数据在当前迭代对应的偏移量,确定所述目标数据在所述目标迭代间隔内的迭代对应的偏移量。
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置的同时,还可以根据目标数据在当前迭代对应的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,其中,目标数据在当前迭代对应的数据位宽,可以是当前迭代预设的数据位宽或自适应调整后的数据位宽。
在本实施例中,根据目标数据在当前迭代对应的点位置,确定目标数据在目标迭代间隔内的迭代对应的点位置。在目标迭代间隔内的各迭代的点位置,根据当前迭代的点位置确定,由于目标迭代间隔内各迭代的目标数据的数据变化幅度满足设定的条件,利用相同的点位置,可以保证目标迭代间隔内的各迭代的量化精度。目标迭代间隔内各迭代使用相同的点位置,也可以提高神经网络的运算效率。在对神经网络进行量化后运算结果的准确率和神经网络的运算效率之间,达到平衡。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数还包括:
根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;
根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
可以根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度。可以理解的是,目标数据不同迭代中的点位置的变化可以有效表征相应迭代之间的数据变动幅度。这里采用点位置的滑动平均值,能够避免特殊数据的数据变动的不必要的反复抖动的情况发生,亦可降低特殊数据,如过大过小的噪声点对整体数据变动的影响。
可以根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。可以根据公式(26)计算得到目标迭代间隔I:
其中,β为第二参数,γ为第三参数。第二参数和第三参数可以为超参数。
可以理解的是,第一数据变动幅度可以用于衡量点位置的变化趋势,第一数据变动幅度越大,说明量化数据的数值范围变化剧烈,在更新量化参数时需要间隔更短的目标迭代间隔I。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度还包括:
计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;将所述差值的绝对值确定为第一数据变动幅度。
可以利用公式(27)计算第一数据变动幅度diffupdate1:
diffupdate1=|m(t)-m(t-1)| 公式(27)
在本实施例中,计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;将差值的绝对值确定为第一数据变动幅度。根据滑动平均值之间的差值可以得到精确的第一数据变动幅度。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度还包括:
根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置的滑动平均值;
根据目标数据在当前迭代的点位置和在所述历史迭代的点位置的滑动平均值,确定目标数据对应的各迭代间隔的点位置的滑动平均值,以使所述神经网络确定所述目标数据的点位置的第一数据变动幅度。
在一种可能的实现方式中,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代,可以计算目标迭代间隔的历史迭代。当前迭代与对应的目标迭代间隔之间的对应关系可以包括:
可以从当前迭代开始计数目标迭代间隔,并在当前迭代对应的目标迭代间隔结束后的下一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第100代,目标迭代间隔为3,目标迭代间隔内的迭代包括:第100代、第101代和第102代,可以在第103代计算与第103代对应的目标迭代间隔,并以103代为新计算得到的在目标迭代间隔内的第一个迭代。此时,当前迭代为103代时,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代为第100代。
可以从当前迭代的下一个迭代开始计数目标迭代间隔,并在目标迭代间隔内的最后一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第100代,目标迭代间隔为3,目标迭代间隔内的迭代包括:第101代、第102代和第103代,可以在第103代计算与第103代对应的目标迭代间隔,并以第104代为新计算得到的在目标迭代间隔内的第一个迭代。此时,当前迭代为第103代时,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代为第100代。
可以从当前迭代的下一个迭代开始计数目标迭代间隔,并在目标迭代间隔结束后的下一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第100代,目标迭代间隔为3,目标迭代间隔内的迭代包括:第101代、第102代和第103代,可以在第104代计算与第104代对应的目标迭代间隔,并以第105代为新计算得到的在目标迭代间隔内的第一个迭代。此时,当前迭代为第104代时,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代为第100代。
可以根据需求确定当前迭代以及目标迭代间隔之间的其他的对应关系,例如可以从当前迭代之后的第N个迭代开始计数目标迭代间隔,N大于1,本披露对此不作限定。
可以理解的是,根据目标数据在当前迭代的点位置和在所述历史迭代的点位置的滑动平均值,确定目标数据对应的各迭代间隔的点位置的滑动平均值的方法,也可用于确定所述历史迭代的点位置的滑动平均值。这里以根据目标数据在当前迭代的点位置和上一迭代间隔确定的历史迭代的点位置的滑动平均值,确定在当前迭代中的目标数据对应的各迭代间隔的点位置的滑动平均值的方法为例,可以利用公式(28)进行计算:
m(t)←α×s(t)+(1-α)×m(t-1) 公式(28)
其中,m(t)为目标数据对应的各迭代的点位置的滑动平均值,t为当前迭代,t-1为根据上一迭代间隔确定的历史迭代,m(t-1)为根据上一迭代间隔确定的历史迭代的点位置的滑动平均值,s(t)为当前迭代的点位置,α为第一参数。第一参数可以为超参数。
可以根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度,沿用上述方法,即根据公式(28)求得在当前迭代中所述目标数据的点位置的滑动平均值m(t)和上一迭代间隔对应迭代的点位置的滑动平均值m(t-1),利用公式(27)所述方法,确定第一数据变动幅度diffupdate1,如公式(29):
diffupdate1=|m(t)-m(t-1)| 公式(27)
=α|s(t)-m(t-1)| 公式(29)
可以理解的是,若对于当前迭代而言,不存在历史迭代,那么历史迭代的点位置的滑动平均值可以认为与当前迭代中点位置相同,或者为一预设值,如0。
在本实施例中,根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置的滑动平均值;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置的滑动平均值,确定目标数据对应的各迭代间隔的点位置的滑动平均值,以使所述神经网络确定所述目标数据的点位置的第一数据变动幅度。由于点位置的变化可以表征数据幅度的变化,从而进一步确定所述目标数据的目标迭代间隔,但是如果直接采用当前点位置和历史迭代点位置的变化量作为数据变动幅度,则很容易导致数据变动幅度与每一迭代的点位置强相关,从而一方面容易受到特殊值的影响,另一方面,其变动较为频繁,反复且大幅度抖动。采用点位置的滑动平均值,可以使得数据变动幅度更加平稳,鲁棒性较强。因此提高整体的运行效率。
在一种可能的实现方式中,所述神经网络运算方法中还包括:
根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度
所述的根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数还包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
可以根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度。也可以根据在当前迭代所述目标数据和所述目标数据对应的反量化数据,得到第二数据变动幅度。
同样的,可以根据公式(25)在当前迭代所述目标数据和所述目标数据对应的反量化数据之间的第二数据变动幅度diffbit。也可以利用其它误差的计算方法,计算目标数据和反量化数据之间的第二数据变动幅度diffbit。本披露对此不作限定。
可以理解的是,第二数据变动幅度可以用于衡量目标数据对应的数据位宽的变化趋势,第二数据变动幅度越大,目标数据越有可能需要更新对应的数据位宽,需要间隔更短的迭代进行更新,则第二数据变动幅度越大,需要目标迭代间隔更小。
在本实施例中,根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度。根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。第二数据变动幅度可以用于衡量数据位宽的变动需求,则根据第一数据变动幅度和第二数据变动幅度计算得到的目标迭代间隔,可以同时跟踪点位置和数据位宽的变动,目标迭代间隔也可以更加符合目标数据自身的数据量化需求。
在一种可能的实现方式中,所述神经网络运算方法中步骤S88还包括:
计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
可以利用公式(30)计算得到第二数据变动幅度diffupdate2:
diffupdate2=δ*diffbit 2 公式(30)
其中,δ为第四参数,第四参数可以为超参数。
可以理解的是,利用不同的数据位宽可以得到不同的量化参数,进而得到不同的量化数据,产生不同的第二数据变动幅度。第二数据变动幅度可以用于衡量数据位宽的变化趋势,第二数据变动幅度越大,说明需要更短的目标迭代间隔来更加频繁的更新数据位宽,即目标迭代间隔需要更小。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔还包括:
根据所述第二数据变动幅度与所述第一数据变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关
可以根据公式(31)计算得到目标迭代间隔:
其中,β为第二参数,γ为第三参数。第二参数和第三参数可以为超参数。
可以理解的是,利用第一数据变动幅度和第二数据变动幅度得到的目标迭代间隔,可以同时衡量数据位宽和点位置的变化趋势,当两者中的其一的变化趋势较大时,便可以使得目标迭代间隔产生相应的变化。目标迭代间隔可以同时追踪数据位宽和点位置的变化并做出相应的调整。使得根据目标迭代间隔更新的量化参数能够更加符合目标数据的变动趋势,最终使得根据量化参数得到的量化数据能够更加符合量化需求。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数还包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述更新周期包括至少一个迭代。
在神经网络运算的训练过程和/或微调过程中,在训练开始或微调开始的多个迭代中,目标数据的变化幅度较大。若在训练开始或微调开始的多个迭代中计算目标迭代间隔,则计算得到的目标迭代间隔可能会失去其使用的意义。根据预设更新周期,在更新周期以内的各迭代,不计算目标迭代间隔,以使在目标间隔内的多个迭代使用相同的数据位宽或点位置。
当迭代进行至更新周期以外时,即当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,并根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。例如,预设更新周期为100代,则自第1代开始至第100代的迭代中,不计算目标迭代间隔。当迭代进行至101代,即当前迭代为101代时,当前迭代位于更新周期以外,此时,可以根据第101代以及第1代至第100代的迭代中目标数据的数据变动幅度,确定第101代的目标数据对应的目标迭代间隔,并在第101代或与第101间隔预设代数的迭代中,使用计算得到的目标迭代间隔。
可以自预设的代数开始计数更新周期,例如可以自第一代开始计数更新周期中多个迭代,也可以自第N代开始计数更新周期中的多个迭代,本披露对此不作限定。
在本实施例中,当迭代进行至更新周期以外时计算并使用目标迭代间隔。可以避免在神经网络运算的训练过程或微调过程的初期,由于目标数据的变动幅度较大引起的目标迭代间隔使用意义不大的问题,可以在使用目标迭代间隔的情况下,进一步提高神经网络的运行效率。
在一种可能的实现方式中,所述神经网络运算方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
在神经网络运算的训练过程或微调过程中,可以包括多个周期。各周期可以包括多个迭代。用于神经网络运算的数据被完整的运算一遍为一个周期。在训练过程中,随着迭代的进行,神经网络的权值变化趋于稳定,当训练稳定后,神经元、权值、偏置和梯度等待量化数据均趋于稳定。目标数据趋于稳定后,目标数据的数据位宽和量化参数也趋于稳定。同理,在微调过程中,微调稳定后,目标数据的数据位宽和量化参数也趋于稳定。
因此,可以根据训练稳定或微调稳定的周期确定预设周期。可以将训练稳定或微调稳定所在周期以后的周期,确定为预设周期。例如训练稳定的周期为第M个周期,则可以将第M个周期以后的周期作为预设周期。在预设周期内,可以每间隔一个周期计算一个目标迭代间隔,并根据计算得到的目标迭代间隔调整一次数据位宽或量化参数,以减少数据位宽或量化参数的更新次数,提高神经网络的运行效率。
例如,预设周期为第M个周期以后的周期。在第M+1个周期中,根据第M个周期中的第P个迭代计算得到的目标迭代间隔,截止至第M+1个周期中的第Q个迭代。根据第M+1个周期中的第Qm+1个迭代计算得到与之对应的目标迭代间隔Im+1。在第M+2个周期中,与第M+1个周期中的第Qm+1个迭代对应的迭代为第Qm+2个迭代。在自第M+1个周期中的第Qm+1个迭代开始,直至第M+2个周期中第Qm+2+Im+1个迭代为止,为周期间隔。在周期间隔内的各迭代,均采用第M+1个周期中的第Qm+1个迭代确定的数据位宽或点位置等量化参数。
在本实施例中,可以设置周期间隔,在神经网络运算的训练或微调达到稳定后,根据周期间隔,每周期更新一次数据位宽或点位置等量化参数。周期间隔可以在训练稳定或微调稳定后,减少数据位宽或点位置的更新次数,在保证量化精度的同时,提高神经网络的运行效率。
图16示出了神经网络运算方法的示意图。如图16所示,所述神经网络运算方法中步骤S30还包括:
步骤S31,根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
神经网络运算包括推理运算、训练运算和微调运算中的至少一种。其中可以对整个网络进行运算,譬如,对于推理运算,从神经网络的第一层运算到最后一层,得到所需结果,如分类结果;对于训练运算,利用随机初始化的神经网络,从第一层正向运算到最后一层,得到运算结果,根据运算结果和实际结果得到误差,再反向从最后一层运算和传递回第一层,并在此过程中调整各层权值;依次类推,直到训练误差梯度收敛或者达到最大训练迭代次数;对于微调运算,利用训练好的神经网络模型,在运算过程中,采用类似的正向运算、反向传播并更新权值的方式,微调神经网络,得到最终所需结果或者神经网络。也可以对部分网络进行运算,可以是选取部分神经网络层进行量化,例如,可以选取其中的第k层和第k+1层进行量化,其中k为正整数。也可以选取所有的卷积层进行量化,其他层不量化。对部分网络进行运算还可以是选取部分数据,例如可以只选取某一层中的部分数据,其数据量为片上存储可容纳的待运算的数据量进行量化和运算。也可以选择某几层中的数据,譬如可以在第k层、第k+1层和第k+2层分别选取部分数据进行量化等。
在神经网络运算的推理过程中,待量化数据可以包括神经元、权值和偏置中的至少一种。待量化数据规模可以为神经网络推理运算中的所有数据。也可以是神经网络推理运算中的部分数据,如待运算的网络层相关的数据,又如指定维度的数据。确定与待量化数据对应的量化参数,可以包括点位置、缩放系数和偏移量中的至少一种。可以在神经网络运算的推理过程中,利用本披露中的神经网络运算方法,确定与神经网络待量化数据对应的量化参数,根据量化参数对待量化数据进行量化,得到量化数据,并根据量化数据进行神经网络的推理运算。
在一种可能的实现方式中,在神经网络运算的推理过程中,待量化数据可以包括神经元和权值。可以确定与每一层的待量化权值对应的量化参数,包括点位置、缩放系数和/或偏移量。可以利用确定出的量化参数将对应的待量化权值进行量化,得到对应的量化权值。也可以确定与待量化的输入神经元对应的量化参数,包括点位置、缩放系数和/或偏移量。可以根据确定出的量化参数将对应的待量化的输入神经元进行量化,得到对应的量化输入神经元。其中,待量化的输入神经元对应的量化参数的种类和数值可以与待量化权值的对应量化参数不同。可以利用第一层的量化权值与量化输入神经元进行推理运算,得到第一层的输出神经元。由于第一层的输出神经元可被视为第二层的待量化的输入神经元,可以确定与第二层的待量化的输入神经元对应的量化参数。可以根据量化参数对第二层的待量化的输入神经元进行量化,得到第二层的量化输入神经元。第二层的待量化的权值可参照上述过程进行量化。可以利用已量化好的第二层的量化权值与第二层的量化输入神经元进行推理运算。以此类推,直到完成神经网络的推理运算,得到所需的推理结果。
在一种可能的实现方式中,在执行神经网络中指定层的推理运算时,待量化数据可以只包括权值。可以确定与待量化的权值对应的量化参数。根据确定出的量化参数将待量化的权值进行量化,得到量化权值。可以根据量化权值与该层未经量化的神经元进行推理运算。
在一种可能的实现方式中,在执行神经网络指定部分的推理运算时,待量化数据可以包括权值、神经元和偏置。可以确定待量化权值每个维度分别对应的量化参数,根据对应的量化参数分别量化待量化权值的相应维度的数据得到量化权值。可以确定该层待量化神经元对应的量化参数,根据量化参数量化该层神经元得到量化神经元。可以确定该层待量化偏置对应的量化参数,根据量化参数量化该层偏置得到量化偏置。根据量化权值、该层的量化神经元和该层的量化偏置进行推理运算。
在神经网络运算的训练过程中,待运算数据可以是随机初始化或者仅进行过少量运算但还未收敛的神经网络。相应的,待量化数据在训练过程中的变化幅度较大,因此对于整个训练过程而言,待量化数据的量化方法、涉及的量化参数以及量化参数的更新方式可以有较大的变化,采用上述方法的不同组合方式。例如,在不同的训练阶段,更新不同量化参数的频率可以不同。又如,对不同的数据而言,更新对应的量化参数的频率不同,更新对应的量化参数的内容和方式可以不同,如更新参数前是否需要更新数据位宽和目标迭代间隔。
在神经网络运算的训练过程中,待量化数据可以包括神经元、权值、梯度和偏置中的至少一种,待量化数据规模可以为神经网络训练运算中的所有数据,也可以是部分数据,如待运算的网络层相关的数据,又如指定维度的数据。确定与待量化数据对应的量化参数,可以包括点位置、缩放系数和偏移量中的至少一种。可以在神经网络运算的训练过程中,利用本披露中的神经网络运算方法,根据所述的量化参数对所述待量化数据进行量化,得到量化数据。根据量化数据进行神经网络训练。
在一种可能的实现方式中,目标迭代间隔默认为1,即在训练过程中,量化参数在每次迭代运算中都会更新。可以根据预设的数据位宽,分别更新与待量化权值、待量化神经元和待量化偏置分别对应的量化参数,包括点位置、缩放系数和偏移量中的至少一种,得到更新后的量化参数。可以利用本披露中的神经网络运算方法,根据更新后的量化参数量化对应的待量化权值、待量化神经元和待量化偏置。对于待量化梯度,可以计算根据与待量化梯度对应量化参数进行量化时的量化误差。如果量化误差大于给定阈值1,可以将待量化梯度的数据位宽增加指定位宽,如增加8位。根据增大后的数据位宽更新相应的量化参数。可以判断利用更新后的量化参数进行量化的量化误差是否依然大于给定阈值1。如果是,则可以继续重复上述步骤,增大数据位宽,直到利用更新后的量化参数进行量化的量化误差不大于给定阈值1。可以根据量化数据进行神经网络训练。
在一种可能的实现方式中,目标迭代间隔可以通过计算得到,即在训练过程中,可以判断当前迭代是否需要更新量化参数,需要则更新量化参数,否则沿用当前的量化参数。例如,当前迭代为第x代,对于第x代,可以对与待量化权值、待量化神经元、待量化偏置和待量化梯度分别对应的数据位宽和量化参数进行更新,而后利用更新后的量化参数对对应的待量化权值、待量化神经元、待量化偏置和待量化梯度分别进行更新,并且计算得到目标迭代间隔为10代。而后在第x+1代至第x+9代,可以利用本披露中的神经网络运算方法,根据第n代中更新后的量化参数进行量化。在第x+10代,可以重新计算目标迭代间隔,并更新与待量化数据对应的数据位宽和量化参数。可以根据更新后的量化参数量化待量化数据,并进行神经网络训练。
在一种可能的实现方式中,目标迭代间隔可以为默认值和计算值混合的情况。在训练初期,即当前迭代数小于预设迭代数1时,数据变动幅度较大,则每次迭代都可以进行更新量化参数;在训练中期,即当前迭代数大于预设迭代数1且小于预设迭代数2,数据逐渐趋于平稳,数据变化幅度逐渐降低,此时,可以采用计算的方式,计算得到目标迭代间隔,从而根据训练情况,适当升高、降低或保持更新量化参数的频率;到了训练后期,即当前迭代数大于预设迭代数2,数据平稳,数据变化幅度小,可以根据一个较大的固定的目标迭代间隔更新量化参数。
在神经网络运算的微调过程中,其运算可以是基于基本训练完毕的神经网络,因此数据变化幅度不大,但需要对神经网络模型进行更加精细的调整。因此其目标迭代间隔可以采用预设数值,也可以采用在运算中的计算值。其运算过程与训练过程类似,因此待量化数据的量化方法、涉及的量化参数以及量化参数的更新方式也可以采用上述方法的不同组合方式。
在神经网络运算的微调过程中,待量化数据可以包括神经元、权值、梯度和偏置中的至少一种,待量化数据规模可以为神经网络训练运算中的所有数据,也可以是部分数据,如待运算的网络层相关的数据,又如指定维度的数据。确定与待量化数据对应的量化参数,可以包括点位置、缩放系数和偏移量中的至少一种。可以在神经网络运算的微调过程中,利用本披露中的神经网络运算方法,根据所述的量化参数对所述待量化数据进行量化,得到量化数据,并根据量化数据进行神经网络的微调运算。
在一种可能的实现方式中,可以判断当前运算是否需要对待量化数据进行量化。如果需要量化,则可以确定待量化数据的量化参数,判断当前迭代是否需要更新该量化参数。如果需要,则可以更新量化参数得到更新后的量化参数,根据利用本披露中的神经网络运算方法,根据更新后的量化参数对待量化数据进行量化和微调;如果不需要,则可以直接利用本披露中的神经网络运算方法,根据当前的量化参数进行量化得到量化数据,根据得到的量化数据进行后续的微调。例如,在前向传递过程中,当前待量化神经元的量化参数需要更新,可以通过量化误差调整数据位宽;可以根据调整后的数据位宽,更新量化参数;可以根据更新后的量化参数量化待量化神经元得到量化神经元;可以根据量化神经元进行神经网络的微调。在反向传递过程中,对该神经元不进行量化。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图1至图18的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至图18中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图17示出了根据本披露实施例的神经网络运算装置的示意图。如图17所示,本披露提供了一种神经网络运算装置,所述装置包括:
量化参数确定模块10,用于确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块20,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
执行模块30,用于根据所述量化数据对神经网络进行运算。
在一种可能的实现方式中,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
在一种可能的实现方式中,所述量化参数确定模块10,包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
在一种可能的实现方式中,所述量化参数确定模块10,包括:
第二量化参数确定子模块,用于根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数不包括偏移量时,根据所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数包括偏移量时,根据所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于根据所述目标数据的最大值和最小值确定所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述装置还包括:
量化误差确定模块,用于根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
调整量化参数确定模块,用于根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
调整数据量化模块,用于根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
调整执行模块,用于根据所述目标数据对应的调整后的量化数据对神经网络进行训练。
在一种可能的实现方式中,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
在一种可能的实现方式中,所述调整位宽确定模块,还包括:
第一量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
在一种可能的实现方式中,所述调整位宽确定模块,还包括:
第三调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
在一种可能的实现方式中,所述调整位宽确定模块还包括:
第二量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第四调整位宽确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
在一种可能的实现方式中,所述装置还包括:
目标迭代间隔确定模块,用于根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔至少包括一次迭代。
在一种可能的实现方式中,所述装置还包括:
第一目标迭代间隔应用模块,用于根据在当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
在一种可能的实现方式中,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
在一种可能的实现方式中,所述目标迭代间隔确定模块,还用于根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
在一种可能的实现方式中,所述目标迭代间隔确定模块包括:
第一数据变动幅度子模块,用于计算当前迭代的所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
第一目标迭代间隔确定子模块,用于将所述差值的绝对值确定为第一数据变动幅度。
在一种可能的实现方式中,所述目标迭代间隔确定模块还包括:
滑动平均值计算子模块,用于根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
在一种可能的实现方式中,所述目标迭代间隔确定模块还包括:
第二数据变动幅度子模块,用于根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
在一种可能的实现方式中,所述第二数据变动幅度子模块还用于计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
在一种可能的实现方式中,所述第二目标迭代间隔确定子模块还用于根据所述第二数据变动幅度与所述第一数据变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关。
在一种可能的实现方式中,所述数据变动幅度确定模块还包括第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
在一种可能的实现方式中,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
在一种可能的实现方式中,所述执行模块还用于根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要选择其中的部分或者全部单元来实现。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如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)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,本披露还公开了一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
在一种可能的实现方式中,本披露还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的方法的步骤。
在一种可能的实现方式中,本披露还公开了一种人工智能芯片,所述芯片包括上述所述的神经网络运算装置。
在一种可能的实现方式中,本披露还公开了一种电子设备,所述电子设备包括上述所述的人工智能芯片。
在一种可能的实现方式中,本披露还公开了一种板卡,包括:存储器件、接口装置和控制器件以及上述所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图18示出根据本披露实施例的板卡的结构框图,参阅图18,上述板卡除了包括上述芯片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.0 X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
依据以下条款可更好地理解前述内容:
条款A1.一种神经网络运算方法,所述方法包括:
确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
根据所述量化数据对神经网络进行运算。
条款A2.根据条款A1所述的方法,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
条款A3.根据条款A1或条款A2所述的方法,所述确定与神经网络待量化数据所对应的量化参数,包括:
通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
条款A4.根据条款A1或条款A2所述的方法,所述确定与神经网络待量化数据所对应的量化参数,包括:
根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
条款A5.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化
参数,包括:
当所述量化参数不包括偏移量时,目标数据的点位置由所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。条款A6.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化
参数,包括:
当所述量化参数包括偏移量时,目标数据的点位置由所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。条款A7.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化
参数,包括:
当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;
根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
条款A8.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化
参数,包括:
当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;
根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
条款A9.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化
参数,包括:
所述目标数据的偏移量由所述目标数据的最大值和最小值确定,所述目标数据为任意一种待量化数据。
条款A10.根据条款A1至条款A9中任一项所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
根据所述目标数据对应的调整后的量化数据对神经网络进行运算。
条款A11.根据条款A10所述的方法,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
条款A12.根据条款A11所述的方法,所述方法还包括:
根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
条款A13.根据条款A10至条款A12中任一项所述的方法,所述方法还包括:
当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
条款A14.根据条款A13所述的方法,所述方法还包括:
根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
条款A15.根据条款A1至条款A14中任一项所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔至少包括一次迭代。
条款A16.根据条款A15所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
条款A17.根据条款A15所述的方法,所述方法还包括:
根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
条款A18.根据条款A15所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;
根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
条款A19.根据条款A18所述的方法,所述根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标
数据的点位置的第一数据变动幅度,包括:
计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。
条款A20.根据条款A18或条款A19所述的方法,所述方法还包括:
根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;
根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
条款A21.根据条款A18至条款A20中任一项所述的方法,所述方法还包括:
根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
条款A22.根据条款A21中所述的方法,所述根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
条款A23.根据条款A21中所述的方法,所述根据所述目标数据的第一数据变动幅度和第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,还包括:
根据所述第二数据变动幅度与所述第一数据变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,
所述迭代间隔的数值与所述较大值反相关。
条款A24.根据条款A15至条款A23中任一项所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
条款A25.根据条款A1至条款A24中任一项所述的方法,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
条款A26.根据条款A1至条款A25中任一项所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
条款A27.一种神经网络运算装置,包括:
量化参数确定模块,用于确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
执行模块,用于根据所述量化数据对神经网络进行运算。
条款A28.根据条款A27所述的装置,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
条款A29.根据条款A27或条款A28所述的装置,所述量化参数确定模块包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
条款A30.根据条款A27或条款A28所述的装置,所述量化参数确定模块包括:
第二量化参数确定子模块,用于根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
条款A31.根据条款A30所述的装置,所述第二量化参数确定子模块,用于当所述量化参数不包括偏移量时,根据所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
条款A32.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
条款A33.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
条款A34.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
条款A35.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于根据所述目标数据的最大值和最小值确定所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
条款A36.根据条款A27至条款A35中任一项所述的装置,所述装置还包括:
量化误差确定模块,用于根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
调整量化参数确定模块,用于根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
调整数据量化模块,用于根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
调整执行模块,用于根据所述目标数据对应的调整后的量化数据对神经网络进行训练。
条款A37.根据条款A36所述的装置,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
条款A38.根据条款A36所述的装置,所述调整位宽确定模块,还包括:
第一量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
条款A39.根据条款A36所述的装置,所述调整位宽确定模块,还包括:
第三调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
条款A40.根据条款A36所述的装置,所述调整位宽确定模块还包括:
第二量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第四调整位宽确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
条款A41.根据条款A27至条款A40中任一项所述的装置,所述装置还包括:
目标迭代间隔确定模块,用于根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔用于表征调整所述目标数据的量化参数的迭代所间隔的迭代数量,至少包括一次迭代。
条款A42.根据条款A40所述的装置,所述装置还包括:
第一目标迭代间隔应用模块,用于根据在当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
条款A43.根据条款A40所述的装置,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
条款A44.根据条款A40所述的装置,所述目标迭代间隔确定模块,还用于根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
条款A45.根据条款A44所述的装置,所述目标迭代间隔确定模块包括:
第一数据变动幅度子模块,用于计算当前迭代的所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
第一目标迭代间隔确定子模块,用于将所述差值的绝对值确定为第一数据变动幅度。
条款A46.根据条款A44或条款A45所述的装置,所述目标迭代间隔确定模块还包括:
滑动平均值计算子模块,用于根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
条款A47.根据条款A44至条款A46中任一项所述的装置,所述目标迭代间隔确定模块还包括:
第二数据变动幅度子模块,用于根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
条款A48.根据条款A47中所述的方法,所述第二数据变动幅度子模块还用于计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
条款A49.根据条款A47中所述的装置,所述第二目标迭代间隔确定子模块还用于根据所述第二数据变动幅度和所述第一数据变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关。
条款A50.根据条款A36至条款A49中任一项所述的装置,所述数据变动幅度确定模块还包括第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
条款A51.根据条款A27至条款A50中任一项所述的装置,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
条款A52.根据条款A27至条款A51中任一项所述的装置,所述执行模块还用于根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
条款A53.一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现条款A1至条款A26中任一项所述方法的步骤。
条款A54.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现条款A1至条款A26中任一项所述的方法的步骤。
条款A55.一种人工智能芯片,所述芯片包括如条款A27至条款A52中任意一项所述的神经网络运算装置。
条款A56.一种电子设备,所述电子设备包括如条款A55所述的人工智能芯片。
条款A57.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A55所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
条款A58.根据条款A57所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上已经描述了本披露的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (54)
1.一种神经网络运算方法,所述方法包括:
确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据,所述量化数据的存储开销小于所述待量化数据的存储开销;
根据所述量化数据对神经网络进行运算,
所述确定与神经网络待量化数据所对应的量化参数,包括:
根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数,
根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数不包括偏移量时,目标数据的点位置由所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
2.根据权利要求1所述的方法,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
3.根据权利要求1或2所述的方法,所述确定与神经网络待量化数据所对应的量化参数,包括:
通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
4.根据权利要求1所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数包括偏移量时,目标数据的点位置由所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
5.根据权利要求1所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;
根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
6.根据权利要求1所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;
根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
7.根据权利要求1所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
所述目标数据的偏移量由所述目标数据的最大值和最小值确定,所述目标数据为任意一种待量化数据。
8.根据权利要求1所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
根据所述目标数据对应的调整后的量化数据对神经网络进行运算。
9.根据权利要求8所述的方法,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
10.根据权利要求9所述的方法,所述方法还包括:
根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
11.根据权利要求8所述的方法,所述方法还包括:
当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
12.根据权利要求11所述的方法,所述方法还包括:
根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
13.根据权利要求1所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔至少包括一次迭代。
14.根据权利要求13所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
15.根据权利要求13所述的方法,所述方法还包括:
根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
16.根据权利要求13所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;
根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,
所述目标迭代间隔与所述第一数据变动幅度反相关。
17.根据权利要求16所述的方法,所述根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度,包括:
计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。
18.根据权利要求16或17所述的方法,所述方法还包括:
根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;
根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
19.根据权利要求16所述的方法,所述方法还包括:
根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
20.根据权利要求19中所述的方法,所述根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
21.根据权利要求19中所述的方法,所述根据所述目标数据的第一数据变动幅度和第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,还包括:
根据所述第二数据变动幅度与所述第一数据变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,
所述迭代间隔的数值与所述较大值反相关。
22.根据权利要求13所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
23.根据权利要求1所述的方法,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
24.根据权利要求1所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
25.一种神经网络运算装置,包括:
量化参数确定模块,用于确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据,所述量化数据的存储开销小于所述待量化数据的存储开销;
执行模块,用于根据所述量化数据对神经网络进行运算,
所述量化参数确定模块包括:
第二量化参数确定子模块,用于根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数,
所述第二量化参数确定子模块,用于当所述量化参数不包括偏移量时,根据目标数据的绝对值最大值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
26.根据权利要求25所述的装置,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
27.根据权利要求25或26所述的装置,所述量化参数确定模块包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
28.根据权利要求25所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
29.根据权利要求25所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
30.根据权利要求25所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
31.根据权利要求25所述的装置,所述第二量化参数确定子模块,还用于根据所述目标数据的最大值和最小值确定所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
32.根据权利要求25所述的装置,所述装置还包括:
量化误差确定模块,用于根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
调整量化参数确定模块,用于根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
调整数据量化模块,用于根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
调整执行模块,用于根据所述目标数据对应的调整后的量化数据对神经网络进行训练。
33.根据权利要求32所述的装置,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
34.根据权利要求33所述的装置,所述调整位宽确定模块,还包括:
第一量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
35.根据权利要求32所述的装置,所述调整位宽确定模块,还包括:
第三调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
36.根据权利要求35所述的装置,所述调整位宽确定模块还包括:
第二量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第四调整位宽确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
37.根据权利要求25所述的装置,所述装置还包括:
目标迭代间隔确定模块,用于根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔用于表征调整所述目标数据的量化参数的迭代所间隔的迭代数量,至少包括一次迭代。
38.根据权利要求37所述的装置,所述装置还包括:
第一目标迭代间隔应用模块,用于根据在当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
39.根据权利要求37所述的装置,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
40.根据权利要求37所述的装置,所述目标迭代间隔确定模块,还用于根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
41.根据权利要求40所述的装置,所述目标迭代间隔确定模块包括:
第一数据变动幅度子模块,用于计算当前迭代的所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
第一目标迭代间隔确定子模块,用于将所述差值的绝对值确定为第一数据变动幅度。
42.根据权利要求40或41所述的装置,所述目标迭代间隔确定模块还包括:
滑动平均值计算子模块,用于根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
43.根据权利要求40所述的装置,所述目标迭代间隔确定模块还包括:
第二数据变动幅度子模块,用于根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
44.根据权利要求43中所述的装置,所述第二数据变动幅度子模块还用于计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
45.根据权利要求43中所述的装置,所述第二目标迭代间隔确定子模块还用于根据所述第二数据变动幅度和所述第一数据变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关。
46.根据权利要求37所述的装置,所述数据变动幅度确定模块还包括第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
47.根据权利要求25所述的装置,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
48.根据权利要求25所述的装置,所述执行模块还用于根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
49.一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至24中任一项所述方法的步骤。
50.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至24中任一项所述的方法的步骤。
51.一种人工智能芯片,所述芯片包括如权利要求25至48中任意一项所述的神经网络运算装置。
52.一种电子设备,所述电子设备包括如权利要求51所述的人工智能芯片。
53.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求51所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
54.根据权利要求53所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
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 |
---|---|
CN112085183A CN112085183A (zh) | 2020-12-15 |
CN112085183B true CN112085183B (zh) | 2024-04-02 |
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 (2)
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 | 一种神经网络的量化参数确定方法及相关产品 |
Family Applications After (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | 一种数据处理方法及相关产品 |
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 (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529668A (zh) * | 2015-11-17 | 2017-03-22 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
WO2017168427A1 (en) * | 2016-03-31 | 2017-10-05 | Clear Px Technologies Ltd | Temperature controlling device and system having static cooling capacity |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN108288089A (zh) * | 2018-01-29 | 2018-07-17 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
CN109121435A (zh) * | 2017-04-19 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
CN109472353A (zh) * | 2018-11-22 | 2019-03-15 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络量化电路及量化方法 |
CN109754074A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 一种神经网络量化方法、装置以及相关产品 |
Family Cites Families (256)
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 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
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 |
CN106991477B (zh) * | 2016-01-20 | 2020-08-14 | 中科寒武纪科技股份有限公司 | 一种人工神经网络压缩编码装置和方法 |
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 |
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 |
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 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
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 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
CN108229681A (zh) * | 2017-12-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种神经网络模型压缩方法、系统、装置及可读存储介质 |
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 |
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 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
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 |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN109740739B (zh) * | 2018-12-29 | 2020-04-24 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109740754B (zh) * | 2018-12-29 | 2020-04-14 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
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 (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529668A (zh) * | 2015-11-17 | 2017-03-22 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
WO2017168427A1 (en) * | 2016-03-31 | 2017-10-05 | Clear Px Technologies Ltd | Temperature controlling device and system having static cooling capacity |
CN109121435A (zh) * | 2017-04-19 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN108288089A (zh) * | 2018-01-29 | 2018-07-17 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
CN109472353A (zh) * | 2018-11-22 | 2019-03-15 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络量化电路及量化方法 |
CN109754074A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 一种神经网络量化方法、装置以及相关产品 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085183B (zh) | 一种神经网络运算方法及装置以及相关产品 | |
JP7146953B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146955B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146952B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146954B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
KR102566480B1 (ko) | 신경망 프루닝 및 재훈련을 위한 자동 임계값들 | |
CN112085176B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085187A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085182A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085150B (zh) | 循环神经网络的量化参数调整方法、装置及相关产品 | |
CN113298843B (zh) | 数据量化处理方法、装置、电子设备和存储介质 | |
CN112308201A (zh) | 神经网络量化方法、装置、芯片、电子设备及板卡 | |
CN112085151A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085177A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112766472B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112434781A (zh) | 用于处理数据的方法、装置以及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |