CN110738313A - 用于评估量化操作的方法、装置、设备和介质 - Google Patents
用于评估量化操作的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN110738313A CN110738313A CN201910980306.0A CN201910980306A CN110738313A CN 110738313 A CN110738313 A CN 110738313A CN 201910980306 A CN201910980306 A CN 201910980306A CN 110738313 A CN110738313 A CN 110738313A
- Authority
- CN
- China
- Prior art keywords
- quantization
- output value
- input data
- operator
- full
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了用于评估量化操作的方法、装置、设备和介质,涉及人工智能领域,可应用于自动驾驶(包括自主泊车)领域。该装置,包括:全精度算子,被配置为处理输入数据,以获取第一输出值;量化器,被配置为以量化比特来量化所述全精度算子的参数和所述输入数据,以获得量化参数和量化输入数据;量化算子,被配置为基于所述量化参数,处理所述量化输入数据,以获取第二输出值;去量化器,被配置为对所述第二输出值进行去量化,以获取第三输出值;以及评估器,被配置为基于所述第一输出值和所述第三输出值,评估基于所述量化比特对所述全精度算子的量化操作。以这种方式,不同的层或算子都可以确定其相应的量化极限,以降低对计算资源的要求,特别适用于嵌入式应用等对计算资源敏感的应用场景。
Description
技术领域
本公开的实施例一般地涉及计算机技术,特别是涉及人工智能技术。
背景技术
神经网络,特别是卷积神经网络(CNN)在自动驾驶感知解决方案中得到了广泛的应用。然而,这种解决方案也遇到了一个在人工智能领域中不可回避的话题:神经网络(特别是CNN)对算力和带宽的要求非常高。因此,在嵌入式平台上,实现的神经网络难以满足帧率的要求。在这种情况下,对神经网络的参数进行量化成为一个非常主流的方案,例如,8比特量化、6比特量化、4比特量化、2比特量化,甚至1比特量化。然而,目前难以系统性地评估各种不同的量化方案的量化效果。
发明内容
根据本公开的实施例,提供了一种用于评估量化操作的方法、装置、设备和介质。
在第一方面,提供了一种用于评估神经网络的量化操作的装置,包括:全精度算子,被配置为处理输入数据,以获取第一输出值;量化器,被配置为以量化比特来量化所述全精度算子的参数和所述输入数据,以获得量化参数和量化输入数据;量化算子,被配置为基于所述量化参数,处理所述量化输入数据,以获取第二输出值;去量化器,被配置为对所述第二输出值进行去量化,以获取第三输出值;以及评估器,被配置为基于所述第一输出值和所述第三输出值,评估基于所述量化比特对所述全精度算子的量化操作。。
在第二方面,提供了一种用于评估神经网络的量化操作的方法,包括:由全精度算子处理输入数据,以获取第一输出值;由量化器以量化比特来量化所述全精度算子的参数和所述输入数据,以获得量化参数和量化输入数据;由量化算子基于所述量化参数,通过所述算子来处理所述量化输入数据,以获取第二输出值;由去量化器对所述第二输出值进行去量化,以获取第三输出值;以及由评估器基于所述第一输出值和所述第三输出值,评估基于所述量化比特对所述算子的量化操作。
在第三方面,提供了一种电子设备。所述电子设备包括:一个或多个处理器;以及存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现根据第二方面所述的方法。
在第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据第二方面所述的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的一些实施例的量化精度评估系统的架构图;
图2示出了根据本公开的一些实施例的量化精度评估系统的架构图;
图3示出了根据本公开的一些实施例的量化精度评估方法的流程图;
图4示出了根据本公开的一些实施例的量化精度评估装置的方框图;以及
图5示出了能够实施本公开的一些实施例的电子设备的方框图。
具体实施方式
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
现在将参照附图中所示的各种示例性实施例对本公开的构思进行说明。应当理解,这些实施例的描述仅仅为了使得本领域的技术人员能够更好地理解并进一步实现本公开,而并不旨在以任何方式限制本公开的范围。应当注意的是,在可行情况下可以在图中使用类似或相同的附图标记,并且类似或相同的附图标记可以表示类似或相同的元素。本领域的技术人员将理解,从下面的描述中,本文中所说明的结构和/或方法的替代实施例可以被采用而不脱离所描述的本公开的原理和构思。
在本公开的语境中,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”;术语“基于”可以被理解为“至少部分地基于”;术语“一个实施例”可以被理解为“至少一个实施例”;术语“另一实施例”可以被理解为“至少一个其它实施例”。其他可能出现但在此处未提及的术语,除非明确说明,否则不应以与本公开的实施例所基于的构思相悖的方式做出解释或限定。
基于GPU或FPGA等专用计算设备的计算平台由于具有强大的并行计算能力,因而非常适合应用于神经网络等应用。这些专用计算设备可能需要定点数据进行计算。通常而言,神经网络可以包括多个层,例如几十层、几百层等。例如,这些层可以是卷积层、全连层、池化层等。目前用于评估量化精度的方案是对整个神经网络的最终结果的准确率进行评估。例如,对不同量化比特,运行整个网络,并对相应结果的Top-1和Top-5精度进行统计。然而,这种方案只能粗略地确定整个神经网络的量化比特的效果,而无法明确每一个算子(特别是网络层)的量化的极限。有鉴于此,本公开的实施例提供了一种可以评估神经网络的各个层的量化极限的方案。
图1示出了根据本公开的一些实施例的量化精度评估系统100的架构图。如图1所示,在系统100中,全精度算子102接收输入数据,并对输入数据进行处理,以获得输出数据。输入数据可以是神经网络的上一层输出的数据,也可以是根据该算子的基础参数而随机生成的数据。算子的基础参数可以是高度、宽度、通道数等。
一般而言,处理器可以计算32比特浮点数(FP32)或整数数值(INT32)。因此,32比特数值可称为全精度数值。然而,应当理解,在不同的处理器架构中,其他类型的数值也可以作为全精度数值,例如,64比特数值。另外,在一些示例中,全精度数值也可以仅表示浮点数,而不表示整数数值。
全精度算子102表示算子的参数是由全精度数值来表示的,并且其可以对全精度的输入数据进行处理。例如,全精度算子102可以是卷积神经网络的卷积层。然而,应当理解,算子也可以是神经网络中的其他层,例如,全连层、池化层等。另外,算子甚至可以是神经网络的某一层或几层的一部分,例如,乘法、加法等。
量化器104以量化比特来量化与全精度算子102的参数和输入数据。例如,量化器104可以将这些数据量化为具有该量化比特的输出数据,例如,定点数据。量化比特可以是预先定义的,并且是可调节或可编程的。例如,量化比特可以是8、6、4、2或1比特。量化器104可以向量化算子106输出量化参数和量化输入数据,其分别是算子的参数和输入数据的量化版本。
量化算子106可以根据量化参数来处理量化输入数据,以获得相应的输出值。该输出值也是具有该量化比特的定点数据。去量化器108可以将该量化数据转换为全精度数据,以与全精度算子102的输出进行比较。评估器110从全精度算子102和去量化器108分别获取相应的全精度输出数据,并确定相应的量化精度。例如,量化精度P可以表示为P=|x-xq|/|x|,其中x表示全精度算子102的输出,并且xq表示去量化器108的输出。可以看出,P表示量化的精度损失,其数值越小,量化精度越高。
在一些实施例中,系统100可以获取多次不同的输入数据,并在这些输入数据上运行。基于这些不同的输出数据,系统100、特别是评估器110可以对该量化实例进行综合评估,以获取相应的评估得分,从而提高评估的稳定性和可靠性。例如,量化精度P可以表示为其中N表示评估次数,xi表示第i次评估全精度算子102的输出,并且xqi表示第i次评估去量化器108的输出。
对于其他量化比特,系统100可以进行基本上相同的评估。在对于不同的量化比特的精度进行评估之后,评估器110可以确定适用于该算子的最佳的量化比特。例如,在精度基本保持不变的情况下,量化比特越低越好。备选地,在精度降低低于预定阈值的情况下,量化比特越低越好。这表示在不损失精度的情况下,可以尽可能地降低计算资源的开销。
以上结合图1介绍了对神经网络的一个算子的量化精度评估。然而,应当理解,系统100可以依次对神经网络的各个不同算子进行评估。例如,神经网络可以包括若干卷积层,系统100可以依次对这些卷积层进行评估。
常规的量化精度评估方案依赖于分类的准确率,因而仅适用于分类网络。然而,量化精度评估系统100独立于网络的类型,不论分类网络还是检测网络都可以进行评估。另外,在常规的评估方案中,整个网络都必须采用一种量化比特来量化,例如,8比特。然而,量化精度评估系统100能够允许网络不同的层,不同的算子采用不同的比特数。以这种方式,不同的层或算子都可以确定其相应的量化极限,以降低对计算资源的要求,特别适用于嵌入式应用等对计算资源敏感的应用场景。
图2示出了根据本公开的一些实施例的量化精度评估系统200的架构图。如图2所示,全精度算子202、量化器204、量化算子206、去量化器208和评估器210与系统100中的全精度算子102、量化器104、量化算子106、去量化器108和评估器110相似,因此不再赘述。
量化精度评估系统200支持对多比特多算子多参数配置,即,可以并行评估不同的比特、不同的算子、不同的参数配置的精度。例如,解析器212可以接收包括多个实例的配置文件,每个实例指定神经网络的一个算子,与该算子相关联的量化比特和参数。解析器212可以解析出算子、相应的量化比特和参数,并将参数提供给数据生成器214,将量化比特提供给量化器204。以这种方式,该配置文件可以支持并行评估不同的比特、不同的算子、不同的参数配置的精度。
例如,配置文件可以是一个矩阵,其中每一行指示一个实例。每一列可以指定该实例的具体信息,例如,算子的类型、量化的比特数以及算子对应的参数。算子的参数可以根据算子的类型来确定。例如,对于卷积算子,则参数包括图像的高度、宽度、通道数等等参数。
数据生成器214可以根据从解析器212获取的参数来生成输入数据。例如,数据生成器214可以从数据库中获取具有相应参数的输入数据,也可以通过随机生成器的方式来生成具有相应参数的输入数据。输入数据然后被提供给全精度算子202和量化器204,以进行后续的评估操作。
另外,解析器212可以向多路复用器216输出选择信号,以协调多个实例的评估。多路复用器216可以指示全精度算子202和量化算子206执行选择信号指定的处理。例如,多路复用器216可以指示全精度算子202和量化算子206依次获取并处理第一实例的数据、第二实例的数据等等。
根据本公开的实施例,量化精度评估系统200可以是一种通用化的精度评估平台。对于不同的量化比特、不同的参数配置,系统200可以高度自动化地评估出该量化比特的精度损失。
图3示出了根据本公开的一些实施例的量化精度评估方法300的流程图。方法300可以在如图1所示的系统100或如图2所示的系统200中执行。
在框302,通过神经网络的算子处理输入数据,以获取第一输出值。例如,神经网络可以是卷积神经网络,并且算子可以是卷积神经网络的卷积层。例如,框302可以在如图1所示的全精度算子102或如图2所示的全精度算子202处执行。
在框304,以量化比特来量化算子的参数和输入数据,以获得量化参数和量化输入数据。例如,框304可以在如图1所示的量化器104或如图2所示的量化器204处执行。
在框306,基于量化参数,通过算子来处理量化输入数据,以获取第二输出值。例如,框306可以在如图1所示的量化算子106或如图2所示的量化算子206处执行。
在框308,对第二输出值进行去量化,以获取第三输出值。例如,框308可以在如图1所示的去量化器108或如图2所示的去量化器208处执行。
在框310,基于第一输出值和第三输出值,评估基于量化比特对算子的量化操作。例如,可以通过计算量化精度P来评估该量化操作。例如,框308可以在如图1所示的评估器110或如图2所示的评估器210处执行。
在一些实施例中,在方法300中,可以处理不同量化比特。例如,为了描述方案方便,以下将上述量化比特称为第一量化比特。系统100或200可以评估基于第二量化比特对算子的量化操作,然后比较基于第一量化比特和第二量化比特对算子的量化操作的评估,以确定用于算子的量化比特。以这种方式,方法300可以对不同的量化比特进行评估。
在一些实施例中,可以通过对第一量化比特相似的方式来评估第二量化比特。具体地,以下将上述量化参数称为第一量化参数,将量化输入数据称为第一量化输入数据。类似地,以第二量化比特来量化算子的参数和输入数据,以获得第二量化参数和第二量化输入数据。第二量化参数和第二量化输入数据可以分别对应于算子的参数和输入数据。基于第二量化参数,通过该算子来处理第二量化输入数据,以获取第四输出值。对第四输出值进行去量化,以获取第五输出值,从而可以与第一输出值进行比较。然后,基于第一输出值和第五输出值,评估基于第二量化比特对该算子的量化操作。
在一些实施例中,方法300还可以通过大量输入数据来评估量化操作。例如,可以通过算子处理至少一个附加输入数据,以获取相应的至少一个第六输出值。以上述量化比特来量化至少一个附加输入数据,以获得至少一个附加量化输入数据。基于量化参数,通过算子来处理至少一个附加量化输入数据,以获取相应的至少一个第七输出值。对至少一个第七输出值进行去量化,以获取至少一个第八输出值。然后,可以对这些输出值进行综合评估。例如,基于第一输出值、第三输出值、至少一个第六输出值和至少一个第八输出值,确定基于量化比特对算子的量化操作的评估得分。
在一些实施例中,方法300还包括接收配置文件,配置文件包括多个实例,每个实例指定神经网络的一个可用算子、与可用算子相关联的量化比特和参数。然后,基于与可用算子相关联的参数来生成输入数据,以用于评估基于与可用算子相关联的量化比特对可用算子的量化操作。
图4示出了根据本公开的一些实施例的量化精度评估装置400的方框图。
装置400包括第一处理模块402,被配置为通过神经网络的算子处理输入数据,以获取第一输出值。例如,所述神经网络可以是卷积神经网络,并且所述算子可以是所述卷积神经网络的卷积层。
装置400还包括第一量化模块404,被配置为以量化比特来量化所述算子的参数和所述输入数据,以获得量化参数和量化输入数据。
装置400还包括第二处理模块406,被配置为基于所述量化参数,通过所述算子来处理所述量化输入数据,以获取第二输出值;
装置400还包括第一去量化模块408,被配置为对所述第二输出值进行去量化,以获取第三输出值;以及
装置400还包括第一评估模块410,被配置为基于所述第一输出值和所述第三输出值,评估基于所述量化比特对所述算子的量化操作。
在一些实施例中,所述量化比特是第一量化比特,所述装置400还包括:第二评估模块,被配置为评估基于第二量化比特对所述算子的量化操作;以及比较模块,被配置为比较基于所述第一量化比特和所述第二量化比特对所述算子的量化操作的评估,以确定用于所述算子的量化比特。
在一些实施例中,所述量化参数是第一量化参数,所述量化输入数据是第一量化输入数据,并且所述第二评估模块包括:第二量化模块,被配置为以第二量化比特来量化所述算子的参数和所述输入数据,以获得第二量化参数和第二量化输入数据;第三处理模块,被配置为基于所述第二量化参数,通过所述算子来处理所述第二量化输入数据,以获取第四输出值;第二去量化模块,被配置为对所述第四输出值进行去量化,以获取第五输出值;第三评估模块,被配置为基于所述第一输出值和所述第五输出值,评估基于所述第二量化比特对所述算子的量化操作。
在一些实施例中,装置400还包括:第四处理模块,被配置为通过所述算子处理至少一个附加输入数据,以获取相应的至少一个第六输出值;第三量化模块,被配置为以所述量化比特来量化所述至少一个附加输入数据,以获得至少一个附加量化输入数据;以及第五处理模块,被配置为基于所述量化参数,通过所述算子来处理所述至少一个附加量化输入数据,以获取相应的至少一个第七输出值;第三去量化模块,被配置为对所述至少一个第七输出值进行去量化,以获取至少一个第八输出值,其中所述第一评估模块包括:确定模块,被配置为基于所述第一输出值、所述第三输出值、所述至少一个第六输出值和所述至少一个第八输出值,确定基于所述量化比特对所述算子的量化操作的评估得分。
在一些实施例中,装置400还包括:接收模块,被配置为接收配置文件,所述配置文件包括多个实例,每个实例指定所述神经网络的一个可用算子、与所述可用算子相关联的量化比特和参数;以及生成模块,被配置为基于与所述可用算子相关联的参数来生成所述输入数据,以用于评估基于与所述可用算子相关联的量化比特对所述可用算子的量化操作。
图5示出了一个可以用来实施本公开的实施例的设备500的示意性框图。如图1所示的系统100、如图2所示的系统200或如图4所示的装置400可以由设备500来实现。如图5所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元501执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到RAM 503并由CPU 501执行时,可以执行上文描述的方法300的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法300。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实施例。
Claims (14)
1.一种用于评估神经网络的量化操作的装置,包括:
全精度算子,被配置为处理输入数据,以获取第一输出值;
量化器,被配置为以量化比特来量化所述全精度算子的参数和所述输入数据,以获得量化参数和量化输入数据;
量化算子,被配置为基于所述量化参数,处理所述量化输入数据,以获取第二输出值;
去量化器,被配置为对所述第二输出值进行去量化,以获取第三输出值;以及
评估器,被配置为基于所述第一输出值和所述第三输出值,评估基于所述量化比特对所述全精度算子的量化操作。
2.根据权利要求1所述的装置,其中所述量化比特是第一量化比特,并且所述评估器还被配置为:
评估基于第二量化比特对所述全精度算子的量化操作;以及
比较基于所述第一量化比特和所述第二量化比特对所述全精度算子的量化操作的评估,以确定用于所述全精度算子的量化比特。
3.根据权利要求2所述的装置,其中所述量化参数是第一量化参数,所述量化输入数据是第一量化输入数据,并且其中:
所述量化器还被配置为以第二量化比特来量化所述全精度算子的参数和所述输入数据,以获得第二量化参数和第二量化输入数据;
所述量化算子还被配置为基于所述第二量化参数,处理所述第二量化输入数据,以获取第四输出值;
所述去量化器还被配置为对所述第四输出值进行去量化,以获取第五输出值;
所述评估器还被配置为基于所述第一输出值和所述第五输出值,评估基于所述第二量化比特对所述全精度算子的量化操作。
4.根据权利要求1所述的装置,其中:
所述全精度算子还被配置为处理至少一个附加输入数据,以获取相应的至少一个第六输出值;
所述量化器还被配置为以所述量化比特来量化所述至少一个附加输入数据,以获得至少一个附加量化输入数据;
所述量化算子还被配置为基于所述量化参数来处理所述至少一个附加量化输入数据,以获取相应的至少一个第七输出值;
所述去量化器还被配置为对所述至少一个第七输出值进行去量化,以获取至少一个第八输出值;以及
所述评估器还被配置为基于所述第一输出值、所述第三输出值、所述至少一个第六输出值和所述至少一个第八输出值,确定基于所述量化比特对所述全精度算子的量化操作的评估得分。
5.根据权利要求1所述的装置,还包括解析器,所述解析器被配置为:
接收配置文件,所述配置文件包括多个实例,每个实例指定所述神经网络的一个可用算子、与所述可用算子相关联的量化比特和参数;以及
基于与所述可用算子相关联的参数来生成所述输入数据,以用于评估基于与所述可用算子相关联的量化比特对所述可用算子的量化操作。
6.根据权利要求1-5中任一项所述的装置,其中所述神经网络为卷积神经网络,并且所述全精度算子为所述卷积神经网络的卷积层。
7.一种用于评估神经网络的量化操作的方法,包括:
由全精度算子处理输入数据,以获取第一输出值;
由量化器以量化比特来量化所述全精度算子的参数和所述输入数据,以获得量化参数和量化输入数据;
由量化算子基于所述量化参数,通过所述算子来处理所述量化输入数据,以获取第二输出值;
由去量化器对所述第二输出值进行去量化,以获取第三输出值;以及
由评估器基于所述第一输出值和所述第三输出值,评估基于所述量化比特对所述算子的量化操作。
8.根据权利要求7所述的方法,其中所述量化比特是第一量化比特,所述方法还包括:
由所述评估器评估基于第二量化比特对所述全精度算子的量化操作;以及
由所述评估器比较基于所述第一量化比特和所述第二量化比特对所述算子的量化操作的评估,以确定用于所述全精度算子的量化比特。
9.根据权利要求8所述的方法,其中所述量化参数是第一量化参数,所述量化输入数据是第一量化输入数据,并且评估基于所述第二量化比特对所述全精度算子的量化操作包括:
由所述量化器以所述第二量化比特来量化所述全精度算子的参数和所述输入数据,以获得第二量化参数和第二量化输入数据;
由所述量化算子基于所述第二量化参数,处理所述第二量化输入数据,以获取第四输出值;
由所述去量化器对所述第四输出值进行去量化,以获取第五输出值;
由所述评估器基于所述第一输出值和所述第五输出值,评估基于所述第二量化比特对所述全精度算子的量化操作。
10.根据权利要求7所述的方法,还包括:
由所述全精度算子处理至少一个附加输入数据,以获取相应的至少一个第六输出值;
由所述量化器以所述量化比特来量化所述至少一个附加输入数据,以获得至少一个附加量化输入数据;
由所述量化算子基于所述量化参数,通过所述算子来处理所述至少一个附加量化输入数据,以获取相应的至少一个第七输出值;以及
由所述去量化器对所述至少一个第七输出值进行去量化,以获取至少一个第八输出值,
其中评估所述量化操作包括:由所述评估器基于所述第一输出值、所述第三输出值、所述至少一个第六输出值和所述至少一个第八输出值,确定基于所述量化比特对所述全精度算子的量化操作的评估得分。
11.根据权利要求7所述的方法,还包括:
由解析器接收配置文件,所述配置文件包括多个实例,每个实例指定所述神经网络的一个可用算子、与所述可用算子相关联的量化比特和参数;以及
由解析器基于与所述可用算子相关联的参数来生成所述输入数据,以用于评估基于与所述可用算子相关联的量化比特对所述可用算子的量化操作。
12.根据权利要求7-11中任一项所述的方法,其中所述神经网络为卷积神经网络,并且所述全精度算子为所述卷积神经网络的卷积层。
13.一种电子设备,所述电子设备包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现根据权利要求7-12中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求7-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980306.0A CN110738313B (zh) | 2019-10-15 | 2019-10-15 | 用于评估量化操作的方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980306.0A CN110738313B (zh) | 2019-10-15 | 2019-10-15 | 用于评估量化操作的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110738313A true CN110738313A (zh) | 2020-01-31 |
CN110738313B CN110738313B (zh) | 2022-05-31 |
Family
ID=69269001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910980306.0A Active CN110738313B (zh) | 2019-10-15 | 2019-10-15 | 用于评估量化操作的方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110738313B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392954A (zh) * | 2020-03-13 | 2021-09-14 | 华为技术有限公司 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284829A (zh) * | 2018-09-25 | 2019-01-29 | 艾凯克斯(嘉兴)信息科技有限公司 | 基于评价网络的循环神经网络 |
US20190073582A1 (en) * | 2015-09-23 | 2019-03-07 | Yi Yang | Apparatus and method for local quantization for convolutional neural networks (cnns) |
CN109688406A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 使用机器学习的图像编码器及图像编码器的数据处理方法 |
CN109840589A (zh) * | 2019-01-25 | 2019-06-04 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种在fpga上运行卷积神经网络的方法、装置及系统 |
CN110309920A (zh) * | 2019-06-24 | 2019-10-08 | 北京计算机技术及应用研究所 | 基于混合递阶遗传算法的rbf神经网络的网络rbf评价方法 |
-
2019
- 2019-10-15 CN CN201910980306.0A patent/CN110738313B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190073582A1 (en) * | 2015-09-23 | 2019-03-07 | Yi Yang | Apparatus and method for local quantization for convolutional neural networks (cnns) |
CN109688406A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 使用机器学习的图像编码器及图像编码器的数据处理方法 |
CN109284829A (zh) * | 2018-09-25 | 2019-01-29 | 艾凯克斯(嘉兴)信息科技有限公司 | 基于评价网络的循环神经网络 |
CN109840589A (zh) * | 2019-01-25 | 2019-06-04 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种在fpga上运行卷积神经网络的方法、装置及系统 |
CN110309920A (zh) * | 2019-06-24 | 2019-10-08 | 北京计算机技术及应用研究所 | 基于混合递阶遗传算法的rbf神经网络的网络rbf评价方法 |
Non-Patent Citations (3)
Title |
---|
CHANG LIU,XIAOLIN WU,XIAO SHU: "Learning-Based Dequantization for Image Rsstoration Against Extremely Poor Illumination", 《ARXIV:1803.01532V2》 * |
乔辉,周雁舟,邵 楠: "基于学习向量量化神经网络的软件可靠性预测", 《计算机应用》 * |
魏新秀,夏哲雷: "基于神经网络的硬判决量化偏移量选择算法", 《信号处理在地球物理——浙江省信号处理学会2018年学术年会论文集》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392954A (zh) * | 2020-03-13 | 2021-09-14 | 华为技术有限公司 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110738313B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110852421B (zh) | 模型生成方法和装置 | |
US11551077B2 (en) | Statistics-aware weight quantization | |
CN110852438B (zh) | 模型生成方法和装置 | |
JP2022177220A (ja) | テキスト認識モデルの訓練方法、テキスト認識方法及び装置 | |
EP3686813A1 (en) | Deep neural network-based method and device for quantifying activation amount | |
US20200073913A1 (en) | Method and apparatus for processing data sequence | |
US11645122B2 (en) | Method, device, and computer program product for managing jobs in processing system | |
CN113889076B (zh) | 语音识别及编解码方法、装置、电子设备及存储介质 | |
CN111368551B (zh) | 一种确定事件主体的方法和装置 | |
CN112686031B (zh) | 文本特征提取模型的量化方法、装置、设备及存储介质 | |
CN114282670A (zh) | 神经网络模型的压缩方法、设备和存储介质 | |
CN110738313A (zh) | 用于评估量化操作的方法、装置、设备和介质 | |
CN113408704A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN112529189A (zh) | 模型压缩方法、装置、电子设备及存储介质 | |
CN116957043A (zh) | 模型量化方法、装置、设备及介质 | |
CN111209746A (zh) | 自然语言处理方法、装置、存储介质及电子设备 | |
Lee et al. | Finding optimal numerical format for sub-8-bit post-training quantization of vision transformers | |
CN112884144A (zh) | 网络量化方法及装置、电子设备和存储介质 | |
CN113361701A (zh) | 神经网络模型的量化方法和装置 | |
CN113361677A (zh) | 神经网络模型的量化方法和装置 | |
US20230128346A1 (en) | Method, device, and computer program product for task processing | |
CN118036755B (zh) | 大语言模型的量化方法及推理方法、装置、设备和介质 | |
CN113326942A (zh) | 模型推理方法及装置、电子设备和存储介质 | |
CN113705244B (zh) | 对抗文本样本生成方法、装置与存储介质 | |
EP3770825A1 (en) | Electronic device and control method thereof |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211018 Address after: 105 / F, building 1, No. 10, Shangdi 10th Street, Haidian District, Beijing 100085 Applicant after: Apollo Intelligent Technology (Beijing) Co.,Ltd. Address before: 100094 2 / F, baidu building, No.10 Shangdi 10th Street, Haidian District, Beijing Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |