CN109389219A - 用于对神经网络的参数进行量化的方法和装置 - Google Patents
用于对神经网络的参数进行量化的方法和装置 Download PDFInfo
- Publication number
- CN109389219A CN109389219A CN201810868446.4A CN201810868446A CN109389219A CN 109389219 A CN109389219 A CN 109389219A CN 201810868446 A CN201810868446 A CN 201810868446A CN 109389219 A CN109389219 A CN 109389219A
- Authority
- CN
- China
- Prior art keywords
- channel
- decimal length
- decimal
- length
- neural network
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013139 quantization Methods 0.000 claims abstract description 96
- 238000007667 floating Methods 0.000 claims abstract description 43
- 238000012549 training Methods 0.000 claims abstract description 35
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 22
- 230000004913 activation Effects 0.000 claims description 43
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 2
- 235000008434 ginseng Nutrition 0.000 claims description 2
- 108091006146 Channels Proteins 0.000 abstract description 150
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 210000004218 nerve net Anatomy 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000012152 algorithmic method Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- 244000283207 Indigofera tinctoria Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/096—Transfer learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Nonlinear Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
Abstract
一种对神经网络的参数进行量化的方法,所述方法包括:根据通过使用浮点来预训练的神经网络的数据,针对在每个特征图和核中包括的每个通道中使用的浮点型参数值,分析每个通道的统计分布;基于每个通道的所述统计分布,确定每个通道的参数的定点表达,所述定点表达在统计上覆盖所述参数值的分布范围;基于执行卷积运算的结果,确定每个通道的偏置和权重的小数长度,作为每个通道的所述定点表达的参数;以及生成定点型量化神经网络,所述定点型量化神经网络所具有的每个通道的偏置和权重具有所确定的小数长度。
Description
相关申请的交叉引用
本申请要求于2017年8月4日在韩国知识产权局提交的韩国专利申请No.10-2017-0098999的优先权,该申请的公开内容通过引用全部并入本文中。
技术领域
本公开涉及用于对神经网络的参数进行量化的方法和装置。
背景技术
神经网络是指对生物大脑进行建模的计算架构。随着神经网络技术的最近发展,已经积极地进行了在各种类型的电子***中通过使用神经网络来分析输入数据并提取有效信息的研究。处理神经网络的装置需要对复杂输入数据进行大量运算。因此,为了通过使用神经网络来实时分析大量的输入数据并提取期望的信息,需要用于有效地处理关于神经网络的运算的技术。
发明内容
提供了用于对神经网络的参数进行量化的方法和装置。
其它方面部分地将在以下描述中阐述,且部分地将通过以下描述而变得清楚明白,或者可以通过对所呈现的实施例的实践来获知。
根据实施例的一个方面,一种对神经网络的参数进行量化的方法包括:根据通过使用浮点来预训练的神经网络的数据,针对在每个特征图和核中包括的每个通道中使用的浮点型参数值,分析每个通道的统计分布;基于每个通道的所述统计分布,确定每个通道的参数的定点表达,所述定点表达在统计上覆盖所述参数值的分布范围;基于执行卷积运算的结果,确定每个通道的偏置和权重的小数长度,作为每个通道的所述定点表达的参数;以及生成定点型量化神经网络,所述定点型量化神经网络所具有的每个通道的偏置和权重具有所确定的小数长度。
根据另一实施例的一个方面,一种用于生成定点型量化神经网络的装置包括:存储器,存储至少一个程序;以及处理器,通过执行所述至少一个程序对神经网络的参数进行量化,其中,所述处理器根据通过使用浮点来预训练的神经网络的数据,针对在每个特征图和核中包括的每个通道中使用的浮点型参数值,分析每个通道的统计分布;基于每个通道的所述统计分布,确定每个通道的参数的定点表达,所述定点表达在统计上覆盖所述参数值的分布范围;基于执行卷积运算的结果,确定每个通道的偏置和权重的小数长度,作为每个通道的所述定点表达的参数;以及生成定点型量化神经网络,所述定点型量化神经网络所具有的每个通道的偏置和权重具有所确定的小数长度。
附图说明
根据以下结合附图对实施例的描述,这些和/或其他方面将变得明确并且更容易理解,在附图中:
图1示出了根据实施例的计算图的架构;
图2示出了根据实施例的在神经网络中执行的运算;
图3是根据实施例的神经网络量化装置的硬件配置的框图;
图4示出了根据实施例的经预训练的神经网络被量化并被硬件加速器采用;
图5示出了浮点和定点;
图6示出了在定点处小数长度与准确度之间的关系;
图7示出了针对每层通过相同的定点表达对神经网络的参数进行量化的情况;
图8示出了根据实施例的针对每个通道通过相同的定点表达对神经网络的参数进行量化的情况;
图9是示出了根据实施例的在通道中使用的参数的统计分布的图;
图10是示出了根据另一实施例的在通道中使用的参数的统计分布的图;
图11示出了根据实施例的对一些定点型参数的小数长度的确定;
图12示出了使用图11的方法的神经网络参数的量化算法;
图13示出了根据另一个实施例的对一些定点型参数的小数长度的确定;
图14示出了使用图13的方法的神经网络参数的量化算法;
图15示出了参考图7描述的针对每层的量化;
图16示出了根据实施例的对量化神经网络的重新训练;
图17是示出了在针对每个层的量化和针对每个通道的量化之间比较准确度的仿真结果的曲线图;
图18是示出了根据重新训练产生的量化神经网络的准确度变化的仿真结果的曲线图;
图19是根据实施例的电子***的框图;以及
图20是根据实施例的对神经网络的参数进行量化的方法的流程图。
具体实施方式
现在将详细参考实施例,在附图中示出了实施例的示例,其中,贯穿附图类似的附图标记表示类似的元素。此外,为了便于解释和清楚起见,附图中示出的每个层的尺寸可能被夸大。在这点上,所呈现的实施例可以具有不同形式,并且不应当被解释为受限于本文所阐明的描述。因此,以下仅通过参考附图来描述实施例,以说明本说明书的各方面。在层结构中,当组成元素被设置在另一组成元素“上方”或“上”时,该组成元素可以仅直接设置在该另一组成元素上,或者以非接触方式设置在该另一组成元素上方。
考虑到本发明构思中的功能,从当前广泛使用的通用术语中选择了本发明构思中使用的术语。然而,这些术语可以根据本领域普通技术人员的意图、案例先例以及新技术的出现而变化。此外,对于特殊情况,申请人选择的术语的含义将在说明部分详细说明。因此,本发明构思中使用的术语是基于它们与整个说明书中讨论的内容相关的含义来定义的,而不是通过其简单的含义来定义的。
在本说明书中,当组成元素“连接”或“被连接”到另一组成元素时,该组成元素不仅直接与该另一组成元素接触或连接,而且还通过介于它们之间的至少一个其他组成元素电气地接触或连接。此外,除非另有指定,否则当一个部件可以“包括”某个组成元素时,不应被解释为排除另一组成元素,而是可以被解释为还包括其他组成元素。
诸如“包括”或“包含”之类的术语不应被解释为必须包括说明书中描述的任何和所有组成元素或步骤,而是可以被解释为排除一些组成元素或步骤或者还包括另外的组成元素或步骤。
尽管为了说明目的描述了本发明的示例实施例,然而本领域普通技术人员将认识到各种修改、添加和替代都是有可能的,而不脱离在所附权利要求中公开的本发明的范围和精神。因此,本发明所公开的实施例旨在说明本发明的技术思想的范围,并且本发明的技术思想的范围不受这些实施例的限制。本发明的保护范围应该基于所附权利要求来解释,并且应该理解为与权利要求等同的范围内的所有技术构思都被包括在本发明的正确范围内。
图1示出了根据实施例的计算图1的架构。
参考图1,计算图1是示出通过使用节点和边呈现的数学模型的图。计算图1的架构可以对应于神经网络的架构,但是计算图1的架构可以对应于各种其他模型。神经网络可以是深度神经网络(DNN)或者n层神经网络的架构。DNN或n层神经网络可对应于卷积神经网络(CNN)、递归神经网络(RNN)、深度信念网络、受限制的波尔兹曼机等。例如,神经网络可以被实现为CNN,但是本公开不限于此。当图1的计算图1代表CNN时,计算图1可对应于CNN的一些层。因此,计算图1可以对应于CNN的卷积层、池化层或全连接层。然而,在下面的描述中,为了便于解释,假定计算图1对应于CNN的卷积层,但是本公开不限于此,计算图1可以对应于其他数学模型的表达。
在卷积层中,第一特征图FM1可以对应于输入特征图,且第二特征图FM2可以对应于输出特征图。特征图可以意味着表达输入数据的各种特征的数据集。特征图FM1和FM2可以是两维或更多维的高维矩阵,并且特征图FM1和FM2中的每一个可以具有激活参数。当特征图FM1和FM2对应于例如三维特征图时,特征图FM1和FM2中的每一个具有宽度W(或列)、高度H(或行)和深度D。在这种状态下,深度D可以由通道的数量来指示。
在卷积层中,可以对第一特征图FM1和权重图WM执行卷积运算,且作为结果,可以生成第二特征图FM2。权重图WM可以过滤第一特征图FM1,并且可以被称为过滤器或核。权重图WM的深度(即权重图WM的通道数量)可以与第一特征图FM1的深度和第二特征图FM2的深度的乘积值(即第一特征图FM1的通道数量和第二特征图FM2的通道数量的乘积值)相同。然而,当权重图WM是四维矩阵并且核的大小是k时,权重图WM的通道数量可以被计算为表达式“第一特征图FM1的深度×第二特征图FM2的深度×k×k”。使权重图WM移动,以用滑动窗口遍历第一特征图FM1。在每次移动期间,权重图WM中包括的每个权重可以乘以与第一特征图FM1重叠的区域中的相应特征值,然后将该区域中的所有乘积求和。当对第一特征图FM1和权重图WM进行卷积时,可以生成第二特征图FM2的通道。虽然图1示出了一个权重图WM,但实际上将多个权重图与第一特征图FM1进行卷积,并且因此可以生成第二特征图FM2的多个通道。
卷积层的第二特征图FM2可以是下一层的输入特征图。例如,第二特征图FM2可以是池化层的输入特征图。
图2示出了根据实施例的在神经网络2中执行的运算。
参考图2,神经网络2可以具有输入层、隐藏层和输出层的结构,可以基于接收到的输入数据(例如,I1和I2)来执行运算,并且可以基于上述运算的结果生成输出数据(例如,o1和o2)。
如上所述,神经网络2可以是包括两个或更多个隐藏层在内的DNN或n层神经网络。例如,如图2所示,神经网络2可以是包括输入层层1、两个隐藏层层2和层3、以及输出层层4在内的DNN。当神经网络2通过DNN架构实现时,由于神经网络2包括用于处理有效信息的相对较多的层,所以神经网络2可以处理比具有单一层的神经网络更复杂的数据集。虽然神经网络2被示出为包括四个层,但这仅仅是示例性的,且神经网络2可以包括更多或更少的层,或更多或更少的通道。换句话说,神经网络2可以包括具有与图2所示结构不同的各种结构的层。
神经网络2中包括的每个层可以包括多个通道。通道可对应于被称为神经元、处理元(PE)、单元或类似术语的多个人工节点。例如,如图2所示,层1可以包括两个通道(节点),且层2和层3中的每一个层可以包括三个通道。然而,这仅仅是示例性的,且神经网络2中包括的每个层可以包括各种数量的通道(节点)。
神经网络2的各个层中包括的通道可以彼此连接以处理数据。例如,一个通道可以从其他通道接收数据并运算该数据,并且可以向其他通道输出运算结果。
每个通道的输入和输出可以分别被称为输入激活和输出激活。换句话说,激活可以是与一个通道的输出相对应的参数,并同时可以是与下一层中包括的通道的输入相对应的参数。每个通道可以基于从前一层中包括的通道接收到的激活和权重来确定其自己的激活。权重是用于计算每个通道中的输出激活的参数,并且可以是向通道之间的连接关系分配的值。
每个通道可以由计算单元或处理元来处理,该计算单元或处理元接收输入并输出输出激活,并且可以对每个通道的输入和输出进行映射。例如,当“σ”表示激活函数,表示从第(i-1)层中包括的第k个通道到第i层中包括的第j个通道的权重,表示第i层中包括的第j个通道的偏置,并且表示第i层的第j个通道的激活时,可以通过使用下面的等式1来计算激活
[等式1]
如图2所示,第二层层2的第一通道CH1的激活可由表达。此外,根据等式1,可以具有值然而,上述等式1仅仅是用于描述在神经网络2中用于处理数据的激活和权重的示例,且本公开不限于此。激活可以是通过经过修正线性单元(ReLU)获得的值,该值是通过将激活函数应用于从前一层接收到的激活的总和而获得的值。
如上所述,在神经网络2中,在彼此互插(interlined)的多个通道之间交换多个数据集,并且该多个数据集在穿过层时经历许多运算处理。因此,需要可以减少处理复杂的输入数据所需的运算量并同时降低准确度损失的技术。
图3是根据实施例的神经网络量化装置10的硬件配置的框图。
参考图3,神经网络量化装置10可以包括处理器110和存储器120。在图3的神经网络量化装置10中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:神经网络量化装置10还可以包括与图3中所示的组成元素不同的常见组成元素。
神经网络量化装置10可以对应于具有各种处理功能的计算设备,例如,用于生成神经网络、训练或学习神经网络、将浮点型神经网络量化为定点型神经网络、或者重新训练神经网络的功能。例如,神经网络量化装置10可以被实现为各种类型的设备,例如个人计算机(PC)、服务器设备、移动设备等。
处理器110执行用于控制神经网络量化装置10的所有功能。例如,处理器110通过执行神经网络量化装置10中的存储器120中存储的程序,来控制神经网络量化装置10的所有功能。处理器110可以由神经网络量化装置10中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)等来实现。然而,本公开并不限于此。
存储器120是用于存储神经网络量化装置10中处理的各种数据的硬件。例如,存储器120可以存储神经网络量化装置10中的处理过的数据和待处理的数据。此外,存储器120可以存储要由神经网络量化装置10驱动的应用、驱动程序等。存储器120可以是DRAM,但是本公开不限于此。存储器120可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器120可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡或记忆棒中的至少一项。
处理器110可以通过反复训练(学习)给定的初始神经网络来生成经训练的神经网络。在这种状态下,在保证神经网络的处理准确度的意义上,初始神经网络可能具有浮点类型参数,例如具有32比特浮点精度的参数。参数可以包括向/从神经网络输入/输出的各种类型的数据,例如,神经网络的输入/输出激活、权重、偏置等。当反复进行对神经网络的训练时,可以调整神经网络的浮点参数,以针对给定输入来运算出更准确的输出。
然而,与定点相比,浮点需要相对大量的运算和相对频繁的存储器访问。具体而言,神经网络处理所需的大部分运算已知为用于执行各种参数的运算的卷积运算。因此,在具有相对低的处理性能的移动设备(诸如智能电话、平板电脑、可穿戴设备等、嵌入式设备等)中,具有浮点型参数的神经网络的处理可能并不平滑。结果是,为了在允许的准确度损失下驱动神经网络,同时充分减少上述设备中的运算量,可以对在神经网络中处理的浮点型参数进行量化。参数的量化可以意味着将浮点型参数转换为定点型参数。
考虑到部署神经网络的例如移动设备、嵌入式设备等设备的处理性能,神经网络量化装置10执行将经训练的神经网络的参数转换为具有特定比特数的定点型的量化,并且神经网络量化装置10向部署神经网络的设备发送经量化的神经网络。部署神经网络的设备例如可以是通过使用神经网络来执行语音识别、图像识别等的自主车辆、机器人、智能电话、平板设备、增强现实(AR)设备、物联网(IoT)设备等,但是本公开不限于此。
处理器110通过使用浮点来获取存储器120中存储的经预训练的神经网络的数据。经预训练的神经网络可以是用浮点型参数反复训练的数据。可以通过首先反复输入训练集数据然后反复输入测试集数据来训练神经网络,但是本公开不限于此。训练集数据是用于训练神经网络的输入数据,且测试集数据是不与训练集数据重叠的输入数据,其用于训练并同时测量经训练的神经网络的性能。
处理器110根据经预训练的神经网络的数据,针对在每个特征图和核中包括的各个通道中使用的浮点型参数值,分析每个通道的统计分布。处理器110可以通过在神经网络的预训练期间获得针对每个通道中使用的浮点型激活、权重和偏置的参数值的每个通道的统计量,来分析统计分布。
处理器110基于所分析的每个通道的统计分布,确定每个通道的参数的定点表达,该定点表达在统计上覆盖参数值的分布范围。因此,可以将浮点型神经网络转换为定点型神经网络。根据本实施例,由于基于针对每个通道的统计分布来执行从浮点型到定点型的转换,因此向每个通道分配的定点表达对于每个通道可以是彼此相同或不同的。换句话说,每个通道的参数的定点表达的小数长度可以彼此不同。
此外,处理器110基于利用每个通道的定点表达的参数在特征图和核之间执行卷积运算的结果,确定每个通道的偏置和权重的小数长度。每个通道的偏置的小数长度和权重的小数长度可以被设置为量化神经网络的约束。
通过使用处理器110将每个通道的参数量化为定点型参数的算法将在下文中参考与其对应的附图来详细描述。
存储器120可存储处理器110已处理或要处理的神经网络相关的数据集,例如,未训练的初始神经网络的数据、在训练过程中生成的神经网络的数据、完成了所有训练的神经网络的数据、经量化的神经网络的数据等。此外,存储器120可以存储与将由处理器110执行的神经网络的训练算法、量化算法等有关的各种程序。
图4示出了根据实施例的经预训练的神经网络被量化并被硬件加速器采用。
参考图4,如上所述,在诸如PC、服务器等的神经网络量化装置(图3的10)中,处理器(图3的110)训练浮点型(例如,32比特浮点型)的神经网络410。由于其浮点型参数,可能无法在低功率或低性能的硬件加速器中有效地处理被预训练的神经网络410。因此,神经网络量化装置10的处理器110将浮点型的神经网络410量化为定点型(例如16比特或低定点型)的神经网络420。硬件加速器是用于驱动神经网络420的专用硬件。由于硬件加速器是以相对较低的功率或性能实现的,因此可以将其实现为与浮点运算相比更适合于定点运算。硬件加速器可以对应于例如神经处理单元(NPU)、张量处理单元(TPU)、神经引擎等,它们是用于驱动神经网络的专用模块,但是本公开不限于此。
用于驱动量化神经网络420的硬件加速器可以在独立于神经网络量化装置10的单独设备中实现。然而,本公开不限于此,且硬件加速器可以在与神经网络量化装置10相同的设备中实现。
图5示出了浮点和定点。
参考图5的浮点示例510,浮点值可以表达为“a×2b”,其中“a”对应于指数部分,并且“b”对应于小数部分。浮点值可以由32比特表示,其包括1比特符号比特、8比特指数部分比特和23比特小数部分比特。
接下来,参考定点示例520,定点可以由“Qm.n”表示,其中,m和n是自然数。在该表达式中,“m”表示指示指数部分的比特数,且“n”表示指示小数部分的比特数。因此,通过对1比特符号比特、m比特指数部分比特和n比特小数部分比特进行求和,定点的比特宽度为(1+m+n)。由于指示小数部分的定点比特的比特是n比特,所以小数长度是n。例如,“Q3.4”是包括1比特符号比特、3比特指数部分比特和4比特小数部分比特在内的共8比特的定点值,“Q1.30”是包括1比特符号比特、1比特指数部分比特和30比特小数部分比特在内的共32比特的定点值,且“Q15.16”是包括1比特符号比特、15比特指数部分比特和16比特小数部分比特在内的共32比特的定点值。
图6示出了在定点处小数长度与准确度之间的关系。
参考图6,假定向定点分配的总比特宽度是3比特,对Q2.0的定点表达610(其中小数长度为0)和Q1.1的定点表达620(其中小数长度为1)进行相互比较。
在Q2.0中,由于指数部分是2比特,并且小数部分是0比特,因此可以表示从-4到3的定点值,并且可表示的定点值之间的间隔为1。在Q1.1中,由于指数部分是1比特,并且小数部分是1比特,因此可以表示从-2到1.5的定点值,并且可表示的定点值之间的间隔为0.5。
当进行比较时,虽然向Q2.0的定点表达610和Q1.1的定点表达620等同地分配了3个比特,但Q2.0能够表示更宽范围的定点值,然而因为定点值之间的间隔较宽,所以准确度较低。相对而言,Q1.1能够表示更窄范围的定点值,然而因为定点值之间的间隔较窄,所以准确度较高。因此,可以看出,定点值的准确度取决于小数长度,即所分配的小数比特数。
图7示出了针对每层通过相同的定点表达对神经网络700的参数进行量化的情况。
参考图7,神经网络700的第k层可以包括多个通道,并且可以使用各种浮点值710。如果基于在第k层中使用的浮点值710当中的最大浮点值712执行定点量化,则根据最小浮点值714来量化的定点表达的准确度可能非常低。相反,如果基于最小浮点值714执行定点量化,则根据最大浮点值712来量化的定点表达的准确度也可能非常低。因此,针对每层(即,针对该层中包括的所有通道)用相同的定点表达执行量化,即,针对每层用具有相同小数长度的定点表达执行量化,量化神经网络的准确度可能会降低。
图8示出了根据实施例的针对每个通道通过相同的定点表达对神经网络的参数进行量化的情况。
参考图8,可以针对在神经网络的每个层中包括的每个通道执行定点量化。例如,在任何层中,通道1中使用的浮点参数值的分布范围和通道2中使用的浮点参数值的分布范围可能彼此不同。因此,当通道1和通道2中的每个通道的浮点参数被量化为具有不同小数长度的定点表达的参数时,可以挽回参考图7描述的准确度损失。
因此,图3的处理器110将通道1的浮点参数量化为可以在统计上覆盖通道1的浮点参数值的分布范围的小数长度的定点表达。此外,处理器110将每个其他通道的浮点参数量化为可以在统计上覆盖每个其他通道的浮点参数值的分布范围的小数长度的定点表达。换句话说,浮点型参数到定点型参数的量化是以神经网络的层中包括的通道为单位来执行的。处理器110针对经预训练的神经网络,以相同的方法对每个通道执行量化。
图9是示出了根据实施例的在通道中使用的参数的统计分布的图。
参考图9,根据对具有浮点型参数的神经网络的反复训练,可以针对层中包括的每个通道来生成固有浮点值(即参数值)的分布。图3的处理器110根据经预训练的神经网络数据,基于每个通道的特征图以及每个通道的核的浮点型参数值的统计量,分析每个通道的统计分布。具体而言,处理器110获得每个通道的激活、权重和偏置值的统计量,并且利用正态分布(高斯分布)900的概率密度函数(PDF)对每个信道的统计量进行归一化。然而,尽管图9为了便于解释而示出了处理器110使用正态分布900的PDF对统计量进行归一化的示例,但是本公开不限于此。换句话说,处理器110可以通过使用除了正态分布900之外的各种类型的统计分布或概率分布来分析统计量。图9的正态分布900可以是在任何一个特征图中包括的通道中的浮点型激活值的分布,或在任何一个核中包括的通道中的浮点型权重值的分布。
处理器110可以基于正态分布900来确定量化级别,使得通道的参数被量化为具有特定小数长度的定点表达。具体而言,处理器110可以获得正态分布900中的参数的统计最大值Xmax和统计最小值Xmin,并且确定能够在统计上覆盖统计最大值Xmax与统计最小值Xmin之间的范围内的浮点值的定点表达。在这种状态下,可以用量化级别来确定小数长度。
统计最大值Xmax和统计最小值Xmin可以是基于可使量化误差最小化的范围的值。根据实施例,统计最大值Xmax和统计最小值Xmin可以以各种方式来定义。例如,统计最大值Xmax和统计最小值Xmin可以对应于正态分布900中的参数的实际最大参数值和实际最小参数值。备选地,统计最大值Xmax和统计最小值Xmin可以是基于正态分布900的均值、方差或标准差而获得的并且在概率上减少量化误差的上限和下限。在相应的技术领域中已经引入了用于根据给定的正态分布的PDF来计算最佳范围以减少量化误差的许多方法。在实施例中,可以通过采用这些方法来确定适合于给定的正态分布900的定点表达。
图10是示出了根据另一实施例的在通道中使用的参数的统计分布的图。
参考图10,代替图9的正态分布900,处理器110可针对每个通道用拉普拉斯分布1000的PDF对每个通道的统计量进行归一化。如参考图9所述,处理器110可以通过获得适合于给定的拉普拉斯分布1000的统计最大值Xmax和统计最小值Xmin,来确定相应通道的参数的定点表达。
换句话说,如参考图9或图10所述,处理器110分析每个通道的统计分布,并且基于所分析的每个通道的统计分布,根据浮点型神经网络参数来确定每个通道的参数的定点表达。处理器110使用的统计分布对应于与正态分布和拉普拉斯分布中的任何一个近似的分布。然而,如上所述,除了正态分布和拉普拉斯分布之外,处理器110还可以通过使用各种其他类型的统计分布或概率分布来分析统计量。在这种状态下,处理器110可以基于每个通道的小数长度来确定定点表达,每个通道的小数长度是通过使用在通道中分布的参数的浮点值的平均值、方差、标准差、最大值和最小值中的至少一个来定义的,这些值是从每个通道的统计分布中获得的。
图11示出了根据实施例的对一些定点型参数的小数长度的确定。
在确定参考图8至图10描述的神经网络的参数的定点表达之后,图3的处理器110可以确定偏置1110的小数长度。
参考图11,在特定层的第一通道和第二通道中执行卷积运算。卷积运算包括多个通道之间的部分求和运算,其执行乘法-累加(MAC)运算和加法运算。假定向输入特征图(IFM)和核分配16比特,向部分求和运算分配48比特,向输出特征图(OFM-FW)运算分配48比特,并且向输出特征图(OFM)分配16比特。
图11的部分求和运算可以包括:针对IFM的第一通道的第一输入激活i1和核的第一通道的第一权重w11的第一MAC运算1101;针对IFM的第二通道的第二输入激活i2和核的第二通道的第二权重w12的第二MAC运算1102;以及针对第一MAC运算1101的结果和第二MAC运算1102的结果的加法运算1105。然而,本领域的普通技术人员可以理解的是:图11没有示出IFM的所有通道和核的所有通道之间的运算,而是为了便于解释,示出了一些通道之间的运算。
假定第一输入激活i1被量化为Q9.6的定点表达,第一权重w11被量化为Q11.4的定点表达,第二输入激活i2被量化为Q11.4的定点表达,且第二权重w12被量化为Q7.8的定点表达。
处理器110执行第一MAC运算1101,且从而获得与第一MAC运算1101的结果相对应的Q37.10的第一定点表达及其第一小数长度10。此外,处理器110执行第二MAC运算1102,并且获得与第二MAC运算1102的结果相对应的Q35.12的第二定点表达及其第二小数长度12。
处理器110将第一小数长度10和第二小数长度12的最大小数长度确定为与加法运算1105的结果相对应的偏置1110的小数长度。因此,第一定点表达和第二定点表达当中具有较小的小数长度的定点表达的小数长度被移位了第一小数长度10和第二小数长度12之间的差。
具体而言,处理器110将作为最大小数长度的第二小数长度12确定为偏置1110的小数长度。对于加法运算1105,处理器110将具有最小小数长度的Q37.10的第一定点表达的第一小数长度10移位等于小数长度的2。
参考图11,虽然可能需要对第一和第二MAC运算1101和1102的结果进行移位,但处理器110可以包括一个或多个移位器1103和1104。
处理器110通过加法运算1105来确定偏置(Q35.12的定点表达)的小数长度,并且通过移位1106来确定输出特征图的输出激活O1的Q9.6的定点表达。
根据图11的实施例,由处理器110确定的偏置的小数长度对应于作为第一和第二MAC运算1101和1102的结果而获得的定点表达的小数长度中的最大小数长度。然而,虽然没有在图11中单独示出,但当预定义了小数长度上限时,可以将小数长度确定为该最大小数长度和预定义的小数长度上限中的较小值。(参见图12的运算1206至1208)
作为结果,处理器110可以生成量化的神经网络的数据,其中包括第一权重w11的Q11.4的定点表达和小数长度4、第二权重w12的Q7.8的定点表达和小数长度8、偏置1110的Q35.12的定点表达和小数长度12、以及与移位器的移位程度有关的信息(2比特移位1103、0比特移位1104和6比特移位1106)。
虽然图11仅示出了两个通道,但图11的方法可以应用于存在三个或更多个通道的情况。
图12示出了使用图11的方法的神经网络参数的量化算法1200。
参考图12,量化算法1200可以使用图11的方法来确定偏置的小数长度。
在运算1201中,图3的处理器110获得作为输入的神经网络架构数据、神经网络参数数据(激活、权重、偏置等)以及经预训练的神经网络数据的训练数据。
在运算1202中,处理器110输出与核的每个通道的权重统计量、特征图的每个通道的激活统计量等有关的统计分布的分析结果。
在运算1203中,处理器110获得作为输入的在运算1202中获得的输出结果,以确定每个通道的小数长度并量化参数。
在运算1204中,处理器110基于统计分布的分析结果来计算每个通道的权重的小数长度,并且相应地将浮点型权重转换为定点型权重。此外,处理器110基于统计分布的分析结果来计算每个通道的激活的小数长度,并且相应地将浮点型激活转换为定点型激活。
在运算1205中,处理器110通过对每个通道执行MAC运算来获得每个通道的小数长度。
在运算1206中,处理器110根据每个通道的MAC运算,将小数长度中的最大小数长度确定为与加法运算的结果相对应的小数长度。当预定义了小数长度上限时,最大小数长度和预定义的小数长度中的较小值被确定为与加法运算的结果相对应的小数长度。
在运算1207中,处理器110将在运算1206中确定的小数长度确定为偏置的小数长度。
在运算1208中,处理器110根据所确定的偏置的小数长度,对每个通道的每个小数长度进行移位。
在运算1209中,处理器110根据向OFM分配的比特数,对偏置的小数长度进行移位。因此,确定输出激活的小数长度。
在运算1210中,处理器110输出IFM的每个通道的小数长度、OFM的每个通道的小数长度、核的每个通道的小数长度、偏置的小数长度、运算1208中的移位的频率、运算1209中的移位的频率等。
在运算1211中,处理器110获得核的每个通道的小数长度和偏置的小数长度。
在运算1212中,处理器110将神经网络的参数量化为定点型,并且输出被量化为定点型的参数(权重、偏置等)。
在运算1213和1214中,处理器110验证(测试)量化神经网络的准确度。
图13示出了根据另一个实施例的对一些定点型参数的小数长度的确定。
在确定参考图8至图10描述的神经网络的参数的定点表达之后,图3的处理器110可以确定偏置1310的小数长度和权重1330的小数长度。由于根据图13的小数长度确定方法不需要图11的移位器1103和1104的移位,所以图13的方法与参考图11和图12描述的方法不同。
在图13中,根据第一MAC运算1301和第二MAC运算1302获得第一定点表达Q37.10和第二定点表达Q35.12的过程与参考图11描述的过程相同。
参考图13,与图11不同,处理器110将第一小数长度和第二小数长度中的最小小数长度10确定为与加法运算1303的结果相对应的偏置1310的小数长度。相应地,处理器110确定将现有的Q35.12的第二定点表达调整为新的Q37.10的第二定点表达1320,并且确定将现有的第二权重W12的现有的Q7.8的定点表达调整为新的Q9.6的定点表达1330。换句话说,反向传播与所确定的偏置1310的小数长度有关的信息,并且因此通过新的小数长度对权重1330进行量化。
移位1304以与参考图11描述的方式相同的方式执行。
根据图13的另一个实施例,由处理器110确定的偏置的小数长度对应于作为MAC运算的结果而获得的定点表达的小数长度中的最小小数长度。
因此,处理器110生成量化神经网络的数据,其中包括关于以下项的信息:第一权重w11的Q11.4的定点表达和小数长度4、第二权重w12 1330的定点表达Q9.6和小数长度6、偏置1310的定点表达Q37.10和小数长度10、以及移位器的移位程度(4比特移位1304)。
虽然图13仅示出了两个通道,但图13的方法可以应用于存在更多个通道的情况。
图14示出了使用图13的方法的神经网络参数的量化算法1400。
参考图14,在量化算法1400中,可以使用图13的方法来确定偏置的小数长度。
运算1401至1405以类似于图12的运算1201至1205的方式执行。
在运算1406中,处理器110根据每个通道的MAC运算,将小数长度中的最小小数长度确定为与加法运算的结果相对应的小数长度。
在运算1407中,处理器110将在运算1406中确定的小数长度确定为偏置的小数长度。
在运算1408中,处理器110根据所确定的偏置的小数长度,通过分别调整每个通道的权重的小数长度来更新每个通道的权重的小数长度。
在运算1409中,处理器110根据向OFM分配的比特数,对偏置的小数长度进行移位。因此,确定输出激活的小数长度。
在运算1410中,处理器110输出IFM的每个通道的小数长度、OFM的每个通道的小数长度、核的每个通道的小数长度、偏置的小数长度、运算1208中的移位的频率、运算1409中的移位的频率等。
运算1411至1414以类似于图12的运算1211至1214的方式执行。
处理器110可以通过选择图11和图12的算法方法以及图13和图14的算法方法中的任何一个来执行神经网络的量化。例如,虽然对处理器110的算法的选择可以根据采用量化神经网络的设备(硬件加速器)的处理性能、硬件架构等而变化,但是本公开不限于此。
图15示出了参考图7描述的针对每层的量化。
参考图15,如参考图7所描述,层中包括的所有通道的输入激活和权重可以通过针对每个层的量化而被量化为相同的Q11.4的定点表达。因此,偏置1510的定点表达为Q39.8,且其小数长度为8。换句话说,偏置1510的小数长度比通过上面参考图11至图14描述的两种方法确定的偏置1110和偏置1310的小数长度短。因此,可以看出:与针对每层的量化相比,针对每个通道的量化是具有更准确和精确的参数值的神经网络量化方法。
图16示出了根据实施例的对量化神经网络的重新训练。
参考图16,图3的处理器110可以将经预训练的浮点型神经网络1610量化为定点型神经网络1620。此外,处理器110通过使用新的或现有的训练/测试集数据来执行重新训练,以提高量化神经网络1620的准确度。由于量化神经网络1620的定点型参数通过上述重新训练被微调,所以处理器110可以获得具有提高的准确度的经重新训练的神经网络1630。在这种状态下,处理器110可以使用针对每个通道的偏置和权重确定的小数长度的约束,对量化神经网络1620进行重新训练,以用于微调。神经网络量化装置(图3的10)可向神经网络专用硬件加速器传输经重新训练的神经网络1630。
图17是示出了在针对每个层的量化和针对每个通道的量化之间比较准确度的仿真结果的曲线图。
参考图17,随着分配的比特宽度增加,针对每层的量化的准确度和针对每个通道的量化的准确度可收敛到相似的值。然而,随着分配的比特宽度减小,针对每层的量化的准确度和针对每个通道的量化的准确度的差可变得明显。具体而言,当分配相对较小的比特宽度时,针对每个通道的量化的准确度表现得远高于针对每层的量化的准确度。由于神经网络专用硬件加速器是由具有低性能和低功率的硬件实现的,所以使用相对较小的比特宽度。因此,可以看出:对于硬件加速器,神经网络是通过针对每个通道的量化来量化的。另外,可以看出:当使用使量化误差最小化的方法(例如最佳增量等)的量化级别来执行量化时,针对每个通道的量化和针对每个层的量化都比基于实际最大值作为分布范围的量化具有更高的准确度。
图18是示出了根据重新训练产生的量化神经网络的准确度变化的仿真结果的曲线图。
参考图18,即使当神经网络被量化为定点型时,与浮点型神经网络相比,通过重新训练也可以提高准确度。
图19是根据实施例的电子***1900的框图。
参考图19,电子***1900可以通过基于神经网络实时分析输入数据来提取有效信息,基于提取的信息来确定情况,或者控制安装有电子***1900的电子设备的元件。例如,电子***1900可以应用于机器人设备(诸如无人驾驶飞机、高级驾驶员辅助***(ADAS)等)、智能TV、智能电话、医疗设备、移动设备、图像显示设备、测量设备、IoT设备等,并且也可以安装在各种类型的电子设备中的至少一个上。
电子***1900可以包括处理器1910、RAM 1920、神经网络设备1930、存储器1940、传感器模块1950和通信(TX/RX)模块1960。电子***1900还可以包括输入/输出模块、安全模块、电力控制设备等。电子***1900的一些硬件组件可被安装在至少一个半导体芯片上。神经网络设备1930可以包括上述神经网络专用硬件加速器或包括该神经网络专用硬件加速器在内的设备。
处理器1910控制电子***1900的所有运算。处理器1910可以包括一个处理器核(单核)或多个处理器核(多核)。处理器1910可以处理或执行存储器1940中存储的程序和/或数据。在实施例中,处理器1910可以通过执行存储器1940中存储的程序来控制神经网络设备1930的功能。处理器1910可以由CPU、GPU、AP等实现
RAM 1920可以临时存储程序、数据或指令。例如,存储器1940中存储的程序和/或数据可以根据引导代码或处理器1910的控制被临时存储在RAM 1920中。RAM 1920可以通过诸如动态RAM(DRAM)或静态RAM(SRAM)等的存储器来实现。
神经网络设备1930可以基于接收到的输入数据来执行神经网络的运算,并且基于运算的结果来生成信息信号。神经网络可以包括CNN、RNN、深度信念网络、受限制的波尔兹曼机等,但是本公开不限于此。神经网络设备1930是通过使用被量化为上述定点型的神经网络来执行处理的硬件,并且可以对应于上述神经网络专用硬件加速器。
信息信号可以包括诸如语音识别信号、对象识别信号、图像识别信号、生物特征信息识别信号等的各种类型的识别信号之一。例如,神经网络设备1930可以接收视频流中包括的帧数据作为输入数据,并且根据帧数据来生成针对由帧数据指示的图像中包括的对象的识别信号。然而,本公开不限于此,且根据安装有电子***1900的电子设备的类型或功能,神经网络设备1930可以接收各种类型的输入数据并根据输入数据来生成识别信号。
存储器1940是用于存储数据(诸如操作***(OS)、各种程序和各种数据)的存储设备。在实施例中,存储器1940可以存储在神经网络设备1930的运算执行过程中产生的中间结果,诸如输出特征图、输出特征列表或外部特征矩阵。在实施例中,存储器1940可以存储经压缩的输出特征图。此外,存储器1940可以存储由神经网络没备1930使用的量化神经网络数据,例如参数、权重图或权重列表。
存储器1940可以是DRAM,但是本公开不限于此。存储器1940可以包括易失性存储器和非易失性存储器中的至少一种。非易失性存储器可以包括ROM、PROM、EPROM、EEPROM、闪存、PRAM、MRAM、RRAM、FRAM等。易失性存储器可以包括DRAM、SRAM、SDRAM、PRAM、MRAM、RRAM、FeRAM等。在实施例中,存储器1940可以包括HDD、SSD、CF、SD、Micro-SD、Mini-SD、xD和记忆棒中的至少一个。
传感器模块1950可以收集与安装有电子***1900的电子设备的***有关的信息。传感器模块1950可以从电子设备的外部感测或接收诸如图像信号、语音信号、磁信号、生物特征信号、触摸信号等的信号,并将感测或接收到的信号转换为数据。为此,传感器模块1950可以包括以下各种类型的感测设备中的至少一项:诸如麦克风、成像设备、图像传感器、光检测和测距(LIDAR)传感器、超声波传感器、红外传感器、生物传感器、触摸传感器等。
传感器模块1950可以向神经网络设备1930提供经转换的数据作为输入数据。例如,传感器模块1950可以包括图像传感器,并且可以通过拍摄电子设备的外部环境来生成视频流,并且按输入数据的顺序为神经网络设备1930提供视频流的连续数据帧。然而,本公开不限于此,并且传感器模块1950可以向神经网络设备1930提供各种类型的数据。
通信模块1960可以包括能够与外部设备通信的各种有线或无线接口。例如,通信模块1960可以包括局域网(LAN)、诸如无线保真(Wi-Fi)之类的无线局域网(WLAN)、诸如蓝牙之类的无线个域网(WPAN)、无线通用串行总线(USB)、ZigBee、近场通信(NFC)、射频识别(RFID)、电力线通信(PLC)、或能够连接到移动蜂窝网络(诸如第三代(3G)、***(4G)、长期演进(LTE)等)的通信接口。
在实施例中,通信模块1960可以从外部设备接收关于量化神经网络的数据。外部设备可以是诸如图3的神经网络量化装置10之类的设备,其执行基于大量数据的训练,将经训练的神经网络量化为定点型,并向电子***1900提供量化神经网络数据。接收到的量化神经网络数据可以被存储在存储器1940中。
图20是根据实施例的对神经网络的参数进行量化的方法的流程图。由于图20中所示的对神经网络的参数进行量化的方法涉及以上附图中示出的上述实施例,所以参考以上附图的描述(在本文中省略)可以应用于图20的方法。
在运算2010中,处理器110根据通过使用浮点来预训练的神经网络的数据,针对在每个特征图和核中包括的每个通道中使用的浮点型参数值,分析每个通道的统计分布。
在运算2020中,处理器110基于每个通道的统计分布,确定每个通道的参数的定点表达,该定点表达在统计上覆盖参数值的分布范围。
在运算2030中,处理器110基于执行卷积运算的结果,确定每个通道的偏置和权重的小数长度,作为每个通道的定点表达的参数。
在运算2040中,处理器110生成定点型量化神经网络,该定点型量化神经网络所具有的每个通道的偏置和权重具有所确定的小数长度。
可以将本发明构思的实施例写为计算机程序,并可以在使用计算机可读记录介质执行所述程序的通用数字计算机中实现。此外,在上述实施例中使用的数据结构可以通过各种方法记录在计算机可读记录介质中。计算机可读记录介质的示例包括:磁存储介质(例如,ROM、软盘、硬盘等)、光记录介质(例如,CD-ROM或DVD)等。
应当理解的是,应仅以描述性意义而不是限制性目的来考虑本文中描述的实施例。对每个实施例中的特征或方面的描述通常应当被看作可用于其他实施例中的其他类似特征或方面。尽管已参考附图描述了一个或多个实施例,但本领域普通技术人员应当理解,在不脱离所附权利要求所限定的精神和范围的情况下,可以进行形式和细节上的各种改变。
Claims (20)
1.一种对神经网络的参数进行量化的方法,所述方法包括:
根据通过使用浮点来预训练的神经网络的数据,针对在每个特征图和核中包括的每个通道中使用的浮点型参数值,分析每个通道的统计分布;
基于每个通道的所述统计分布,确定每个通道的参数的定点表达,所述定点表达在统计上覆盖所述参数值的分布范围;
基于执行卷积运算的结果,确定每个通道的偏置和权重的小数长度,作为每个通道的所述定点表达的参数;以及
生成定点型量化神经网络,所述定点型量化神经网络所具有的每个通道的偏置和权重具有所确定的小数长度。
2.根据权利要求1所述的方法,其中,在所述分析中,通过在所述神经网络的预训练期间获得在每个通道中使用的浮点型的激活、权重和偏置的参数值的针对每个通道的统计量,来分析所述统计分布。
3.根据权利要求1所述的方法,其中,所述卷积运算包括多个通道之间的部分求和运算,所述部分求和运算执行乘法-累加“MAC”运算和加法运算,以及
在确定小数长度时,通过所确定的定点表达,基于输入激活的小数长度和权重的小数长度来确定与所述部分求和运算的结果相对应的偏置的小数长度。
4.根据权利要求3所述的方法,其中,所确定的偏置的小数长度是基于作为所述MAC运算的结果而获得的定点表达的小数长度中的最大小数长度来确定的。
5.根据权利要求4所述的方法,其中,所述部分求和运算包括:
针对第一通道的第一输入激活和第一权重的第一MAC运算;
针对第二通道的第二输入激活和第二权重的第二MAC运算;以及
针对所述第一MAC运算的结果和所述第二MAC运算的结果的加法运算,以及
对小数长度的确定包括:
获得与所述第一MAC运算相对应的第一定点表达的第一小数长度和与所述第二MAC运算相对应的第二定点表达的第二小数长度;以及
基于所述第一小数长度和所述第二小数长度中的最大小数长度,确定与所述加法运算的结果相对应的偏置的小数长度。
6.根据权利要求5所述的方法,其中,对小数长度的确定还包括基于所确定的偏置的小数长度,对在所述第一定点表达和所述第二定点表达之间具有较小小数长度的定点表达的小数长度进行移位,以及
所述量化神经网络包括与所述移位的程度有关的信息。
7.根据权利要求3所述的方法,其中,所确定的偏置的小数长度与作为所述MAC运算的结果而获得的定点表达的小数长度中的最小小数长度相对应,以及
在确定小数长度时,每个通道的权重的小数长度是通过将权重的至少一个小数长度减去所述定点表达的小数长度之间的差来确定的。
8.根据权利要求7所述的方法,其中,所述部分求和运算包括:
针对第一通道的第一输入激活和第一权重的第一MAC运算;
针对第二通道的第二输入激活和第二权重的第二MAC运算;以及
针对所述第一MAC运算的结果和所述第二MAC运算的结果的加法运算,以及
对小数长度的确定包括:
获得与所述第一MAC运算相对应的第一定点表达的第一小数长度和与所述第二MAC运算相对应的第二定点表达的第二小数长度;
将所述第一小数长度和所述第二小数长度中的最小小数长度确定为与所述加法运算的结果相对应的偏置的小数长度;以及
调整向所述第一MAC运算和所述第二MAC运算中的获得具有最小小数长度的定点表达的一个MAC运算所输入的权重的小数长度,所述调整是通过将所述权重的小数长度减去所述第一小数长度和所述第二小数长度之间的差来进行的。
9.根据权利要求1所述的方法,其中,每个通道的统计分布对应于与正态分布和拉普拉斯分布中的任何一个近似的分布,以及
在确定定点表达时,基于每个通道的小数长度来确定定点表达,所述每个通道的小数长度是通过使用根据每个通道的统计分布所获得的以下至少一项来定义的:每个通道的参数值的平均值、方差、标准差、最大值和最小值。
10.根据权利要求1所述的方法,在完成对小数长度的确定之后,还包括:使用所确定的每个通道的偏置和权重的小数长度的约束,对所述量化神经网络进行重新训练,以进行微调。
11.一种用于生成定点型量化神经网络的装置,所述装置包括:
存储器,存储至少一个程序;以及
处理器,通过执行所述至少一个程序对神经网络的参数进行量化,
其中,所述处理器根据通过使用浮点来预训练的神经网络的数据,针对在每个特征图和核中包括的每个通道中使用的浮点型参数值,分析每个通道的统计分布;基于每个通道的所述统计分布,确定每个通道的参数的定点表达,所述定点表达在统计上覆盖所述参数值的分布范围;基于执行卷积运算的结果,确定每个通道的偏置和权重的小数长度,作为每个通道的所述定点表达的参数;以及生成定点型量化神经网络,所述定点型量化神经网络所具有的每个通道的偏置和权重具有所确定的小数长度。
12.根据权利要求11所述的装置,其中,所述处理器通过在所述神经网络的预训练期间获得在每个通道中使用的浮点型的激活、权重和偏置的参数值的针对每个通道的统计量,来分析所述统计分布。
13.根据权利要求11所述的装置,其中,所述卷积运算包括多个通道之间的部分求和运算,所述部分求和运算执行乘法-累加“MAC”运算和加法运算,以及
所述处理器通过所确定的定点表达,基于输入激活的小数长度和权重的小数长度来确定与所述部分求和运算的结果相对应的偏置的小数长度。
14.根据权利要求13所述的装置,其中,所确定的偏置的小数长度是基于作为所述MAC运算的结果而获得的定点表达的小数长度中的最大小数长度来确定的。
15.根据权利要求14所述的装置,其中,所述部分求和运算包括:
针对第一通道的第一输入激活和第一权重的第一MAC运算;
针对第二通道的第二输入激活和第二权重的第二MAC运算;以及
针对所述第一MAC运算的结果和所述第二MAC运算的结果的加法运算,以及
所述处理器获得与所述第一MAC运算相对应的第一定点表达的第一小数长度和与所述第二MAC运算相对应的第二定点表达的第二小数长度,并基于所述第一小数长度和所述第二小数长度中的最大小数长度,确定与所述加法运算的结果相对应的偏置的小数长度。
16.根据权利要求15所述的装置,其中,所述处理器基于所确定的偏置的小数长度,对在所述第一定点表达和所述第二定点表达之间具有较小小数长度的定点表达的小数长度进行移位。
17.根据权利要求13所述的装置,其中,所确定的偏置的小数长度与作为所述MAC运算的结果而获得的定点表达的小数长度中的最小小数长度相对应,以及
所述处理器通过将权重的至少一个小数长度减去所述定点表达的小数长度之间的差来确定每个通道的权重的小数长度。
18.根据权利要求17所述的装置,其中,所述部分求和运算包括:
针对第一通道的第一输入激活和第一权重的第一MAC运算;
针对第二通道的第二输入激活和第二权重的第二MAC运算;以及
针对所述第一MAC运算的结果和所述第二MAC运算的结果的加法运算,以及
所述处理器获得与所述第一MAC运算相对应的第一定点表达的第一小数长度和与所述第二MAC运算相对应的第二定点表达的第二小数长度;将所述第一小数长度和所述第二小数长度中的最小小数长度确定为与所述加法运算的结果相对应的偏置的小数长度;以及调整向所述第一MAC运算和所述第二MAC运算中的获得具有最小小数长度的定点表达的一个MAC运算输入的权重的小数长度,所述调整是通过将所述权重的小数长度减去所述第一小数长度和所述第二小数长度之间的差来进行的。
19.根据权利要求11所述的装置,其中,每个通道的统计分布对应于与正态分布和拉普拉斯分布中的任何一个近似的分布,以及
所述处理器基于每个通道的小数长度来确定定点表达,所述每个通道的小数长度是通过使用根据每个通道的统计分布所获得的以下至少一项来定义的:每个通道的参数值的平均值、方差、标准差、最大值和最小值。
20.根据权利要求11所述的装置,其中,在完成对小数长度的确定之后,所述处理器使用所确定的每个通道的偏置和权重的小数长度的约束,对所述量化神经网络进行重新训练,以进行微调。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0098999 | 2017-08-04 | ||
KR1020170098999A KR102601604B1 (ko) | 2017-08-04 | 2017-08-04 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109389219A true CN109389219A (zh) | 2019-02-26 |
CN109389219B CN109389219B (zh) | 2024-04-09 |
Family
ID=63407020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810868446.4A Active CN109389219B (zh) | 2017-08-04 | 2018-08-01 | 用于对神经网络的参数进行量化的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11588496B2 (zh) |
EP (1) | EP3438890B1 (zh) |
JP (1) | JP7072464B2 (zh) |
KR (1) | KR102601604B1 (zh) |
CN (1) | CN109389219B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110068302A (zh) * | 2019-03-07 | 2019-07-30 | 中科院微电子研究所昆山分所 | 一种基于深度神经网络的车辆测距方法 |
CN110991649A (zh) * | 2019-10-28 | 2020-04-10 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 深度学习模型搭建方法、装置、设备和存储介质 |
CN111401518A (zh) * | 2020-03-04 | 2020-07-10 | 杭州嘉楠耘智信息科技有限公司 | 一种神经网络量化方法、装置及计算机可读存储介质 |
CN111695671A (zh) * | 2019-03-12 | 2020-09-22 | 北京地平线机器人技术研发有限公司 | 训练神经网络的方法及装置、电子设备 |
CN111931922A (zh) * | 2019-05-13 | 2020-11-13 | 百度(美国)有限责任公司 | 一种提高模型推断精度的量化方法 |
CN111950715A (zh) * | 2020-08-24 | 2020-11-17 | 云知声智能科技股份有限公司 | 基于自适应动态移位的8位整型全量化推理方法及装置 |
WO2020248423A1 (zh) * | 2019-06-12 | 2020-12-17 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112446491A (zh) * | 2021-01-20 | 2021-03-05 | 上海齐感电子信息科技有限公司 | 神经网络模型实时自动量化方法及实时自动量化*** |
CN113222098A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN113496274A (zh) * | 2020-03-20 | 2021-10-12 | 郑桂忠 | 基于存储器内运算电路架构的量化方法及其*** |
US11397579B2 (en) | 2018-02-13 | 2022-07-26 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11513586B2 (en) | 2018-02-14 | 2022-11-29 | Shanghai Cambricon Information Technology Co., Ltd | Control device, method and equipment for processor |
US11676029B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US11789847B2 (en) | 2018-06-27 | 2023-10-17 | Shanghai Cambricon Information Technology Co., Ltd | On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system |
US12001955B2 (en) | 2019-08-23 | 2024-06-04 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
KR20190044878A (ko) | 2017-10-23 | 2019-05-02 | 삼성전자주식회사 | 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 |
US11195096B2 (en) * | 2017-10-24 | 2021-12-07 | International Business Machines Corporation | Facilitating neural network efficiency |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
JP7056225B2 (ja) * | 2018-02-26 | 2022-04-19 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
WO2019168084A1 (ja) * | 2018-03-02 | 2019-09-06 | 日本電気株式会社 | 推論装置、畳み込み演算実行方法及びプログラム |
US10769526B2 (en) * | 2018-04-24 | 2020-09-08 | Intel Corporation | Machine learning accelerator architecture |
KR20190125141A (ko) | 2018-04-27 | 2019-11-06 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
US20200104715A1 (en) * | 2018-09-28 | 2020-04-02 | Xilinx, Inc. | Training of neural networks by including implementation cost as an objective |
CN113039556B (zh) | 2018-10-11 | 2022-10-21 | 特斯拉公司 | 用于使用增广数据训练机器模型的***和方法 |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11922314B1 (en) * | 2018-11-30 | 2024-03-05 | Ansys, Inc. | Systems and methods for building dynamic reduced order physical models |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11847567B1 (en) | 2018-12-05 | 2023-12-19 | Perceive Corporation | Loss-aware replication of neural network layers |
US12045725B1 (en) * | 2018-12-05 | 2024-07-23 | Perceive Corporation | Batch normalization for replicated layers of neural network |
US12014273B2 (en) * | 2018-12-12 | 2024-06-18 | Kneron (Taiwan) Co., Ltd. | Low precision and coarse-to-fine dynamic fixed-point quantization design in convolution neural network |
CN109754074A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 一种神经网络量化方法、装置以及相关产品 |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
KR20200086581A (ko) | 2019-01-09 | 2020-07-17 | 삼성전자주식회사 | 뉴럴 네트워크 양자화를 위한 방법 및 장치 |
US11488016B2 (en) * | 2019-01-23 | 2022-11-01 | Google Llc | Look-up table based neural networks |
KR102233174B1 (ko) * | 2019-01-28 | 2021-03-29 | 포항공과대학교 산학협력단 | 신경망 가속기 및 그것의 동작 방법 |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
EP3857453A1 (en) * | 2019-02-08 | 2021-08-04 | Huawei Technologies Co., Ltd. | Neural network quantization method using multiple refined quantized kernels for constrained hardware deployment |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
CN109800877B (zh) * | 2019-02-20 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
KR102152374B1 (ko) * | 2019-02-25 | 2020-09-07 | 주식회사 딥엑스 | 인공신경망의 비트 양자화 방법 및 시스템 |
WO2020175862A1 (ko) * | 2019-02-25 | 2020-09-03 | 주식회사 딥엑스 | 인공신경망의 비트 양자화 방법 및 시스템 |
CN109978135B (zh) * | 2019-03-04 | 2022-03-29 | 清华大学 | 基于量化的神经网络压缩方法及*** |
JP7188237B2 (ja) * | 2019-03-29 | 2022-12-13 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
US11868901B1 (en) | 2019-05-21 | 2024-01-09 | Percieve Corporation | Compiler for optimizing memory allocations within cores |
KR20200139909A (ko) | 2019-06-05 | 2020-12-15 | 삼성전자주식회사 | 전자 장치 및 그의 연산 수행 방법 |
US11847568B2 (en) * | 2019-07-30 | 2023-12-19 | Perceive Corporation | Quantizing neural networks using shifting and scaling |
EP4024281A4 (en) * | 2019-08-26 | 2023-11-01 | Shanghai Cambricon Information Technology Co., Ltd | DATA PROCESSING METHOD AND APPARATUS, AND RELATED PRODUCT |
CN112446472A (zh) * | 2019-08-28 | 2021-03-05 | 上海寒武纪信息科技有限公司 | 用于处理数据的方法、装置以及相关产品 |
JP7342544B2 (ja) * | 2019-09-09 | 2023-09-12 | 富士通株式会社 | 学習プログラムおよび学習方法 |
CN112488285A (zh) * | 2019-09-12 | 2021-03-12 | 上海大学 | 基于神经网络权重数据分布特点的量化方法 |
JP2021044783A (ja) | 2019-09-13 | 2021-03-18 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
JP7322620B2 (ja) | 2019-09-13 | 2023-08-08 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
DE102019214308B4 (de) * | 2019-09-19 | 2022-07-28 | Robert Bosch Gmbh | Schnelles quantisiertes Training trainierbarer Module |
DE102020123155A1 (de) * | 2019-09-24 | 2021-03-25 | Samsung Electronics Co., Ltd. | Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und Operationsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks |
KR20210043295A (ko) * | 2019-10-11 | 2021-04-21 | 삼성전자주식회사 | 뉴럴 네트워크의 데이터를 양자화하는 방법 및 장치 |
CN113228056B (zh) * | 2019-10-12 | 2023-12-22 | 深圳鲲云信息科技有限公司 | 运行时硬件模拟仿真方法、装置、设备及存储介质 |
CN110472700B (zh) * | 2019-10-14 | 2020-06-16 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的参数填充方法与装置 |
KR102421987B1 (ko) * | 2019-12-16 | 2022-07-15 | 경희대학교 산학협력단 | 깊은 신경망 내에서의 강화된 배치 정규화를 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체 |
US11995555B1 (en) | 2019-12-17 | 2024-05-28 | Perceive Corporation | Training a neural network with quantized weights |
CN111079767B (zh) * | 2019-12-22 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种用于分割图像的神经网络模型及其图像分割方法 |
KR20210083935A (ko) * | 2019-12-27 | 2021-07-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
TW202141290A (zh) | 2020-01-07 | 2021-11-01 | 韓商愛思開海力士有限公司 | 記憶體中處理(pim)系統和pim系統的操作方法 |
US11847451B2 (en) | 2020-01-07 | 2023-12-19 | SK Hynix Inc. | Processing-in-memory (PIM) device for implementing a quantization scheme |
WO2021144879A1 (ja) * | 2020-01-15 | 2021-07-22 | 富士通株式会社 | 演算処理装置、演算処理プログラム及び演算処理方法 |
US11521007B2 (en) * | 2020-02-17 | 2022-12-06 | International Business Machines Corporation | Accelerator resource utilization by neural networks |
CN113298843B (zh) * | 2020-02-24 | 2024-05-14 | 中科寒武纪科技股份有限公司 | 数据量化处理方法、装置、电子设备和存储介质 |
US20230118802A1 (en) * | 2020-03-13 | 2023-04-20 | Intel Corporation | Optimizing low precision inference models for deployment of deep neural networks |
JP7357225B2 (ja) * | 2020-03-27 | 2023-10-06 | パナソニックIpマネジメント株式会社 | 推論実行方法 |
JP7367595B2 (ja) * | 2020-04-07 | 2023-10-24 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
CN113673664B (zh) * | 2020-05-14 | 2023-09-12 | 杭州海康威视数字技术股份有限公司 | 数据溢出检测方法、装置、设备及存储介质 |
CN113762499B (zh) * | 2020-06-04 | 2024-04-02 | 合肥君正科技有限公司 | 一种分通道量化权重的方法 |
WO2022009433A1 (ja) * | 2020-07-10 | 2022-01-13 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
KR102505946B1 (ko) * | 2020-09-02 | 2023-03-08 | 네이버 주식회사 | 인공신경망 모델 학습 방법 및 시스템 |
KR20220057356A (ko) | 2020-10-29 | 2022-05-09 | 삼성전자주식회사 | 커패시터 및 이를 포함하는 반도체 장치 |
WO2022108361A1 (ko) * | 2020-11-18 | 2022-05-27 | 인텔렉추얼디스커버리 주식회사 | 신경망 특징맵 양자화 방법 및 장치 |
US20220198257A1 (en) * | 2020-12-18 | 2022-06-23 | Analog Devices International Unlimited Company | Architecture for running convolutional networks on memory and mips constrained embedded devices |
JP7512914B2 (ja) | 2021-01-26 | 2024-07-09 | 株式会社デンソー | ニューラルネットワーク量子化方法、装置及びプログラム |
WO2022183335A1 (zh) * | 2021-03-01 | 2022-09-09 | 浙江大学 | 图像编解码方法、编码器、解码器及存储介质 |
CN113128116B (zh) * | 2021-04-20 | 2023-09-26 | 上海科技大学 | 可用于轻量级神经网络的纯整型量化方法 |
WO2022239448A1 (ja) * | 2021-05-10 | 2022-11-17 | コニカミノルタ株式会社 | 量子化プログラム、情報処理装置、及び値域決定方法 |
KR102466016B1 (ko) * | 2021-06-21 | 2022-11-11 | 주식회사 크립토랩 | 동형 암호문을 처리하는 서버 장치 및 그 방법 |
CN114004347A (zh) | 2021-08-30 | 2022-02-01 | 平头哥(上海)半导体技术有限公司 | 用于加速图神经网络属性访问的硬件加速器、***和方法 |
KR20230066700A (ko) * | 2021-11-08 | 2023-05-16 | 한국전자기술연구원 | 딥러닝 가속장치를 위한 적응적 파라미터 생성 장치 및 방법 |
US20230214639A1 (en) * | 2021-12-31 | 2023-07-06 | Sumant Milind Hanumante | Fixed-point multiplication for network quantization |
CN114677548B (zh) * | 2022-05-26 | 2022-10-14 | 之江实验室 | 基于阻变存储器的神经网络图像分类***及方法 |
CN116720563B (zh) * | 2022-09-19 | 2024-03-29 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
WO2024135861A1 (ko) * | 2022-12-19 | 2024-06-27 | 한국전자기술연구원 | 가변 데이터 표현형을 적용한 딥러닝 학습 방법 및 이를 적용한 모바일 디바이스 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100166273A1 (en) * | 2006-01-12 | 2010-07-01 | Wismueller Axel | Method and Device for Representing Multichannel Image Data |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
US20160328646A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
WO2017044214A1 (en) * | 2015-09-10 | 2017-03-16 | Intel Corporation | Distributed neural networks for scalable real-time analytics |
WO2017062382A1 (en) * | 2015-10-04 | 2017-04-13 | Atomwise Inc. | Systems and methods for applying a convolutional network to spatial data |
CN106575379A (zh) * | 2014-09-09 | 2017-04-19 | 英特尔公司 | 用于神经网络的改进的定点整型实现方式 |
CN106991477A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种人工神经网络压缩编码装置和方法 |
CN106997485A (zh) * | 2016-01-26 | 2017-08-01 | 三星电子株式会社 | 基于神经网络的识别设备和训练神经网络的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257215A (en) * | 1992-03-31 | 1993-10-26 | Intel Corporation | Floating point and integer number conversions in a floating point adder |
EP0582885A3 (en) * | 1992-08-05 | 1997-07-02 | Siemens Ag | Procedure to classify field patterns |
US10339447B2 (en) | 2014-01-23 | 2019-07-02 | Qualcomm Incorporated | Configuring sparse neuronal networks |
US20160026912A1 (en) | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
US10262259B2 (en) | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US10417555B2 (en) * | 2015-05-29 | 2019-09-17 | Samsung Electronics Co., Ltd. | Data-optimized neural network traversal |
US10346350B2 (en) | 2015-10-08 | 2019-07-09 | Via Alliance Semiconductor Co., Ltd. | Direct execution by an execution unit of a micro-operation loaded into an architectural register file by an architectural instruction of a processor |
WO2017152990A1 (en) * | 2016-03-11 | 2017-09-14 | Telecom Italia S.P.A. | Convolutional neural networks, particularly for image analysis |
CN106709532B (zh) * | 2017-01-25 | 2020-03-10 | 京东方科技集团股份有限公司 | 图像处理方法和装置 |
US10491239B1 (en) * | 2017-02-02 | 2019-11-26 | Habana Labs Ltd. | Large-scale computations using an adaptive numerical format |
US9916531B1 (en) * | 2017-06-22 | 2018-03-13 | Intel Corporation | Accumulator constrained quantization of convolutional neural networks |
-
2017
- 2017-08-04 KR KR1020170098999A patent/KR102601604B1/ko active IP Right Grant
-
2018
- 2018-08-01 US US16/051,788 patent/US11588496B2/en active Active
- 2018-08-01 JP JP2018144829A patent/JP7072464B2/ja active Active
- 2018-08-01 CN CN201810868446.4A patent/CN109389219B/zh active Active
- 2018-08-03 EP EP18187235.9A patent/EP3438890B1/en active Active
-
2022
- 2022-12-20 US US18/084,948 patent/US20230117033A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100166273A1 (en) * | 2006-01-12 | 2010-07-01 | Wismueller Axel | Method and Device for Representing Multichannel Image Data |
CN106575379A (zh) * | 2014-09-09 | 2017-04-19 | 英特尔公司 | 用于神经网络的改进的定点整型实现方式 |
US20160328646A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
WO2017044214A1 (en) * | 2015-09-10 | 2017-03-16 | Intel Corporation | Distributed neural networks for scalable real-time analytics |
WO2017062382A1 (en) * | 2015-10-04 | 2017-04-13 | Atomwise Inc. | Systems and methods for applying a convolutional network to spatial data |
CN106991477A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种人工神经网络压缩编码装置和方法 |
CN106997485A (zh) * | 2016-01-26 | 2017-08-01 | 三星电子株式会社 | 基于神经网络的识别设备和训练神经网络的方法 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
Non-Patent Citations (1)
Title |
---|
包健等: ""一种定点数权值神经网络的优化方法及其应用"", no. 01 * |
Cited By (22)
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 |
US11397579B2 (en) | 2018-02-13 | 2022-07-26 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
US11513586B2 (en) | 2018-02-14 | 2022-11-29 | Shanghai Cambricon Information Technology Co., Ltd | Control device, method and equipment for processor |
US11789847B2 (en) | 2018-06-27 | 2023-10-17 | Shanghai Cambricon Information Technology Co., Ltd | On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system |
CN110068302A (zh) * | 2019-03-07 | 2019-07-30 | 中科院微电子研究所昆山分所 | 一种基于深度神经网络的车辆测距方法 |
CN111695671B (zh) * | 2019-03-12 | 2023-08-08 | 北京地平线机器人技术研发有限公司 | 训练神经网络的方法及装置、电子设备 |
CN111695671A (zh) * | 2019-03-12 | 2020-09-22 | 北京地平线机器人技术研发有限公司 | 训练神经网络的方法及装置、电子设备 |
CN111931922A (zh) * | 2019-05-13 | 2020-11-13 | 百度(美国)有限责任公司 | 一种提高模型推断精度的量化方法 |
US11676029B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
WO2020248423A1 (zh) * | 2019-06-12 | 2020-12-17 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
US11675676B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US12001955B2 (en) | 2019-08-23 | 2024-06-04 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
CN110991649A (zh) * | 2019-10-28 | 2020-04-10 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 深度学习模型搭建方法、装置、设备和存储介质 |
CN113222098A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN111401518A (zh) * | 2020-03-04 | 2020-07-10 | 杭州嘉楠耘智信息科技有限公司 | 一种神经网络量化方法、装置及计算机可读存储介质 |
CN111401518B (zh) * | 2020-03-04 | 2024-06-04 | 北京硅升科技有限公司 | 一种神经网络量化方法、装置及计算机可读存储介质 |
CN113496274A (zh) * | 2020-03-20 | 2021-10-12 | 郑桂忠 | 基于存储器内运算电路架构的量化方法及其*** |
CN111950715A (zh) * | 2020-08-24 | 2020-11-17 | 云知声智能科技股份有限公司 | 基于自适应动态移位的8位整型全量化推理方法及装置 |
CN112446491A (zh) * | 2021-01-20 | 2021-03-05 | 上海齐感电子信息科技有限公司 | 神经网络模型实时自动量化方法及实时自动量化*** |
CN112446491B (zh) * | 2021-01-20 | 2024-03-15 | 上海齐感电子信息科技有限公司 | 神经网络模型实时自动量化方法及实时自动量化*** |
Also Published As
Publication number | Publication date |
---|---|
CN109389219B (zh) | 2024-04-09 |
KR102601604B1 (ko) | 2023-11-13 |
KR20190014900A (ko) | 2019-02-13 |
EP3438890B1 (en) | 2024-01-10 |
EP3438890A1 (en) | 2019-02-06 |
JP7072464B2 (ja) | 2022-05-20 |
JP2019032833A (ja) | 2019-02-28 |
US20190042948A1 (en) | 2019-02-07 |
US20230117033A1 (en) | 2023-04-20 |
US11588496B2 (en) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109389219A (zh) | 用于对神经网络的参数进行量化的方法和装置 | |
JP7329455B2 (ja) | ニューラルネットワーク量子化のための方法及び装置 | |
CN109754066A (zh) | 用于生成定点型神经网络的方法和装置 | |
US11836603B2 (en) | Neural network method and apparatus with parameter quantization | |
CN109685198A (zh) | 用于量化神经网络的参数的方法和装置 | |
CN111507378A (zh) | 训练图像处理模型的方法和装置 | |
CN112418392A (zh) | 一种神经网络构建方法以及装置 | |
CN110222717A (zh) | 图像处理方法和装置 | |
CN110378381A (zh) | 物体检测方法、装置和计算机存储介质 | |
KR20190052893A (ko) | 뉴럴 네트워크 연산을 위한 전처리 장치 및 방법 | |
CN109697510A (zh) | 具有神经网络的方法和装置 | |
CN107092859A (zh) | 一种三维模型的深度特征提取方法 | |
US11816557B2 (en) | Method and apparatus with neural network parameter quantization | |
CN112668366B (zh) | 图像识别方法、装置、计算机可读存储介质及芯片 | |
CN109886341A (zh) | 一种训练生成人脸检测模型的方法 | |
Cheng et al. | Augmented reality dynamic image recognition technology based on deep learning algorithm | |
CN107784316A (zh) | 一种图像识别方法、装置、***和计算设备 | |
KR102434038B1 (ko) | 카메라 모듈을 이용한 클라우드 기반 피부 분석 시스템 및 방법 | |
CN113536970A (zh) | 一种视频分类模型的训练方法及相关装置 | |
KR20210121946A (ko) | 뉴럴 네트워크 양자화를 위한 방법 및 장치 | |
Ata et al. | A robust optimized convolutional neural network model for human activity recognition using sensing devices | |
Chen et al. | A unified framework for generative data augmentation: A comprehensive survey | |
CN106845512A (zh) | 基于分形参数的兽类形体识别方法及*** | |
CN115731240A (zh) | 一种分割方法、装置、电子设备及存储介质 | |
CN110287991A (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 |