CN112085181B - 神经网络量化方法及装置以及相关产品 - Google Patents
神经网络量化方法及装置以及相关产品 Download PDFInfo
- Publication number
- CN112085181B CN112085181B CN201910886577.XA CN201910886577A CN112085181B CN 112085181 B CN112085181 B CN 112085181B CN 201910886577 A CN201910886577 A CN 201910886577A CN 112085181 B CN112085181 B CN 112085181B
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- target
- quantized
- iteration
- 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 252
- 238000000034 method Methods 0.000 title claims abstract description 193
- 238000011002 quantification Methods 0.000 title description 4
- 238000013139 quantization Methods 0.000 claims abstract description 679
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000012544 monitoring process Methods 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims description 32
- 238000012549 training Methods 0.000 claims description 29
- 210000002569 neuron Anatomy 0.000 claims description 27
- 230000000737 periodic effect Effects 0.000 claims description 7
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 230000002829 reductive effect Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 210000004027 cell Anatomy 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 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
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 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示出根据本披露实施例的神经网络量化方法的流程图。
图19示出根据本披露实施例的神经网络量化方法的流程图。
图20示出根据本披露实施例的神经网络量化方法的流程图。
图21示出根据本披露实施例的神经网络量化方法的流程图。
图22示出根据本披露实施例的神经网络量化方法的流程图。
图23示出根据本披露实施例的神经网络量化方法的流程图。
图24示出根据本披露实施例的神经网络量化方法的流程图。
图25示出根据本披露实施例的神经网络量化方法的流程图。
图26示出根据本披露实施例的神经网络量化装置的示意图。
图27示出根据本披露实施例的神经网络量化装置的示意图。
图28示出根据本披露实施例的神经网络量化装置的示意图。
图29示出根据本披露实施例的神经网络量化装置的示意图。
图30示出根据本披露实施例的神经网络量化装置的示意图。
图31示出根据本披露实施例的板卡的结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本披露,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本披露同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本披露的主旨。
神经网络中待运算数据通常为浮点数据格式或精度较高的定点数据格式,在承载神经网络的芯片中运行神经网络时,浮点数据格式或精度较高的定点数据格式的各种待运算数据,导致神经网络运行的运算量和访存开销都较大。为提高运算效率,可以将神经网络中的待运算数据进行量化,量化后的数据格式通常为位宽较短、精度较低的定点数据格式。利用精度较低的量化后数据执行神经网络的运算,可以降低运算量和访存量。量化后的数据格式可以为位宽较短的定点数据格式。可以将浮点数据格式的待运算数据量化为定点数据格式的待运算数据,也可以将精度较高的定点格式的待运算数据量化为精度较低的定点格式的待运算数据。
可以理解的是,量化精度即量化后数据与量化前数据之间的误差的大小。量化精度可以影响神经网络运算结果的准确度。化精度越高,运算结果的准确率越高,但运算量更大、访存开销也更大。相较于位宽较短的量化后数据,位宽较长的量化后数据的量化精度更高,用于执行神经网络的运算时准确率也更高。但在用于进行神经网络的运算时,位宽较长的量化后数据运算量更大、访存开销也较大,运算效率较低。同理,对于相同的待量化数据,采用不同的量化参数得到的量化后数据有不同的量化精度,将产生不同的量化结果,对运算效率和运算结果的准确率也会带来不同的影响。对神经网络进行量化,在运算效率和运算结果的准确率之间进行平衡,可以采用更加符合待运算数据的数据特征的量化后数据位宽和量化参数。
神经网络中的待运算数据可以包括权值、神经元、偏置、梯度,在传统的对神经网络中的待运算数据进行量化时,通常为整个神经网络设置相同的量化参数。例如,神经网络中包括4个卷积层2个全连接层,待运算数据为神经元(通常为输入神经元),可以为神经网络设置一套用于量化的量化参数A,并利用量化参数A对4个卷积层和2个全连接层的神经元进行量化。由于神经网络中各层的神经元不同,各层所用的算法也不同,利用相同的量化参数对各层进行量化,量化参数不能适应各层的神经元的特征,导致神经网络的整体量化精度低,运算结果的准确率低。另,如果在为神经网络设置一套量化参数时,因考虑运算结果的准确率、提高量化精度,设置一套位宽较长的量化后位宽,又会降低神经网络的运算效率。因此,传统的神经网络的量化方法,无法在提高量化精度和提高运算效率之间进行有效的平衡。
图1示出根据本披露实施例的神经网络量化方法的流程图。该神经网络量化方法可应用于通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)中,本披露对神经网络量化方法所应用的处理器的类型不作限制。
如图1所示,对于所述神经网络中的任意一层待量化层,所述神经网络量化方法包括:
步骤S10,确定与所述待量化层中每种待量化数据对应的量化参数,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种。
神经网络中的待量化层可以为神经网络中的任意一层。可以根据需求将神经网络中的部分层或全部层确定为待量化层。当神经网络中包括多个待量化层时,各待量化层可以连续也可以不连续。根据神经网络的不同,待量化层的种类也可以不同,例如待量化层可以为卷积层、全连接层等,本披露对待量化层的数量及类型不做限定。
在一种可能的实现方式中,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种。
用于执行待量化层运算的运算数据可以包括神经元、权值、偏置和梯度。可以根据需求,将待量化层中的神经元、权值、偏置、梯度中的至少一种作为待量化数据。当待量化层中有多种待量化数据时,针对每种待量化数据可以采用本披露中的量化方法进行量化后,得到与每种待量化数据对应的量化数据,再利用各种量化数据和不需要进行量化的运算数据执行待量化层的运算。进一步的,可以根据需求,将待量化层中各种运算数据中的全部数据或部分数据确定为待量化数据,本披露对此不做限定。
神经网络运算的推理阶段可包括:将训练好的神经网络进行前向运算以完成设定任务的阶段。在神经网络的推理阶段,可以将神经元、权值、偏置和梯度中的至少一种作为待量化数据,根据本披露实施例中的方法进行量化后,利用量化后的数据完成待量化层的运算。
神经网络运算的微调阶段可包括:将训练好的神经网络进行预设数量迭代的前向运算和反向运算,进行参数的微调以适应设定任务的阶段。在神经网络运算的微调阶段,可以将神经元、权值、偏置、梯度中的至少一种,根据本披露实施例中的方法进行量化后,利用量化后的数据完成待量化层的前向运算或反向运算。
神经网络运算的训练阶段可包括:将初始化的神经网络进行迭代训练以得到训练好的神经网络的阶段,训练好的神经网络可执行特定任务。在神经网络的训练阶段,可以将神经元、权值、偏置、梯度中的至少一种,根据本披露实施例中的方法进行量化后,利用量化后的数据完成待量化层的前向运算或反向运算。
待量化层对应的量化参数可以为一个量化参数,也可以为多个量化参数。
量化参数可以包括点位置等用于对待量化数据进行量化的参数。点位置可以用于确定量化后数据中小数点的位置。量化参数还可以包括缩放系数、偏移量等。当神经网络中包括多个待量化层时,各待量化层均可以有对应的量化参数,且各待量化层对应的量化参数可以不同,也可以相同,本披露对此不做限定。
对于待量化层中不同的待量化数据,可以对应不同的量化参数。例如,待量化层1中的神经元可以对应量化参数1,待量化层1中的权值可以对应量化参数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)中的四舍五入的取整运算。
在本实施例中,量化参数包括点位置、缩放系数和偏移量中的至少一种。采用不同的量化参数的组合对待量化数据进行量化,可以产生不同精度的量化结果。可以根据需求对量化参数进行灵活组合后按需取用。
图2示出根据本披露实施例的神经网络量化方法的流程图。如图2所示,所述神经网络量化方法中的步骤S10,包括:
步骤S11,通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。
在一种可能的实现方式中,各待量化层中与每种待量化数据对应的量化参数,可以是保存的预设值。可以为神经网络建立一个待量化数据与量化参数之间的对应关系,该对应关系可以包括各待量化层的每种待量化数据与量化参数对应关系,并将对应关系保存在各层可以共享访问的存储空间。也可以为神经网络建立多个待量化数据与量化参数之间的对应关系,各待量化层分别对应其中一个对应关系。可以将各层的对应关系保存在本层独享的存储空间,也可以将各层的对应关系保存在各层可以共享访问的存储空间。
在待量化数据与量化参数对应关系中,可以包括多个待量化数据和与之对应的多个量化参数之间的对应关系。例如,待量化数据与量化参数对应关系A中,可以包括待量化层1的神经元和权值两个待量化数据,神经元对应点位置1、缩放系数1和偏移量1三个量化参数,权值对应点位置2和偏移量2两个量化参数。本披露对待量化数据与量化参数对应关系的具体格式不做限定。
在本实施例中,可以通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。可以为各待量化层预设对应的量化参数,并通过对应关系进行存储后,供待量化层查找后使用。本实施例中量化参数的获取方式简单方便。
图3示出根据本披露实施例的神经网络量化方法的流程图。如图3所示,所述神经网络量化方法中的步骤S10,包括:
步骤S12,根据每种待量化数据和对应的数据位宽计算得到对应的量化参数。
可以为各待量化数据预设相应的数据位宽n。可以根据数据位宽n和各待量化数据计算得到与各待量化数据对应的量化参数。根据待量化数据自身计算得到的量化参数,更加符合待量化数据自身的特征。
可以在神经网络的推理、训练和微调过程中,待量化数据可以为神经元、权值、偏置中的至少一个。对于训练和微调过程,待量化数据还可以包括梯度。可以在神经网络的推理、训练和微调过程中,根据在线获取到的各待量化数据和与之对应的数据位宽,计算与各待量化数据对应的量化参数。
在本实施例中,根据每种待量化数据和对应的数据位宽计算得到对应的量化参数。根据在线的待量化数据计算得到的量化参数,能够更加符合神经网络待量化层中各种待量化数据自身的量化需求。
图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,当所述量化参数不包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;
步骤S123,根据目标数据中的绝对值最大值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
目标数据中的绝对值最大值可参照上述实施例中的相关阐述。
可以利用公式(9)计算得到量化参数不包括偏移量时,目标数据的缩放系数f:
其中,A为量化参数不包括偏移量时,目标数据量化后数据的最大值,可以利用公式(10)计算A:
在本实施例中,当量化参数不包括偏移量时,可以根据目标数据中的绝对值最大值和目标数据对应的数据位宽,计算得到目标数据对应的缩放系数。根据目标数据计算得到与之对应的缩放系数,可以更加符合目标数据自身的特征,使得目标数据的量化精度更高。
图7示出根据本披露实施例的神经网络量化方法中量化参数包括偏移量时,量化前后的数据对应示意图。如图7所示,A1和A2为用n量化目标数据后可以表示的最大值和最小值,Zmin为目标数据中所有元素的最小值,Zmax为目标数据中所有元素的最大值,可以将目标数据按照偏移量o进行平移后,再进行量化。
图8示出根据本披露实施例的神经网络量化方法的流程图。如图8所示,所述神经网络量化方法中步骤S12,包括:
步骤S124,当所述量化参数包括偏移量时,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,当量化参数包括偏移量时,量化参数还可以包括点位置、缩放系数中的至少一个。如图7所示,可以根据公式(11)计算得到量化参数包括偏移量时目标数据的点位置s:
其中,ceil为向上取整,s为点位置,n为目标数据对应的数据位宽。
在本实施例中,当量化参数包括偏移量时,可以根据目标数据中的最大值、最小值和目标数据对应的数据位宽,计算得到目标数据对应的点位置。根据目标数据计算得到与之对应的点位置,可以更加符合目标数据自身的特征,使得目标数据的量化精度更高。
图9示出根据本披露实施例的神经网络量化方法的流程图。如图9所示,所述神经网络量化方法中步骤S12,包括:
步骤S125,当所述量化参数包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;
步骤S126,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
在一种可能的实现方式中,当量化参数包括偏移量时,量化参数还可以包括点位置、缩放系数中的至少一个。如图7所示,可以根据公式(12)计算得到量化参数包括偏移量时目标数据的缩放系数f:
在本实施例中,当量化参数包括偏移量时,可以根据目标数据中的最大值、最小值和目标数据对应的数据位宽,计算得到目标数据对应的缩放系数。根据目标数据计算得到与之对应的缩放系数,可以更加符合目标数据自身的特征,使得目标数据的量化精度更高。
图10示出根据本披露实施例的神经网络量化方法的流程图。如图10所示,所述神经网络量化方法中步骤S12,包括:
步骤S127,根据目标数据中的最大值和最小值,得到所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,如图7所示,可以利用公式(13)计算得到量化参数包括偏移量时目标数据的偏移量o:
在本实施例中,当量化参数包括偏移量时,可以根据目标数据中的最大值、最小值和目标数据对应的数据位宽,计算得到目标数据对应的偏移量。根据目标数据计算得到与之对应的偏移量,可以更加符合目标数据自身的特征,使得目标数据的量化精度更高。
图11示出根据本披露实施例的神经网络量化方法的流程图。如图11所示,所述神经网络量化方法还包括:
步骤S30,根据目标数据和所述目标数据对应的量化数据,确定所述目标数据的量化误差,所述目标数据为任意一种待量化数据。
可以根据目标数据对应的量化数据与目标数据之间的误差,确定目标数据的量化误差。可以利用设定的误差计算方法,例如标准差计算方法、均方根误差计算方法等,计算目标数据的量化误差。
也可以根据量化参数,将目标数据对应的量化数据进行反量化后得到反量化数据,根据反量化数据与目标数据之间的误差,确定目标数据的量化误差。
当量化参数包括点位置时,可以根据公式(14)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
其中:round为四舍五入的取整运算,为目标数据的反量化数据,s为目标数据对应的点位置。
当量化参数包括缩放系数时,可以根据公式(15)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
其中:round为进行四舍五入的取整运算。为目标数据的反量化数据,f为缩放系数。
当量化参数包括偏移量时,可以根据公式(16)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
其中:round为进行四舍五入的取整运算。为目标数据的反量化数据,o为缩放系数。
当量化参数包括点位置和缩放系数时,可以根据公式(17)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
当量化参数包括点位置和偏移量时,可以根据公式(18)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
当量化参数包括缩放系数和偏移量时,可以根据公式(19)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
当量化参数包括点位置、缩放系数和偏移量时,可以根据公式(20)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
可以通过计算量化间隔相关的方法,例如可以通过公式(21)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit:
其中,p为目标数据中的各元素的数量,s为目标数据的点位置。A的取值可以根据量化参数进行确定,当量化参数包括点位置s时,A=2s;当量化参数包括点位置s和缩放系数f时,A=2s×f。
也可以通过计算两个数据的均值之间的差的方法,例如通过公式(22)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit:
也可以通过计算两个数据的差之间的均值的方法,例如通过公式(23)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit:
步骤S40,根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
可以根据经验值确定误差阈值,误差阈值可以用于表示对量化误差的期望值。当量化误差大于或小于误差阈值时,可以调整目标数对应的数据位宽,得到目标数据对应的调整位宽。可以将数据位宽调整为更长的位宽或更短的位宽,以提高或降低量化精度。
可以根据能够接受的最大误差确定误差阈值,当量化误差大于误差阈值时,说明量化精度不能达到预期,需要将数据位宽调整为更长的位宽。也可以根据较高的量化精度确定一个较小的误差阈值,当量化误差小于误差阈值时,说明量化精度较高,神经网络的运行效率将受到影响,可以适当的将数据位宽调整为更短的位宽,以适当的降低量化精度,提高神经网络的运行效率。
可以将数据位宽按照固定的位数步长进行调整,也可以根据量化误差与误差阈值之间的差值的不同,按照可变的调整步长调整数据位宽。本披露对此不做限定。
步骤S50,将所述目标数据对应的数据位宽更新为所述调整位宽,根据所述目标数据和所述调整位宽计算得到对应的调整量化参数,以使所述神经网络根据所述调整量化参数进行量化。
确定调整位宽后,可以将目标数据对应的数据位宽更新为调整位宽。例如,目标数据更新前的数据位宽为8位,调整位宽为12位,则更新后目标数据对应的数据位宽为12位。可以根据调整位宽和目标数据计算得到目标数据对应的调整量化参数。可以根据目标数据对应的调整量化参数重新对目标数据进行量化,以得到量化精度更高或更低的量化数据,使得待量化层在量化精度和处理效率之间达到平衡。
在神经网络的推理、训练和微调过程中,各层之间的待量化数据可以认为具有一定的关联性。例如,各层的待量化数据之间的均值之间的差小于设定的均值阈值,且各层的待量化数据之间的最大值之间的差值也小于设定的差值阈值时,可以将待量化层的调整量化参数作为后续的一个或多个层的调整量化参数,用于对待量化层后续的一个或多个层的待量化数据进行量化。也可以在神经网络的训练和微调过程中,将待量化层在当前迭代得到的调整量化参数,用于在后续的迭代中对待量化层进行量化。
在一种可能的实现方式中,所述方法还包括:
在所述待量化层之后的一层或多层采用所述待量化层的量化参数。
神经网络根据调整量化参数进行量化,可以包括只在待量化层利用调整量化参数对待量化数据重新进行量化,并将重新得到的量化数据用于待量化层的运算。也可以包括在待量化层不使用调整量化参数重新对待量化数据进行量化,而在待量化层后续的一个或多个层使用调整量化参数进行量化,和/或后续的迭代中在待量化层使用调整量化参数进行量化。还可以包括在待量化层使用调整量化参数重新进行量化,并将重新得到的量化数据用于待量化层的运算,并且在待量化层后续的一个或多个层使用调整量化参数进行量化,和/或后续的迭代中在待量化层使用调整量化参数进行量化。本披露对此不作限定。
在本实施例中,根据目标数据和目标数据对应的量化数据,确定目标数据的量化误差,目标数据为任意一种待量化数据;所述量化误差和误差阈值,调整目标数据对应的数据位宽,得到目标数据对应的调整位宽;将目标数据对应的数据位宽更新为调整位宽,根据目标数据和调整位宽计算得到对应的调整量化参数,以使神经网络根据调整量化参数进行量化。根据目标数据和量化数据之间的误差调整数据位宽,并根据调整后的数据位宽计算得到调整量化参数。通过设置不同的误差阈值可以得到不同的调整量化参数,达到提高量化精度或提高运行效率等不同的量化需求。根据目标数据和目标数据的量化数据计算得到的调整量化参数,也能够更加符合目标数据自身的数据特征,达到更加符合目标数据自身需求的量化结果,在量化精度和处理效率之间达到更好的平衡。
图12示出根据本披露实施例的神经网络量化方法的流程图。如图12所示,所述神经网络量化方法中步骤S40,包括:
步骤S41,当所述量化误差大于所述第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
可以根据能够接受的最大的量化误差,确定第一误差阈值。可以将量化误差与第一误差阈值进行比较。当量化误差大于第一误差阈值时,可以认为量化误差已经不可接受。需要提高量化精度,可以通过增加目标数据对应的数据位宽的方式,提高目标数据的量化精度。
可以将目标数据对应的数据位宽按照固定的调整步长增加,得到调整位宽。固定的调整步长可以为N位,N为正整数。每次调整数据位宽可以增加N位。每次增加后的数据位宽=原数据位宽+N位。
可以将目标数据对应的数据位宽按照可变的调整步长增加,得到调整位宽。例如,当量化误差与误差阈值之间的差值大于第一阈值时,可以按照调整步长M1调整数据位宽,当量化误差与误差阈值之间的差值小于第一阈值时,可以按照调整步长M2调整数据位宽,其中,第一阈值大于第二阈值,M1大于M2。可以根据需求确定各可变的调整步长。本披露对数据位宽的调整步长及调整步长是否可变不做限定。
可以将目标数据按照调整位宽计算得到调整后的量化参数。利用调整后的量化参数对目标数据进行重新量化后得到的量化数据,比利用调整前的量化参数量化得到的量化数据的量化精度更高。
图13示出根据本披露实施例的神经网络量化方法的流程图。如图13所示,所述神经网络量化方法还包括:
步骤S42,根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
步骤S43,根据所述调整后的量化误差和所述第一误差阈值继续增加所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差小于或等于所述第一误差阈值。
根据量化误差增加目标数据对应的数据位宽时,调整一次位宽后得到调整位宽,根据调整位宽计算得到调整后的量化参数,根据调整后的量化参数量化目标数据得到调整后的量化数据,再根据调整后的量化数据与目标数据计算得到目标数据调整后的量化误差,调整后的量化误差可能依然大于第一误差阈值,即根据调整一次的数据位宽可能不能满足调整目的。当调整后的量化误差依然大于第一误差阈值时,可以继续对调整后的数据位宽进行调整,即多次增加目标数据对应的数据位宽,直至根据最终得到的调整位宽和目标数据得到的调整后的量化误差小于第一误差阈值。
多次增加的调整步长可以是固定的调整步长,也可以是可变的调整步长。例如,最终的数据位宽=原数据位宽+A*N位,其中N为每次增加的固定的调整步长,A为数据位宽的增加次数。最终的数据位宽=原数据位宽+M1+M2+…+Mm,其中,M1、M2…Mm为每次增加的可变的调整步长。
在本实施例中,当量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。可以通过设置第一误差阈值和调整步长增加数据位宽,以使调整后的数据位宽能够满足量化的需求。当一次调整不能满足调整需求时,还可以对数据位宽进行多次调整。第一误差阈值和调整步长的设置,使得量化参数可以按照量化需求进行灵活调整,满足不同的量化需求,使得量化精度可根据自身数据特征进行自适应调整。
图14示出根据本披露实施例的神经网络量化方法的流程图。如图14所示,所述神经网络量化方法中步骤S40,包括:
步骤S44,当所述量化误差小于所述第二误差阈值时,减少所述目标数据对应的数据位宽,所述第二误差阈值小于所述第一误差阈值。
可以根据能够接受的量化误差和期望的神经网络的运行效率,确定第二误差阈值。可以将量化误差与第二误差阈值进行比较。当量化误差小于第二误差阈值时,可以认为量化误差超出预期,但运行效率过低已经不可接受。可以降低量化精度以提高神经网络的运行效率,可以通过减少目标数据对应的数据位宽的方式,降低目标数据的量化精度。
可以将目标数据对应的数据位宽按照固定的调整步长减少,得到调整位宽。固定的调整步长可以为N位,N为正整数。每次调整数据位宽可以减少N位。增加后的数据位宽=原数据位宽-N位。
可以将目标数据对应的数据位宽按照可变的调整步长减少,得到调整位宽。例如,当量化误差与误差阈值之间的差值大于第一阈值时,可以按照调整步长M1调整数据位宽,当量化误差与误差阈值之间的差值小于第一阈值时,可以按照调整步长M2调整数据位宽,其中,第一阈值大于第二阈值,M1大于M2。可以根据需求确定各可变的调整步长。本披露对数据位宽的调整步长及调整步长是否可变不做限定。
可以将目标数据按照调整位宽计算得到调整后的量化参数,利用调整后的量化参数对目标数据进行重新量化后得到的量化数据,比利用调整前的量化参数量化得到的量化数据的量化精度更低。
图15示出根据本披露实施例的神经网络量化方法的流程图。如图15所示,所述神经网络量化方法还包括:
步骤S45,根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
步骤S46,根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。
根据量化误差增加目标数据对应的数据位宽时,调整一次位宽后得到调整位宽,根据调整位宽计算得到调整后的量化参数,根据调整后的量化参数量化目标数据得到调整后的量化数据,再根据调整后的量化数据与目标数据计算得到目标数据调整后的量化误差,调整后的量化误差可能依然小于第二误差阈值,即根据调整一次的数据位宽可能不能满足调整目的。当调整后的量化误差依然小于第二误差阈值时,可以继续对调整后的数据位宽进行调整,即多次减少目标数据对应的数据位宽,直至根据最终得到的调整位宽和目标数据得到的调整后的量化误差大于第二误差阈值。
多次减少的调整步长可以是固定的调整步长,也可以是可变的调整步长。例如,最终的数据位宽=原数据位宽-A*N位,其中N为每次增加的固定的调整步长,A为数据位宽的增加次数。最终的数据位宽=原数据位宽-M1-M2-…-Mm,其中,M1、M2…Mm为每次减少的可变的调整步长。
在本实施例中,当量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。可以通过设置第二误差阈值和调整步长减少数据位宽,以使调整后的数据位宽能够满足量化的需求。当一次调整不能满足调整需求时,还可以对数据位宽进行多次调整。第二误差阈值和调整步长的设置,使得量化参数可以按照量化需求进行灵活的自适应调整,满足不同的量化需求,使得量化精度可调,在量化精度和神经网络的运行效率之间达到平衡。
在一种可能的实现方式中,所述方法还包括:
当所述量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,以及当所述量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
也可以同时设置两个误差阈值,其中,第一误差阈值用于表示量化精度过低,可以增加数据位宽的位数,第二误差阈值用于表示量化精度过高,可以减少数据位宽的位数。第一误差阈值大于第二误差阈值,可以将目标数据的量化误差同时与两个误差阈值进行比较,当量化误差大于第一误差阈值时,增加数据位宽的位数,当量化误差小于第二误差阈值时,减少数据位宽的位数。当量化误差位于第一误差阈值和第二误差阈值之间时,数据位宽可以保持不变。
在本实施例中,通过将量化误差与第一误差阈值和第二误差阈值同时进行比较,可以根据比较结果增加或减少数据位宽,可以利用第一误差阈值和第二误差阈值更加灵活的调整数据位宽。使得数据位宽的调整结果更加符合量化需求。
图16示出根据本披露实施例的神经网络量化方法的流程图。如图16所示,在所述神经网络运算的微调阶段和/或训练阶段,所述方法还包括:
步骤S60,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代。
在神经网络运算的微调阶段和/或训练阶段包括多个迭代。神经网络中的各待量化层,在进行一次正向运算和一次反向运算,并对待量化层的权值进行更新后,完成一次迭代。在多次迭代中,待量化层中的目标数据和/或目标数据对应的量化数据的数据变动幅度,可以用于衡量在不同迭代中的目标数据和/或量化数据是否可采用相同的量化参数进行量化。若当前迭代以及历史迭代中目标数据的数据变动幅度较小,例如小于设定的幅度变动阈值时,可以在数据变动幅度较小的多个迭代中采用相同的量化参数。
可以通过提取预存的量化参数的方式,确定与目标数据对应的量化参数。在不同的迭代中对目标数据进行量化时,需要在各迭代提取与目标数据对应的量化参数。若多个迭代的目标数据和/或目标数据对应的量化数据的数据变动幅度较小,可将在数据变动幅度较小的多个迭代中采用的相同的量化参数进行暂存,各迭代在进行量化时可以利用暂存的量化参数进行量化运算,不用在每次迭代提取量化参数。
也可以根据目标数据和数据位宽计算得到量化参数。在不同的迭代中对目标数据进行量化时,需要在各迭代分别计算量化参数。若多个迭代的目标数据和/或目标数据对应的量化数据的数据变动幅度较小,可在数据变动幅度较小的多个迭代中采用的相同的量化参数,则各迭代均可以直接使用其中第一个迭代计算得到的量化参数,而不是每次迭代计算量化参数。
可以理解的是,当目标数据为权值时,各迭代之间的权值在不断更新,若多个迭代的权值的数据变动幅度较小,或多个迭代的权值对应的量化数据的数据变动幅度较小,可以在多个迭代中利用相同的量化参数对权值进行量化。
步骤S70,根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述目标迭代间隔包括至少一次迭代,所述目标数据为任意一种待量化数据。
可以根据目标数据的数据变动幅度确定目标迭代间隔,目标迭代间隔包括至少一次迭代,可以在目标迭代间隔内的各迭代使用相同的量化参数,即在目标迭代间隔内的各迭代不再更新目标数据的量化参数。神经网络根据目标迭代间隔更新目标数据的量化参数,包括在目标迭代间隔内的迭代,不获取预设的量化参数或不计算量化参数,即在目标迭代间隔内的迭代不更新量化参数。而在目标迭代间隔外的迭代,再获取预设的量化参数或计算量化参数,即在目标迭代间隔外的迭代更新量化参数。
可以理解的是,多个迭代之间的目标数据或目标数据的量化数据的数据变动幅度越小,确定出的目标迭代间隔包括的迭代次数越多。可以根据计算得到的数据变动幅度,查找预设的数据变动幅度与迭代间隔的对应关系,确定与计算得到的数据变动幅度对应的目标迭代间隔。可以根据需求预设数据变动幅度与迭代间隔的对应关系。也可以根据计算得到的数据变动幅度,利用设定的计算方法计算得到目标迭代间隔。本披露不限定数据变动幅度的计算方式,以及目标迭代间隔的获取方式。
在本实施例中,在神经网络运算的微调阶段和/或训练阶段,获取当前迭代以及历史迭代中目标数据的数据变动幅度,根据所述目标数据的数据变动幅度,确定目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。可以根据多个迭代中目标数据或目标数据对应的量化数据的数据变动幅度,确定目标迭代间隔。神经网络可以根据目标迭代间隔确定是否更新量化参数。由于目标迭代间隔所包括的多个迭代的数据变动幅度较小,目标迭代间隔内的迭代不更新量化参数也可以保证量化精度。而目标迭代间隔内的多个迭代不更新量化参数,可以减少量化参数的提取次数或计算次数,从而提高神经网络的运算效率。
图17示出根据本披露实施例的神经网络量化方法的流程图。如图17所示,所述神经网络量化方法还包括:
步骤S80,根据所述目标数据在所述当前迭代的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。
如本披露上述实施例所述,目标数据的量化参数可以预设,也可以根据目标数据对应的数据位宽计算得到。而不同待量化层中目标数据对应的数据位宽,或相同待量化层中目标数据在不同迭代中对应的数据位宽,可以根据本披露上述实施例中的方式进行自适应调整。
当目标数据的数据位宽不可自适应调整,为预设的数据位宽时,可以根据目标数据在当前迭代的预设的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽。在目标迭代间隔内的各迭代可不使用自身的预设值。
当目标数据的数据位宽可自适应调整时,可以根据目标数据在当前迭代对应的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽。在数据位宽可自适应调整时,数据位宽可进行一次调整或多次调整。可以将目标数据在当前迭代进行自适应调整后的数据位宽,作为目标迭代间隔内的各迭代对应的数据位宽,在目标迭代间隔内的各迭代不再对数据位宽进行自适应调整(更新)。目标数据在当前迭代可以使用自适应调整后的数据位宽,也可以使用自适应调整前的数据位宽,本披露对此不作限定。
在目标迭代间隔以外的其他迭代,由于目标数据的数据变动幅度不满足设定条件,可以根据本披露上述的方法对数据位宽进行自适应调整,得到更加符合当前迭代的目标数据的数据位宽,也可使用本披露中的目标迭代间隔的计算方法,计算得到新的目标迭代间隔并使用,从而在保证目标迭代间隔以外的迭代的量化精度的同时,提高神经网络的运行效率。
在目标迭代间隔内的各迭代的数据位宽相同,各迭代可以根据相同的数据位宽各自计算得到对应的量化参数。量化参数可以包括点位置、缩放系数和偏移量中的至少一种。可以在目标迭代间隔内的各迭代,根据相同的数据位宽分别计算得到量化参数。量化参数包括点位置、缩放系数和偏移量时,在目标迭代间隔内的各迭代,可利用相同的数据位宽,分别计算各自对应的点位置、缩放系数和偏移量。
在根据当前迭代的数据位宽,确定目标迭代间隔内各迭代的数据位宽的同时,可以根据当前迭代的量化参数,确定目标迭代间隔内各迭代的对应的量化参数。目标迭代间隔内各迭代的量化参数,也不再重新根据相同的数据位宽计算得到,可以进一步提高神经网络的运算效率。可以根据当前迭代的全部量化参数或部分量化参数,确定目标迭代间隔内各迭代的对应的量化参数。当根据当前迭代的部分量化参数,确定目标迭代间隔内各迭代的对应的量化参数时,剩余部分的量化参数,在目标迭代间隔内各迭代仍需计算。
例如,量化参数包括点位置、缩放系数和偏移量。可以根据当前迭代的数据位宽和点位置,确定目标迭代间隔内各迭代的数据位宽和点位置。则目标迭代间隔内各迭代的缩放系数和偏移量需要根据相同的数据位宽计算得到。也可以根据当前迭代的数据位宽、点位置、缩放系数和偏移量,确定目标迭代间隔内各迭代的数据位宽、点位置、缩放系数和偏移量,则目标迭代间隔内各迭代的各量化参数均不需要计算得到。
在本实施例中,根据目标数据在当前迭代对应的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽,以使神经网络根据目标数据在目标迭代间隔内的迭代对应的数据位宽,确定量化参数。在目标迭代间隔内的各迭代的数据位宽,根据当前迭代的数据位宽确定,由于目标迭代间隔内各迭代的目标数据的数据变化幅度满足设定的条件,利用相同的数据位宽计算得到的量化参数,可以保证目标迭代间隔内的各迭代的量化精度。目标迭代间隔内各迭代使用相同的数据位宽,也可以提高神经网络的运算效率。在对神经网络进行量化后运算结果的准确率和神经网络的运算效率之间,达到平衡。
图18示出根据本披露实施例的神经网络量化方法的流程图。如图18所示,所述神经网络量化方法还包括:
步骤S90,根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置。
在量化参数中,相对于缩放系数和偏移量,不同的点位置对相同目标数据的量化结果产生的影响较大。可以根据目标数据在当前迭代对应的点位置,确定目标迭代间隔内的迭代对应的点位置。当数据位宽不可自适应调整时,可以将目标数据在当前迭代预设的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置,也可以将目标数据在当前迭代根据预设的数据位宽计算得到的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置。当数据位宽可自适应调整时,可以将目标数据在当前迭代调整后的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置。
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置的同时,也可以根据目标数据在当前迭代对应的缩放系数,确定所述目标数据在所述目标迭代间隔内的迭代对应的缩放系数,和/或根据目标数据在当前迭代对应的偏移量,确定所述目标数据在所述目标迭代间隔内的迭代对应的偏移量。
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置的同时,还可以根据目标数据在当前迭代对应的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,其中,目标数据在当前迭代对应的数据位宽,可以是当前迭代预设的数据位宽或自适应调整后的数据位宽。
在本实施例中,根据目标数据在当前迭代对应的点位置,确定目标数据在目标迭代间隔内的迭代对应的点位置。在目标迭代间隔内的各迭代的点位置,根据当前迭代的点位置确定,由于目标迭代间隔内各迭代的目标数据的数据变化幅度满足设定的条件,利用相同的点位置,可以保证目标迭代间隔内的各迭代的量化精度。目标迭代间隔内各迭代使用相同的点位置,也可以提高神经网络的运算效率。在对神经网络进行量化后运算结果的准确率和神经网络的运算效率之间,达到平衡。
图19示出根据本披露实施例的神经网络量化方法的流程图。如图19所示,所述神经网络量化方法中步骤S60,包括:
步骤S61,根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;
步骤S62,根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述步骤S70,包括:
步骤S71,根据所述第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
在一种可能的实现方式中,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代,可以为计算目标迭代间隔的历史迭代。当前迭代与对应的目标迭代间隔之间的对应关系可以包括:
可以从当前迭代开始计数目标迭代间隔,并在当前迭代对应的目标迭代间隔结束后的下一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第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,本披露对此不作限定。
可以理解的是,计算得到的目标数据对应各迭代间隔的点位置的滑动平均值,包括目标数据在当前迭代的点位置的第一滑动平均值,和目标数据在上一迭代间隔对应迭代的点位置的第二滑动平均值。可以利用公式(24)计算当前迭代对应点位置的第一滑动平均值m(t):
m(t)←α×s(t)+(1-α)×m(t-1)公式(24)
其中,t为当前迭代,t-1为根据上一迭代间隔确定的历史迭代,m(t-1)为根据上一迭代间隔确定的历史迭代的第二滑动平均值,s(t)为当前迭代的点位置,α为第一参数。第一参数可以为超参数。
在本实施例中,根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;根据目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度。根据第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。由于第一数据变动幅度可以用于衡量点位置的变化趋势,使得目标迭代间隔可以跟随目标数据点位置的变化趋势而变化,也使得计算得到的各目标迭代间隔的大小可以根据目标数据点位置的变化趋势而变化。由于量化参数根据目标迭代间隔确定,也就使得根据量化参数进行量化得到的量化数据,能够更加符合目标数据的点位置的变动趋势,在保证量化精度的同时,提高神经网络的运行效率。
图20示出根据本披露实施例的神经网络量化方法的流程图。如图20所示,所示神经网络量化方法中步骤S62包括:
步骤S621,计算所述第一滑动平均值和所述第二滑动平均值的差值;
步骤S622,将所述差值的绝对值确定为第一数据变动幅度。
可以利用公式(25)计算第一数据变动幅度diffupdate 1:
diffupdate 1=|m(t)-m(t-1)|=α|s(t)-m(t-1)|公式(25)
可以根据第一数据变动幅度,确定目标数据对应的目标迭代间隔,以使神经网络根据目标迭代间隔更新所述目标数据的量化参数。可以根据公式(26)计算得到目标迭代间隔I:
其中,β为第二参数,γ为第三参数。第二参数和第三参数可以为超参数。
可以理解的是,第一数据变动幅度可以用于衡量点位置的变化趋势,第一数据变动幅度越大,说明量化数据的数值范围变化剧烈,在更新量化参数时需要间隔更短的目标迭代间隔I。
在本实施例中,计算所述第一滑动平均值和所述第二滑动平均值的差值;将差值的绝对值确定为第一数据变动幅度。根据滑动平均值之间的差值可以得到精确的第一数据变动幅度。
图21示出根据本披露实施例的神经网络量化方法的流程图。如图21所示,所述神经网络量化方法还包括:
步骤S63,根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述步骤S70,包括:
步骤S72,根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
可以根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度。也可以根据在当前迭代所述目标数据和所述目标数据对应的反量化数据,得到第二数据变动幅度。
同样的,可以根据公式(23)计算得到在当前迭代中,所述目标数据和所述目标数据对应的反量化数据之间的第二数据变动幅度diffbit。也可以利用其它误差的计算方法,计算目标数据和反量化数据之间的第二数据变动幅度diffbit。本披露对此不作限定。
其中,zi为目标数据,zi (n)为目标数据对应的反量化数据。可以理解的是,第二数据变动幅度可以用于衡量目标数据对应的数据位宽的变化趋势,第二数据变动幅度越大,目标数据越有可能需要更新对应的数据位宽,需要间隔更短的迭代进行更新,则第二数据变动幅度越大,需要目标迭代间隔更小。
在本实施例中,根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度。根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。第二数据变动幅度可以用于衡量数据位宽的变动需求,则根据第一数据变动幅度和第二数据变动幅度计算得到的目标迭代间隔,可以同时跟踪点位置和数据位宽的变动,目标迭代间隔也可以更加符合目标数据自身的数据量化需求。
图22示出根据本披露实施例的神经网络量化方法的流程图。如图22所示,所述神经网络量化方法中步骤S63,包括:
步骤S631,计算在当前迭代所述目标数据和所述目标数据对应的量化数据之间的误差;
步骤S632,将所述误差的平方确定为所述第二数据变动幅度。
可以利用公式(27)计算得到第二数据变动幅度diffupdate 2:
diffupdate 2=δ*diffbit 2公式(27)
其中,δ为第四参数,第四参数可以为超参数。
可以理解的是,利用不同的数据位宽可以得到不同的量化参数,进而得到不同的量化数据,产生不同的第二数据变动幅度。第二数据变动幅度可以用于衡量数据位宽的变化趋势,第二数据变动幅度越大,说明需要更短的目标迭代间隔来更加频繁的更新数据位宽,即目标迭代间隔需要更小。
图23示出根据本披露实施例的神经网络量化方法的流程图。如图23所示,所述步骤S72,包括:
步骤S721,根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述目标数据对应的目标迭代间隔。
可以根据公式(28)计算得到目标迭代间隔:
其中,β为第二参数,γ为第三参数。第二参数和第三参数可以为超参数。
可以理解的是,利用第一数据变动幅度和第二数据变动幅度得到的目标迭代间隔,可以同时衡量数据位宽和点位置的变化趋势,当两者中的其一的变化趋势较大时,便可以使得目标迭代间隔产生相应的变化。目标迭代间隔可以同时追踪数据位宽和点位置的变化并做出相应的调整。使得根据目标迭代间隔更新的量化参数能够更加符合目标数据的变动趋势,最终使得根据量化参数得到的量化数据能够更加符合量化需求。
图24示出根据本披露实施例的神经网络量化方法的流程图。如图24所示,所述神经网络量化方法中步骤S60,包括:
步骤S64,在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
在神经网络运算的训练过程和/或微调过程中,在训练开始或微调开始的多个迭代中,目标数据的变化幅度较大。若在训练开始或微调开始的多个迭代中计算目标迭代间隔,则计算得到的目标迭代间隔可能会失去其使用的意义。可以根据预设更新周期,在更新周期以内的各迭代,不计算目标迭代间隔,也不适用目标迭代间隔使得多个迭代使用相同的数据位宽或点位置。
当迭代进行至更新周期以外时,即当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,并根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。例如,预设更新周期为100代,则自第1代开始至第100代的迭代中,不计算目标迭代间隔。当迭代进行至101代,即当前迭代为101代时,当前迭代位于更新周期以外,此时,可以根据第101代以及第1代至第100代的迭代中目标数据的数据变动幅度,确定第101代的目标数据对应的目标迭代间隔,并在第101代或与第101间隔预设代数的迭代中,使用计算得到的目标迭代间隔。
可以自预设的代数开始计数更新周期,例如可以自第一代开始计数更新周期中多个迭代,也可以自第N代开始计数更新周期中的多个迭代,本披露对此不作限定。
在本实施例中,当迭代进行至更新周期以外时计算并使用目标迭代间隔。可以避免在神经网络运算的训练过程或微调过程的初期,由于目标数据的变动幅度较大引起的目标迭代间隔使用意义不大的问题,可以在使用目标迭代间隔的情况下,进一步提高神经网络的运行效率。
图25示出根据本披露实施例的神经网络量化方法的流程图。如图25所示,所述神经网络量化方法还包括:
步骤S100,在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
步骤S110,根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
在神经网络运算的训练过程或微调过程中,可以包括多个周期。各周期可以包括多个迭代。用于神经网络运算的数据被完整的运算一遍为一个周期。在训练过程中,随着迭代的进行,神经网络的权值变化趋于稳定,当训练稳定后,神经元、权值、偏置和梯度等待量化数据均趋于稳定。目标数据趋于稳定后,目标数据的数据位宽和量化参数也趋于稳定。同理,在微调过程中,微调稳定后,目标数据的数据位宽和量化参数也趋于稳定。
因此,可以根据训练稳定或微调稳定的周期确定预设周期。可以将训练稳定或微调稳定所在周期以后的周期,确定为预设周期。例如训练稳定的周期为第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个迭代确定的数据位宽或点位置等量化参数。
在本实施例中,可以设置周期间隔,在神经网络运算的训练或微调达到稳定后,根据周期间隔,每周期更新一次数据位宽或点位置等量化参数。周期间隔可以在训练稳定或微调稳定后,减少数据位宽或点位置的更新次数,在保证量化精度的同时,提高神经网络的运行效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图26示出根据本披露实施例的神经网络量化装置的示意图。如图26所示,本披露提供一种神经网络量化装置,所述装置用于量化所述神经网络中的任意一层待量化层,所述装置包括:
量化参数确定模块10,用于确定与所述待量化层中每种待量化数据对应的量化参数,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种;
量化模块20,用于将待量化数据根据对应的量化参数进行量化,得到量化数据,以使所述神经网络根据所述量化数据执行运算。
在一种可能的实现方式中,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置为量化后小数点的位置,
所述缩放系数为量化后数据的最大值与待量化数据的最大绝对值之间的比值,
所述偏移量为待量化数据的中间值。
图27示出根据本披露实施例的神经网络量化装置的示意图。如图27所示,所述量化参数确定模块10,包括:
第一量化参数确定子模块11,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。
在一种可能的实现方式中,所述量化参数确定模块10,包括:
第二量化参数确定子模块12,用于根据每种待量化数据和对应的数据位宽计算得到对应的量化参数。
在一种可能的实现方式中,所述第二量化参数确定子模块12,包括:
第一点位置计算单元121,用于当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块12,包括:
第一缩放系数计算单元122,用于当所述量化参数不包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;根据目标数据中的绝对值最大值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
在一种可能的实现方式中,所述第二量化参数确定子模块12,包括:
第二点位置计算单元123,用于当所述量化参数包括偏移量时,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块12,包括:
第二缩放系数计算单元124,用于当所述量化参数包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
在一种可能的实现方式中,所述第二量化参数确定子模块12,包括:
偏移量计算单元125,用于根据目标数据中的最大值和最小值,得到所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
图28示出根据本披露实施例的神经网络量化装置的示意图。如图28所示,在一种可能的实现方式中,所述装置还包括:
量化误差确定模块30,用于根据目标数据和所述目标数据对应的量化数据,确定所述目标数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块40,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽;
调整量化参数确定模块50,用于将所述目标数据对应的数据位宽更新为所述调整位宽,根据所述目标数据和所述调整位宽计算得到对应的调整量化参数,以使所述神经网络根据所述调整量化参数进行量化。
在一种可能的实现方式中,所述调整位宽确定模块40,包括:
第一调整位宽确定子模块41,用于当所述量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
在一种可能的实现方式中,所述调整位宽确定模块40,还包括:
第一调整量化误差确定子模块42,用于根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
第一调整位宽循环确定子模块43,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差小于或等于所述第一误差阈值。
在一种可能的实现方式中,所述调整位宽确定模块40,包括:
第二调整位宽确定子模块44,用于当所述量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,所述第二误差阈值小于所述第一误差阈值。
在一种可能的实现方式中,所述调整位宽确定模块40,还包括:
第二调整量化误差确定子模块45,用于根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽循环确定子模块46,用于根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。
图29示出根据本披露实施例的神经网络量化装置的示意图。如图29所示,在一种可能的实现方式中,在所述神经网络运算的微调阶段和/或训练阶段,所述装置还包括:
数据变动幅度确定模块60,用于获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代;
目标迭代间隔确定模块70,用于根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述目标迭代间隔包括至少一次迭代,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述装置还包括:
第一目标迭代间隔应用模块80,用于根据所述目标数据在所述当前迭代的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。
在一种可能的实现方式中,所述装置还包括:
第二目标迭代间隔应用模块90,用于根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置。
在一种可能的实现方式中,所述数据变动幅度确定模块60,包括:
滑动平均值计算子模块61,用于根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;
第一数据变动幅度确定子模块62,用于根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述目标迭代间隔确定模块70,包括:
第一目标迭代间隔确定子模块71,用于根据所述第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
在一种可能的实现方式中,所述第一数据变动幅度确定子模块62,包括:
第一数据变动幅度确定单元621,用于计算所述第一滑动平均值和所述第二滑动平均值的差值;将所述差值的绝对值确定为第一数据变动幅度。
在一种可能的实现方式中,所述数据变动幅度确定模块60,还包括:
第二数据变动幅度确定子模块63,用于根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述目标迭代间隔确定模块70,包括:
第二目标迭代间隔确定子模块72,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
在一种可能的实现方式中,所述第二数据变动幅度确定模块63,包括:
第二数据变动幅度确定单元631,用于计算在当前迭代所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
在一种可能的实现方式中,所述第二目标迭代间隔确定子模块72,用于根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述目标数据对应的目标迭代间隔。
在一种可能的实现方式中,所述数据变动幅度确定模块60,包括:
第三数据变动幅度确定子模块64,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
图30示出根据本披露实施例的神经网络量化装置的示意图。如图30所示,在一种可能的实现方式中,所述装置还包括:
周期间隔确定模块100,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块110,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块120,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
在一种可能的实现方式中,所述装置还包括:
量化参数沿用模块130,用于在所述待量化层之后的一层或多层采用所述待量化层的量化参数。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要选择其中的部分或者全部单元来实现。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如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)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,本披露还公开了一种人工智能芯片,其包括了上述数据同步装置。
在一种可能的实现方式中,本披露还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图31示出根据本披露实施例的板卡的结构框图,参阅图31,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
依据以下条款可更好地理解前述内容:
A1、一种神经网络量化方法,对于所述神经网络中的任意一层待量化层,所述方法包括:
确定与所述待量化层中每种待量化数据对应的量化参数,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种;
将待量化数据根据对应的量化参数进行量化,得到量化数据,以使所述神经网络根据所述量化数据执行运算。
A2、根据条款A1所述的方法,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置为量化后小数点的位置,
所述缩放系数为量化后数据的最大值与待量化数据的最大绝对值之间的比值,
所述偏移量为待量化数据的中间值。
A3、根据条款A1或A2所述的方法,所述确定与所述待量化层中每种待量化数据对应的量化参数,包括:
通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。
A4、根据条款A1或A2所述的方法,所述确定与所述待量化层中每种待量化数据对应的量化参数,包括:
根据每种待量化数据和对应的数据位宽计算得到对应的量化参数。
A5、根据条款A4所述的方法,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
A6、根据条款A4所述的方法,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数不包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;
根据目标数据中的绝对值最大值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
A7、根据条款A4所述的方法,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数包括偏移量时,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
A8、根据条款A4所述的方法,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;
根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
A9、根据条款A4所述的方法,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
根据目标数据中的最大值和最小值,得到所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
A10、根据条款A1至A9中任一项所述的方法,所述方法还包括:
根据目标数据和所述目标数据对应的量化数据,确定所述目标数据的量化误差,所述目标数据为任意一种待量化数据;
根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽;
将所述目标数据对应的数据位宽更新为所述调整位宽,根据所述目标数据和所述调整位宽计算得到对应的调整量化参数,以使所述神经网络根据所述调整量化参数进行量化。
A11、根据条款A10所述的方法,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
A12、根据条款A11所述的方法,所述方法还包括:
根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差小于或等于所述第一误差阈值。
A13、根据条款A10或A11所述的方法,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,包括:
当所述量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,所述第二误差阈值小于所述第一误差阈值。
A14、根据条款A13所述的方法,所述方法还包括:
根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。
A15、根据条款A1至A14中任一项所述的方法,在所述神经网络运算的微调阶段和/或训练阶段,所述方法还包括:
获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代;
根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述目标迭代间隔包括至少一次迭代,所述目标数据为任意一种待量化数据。
A16、根据条款A15所述的方法,所述方法还包括:
根据所述目标数据在所述当前迭代的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。
A17、根据条款A15所述的方法,所述方法还包括:
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置。
A18、根据条款A15所述的方法,所述获取当前迭代以及历史迭代中目标数据的数据变动幅度,包括:
根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;
根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,包括:
根据所述第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
A19、根据条款A18所述的方法,所述根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度,包括:
计算所述第一滑动平均值和所述第二滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。
A20、根据条款A18所述的方法,所述方法还包括:
根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
A21、根据条款A20述的方法,所述根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
A22、根据条款A20所述的方法,所述根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,包括:
根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述目标数据对应的目标迭代间隔。
A23、根据条款A15至A22中任一项所述的方法,所述获取当前迭代以及历史迭代中目标数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
A24、根据条款A15至A23中任一项所述的方法,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
A25、根据条款A1至A24中任一项所述的方法,所述方法还包括:
在所述待量化层之后的一层或多层采用所述待量化层的量化参数。
A26、一种神经网络量化装置,所述装置用于量化所述神经网络中的任意一层待量化层,所述装置包括:
量化参数确定模块,用于确定与所述待量化层中每种待量化数据对应的量化参数,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种;
量化模块,用于将待量化数据根据对应的量化参数进行量化,得到量化数据,以使所述神经网络根据所述量化数据执行运算。
A27、根据条款A26所述的装置,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置为量化后小数点的位置,
所述缩放系数为量化后数据的最大值与待量化数据的最大绝对值之间的比值,
所述偏移量为待量化数据的中间值。
A28、根据条款A25或A27所述的装置,所述量化参数确定模块,包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。
A29、根据条款A26或A27所述的装置,所述量化参数确定模块,包括:
第二量化参数确定子模块,用于根据每种待量化数据和对应的数据位宽计算得到对应的量化参数。
A30、根据条款A29所述的装置,所述第二量化参数确定子模块,包括:
第一点位置计算单元,用于当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
A31、根据条款A29所述的装置,所述第二量化参数确定子模块,包括:
第一缩放系数计算单元,用于当所述量化参数不包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;根据目标数据中的绝对值最大值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
A32、根据条款A29所述的装置,所述第二量化参数确定子模块,包括:
第二点位置计算单元,用于当所述量化参数包括偏移量时,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
A33、根据条款A29所述的装置,所述第二量化参数确定子模块,包括:
第二缩放系数计算单元,用于当所述量化参数包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
A34、根据条款A29所述的装置,所述第二量化参数确定子模块,包括:
偏移量计算单元,用于根据目标数据中的最大值和最小值,得到所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
A35、根据条款A26至A34中任一项所述的装置,所述装置还包括:
量化误差确定模块,用于根据目标数据和所述目标数据对应的量化数据,确定所述目标数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽;
调整量化参数确定模块,用于将所述目标数据对应的数据位宽更新为所述调整位宽,根据所述目标数据和所述调整位宽计算得到对应的调整量化参数,以使所述神经网络根据所述调整量化参数进行量化。
A36、根据条款A35所述的装置,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
A37、根据条款A36所述的装置,所述调整位宽确定模块,还包括:
第一调整量化误差确定子模块,用于根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
第一调整位宽循环确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差小于或等于所述第一误差阈值。
A38、根据条款A35或A36所述的装置,所述调整位宽确定模块,包括:
第二调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,所述第二误差阈值小于所述第一误差阈值。
A39、根据条款A38所述的装置,所述调整位宽确定模块,还包括:
第二调整量化误差确定子模块,用于根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽循环确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。
A40、根据条款A26至A39中任一项所述的装置,在所述神经网络运算的微调阶段和/或训练阶段,所述装置还包括:
数据变动幅度确定模块,用于获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代;
目标迭代间隔确定模块,用于根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述目标迭代间隔包括至少一次迭代,所述目标数据为任意一种待量化数据。
A41、根据条款A40所述的装置,所述装置还包括:
第一目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。
A42、根据条款A40所述的装置,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置。
A43、根据条款A40所述的装置,所述数据变动幅度确定模块,包括:
滑动平均值计算子模块,用于根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;
第一数据变动幅度确定子模块,用于根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述目标迭代间隔确定模块,包括:
第一目标迭代间隔确定子模块,用于根据所述第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
A44、根据条款A43所述的装置,所述第一数据变动幅度确定子模块,包括:
第一数据变动幅度确定单元,用于计算所述第一滑动平均值和所述第二滑动平均值的差值;将所述差值的绝对值确定为第一数据变动幅度。
A45、根据条款A43所述的装置,所述数据变动幅度确定模块,包括:
第二数据变动幅度确定子模块,用于根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述目标迭代间隔确定模块,包括:
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
A46、根据条款A45述的装置,所述第二数据变动幅度确定子模块,包括:
第二数据变动幅度确定单元,用于计算在当前迭代所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
A47、根据条款A45所述的装置,所述第二目标迭代间隔确定子模块,用于根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述目标数据对应的目标迭代间隔。
A48、根据条款A40至A47中任一项所述的装置,所述数据变动幅度确定模块,包括:
第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
A49、根据条款A40至A48中任一项所述的装置,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
A50、根据条款A26至A49中任一项所述的装置,所述装置还包括:
量化参数沿用模块,用于在所述待量化层之后的一层或多层采用所述待量化层的量化参数。
A51、一种人工智能芯片,所述芯片包括如条款A26-A50中任意一项所述的神经网络量化装置。
A52、一种电子设备,所述电子设备包括如条款A51所述的人工智能芯片。
A53、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A51所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
A54、根据权利要求A53所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上已经描述了本披露的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (50)
1.一种神经网络量化方法,其特征在于,所述神经网络量化方法应用于通用处理器和专用处理器中,对于所述神经网络中的任意一层待量化层,所述方法包括:
确定与所述待量化层中每种待量化数据对应的量化参数,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种;
将待量化数据根据对应的量化参数进行量化,得到量化数据,以使所述神经网络根据所述量化数据执行运算,所述量化数据的访存开销小于所述待量化数据的访存开销,
所述确定与所述待量化层中每种待量化数据对应的量化参数,包括:
根据每种待量化数据和对应的数据位宽计算得到对应的量化参数;
所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
2.根据权利要求1所述的方法,其特征在于,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置为量化后小数点的位置,
所述缩放系数为量化后数据的最大值与待量化数据的最大绝对值之间的比值,
所述偏移量为待量化数据的中间值。
3.根据权利要求1或2所述的方法,其特征在于,所述确定与所述待量化层中每种待量化数据对应的量化参数,包括:
通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。
4.根据权利要求1所述的方法,其特征在于,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数不包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;
根据目标数据中的绝对值最大值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
5.根据权利要求1所述的方法,其特征在于,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数包括偏移量时,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
6.根据权利要求1所述的方法,其特征在于,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;
根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
7.根据权利要求1所述的方法,其特征在于,所述根据每种待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
根据目标数据中的最大值和最小值,得到所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据目标数据和所述目标数据对应的量化数据,确定所述目标数据的量化误差,所述目标数据为任意一种待量化数据;
根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽;
将所述目标数据对应的数据位宽更新为所述调整位宽,根据所述目标数据和所述调整位宽计算得到对应的调整量化参数,以使所述神经网络根据所述调整量化参数进行量化。
9.根据权利要求8所述的方法,其特征在于,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差小于或等于所述第一误差阈值。
11.根据权利要求9所述的方法,其特征在于,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,包括:
当所述量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,所述第二误差阈值小于所述第一误差阈值。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。
13.根据权利要求2所述的方法,其特征在于,在所述神经网络运算的微调阶段和/或训练阶段,所述方法还包括:
获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代;
根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述目标迭代间隔包括至少一次迭代,所述目标数据为任意一种待量化数据。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
根据所述目标数据在所述当前迭代的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置。
16.根据权利要求13所述的方法,其特征在于,所述获取当前迭代以及历史迭代中目标数据的数据变动幅度,包括:
根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;
根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,包括:
根据所述第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
17.根据权利要求16所述的方法,其特征在于,所述根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度,包括:
计算所述第一滑动平均值和所述第二滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。
18.根据权利要求16所述的方法,其特征在于,所述方法还包括:
根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
19.根据权利要求18所述的方法,其特征在于,所述根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
20.根据权利要求18所述的方法,其特征在于,所述根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,包括:
根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述目标数据对应的目标迭代间隔。
21.根据权利要求13所述的方法,其特征在于,所述获取当前迭代以及历史迭代中目标数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
22.根据权利要求13所述的方法,其特征在于,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
23.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述待量化层之后的一层或多层采用所述待量化层的量化参数。
24.一种神经网络量化装置,其特征在于,所述装置用于量化所述神经网络中的任意一层待量化层,所述装置包括:
量化参数确定模块,用于确定与所述待量化层中每种待量化数据对应的量化参数,所述待量化数据包括神经元、权值、偏置、梯度中的至少一种;
量化模块,用于将待量化数据根据对应的量化参数进行量化,得到量化数据,以使所述神经网络根据所述量化数据执行运算,所述量化数据的访存开销小于所述待量化数据的访存开销,
所述量化参数确定模块,包括:
第二量化参数确定子模块,用于根据每种待量化数据和对应的数据位宽计算得到对应的量化参数;
所述第二量化参数确定子模块,包括:
第一点位置计算单元,用于当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
25.根据权利要求24所述的装置,其特征在于,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置为量化后小数点的位置,
所述缩放系数为量化后数据的最大值与待量化数据的最大绝对值之间的比值,
所述偏移量为待量化数据的中间值。
26.根据权利要求24或25所述的装置,其特征在于,所述量化参数确定模块,包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化层中每种待量化数据对应的量化参数。
27.根据权利要求24所述的装置,其特征在于,所述第二量化参数确定子模块,包括:
第一缩放系数计算单元,用于当所述量化参数不包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;根据目标数据中的绝对值最大值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
28.根据权利要求24所述的装置,其特征在于,所述第二量化参数确定子模块,包括:
第二点位置计算单元,用于当所述量化参数包括偏移量时,根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据对应的数据位宽,得到所述目标数据的点位置,所述目标数据为任意一种待量化数据。
29.根据权利要求24所述的装置,其特征在于,所述第二量化参数确定子模块,包括:
第二缩放系数计算单元,用于当所述量化参数包括偏移量时,根据目标数据和所述目标数据对应的数据位宽得到所述目标数据量化后数据的最大值,所述目标数据为任意一种待量化数据;根据所述目标数据中的最大值、所述目标数据中的最小值和所述目标数据量化后数据的最大值,得到所述目标数据的缩放系数。
30.根据权利要求24所述的装置,其特征在于,所述第二量化参数确定子模块,包括:
偏移量计算单元,用于根据目标数据中的最大值和最小值,得到所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
31.根据权利要求24所述的装置,其特征在于,所述装置还包括:
量化误差确定模块,用于根据目标数据和所述目标数据对应的量化数据,确定所述目标数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽;
调整量化参数确定模块,用于将所述目标数据对应的数据位宽更新为所述调整位宽,根据所述目标数据和所述调整位宽计算得到对应的调整量化参数,以使所述神经网络根据所述调整量化参数进行量化。
32.根据权利要求31所述的装置,其特征在于,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述目标数据对应的数据位宽,得到所述目标数据对应的调整位宽。
33.根据权利要求32所述的装置,其特征在于,所述调整位宽确定模块,还包括:
第一调整量化误差确定子模块,用于根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
第一调整位宽循环确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差小于或等于所述第一误差阈值。
34.根据权利要求32所述的装置,其特征在于,所述调整位宽确定模块,包括:
第二调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减少所述目标数据对应的数据位宽,所述第二误差阈值小于所述第一误差阈值。
35.根据权利要求34所述的装置,其特征在于,所述调整位宽确定模块,还包括:
第二调整量化误差确定子模块,用于根据所述调整位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽循环确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述目标数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。
36.根据权利要求24所述的装置,其特征在于,在所述神经网络运算的微调阶段和/或训练阶段,所述装置还包括:
数据变动幅度确定模块,用于获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代;
目标迭代间隔确定模块,用于根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数,所述目标迭代间隔包括至少一次迭代,所述目标数据为任意一种待量化数据。
37.根据权利要求36所述的装置,其特征在于,所述装置还包括:
第一目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代的数据位宽,确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。
38.根据权利要求36所述的装置,其特征在于,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭代间隔内的迭代对应的点位置。
39.根据权利要求36所述的装置,其特征在于,所述数据变动幅度确定模块,包括:
滑动平均值计算子模块,用于根据目标数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算目标数据对应各迭代间隔的点位置的滑动平均值;
第一数据变动幅度确定子模块,用于根据所述目标数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述目标迭代间隔确定模块,包括:
第一目标迭代间隔确定子模块,用于根据所述第一数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
40.根据权利要求39所述的装置,其特征在于,所述第一数据变动幅度确定子模块,包括:
第一数据变动幅度确定单元,用于计算所述第一滑动平均值和所述第二滑动平均值的差值;将所述差值的绝对值确定为第一数据变动幅度。
41.根据权利要求39所述的装置,其特征在于,所述数据变动幅度确定模块,包括:
第二数据变动幅度确定子模块,用于根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述目标迭代间隔确定模块,包括:
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。
42.根据权利要求41所述的装置,其特征在于,所述第二数据变动幅度确定子模块,包括:
第二数据变动幅度确定单元,用于计算在当前迭代所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
43.根据权利要求41所述的装置,其特征在于,所述第二目标迭代间隔确定子模块,用于根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述目标数据对应的目标迭代间隔。
44.根据权利要求36所述的装置,其特征在于,所述数据变动幅度确定模块,包括:
第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
45.根据权利要求36所述的装置,其特征在于,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
46.根据权利要求24所述的装置,其特征在于,所述装置还包括:
量化参数沿用模块,用于在所述待量化层之后的一层或多层采用所述待量化层的量化参数。
47.一种人工智能芯片,其特征在于,所述芯片包括如权利要求24-46中任意一项所述的神经网络量化装置。
48.一种电子设备,其特征在于,所述电子设备包括如权利要求47所述的人工智能芯片。
49.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求47所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
50.根据权利要求49所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为: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 |
---|---|
CN112085181A CN112085181A (zh) | 2020-12-15 |
CN112085181B true CN112085181B (zh) | 2024-03-29 |
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 (11)
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 | 一种神经网络的量化参数确定方法及相关产品 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017168427A1 (en) * | 2016-03-31 | 2017-10-05 | Clear Px Technologies Ltd | Temperature controlling device and system having static cooling capacity |
CN109472353A (zh) * | 2018-11-22 | 2019-03-15 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络量化电路及量化方法 |
Family Cites Families (261)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2604712B2 (ja) * | 1985-10-18 | 1997-04-30 | ソニー株式会社 | テレビジヨン信号の高能率符号化/復号装置 |
JPS63111768A (ja) * | 1986-10-30 | 1988-05-17 | Nec Corp | 画像デ−タ量子化装置 |
JPH0375860A (ja) | 1989-08-18 | 1991-03-29 | Hitachi Ltd | パーソナライズド端末 |
JPH087475B2 (ja) | 1990-01-29 | 1996-01-29 | 富士ゼロックス株式会社 | カラー画像形成装置及びその使用方法 |
US5052043A (en) | 1990-05-07 | 1991-09-24 | Eastman Kodak Company | Neural network with back propagation controlled through an output confidence measure |
EP0509576B1 (en) * | 1991-04-18 | 1998-01-28 | Ampex Systems Corporation | Method and apparatus for determining a quantizing factor for processes involving multiple compression/decompression of data |
US6144977A (en) | 1995-07-10 | 2000-11-07 | Motorola, Inc. | Circuit and method of converting a floating point number to a programmable fixed point number |
GB9602701D0 (en) | 1996-02-09 | 1996-04-10 | Canon Kk | Image manipulation |
JPH09224246A (ja) * | 1996-02-15 | 1997-08-26 | Sony Corp | 画像圧縮符号化および画像圧縮復号化装置 |
JPH10233691A (ja) * | 1998-03-30 | 1998-09-02 | Nec Corp | 符号化方式および復号方式 |
JPH11306268A (ja) | 1998-04-17 | 1999-11-05 | Sunao Shibata | 半導体演算装置 |
US7242414B1 (en) | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
JP2000293371A (ja) | 1999-04-09 | 2000-10-20 | Hitachi Ltd | マイクロプログラム制御方法及び装置 |
US6671796B1 (en) | 2000-02-25 | 2003-12-30 | Sun Microsystems, Inc. | Converting an arbitrary fixed point value to a floating point value |
US6931639B1 (en) | 2000-08-24 | 2005-08-16 | International Business Machines Corporation | Method for implementing a variable-partitioned queue for simultaneous multithreaded processors |
EP1315846B1 (en) | 2000-09-07 | 2007-02-21 | Nippon Steel Corporation | Hexavalent chromium-free surface-treating agent for sn- or al-based coated steel sheet, and surface treated steel sheet |
US7062445B2 (en) * | 2001-01-26 | 2006-06-13 | Microsoft Corporation | Quantization loop with heuristic approach |
US20020138714A1 (en) | 2001-03-22 | 2002-09-26 | Sun Microsystems, Inc. | Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution |
CN1270273C (zh) | 2001-04-19 | 2006-08-16 | 艾利森电话股份有限公司 | 自适应存储器分配 |
US20030167460A1 (en) | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
JP4148356B2 (ja) * | 2002-11-18 | 2008-09-10 | 学校法人東海大学 | 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム |
US7236995B2 (en) | 2002-12-27 | 2007-06-26 | Arm Limited | Data processing apparatus and method for converting a number between fixed-point and floating-point representations |
DE10316381A1 (de) | 2003-04-10 | 2004-10-28 | Bayer Technology Services Gmbh | Verfahren zum Training von neuronalen Netzen |
JP3889738B2 (ja) * | 2003-09-26 | 2007-03-07 | 三洋電機株式会社 | 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム |
JP4202244B2 (ja) | 2003-12-22 | 2008-12-24 | Necエレクトロニクス株式会社 | Vliw型dsp,及びその動作方法 |
US20060161375A1 (en) | 2004-12-30 | 2006-07-20 | Allen Duberstein | Optimizing processing speed based on measured temperatures |
KR100762591B1 (ko) * | 2005-09-29 | 2007-10-01 | 엘지전자 주식회사 | 비디오 코덱의 양자화 파라미터 결정방법 |
US7721128B2 (en) | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
WO2007116551A1 (ja) * | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
CN1851668A (zh) | 2006-06-01 | 2006-10-25 | 北京天碁科技有限公司 | 片上系统芯片、片上系统芯片的跟踪调试系统及方法 |
JP5224666B2 (ja) * | 2006-09-08 | 2013-07-03 | 株式会社東芝 | オーディオ符号化装置 |
DE102006059156B4 (de) | 2006-12-14 | 2008-11-06 | Advanced Micro Devices, Inc., Sunnyvale | Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem |
US20110060587A1 (en) | 2007-03-07 | 2011-03-10 | Phillips Michael S | Command and control utilizing ancillary information in a mobile voice-to-speech application |
US8560591B2 (en) | 2007-04-25 | 2013-10-15 | International Business Machines Corporation | Detection of potential need to use a larger data format in performing floating point operations |
US8051117B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Shift significand of decimal floating point data |
US8190664B2 (en) | 2007-04-26 | 2012-05-29 | International Business Machines Corporation | Employing a mask field of an instruction to encode a sign of a result of the instruction |
US8051118B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Composition of decimal floating point data |
JP5184824B2 (ja) | 2007-06-15 | 2013-04-17 | キヤノン株式会社 | 演算処理装置及び方法 |
JP2009110353A (ja) | 2007-10-31 | 2009-05-21 | Hitachi Ltd | マイクロコントローラ及び制御システム |
US7904287B2 (en) | 2007-11-13 | 2011-03-08 | International Business Machines Corporation | Method and system for real-time prediction of power usage for a change to another performance state |
JP4998794B2 (ja) | 2007-11-29 | 2012-08-15 | Nkワークス株式会社 | 画像補正方法と画像補正装置 |
KR101518237B1 (ko) * | 2008-09-01 | 2015-05-15 | 삼성전자주식회사 | 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치 |
US20100073068A1 (en) | 2008-09-22 | 2010-03-25 | Hanwoo Cho | Functional block level thermal control |
CN101754490B (zh) * | 2008-12-17 | 2012-11-07 | 电信科学技术研究院 | 一种数据传输的方法、系统和装置 |
KR101596954B1 (ko) | 2009-01-29 | 2016-02-24 | 엘지디스플레이 주식회사 | 데이터 압축과 복원 방법 및 장치와 이를 이용한 액정표시장치 |
JP2010233691A (ja) | 2009-03-30 | 2010-10-21 | Kyoraku Sangyo Kk | 遊技機、周辺基板、認証方法、プログラム |
CN101572829B (zh) | 2009-06-10 | 2011-02-02 | 中国联合网络通信集团有限公司 | Iptv视频质量监测方法、装置和系统 |
EP2336882A1 (en) | 2009-12-18 | 2011-06-22 | Telefonaktiebolaget L M Ericsson (PUBL) | Technique for run-time provision of executable code using off-device services |
WO2011132277A1 (ja) | 2010-04-21 | 2011-10-27 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
JP2011253374A (ja) | 2010-06-02 | 2011-12-15 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
US8452463B2 (en) | 2010-06-04 | 2013-05-28 | Apple Inc. | Adjusting the thermal behavior of a computing system using indirect information about ambient temperature |
US8694572B2 (en) | 2010-07-06 | 2014-04-08 | Silminds, Llc, Egypt | Decimal floating-point fused multiply-add unit |
CN102622207B (zh) * | 2011-01-30 | 2015-07-22 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
US8924455B1 (en) | 2011-02-25 | 2014-12-30 | Xilinx, Inc. | Multiplication of matrices using systolic arrays |
JP6062356B2 (ja) | 2011-02-28 | 2017-01-18 | 株式会社メガチップス | 画像符号化装置 |
CN102761509B (zh) | 2011-04-27 | 2016-01-06 | 联芯科技有限公司 | Ofdm系统的接收系统及降低接收系统内存的方法 |
WO2012155105A1 (en) | 2011-05-12 | 2012-11-15 | Apple Inc. | Presence sensing |
CN102789413B (zh) | 2011-05-23 | 2016-02-17 | 同济大学 | 一种并行程序的调试系统及方法 |
US8594982B2 (en) | 2011-06-09 | 2013-11-26 | Pulsar Informatics, Inc. | Systems and methods for distributed calculation of fatigue-risk prediction and optimization |
CN102291773B (zh) * | 2011-07-18 | 2014-12-10 | 电信科学技术研究院 | 一种数据压缩方法和设备 |
CN102404673B (zh) | 2011-11-24 | 2013-12-18 | 苏州上声电子有限公司 | 数字化扬声器系统通道均衡与声场控制方法和装置 |
CN103152673B (zh) | 2011-12-07 | 2015-07-08 | 中国科学院声学研究所 | 基于四元码动态失配整形的数字扬声器驱动方法和装置 |
US8856602B2 (en) | 2011-12-20 | 2014-10-07 | International Business Machines Corporation | Multi-core processor with internal voting-based built in self test (BIST) |
JP6056162B2 (ja) | 2012-03-12 | 2017-01-11 | 三菱マテリアル株式会社 | パワーモジュールの製造方法 |
CN102684701B (zh) | 2012-04-27 | 2014-07-09 | 苏州上声电子有限公司 | 基于编码转换的数字扬声器驱动方法和装置 |
DE102012009502A1 (de) | 2012-05-14 | 2013-11-14 | Kisters Ag | Verfahren zum Trainieren eines künstlichen neuronalen Netzes |
US9417891B2 (en) | 2012-06-11 | 2016-08-16 | Vmware, Inc. | Unified storage/VDI provisioning methodology |
US9224089B2 (en) * | 2012-08-07 | 2015-12-29 | Qualcomm Incorporated | Method and apparatus for adaptive bit-allocation in neural systems |
US9063731B2 (en) | 2012-08-27 | 2015-06-23 | Samsung Electronics Co., Ltd. | Ultra low power apparatus and method to wake up a main processor |
CN102903089B (zh) | 2012-09-07 | 2014-12-17 | 山东大学 | 一种Linux环境下生成遥感图像快视图的方法 |
US9412366B2 (en) | 2012-09-18 | 2016-08-09 | Adobe Systems Incorporated | Natural language image spatial and tonal localization |
JP5913059B2 (ja) | 2012-11-13 | 2016-04-27 | 日本電信電話株式会社 | 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法 |
CN102981854A (zh) | 2012-11-16 | 2013-03-20 | 天津市天祥世联网络科技有限公司 | 基于浮点数运算内联函数库的神经网络优化方法 |
WO2014081007A1 (ja) | 2012-11-22 | 2014-05-30 | 学校法人慶應義塾 | アクリル系共重合体、光学フィルム、偏光板および液晶表示装置 |
US9851977B2 (en) | 2012-12-06 | 2017-12-26 | Kalray | Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization |
US9720732B1 (en) | 2013-02-11 | 2017-08-01 | Amazon Technologies, Inc. | Parameter selection for optimization of task execution based on execution history for prior tasks |
JP2014170295A (ja) | 2013-03-01 | 2014-09-18 | Honda Motor Co Ltd | 物体認識システム及び物体認識方法 |
US12047340B2 (en) | 2013-04-29 | 2024-07-23 | Dell Products L.P. | System for managing an instructure with security |
US20150063461A1 (en) * | 2013-08-27 | 2015-03-05 | Magnum Semiconductor, Inc. | Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding |
JP6184891B2 (ja) | 2014-03-12 | 2017-08-23 | 東芝メモリ株式会社 | 情報処理装置、半導体チップ、情報処理方法およびプログラム |
CN105100810B (zh) * | 2014-05-16 | 2018-02-13 | 中国科学院声学研究所 | 一种成像声纳实时处理系统中的图像压缩解压方法及系统 |
US9507405B2 (en) | 2014-06-18 | 2016-11-29 | Oracle International Corporation | System and method for managing power in a chip multiprocessor using a proportional feedback mechanism |
US10318882B2 (en) * | 2014-09-11 | 2019-06-11 | Amazon Technologies, Inc. | Optimized training of linear machine learning models |
US9575537B2 (en) | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
GB2524126B (en) | 2014-08-28 | 2016-07-27 | Imagination Tech Ltd | Combining paths |
US9916130B2 (en) | 2014-11-03 | 2018-03-13 | Arm Limited | Apparatus and method for vector processing |
FR3030077B1 (fr) | 2014-12-10 | 2016-12-02 | Arnault Ioualalen | Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule. |
EP3035204B1 (en) | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US20170061279A1 (en) | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
EP3089080A1 (en) | 2015-04-27 | 2016-11-02 | Universität Zürich | Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10083395B2 (en) | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
CN104899641B (zh) | 2015-05-25 | 2018-07-13 | 杭州朗和科技有限公司 | 深度神经网络学习方法、处理器和深度神经网络学习系统 |
WO2016199151A2 (en) | 2015-06-10 | 2016-12-15 | Mobileye Vision Technologies Ltd. | Image processor and methods for processing an image |
CN104978303B (zh) | 2015-06-19 | 2019-06-04 | 上海兆芯集成电路有限公司 | 单芯片整合的传感器集线器和多传感器管理方法 |
CN106469291A (zh) | 2015-08-19 | 2017-03-01 | 中兴通讯股份有限公司 | 图像处理方法及终端 |
US10970617B2 (en) * | 2015-08-21 | 2021-04-06 | Institute Of Automation Chinese Academy Of Sciences | Deep convolutional neural network acceleration and compression method based on parameter quantification |
US10031765B2 (en) | 2015-09-24 | 2018-07-24 | Intel Corporation | Instruction and logic for programmable fabric hierarchy and cache |
WO2017055609A1 (en) | 2015-09-30 | 2017-04-06 | Piksel, Inc | Improved video stream delivery via adaptive quality enhancement using error correction models |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
CN106570559A (zh) | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
US9930248B2 (en) | 2015-11-17 | 2018-03-27 | Eman Bayani | Digital image capturing device system and method |
CN106814639A (zh) | 2015-11-27 | 2017-06-09 | 富泰华工业(深圳)有限公司 | 语音控制系统及方法 |
CN105893419A (zh) | 2015-11-30 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种多媒体照片生成方法、装置、设备及手机 |
US10699186B2 (en) | 2015-12-02 | 2020-06-30 | Google Llc | Determining orders of execution of a neural network |
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 |
CN109121435A (zh) * | 2017-04-19 | 2019-01-01 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
CN108734287A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
CN107025629B (zh) | 2017-04-27 | 2021-03-26 | 维沃移动通信有限公司 | 一种图像处理方法及移动终端 |
KR102034661B1 (ko) * | 2017-04-28 | 2019-10-21 | 서울대학교산학협력단 | 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치 |
US11842280B2 (en) * | 2017-05-05 | 2023-12-12 | Nvidia Corporation | Loss-scaling for deep neural network training with reduced precision |
US10019668B1 (en) | 2017-05-19 | 2018-07-10 | Google Llc | Scheduling neural network processing |
KR102526650B1 (ko) * | 2017-05-25 | 2023-04-27 | 삼성전자주식회사 | 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치 |
CN115841137A (zh) * | 2017-06-06 | 2023-03-24 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
CN115688877A (zh) * | 2017-06-06 | 2023-02-03 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
TWI675335B (zh) | 2017-06-09 | 2019-10-21 | 宏達國際電子股份有限公司 | 訓練任務優化系統、訓練任務優化方法及其非暫態電腦可讀媒體 |
CN107197297B (zh) | 2017-06-14 | 2019-12-10 | 中国科学院信息工程研究所 | 一种检测基于dct系数隐写的视频隐写分析方法 |
US10944902B2 (en) | 2017-06-20 | 2021-03-09 | Adobe Inc. | Digital image generation using capture support data |
US9916531B1 (en) * | 2017-06-22 | 2018-03-13 | Intel Corporation | Accumulator constrained quantization of convolutional neural networks |
WO2019005088A1 (en) | 2017-06-30 | 2019-01-03 | Intel Corporation | HETEROGENEOUS MULTIPLIER |
CN109214509B (zh) | 2017-07-05 | 2021-07-06 | 中国科学院沈阳自动化研究所 | 一种用于深度神经网络高速实时量化结构和运算实现方法 |
CN107451654B (zh) | 2017-07-05 | 2021-05-18 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
US10427306B1 (en) | 2017-07-06 | 2019-10-01 | X Development Llc | Multimodal object identification |
CN107729990B (zh) | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN107451658B (zh) | 2017-07-24 | 2020-12-15 | 杭州菲数科技有限公司 | 浮点运算定点化方法及系统 |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107688849B (zh) | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
CN107679618B (zh) * | 2017-07-28 | 2021-06-11 | 赛灵思电子科技(北京)有限公司 | 一种静态策略定点化训练方法及装置 |
US11481218B2 (en) | 2017-08-02 | 2022-10-25 | Intel Corporation | System and method enabling one-hot neural networks on a machine learning compute platform |
CN109388779A (zh) * | 2017-08-03 | 2019-02-26 | 珠海全志科技股份有限公司 | 一种神经网络权重量化方法和神经网络权重量化装置 |
KR102601604B1 (ko) * | 2017-08-04 | 2023-11-13 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
KR20200029510A (ko) | 2017-08-08 | 2020-03-18 | 삼성전자주식회사 | 네트워크에서 메모리 요구 사항을 결정하는 방법 및 장치 |
US20190050710A1 (en) | 2017-08-14 | 2019-02-14 | Midea Group Co., Ltd. | Adaptive bit-width reduction for neural networks |
CN110663048B (zh) | 2017-09-05 | 2023-10-24 | 松下电器(美国)知识产权公司 | 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及记录介质 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN109558945A (zh) * | 2017-09-25 | 2019-04-02 | 三星电子株式会社 | 对人工神经网络及浮点神经网络进行量化的方法及装置 |
US10224954B1 (en) | 2017-09-29 | 2019-03-05 | Intel Corporation | Floating point to fixed point conversion |
US11450319B2 (en) | 2017-09-29 | 2022-09-20 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Image processing apparatus and method |
US10223114B1 (en) | 2017-09-29 | 2019-03-05 | Intel Corporation | Fixed point to floating point conversion |
CN107679490B (zh) * | 2017-09-29 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 用于检测图像质量的方法和装置 |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
KR102379954B1 (ko) | 2017-09-29 | 2022-03-28 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 화상처리장치 및 방법 |
JP6540770B2 (ja) | 2017-10-17 | 2019-07-10 | 富士通株式会社 | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 |
KR102564456B1 (ko) * | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
US10410121B2 (en) | 2017-10-25 | 2019-09-10 | SparkCognition, Inc. | Adjusting automated neural network generation based on evaluation of candidate neural networks |
US20210061028A1 (en) | 2017-10-26 | 2021-03-04 | Applied Mechatronic Products | Apparatus and method for vehicular monitoring, analysis, and control |
KR20190054454A (ko) * | 2017-11-13 | 2019-05-22 | 삼성전자주식회사 | 인공 신경망의 양자화 방법 및 장치 |
US10783634B2 (en) | 2017-11-22 | 2020-09-22 | General Electric Company | Systems and methods to deliver point of care alerts for radiological findings |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
CN108053028B (zh) | 2017-12-21 | 2021-09-14 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
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 |
CN108288089A (zh) * | 2018-01-29 | 2018-07-17 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
CN108229663A (zh) * | 2018-01-29 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
US20190251429A1 (en) | 2018-02-12 | 2019-08-15 | Kneron, Inc. | Convolution operation device and method of scaling convolution input for convolution neural network |
US11740898B2 (en) | 2018-02-13 | 2023-08-29 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11106598B2 (en) | 2018-02-13 | 2021-08-31 | Shanghai Cambricon Information Technology Co., Ltd. | Computing device and method |
CN110162162B (zh) | 2018-02-14 | 2023-08-18 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
JP7056225B2 (ja) | 2018-02-26 | 2022-04-19 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
US10628275B2 (en) | 2018-03-07 | 2020-04-21 | Nxp B.V. | Runtime software-based self-test with mutual inter-core checking |
US11475306B2 (en) | 2018-03-22 | 2022-10-18 | Amazon Technologies, Inc. | Processing for multiple input data sets |
CN108631727B (zh) * | 2018-03-26 | 2019-08-09 | 河北工业大学 | 一种基于卷积神经网络的太阳能电池板缺陷识别方法 |
CN108491928B (zh) * | 2018-03-29 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 模型参数发送方法、装置、服务器及存储介质 |
CN108509627B (zh) * | 2018-04-08 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 数据离散化模型训练方法和装置、数据离散方法 |
CN108510067B (zh) * | 2018-04-11 | 2021-11-09 | 西安电子科技大学 | 基于工程化实现的卷积神经网络量化方法 |
US11562213B2 (en) | 2018-04-17 | 2023-01-24 | Intel Corporation | Methods and arrangements to manage memory in cascaded neural networks |
CN108596328B (zh) * | 2018-04-26 | 2021-02-02 | 北京市商汤科技开发有限公司 | 一种定点化方法及装置、计算机设备 |
US10691413B2 (en) | 2018-05-04 | 2020-06-23 | Microsoft Technology Licensing, Llc | Block floating point computations using reduced bit-width vectors |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
CN108717570A (zh) * | 2018-05-23 | 2018-10-30 | 电子科技大学 | 一种脉冲神经网络参数量化方法 |
CN115268082A (zh) | 2018-05-31 | 2022-11-01 | 中强光电股份有限公司 | 头戴式显示装置 |
US10360304B1 (en) | 2018-06-04 | 2019-07-23 | Imageous, Inc. | Natural language processing interface-enabled building conditions control system |
CN109062540B (zh) | 2018-06-06 | 2022-11-25 | 北京理工大学 | 一种基于cordic算法的可重构浮点运算装置 |
CN109063820A (zh) | 2018-06-07 | 2018-12-21 | 中国科学技术大学 | 利用时频联合长时循环神经网络的数据处理方法 |
CN108830331A (zh) * | 2018-06-22 | 2018-11-16 | 西安交通大学 | 一种基于全卷积网络的探地雷达目标检测方法 |
CN109102064B (zh) * | 2018-06-26 | 2020-11-13 | 杭州雄迈集成电路技术股份有限公司 | 一种高精度的神经网络量化压缩方法 |
CN109146057B (zh) | 2018-06-26 | 2020-12-08 | 杭州雄迈集成电路技术股份有限公司 | 一种基于查表计算的高精度的神经网络工程化方法 |
WO2020001438A1 (zh) | 2018-06-27 | 2020-01-02 | 上海寒武纪信息科技有限公司 | 片上代码断点调试方法、片上处理器及芯片断点调试系统 |
CN110728364A (zh) | 2018-07-17 | 2020-01-24 | 上海寒武纪信息科技有限公司 | 一种运算装置和运算方法 |
CN109002889B (zh) * | 2018-07-03 | 2021-12-17 | 华南理工大学 | 自适应迭代式卷积神经网络模型压缩方法 |
CN109214504B (zh) * | 2018-08-24 | 2020-09-04 | 北京邮电大学深圳研究院 | 一种基于fpga的yolo网络前向推理加速器设计方法 |
KR102519467B1 (ko) | 2018-08-28 | 2023-04-06 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체 |
WO2020062392A1 (zh) | 2018-09-28 | 2020-04-02 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN109598331A (zh) * | 2018-12-04 | 2019-04-09 | 北京芯盾时代科技有限公司 | 一种欺诈识别模型训练方法、欺诈识别方法及装置 |
CN109685202B (zh) | 2018-12-17 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质和电子装置 |
GB2580171B (en) * | 2018-12-21 | 2021-02-17 | Imagination Tech Ltd | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation |
CN109754074A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 一种神经网络量化方法、装置以及相关产品 |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017168427A1 (en) * | 2016-03-31 | 2017-10-05 | Clear Px Technologies Ltd | Temperature controlling device and system having static cooling capacity |
CN109472353A (zh) * | 2018-11-22 | 2019-03-15 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络量化电路及量化方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085181B (zh) | 神经网络量化方法及装置以及相关产品 | |
JP7146955B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146952B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP7146953B2 (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
WO2021036890A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085176B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085187A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085182A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112446460A (zh) | 用于处理数据的方法、装置以及相关产品 | |
CN112085150B (zh) | 循环神经网络的量化参数调整方法、装置及相关产品 | |
CN113298843B (zh) | 数据量化处理方法、装置、电子设备和存储介质 | |
CN112308201A (zh) | 神经网络量化方法、装置、芯片、电子设备及板卡 | |
CN112085151A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112085177A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20220366238A1 (en) | Method and apparatus for adjusting quantization parameter of recurrent neural network, and related product | |
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 |