CN110598838B - 统计感知权重量化 - Google Patents
统计感知权重量化 Download PDFInfo
- Publication number
- CN110598838B CN110598838B CN201910509429.6A CN201910509429A CN110598838B CN 110598838 B CN110598838 B CN 110598838B CN 201910509429 A CN201910509429 A CN 201910509429A CN 110598838 B CN110598838 B CN 110598838B
- Authority
- CN
- China
- Prior art keywords
- quantization
- weights
- computer
- weight
- quantizer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 346
- 230000006870 function Effects 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012549 training Methods 0.000 claims abstract description 63
- 238000013135 deep learning Methods 0.000 claims abstract description 21
- 238000003860 storage Methods 0.000 claims description 29
- 238000005259 measurement Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 8
- 238000009826 distribution Methods 0.000 description 72
- 238000010586 diagram Methods 0.000 description 38
- 238000012545 processing Methods 0.000 description 19
- 238000013136 deep learning model Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 10
- 238000004088 simulation Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 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/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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
呈现了用于统计感知权重量化的技术。为了促进降低权重的比特精度,对于权重集,量化器管理组件可以根据权重的权重值的平方的平均值和该权重值的绝对值的平均值的线性或非线性函数来估计量化标度值以应用于权重,其中量化标度值被确定为具有比与其它量化标度值相关联的所有或至少几乎所有其它量化误差更小的量化误差。量化器组件应用量化标度值以对称和/或均匀地量化权重集的层的权重,从而生成量化的权重,权重使用舍入来量化。相应的量化的权重可以用于促进深度学习系统的训练和推理。
Description
技术领域
本主题公开涉及权重量化。
背景技术
本主题公开涉及权重量化。
发明内容
以下呈现了发明内容以提供对所公开主题的一个或多个实施例的基本理解。该发明内容不意图标识关键或关键元素,或描绘特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化的形式呈现概念,作为稍后呈现的更详细描述的序言。在本文描述的一个或多个实施例中,提供了能够促进形成包括螺旋导电结构的电子设备的系统、设备、结构、计算机实现的方法、装置和/或计算机程序产品。
根据一个实施例,计算机实现的方法可以包括,对于权重集,由可操作地耦合到处理器的系统根据比特精度级别确定量化标度,其中该量化标度包括量化标度值。计算机实现的方法还可以包括由系统根据与量化误差相关的定义的量化标准来确定降低权重集的量化误差的量化标度值。计算机实现的方法还可以包括由系统基于量化标度值量化权重集的层的至少一部分的权重,以生成量化的权重。
另一实施例涉及一种系统,包括存储计算机可执行组件的存储器;以及执行计算机可执行组件的、可操作地耦合到存储器的处理器。计算机可执行组件可以包括量化器管理组件,对于权重集,该量化器管理组件:基于量化级别的数量确定量化标度,其中量化标度包括量化标度值;以及基于与量化误差相关的定义的量化标准来确定降低权重集的权重的量化误差的量化标度值。计算机可执行组件还可以包括量化器组件,该量化器组件基于量化标度值量化权重集的层的至少一部分的权重,以生成量化的权重。
另一实施例涉及一种促进量化权重的计算机程序产品,该计算机程序产品包括其中包含程序指令的计算机可读存储介质。程序指令可由处理器执行,以使处理器执行:对于权重集,根据比特精度级别确定量化标度,其中该量化标度包括量化标度值。程序指令还可由处理器执行,以使处理器根据与量化误差相关的定义的量化标准确定量化标度值中的、降低权重集的量化误差的量化标度值。程序指令还可由处理器执行,以使处理器基于量化标度值量化权重集中的层的至少一部分的权重,以生成量化的权重。
从下面结合附图阅读的对其说明性实施例的具体实现方式中,这些和其它特征将变得显而易见。
附图说明
图1示出了根据所公开主题的各方面和实施例的示例非限制性系统的框图,该示例非限制性系统可以采用统计感知权重量化来促进降低权重的量化误差。
图2描绘了根据所公开主题的各方面和实施例的示例非限制性权重分布的图示。
图3示出了根据所公开主题的各方面和实施例的示例非限制性量化器管理组件的框图。
图4描绘了根据所公开主题的各方面和实施例的、模拟结果的示例图的图示,该模拟结果可以促进凭经验确定可以用于估计各种类型的权重分布的量化标度值的函数(例如,统计函数)或等式。
图5示出了根据所公开主题的各方面和实施例的第一示例权重量化的实验结果的示例图的图示。
图6描绘了根据所公开主题的各方面和实施例的第二示例权重量化的实验结果的示例图的图示。
图7示出了根据所公开主题的各方面和实施例的第三示例权重量化的实验结果的示例图的图示。
图8示出了根据所公开主题的各方面和实施例的示例非限制性方法的流程图,该方法用于确定用于量化权重的量化标度值,以促进降低(例如,最小化或至少实质上最小化)与量化权重相关的量化误差。
图9描绘了根据所公开主题的各方面和实施例的另一示例非限制性方法的流程图,该方法用于确定用于量化权重的量化标度值,以促进降低(例如,最小化或至少实质上最小化)与量化权重相关的量化误差。
图10示出了其中可以促进本文描述的一个或多个实施例的示例非限制性操作环境的框图。
具体实施方式
以下具体实施方式仅仅是说明性的,并不意图限制实施例和/或实施例的应用或使用。此外,不意图受前面背景技术或发明内容部分或具体实施方式部分中呈现的任何表达或暗示信息的约束。
现在参考附图描述一个或多个实施例,其中贯穿全文,相同的参考编号用于指代相同的元素。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对一个或多个实施例的更彻底的理解。然而,很明显,在各种情况下,可以在没有这些具体细节的情况下实现一个或多个实施例。
对于某些类型的应用(例如,计算密集型应用),诸如,例如深度学习应用,可能期望采用权重量化来量化给定模型(例如,深度学习模型)的权重,以促进深度学习系统的训练和推理。降低权重的比特精度可以有利于深度学习系统的训练和推理,因为它可以降低用于在深度学习网络(例如,深度神经网络)的层(例如,输入网络层、中间网络层、输出网络层)之间传递数据的存储器占用和通信开销,并且它可以降低计算复杂度以移除复杂的乘法器。
然而,用低比特权重训练深度学习系统可能具有挑战性。量化误差如果处理不好,可能会导致精度严重且不可接受的退化。一些解决方案也不可扩展。此外,对于小数据集,一些方案可以相对良好地工作;但是,对于大型数据集(诸如,例如ImageNet),它们不会足够良好的工作。此外,将量化方案扩展到多比特而不是二进制并不是直截了当的。其它解决方案会由于量化而导致精度严重退化,并且在训练和推理期间会遇到不期望的昂贵量化开销。
本文的各种实施例涉及用于统计感知权重量化的技术。所公开的主题可以促进降低与深度学习系统的训练和推理相关的权重的比特精度。所公开的主题可以包括量化器管理组件,对于权重集中的每个权重,该量化器管理组件可以根据权重的权重值的平方的平均值和该权重值的绝对值的平均值的线性或非线性函数来估计量化标度值以应用于权重。量化器管理组件可以估计、确定和/或选择具有比与其它量化标度值相关联的所有或至少几乎所有其它量化误差更小的量化误差的量化标度值。
量化器管理组件和相关联的量化器组件可以对称且均匀地设置量化。量化器组件可以应用量化标度值(例如,估计的量化标度值(估计的))以对称地和/或均匀地量化权重集中的层的权重,从而生成量化的权重,其中使用最接近舍入或另一期望的舍入技术来量化权重。相应的量化的权重可以用于促进深度学习系统(例如,深度学习神经网络)的训练和/或推理。
关于权重集的每个权重,确定量化标度值(例如,估计的量化标度值)并利用该量化标度值来量化权重以生成量化的权重可以降低用于在深度学习系统的层之间传递数据的存储器使用量和/或通信开销量。
现在将针对附图描述所公开主题的这些和其它方面和实施例。
图1示出了根据所公开主题的各方面和实施例的示例非限制性系统100的框图,该系统100可以采用统计感知权重量化来促进降低(例如,最小化或至少实质上最小化)权重的量化误差。如本文更全面描述的,系统100可以用于确定期望的量化标度值(例如,估计的量化标度值),该量化标度值可应用于权重以期望地量化权重,从而最小化或至少实质上最小化权重的量化误差(例如,关于量化权重)。量化的权重可以用于促进深度学习系统(例如,深度学习神经网络)或其它计算密集型应用或系统的训练或推理。
系统100可以包括可以与数据存储104、和量化器组件106和量化器管理组件108相关联的处理器组件102。处理器组件102可以与其它组件(例如,数据存储104、量化器组件106、量化器管理组件108……)结合工作,以促进执行系统100的各种功能。处理器组件102可以采用可以处理诸如与训练模型(例如,深度学习模型)相关的信息的数据的一个或多个处理器、微处理器或控制器,使用模型来确定或生成推理、应用(例如,深度学习或训练应用)、权重分布、与权重分布相关的统计数据,确定或估计与量化权重相关地使用的期望的量化标度值、与确定或估计该期望的量化标度值相关联的系数或函数、与训练模型或使用模型以用于推理相关的参数、与量化权重相关的参数、定义的量化标准、算法(例如,量化算法、用于确定或估计量化标度值的(多个)算法、数字舍入算法……)、数据业务流(例如,组件或设备之间和/或跨(多个)网络)、协议、策略、接口、工具和/或其它信息,以促进如本文更全面公开的系统100的操作,以及控制系统100的组件之间的数据流,控制系统100和与系统100相关联的其它组件或设备(例如,模型(例如,深度学习模型)、应用、计算机、计算机网络设备、数据源……)之间的数据流。
根据各种实施例,处理器组件102可以包括一个或多个处理器组件、较低精度(例如,16比特)计算引擎(较低精度浮点单元(floating-point unit,FPU))、较高精度(例如,32比特、64比特……)计算引擎(较高精度FPU)、图形处理单元(GPU)、加速器、现场可编程门阵列(field-programmable gate array,FPGA)和/或其它处理单元,以执行或促进对数据的操作,包括对数据(例如,数字数据)执行计算。
数据存储器104可以存储数据结构(例如,用户数据、元数据)、(多个)代码结构(例如,模块、对象、散列、类、过程)或指令、与训练模型(例如,深度学习模型)相关的信息,使用模型来确定或生成推理、应用(例如,深度学习或训练应用)、权重分布、与权重分布相关的统计,确定或估计与量化权重相关地使用的期望的量化标度值、与确定或估计该期望的量化标度值相关联的系数或函数、与训练模型或使用模型以用于推理相关的参数、与量化权重相关的参数、定义的量化标准、算法(例如,量化算法、用于确定或估计量化标度值的(多个)算法、数字舍入算法……)、数据业务流(例如,组件或设备之间和/或跨(多个)网络)、协议、策略、接口、工具和/或其它信息,以促进控制与系统100相关联的操作。在一个方面,处理器组件102可以在功能上耦合(例如,通过存储器总线或其它总线)到数据存储104,以便存储和检索操作所期望的信息和/或以便至少部分地赋予量化器组件106、量化器管理组件108和/或系统100的其它组件功能,和/或实质上系统100的任何其它操作方面。
量化器组件106和量化器管理组件108可以彼此相关联(例如,通信地和/或功能地连接到彼此),以及经由一条或多条总线与处理器组件102和数据存储104相关联。如本文更全面描述的,量化器组件106可以根据定义的量化标准,至少部分地基于相应的量化标度值来量化权重集的相应权重,来生成相应的量化的权重。如本文更全面描述的,量化器管理组件108可以至少部分基于与权重集的相应的权重子集的权重分布相关联的统计信息和/或统计函数来确定或估计相应的量化标度值。
量化的权重可以用于促进训练模型或系统110(例如,深度学习模型或系统),或者至少部分基于训练的模型或系统110产生推理或其它确定。例如,量化器管理组件108和/或量化器组件106可以应用或促进将量化的权重应用到模型或系统110以训练模型或系统110。作为另一示例,模型或系统110可以生成并呈现(例如,作为数据输出)推理或其它确定,该推理或其它确定可以至少部分基于模型或系统110的训练来确定,其中模型或系统110的训练可以至少部分基于用于训练模型或系统110的量化的权重。模型或系统110可以涉及例如深度学习、机器训练、认知计算、人工智能、神经网络和/或其它计算密集型任务、问题或应用。作为一些非限制性示例,模型或系统110可以涉及或用于图像识别以识别或标识(多个)图像或视频中的对象(例如,人、地点和/或事物)、语音或音频识别以识别或标识音频内容(例如,语音、音频广播、歌曲和/或音频节目)中的语音的单词和/或标识,或者文本识别以识别或标识文本数据(例如,单词、字母数字字符)中的文本内容(例如,书籍、手稿、电子邮件或文档集合),和/或涉及或用于图像、语音或音频和/或文本生成。
在一些实施例中,量化器管理组件108可以确定量化是要对称和/或均匀地设置,还是要既不对称也不均匀地设置。例如,量化器管理组件108可以至少部分基于用户输入信息、与权重量化相关联的应用或模型的类型(例如,深度学习应用或模型的特定类型)、要量化的权重的权重分布的类型和/或另一类型的量化标准来确定量化是要对称和/或均匀地设置,还是要既不对称也不均匀地设置。
关于用户输入信息,用户可以例如经由接口(例如键盘、触摸屏、鼠标、触控板……)输入信息以选择量化是要对称和/或均匀地设置,还是要既不对称也不均匀地设置。响应于用户输入信息,量化器管理组件108可以将量化设置为对称和/或均匀,或者既不对称也不均匀。要量化的权重的权重分布类型可以包括或涉及例如高斯、均匀、拉普拉斯、逻辑、三角形、冯米塞斯或其它类型的权重分布。
参考图2(连同图1),图2描绘了根据所公开主题的各方面和实施例的示例非限制性权重分布200的图示。示例权重分布200可以示出对于相应权重值的出现(occurrence)的相应级别,其中出现沿y轴绘制,权重值沿x轴绘制。该示例权重分布200用于等于7的仓数(nbin)。可以将期望的或不同的仓数应用于权重分布,其中可以根据定义的量化标准,至少部分地基于(例如,根据)期望的比特精度级别或量化级别来确定该仓数。
从此示例权重分布200中可以看出,量化已经被设置(例如,由量化器管理组件108)为对称和均匀的。例如,关于权重分布200中的量化标度αw202,可以观察到权重分布200中存在相对应的(例如镜像的)-αw 204。因此,量化被设置为对称的。还可以观察到,在权重分布200中量化已经被设置为均匀的,因为各个仓点(例如,仓点206、208和210)之间的空间是均匀的(例如,相邻仓点之间有相同量的空间)。
量化器管理组件108还可以确定是否要使用量化的权重(例如,量化的权重值)的最接近舍入或用于量化的权重的舍入的另一期望的舍入技术和/或偏移值(例如,正或负偏置或偏移值)来量化权重,其中该偏移值可以被应用于中间量化的权重以促进生成量化的权重(例如,在将中间量化的权重和偏移值的组合值舍入到最接近量化的值之后)。量化器管理组件108可以至少部分地基于用户输入信息(例如,选择最接近舍入和/或偏移值的来自用户的输入信息)、与权重量化相关联的应用或模型的类型、要量化的权重的权重分布的类型和/或另一类型的量化标准,来做出关于是否使用最接近舍入或用于量化的权重的舍入的另一期望的舍入技术和/或偏移值的确定。
关于最接近舍入,例如,在权重分布200中,如果量化的值是-1.6,如果量化器管理组件108采用最接近舍入,则量化的值可以舍入到最接近的数字(例如,最接近的整数),在该示例中可以是-2。关于偏移,例如,在权重分布200中,如果量化的值是-1.6,并且存在+0.2的偏移,则该偏移可以被应用于量化的值以产生偏移量化的值-1.4,如果使用最接近舍入,该偏移量化的值可以舍入到-1;可替换地,如果偏移为-0.2,则偏移可以被应用于量化的值以产生偏移量化的值-1.8,如果使用最接近舍入,则可以将偏移量化的值舍入到-2。
应当领会和理解,虽然所公开主题的实施例描述了使用最接近舍入技术来执行数字(例如,量化的权重值)的舍入,但是所公开主题不限于此。根据各种实施例,量化器管理组件108和/或量化器组件106可以根据需要采用任何或至少几乎任何其它舍入技术来执行数字(例如,量化的权重值)的舍入,其中这种其它舍入技术可以包括,例如,可以用于将数字舍入到定义的舍入数字(例如,下一个更低的整数或其它定义的更低的数字)的向下舍入(rounding down)技术,可以用于将数字舍入到定义的舍入数字(例如,下一个更高的整数或其它定义的更高的数字)的向上舍入(rounding up)技术、可以用于将数字向零舍入到定义的舍入数字或将数字截断到定义的舍入或截断数字的向零舍入或截断技术、可以用于以随机或伪随机方式将数字舍入到定义的舍入数字的基于随机的舍入技术(例如,随机舍入技术)或其它期望的舍入技术。
量化器管理组件108还可以至少部分基于比特精度级别来确定量化标度αw(例如,αw 202),以用于量化至少一个权重子集的权重。例如,权重子集可以是权重集的权重层的全部或一部分。用于量化的仓数(例如,仓的数量)可以对应于比特精度数(例如,至少部分基于比特精度数来确定用于量化的仓数),其中该比特精度数可以对应于量化级别数(例如,2个级别、3个级别、4个级别、8个级别、16个级别、32个级别)(例如,至少部分基于量化级别数来确定比特精度数)。量化器管理组件108可以至少部分基于用户输入信息(例如,选择比特精度级别的来自用户的输入信息)、与权重量化相关联的应用或模型的类型、要量化的权重的权重分布的类型和/或另一类型的量化标准来确定比特精度级别。在示例权重分布200中,比特精度级别可以(例如,通过量化器管理组件108)设置或选择为3比特,这可以对应于等于7个仓的nbin。
关于量化标度,可以有各个量化标度值,对于权重集,该各个量化标度值可以与权重的各个量化误差相关联。对于每个权重集,可以有可以最小化权重的量化误差的各个量化值的量化标度值,其中这种量化标度值可以定义为
对于权重集(例如,对于权重集的每个部分),量化器管理组件108可以根据定义的量化标准,至少部分地基于一个或多个统计函数有效地估计或确定各个量化标度值中可以期望地降低(例如,显著地降低或最小化)权重的量化误差的期望的(例如,合适的或最优的)量化标度值其中一个或多个统计函数可以至少部分地基于与权重集或权重集的一部分相关联的统计数据(例如,权重分布的权重值)。例如,量化器管理组件108可以分析地或统计地确定或估计关于权重分布的统计特性的、期望的(例如,增强的、最优的或合适的)权重(例如,诸如非量化的权重的自由参数)的量化的值之间的关系,以期望地(例如,实质上)降低、减少或最小化权重的量化误差。关于模型或系统110(例如,深度学习模型或系统)的训练,降低或最小化量化误差可以降低或最小化由于权重的量化而导致的精度退化。在一些实施例中,量化器管理组件108可以根据第一统计函数E(w2)和诸如E(|w|)的第二统计函数有效地估计或确定各个量化标度值中的期望的量化标度值/>以期望地降低权重的量化误差,其中E(w2)可以是权重集或其一部分的权重分布的权重值(w)的平方值的期望值(例如,平均(mean)值或平均(average)值),并且其中E(|w|)可以是权重集或其一部分的权重分布的权重值的绝对值的期望值(例如,平均值)。例如,对于权重集或其一部分,量化器管理组件108可以根据第一统计函数/>和诸如E(|w|)的第二统计函数来估计或确定各个量化标度值中的量化标度值/>
在其它实施例中,对于权重集或其一部分,量化器管理组件108可以至少部分地基于一种或多种其它类型的统计函数(诸如例如标准偏差函数或方差函数)来估计或确定各个量化标度值中的量化标度值其中这种标准偏差函数或方差函数可以至少部分地基于与权重集或其一部分相关联的统计数据来分别(例如,由量化器管理组件108)确定。
在一些实施例中,关于权重子集(例如,权重集的权重层的全部或一部分),量化器管理组件108可以根据定义的量化标准,至少部分地基于与量化权重相关和/或与权重子集相关联的权重分布相关的统计数据(例如,测量数据)、第一统计函数的统计函数的类型和第二统计函数的统计函数的类型,来确定与第一统计函数相关联的第一系数值和与第二统计函数相关联的第二系数值。
例如,如果第一统计函数是权重子集的权重分布的权重的权重值的平方值的期望值(例如,平均值)的平方根,则量化器管理组件108可以将第一系数值确定为特定值。然而,如果第一统计函数涉及与权重子集的权重分布的权重的权重值相关联的标准偏差值,则量化器管理组件108可以将第一系数值确定为与该特定值不同的值。
作为另一示例,如果第二统计函数是权重子集的权重分布的权重的权重值的绝对值的期望值(例如,平均值),则量化器管理组件108可以将第二系数值确定为指定值。然而,如果第二统计函数涉及与权重子集的权重分布的权重的权重值相关联的方差函数值,则量化器管理组件108可以将第二系数值确定为与该指定值不同的值。
统计数据(例如,测量数据)可以包括与权重子集的权重分布相关的数据和/或与量化权重相关的经验数据,第一和第二系数值可以(例如,通过量化器管理组件108或另一组件)从这些数据中导出或确定。例如,统计数据可以是在训练深度学习模型或系统之前和/或在训练深度学习模型或系统期间获得的数据。
与估计的量化标度值相关联的降低的量化误差可以实质上接近于与量化权重相关的最小量化误差,其中该最小量化误差与理论量化标度值相关联,该理论量化标度值当在权重子集的权重的量化期间被使用时,可以最小化量化误差。因此,根据定义的量化标准,估计的量化标度值可以与理论量化标度值近似相同(例如,可以在理论量化标度值的定义的值距离(value distance)内)。
量化器组件106可以将估计的量化标度值应用于权重子集(例如,权重层或权重层的一部分)的权重,以生成相对应的量化的权重。例如,量化器组件106可以将期望的估计的量化标度值应用于每个权重子集(例如,每个权重层或每个权重层的每个部分)的权重,以量化模型或系统110(例如,深度学习模型或系统)的每个训练小批次(minibatch)中的每个权重层,从而生成相对应的量化的权重。如本文所公开的,与量化权重子集的权重相关联的量化误差可以是期望的较低的量化误差量,该期望较低的量化误差量可以实质上接近于与理论量化标度值相关联的最小量化误差,并且可以低于与量化标度的其它量化标度值相关联的所有或至少几乎所有其它量化误差。
关于模型或系统110(例如,深度学习模型或系统)的训练和模型或系统110的小批次训练,在深度学习的上下文中,当执行模型或系统的训练时,例如,关于图像分类,数据集中的每个图像可以被发送到模型或系统110以训练该模型或系统110。当数据集的每个图像已经被发送到模型或系统110时,这可以被认为是一个历元(epoch)。历元可以由许多小批次组成,其中每个小批次可以包括1、2、4、8、256,或者几乎任何其它期望数量的图像,例如,在数据集包括图像的情况下。例如,如果数据集包括用于模型或系统110的训练的1000幅图像,则每当该1000幅图像已经被发送到模型或系统110以用于训练时,这可以是历元,其中该1000幅图像可以根据需要被分割。例如,可以有可以一次发送以训练模型或系统110的、1000幅图像中的4幅图像的小批次,其中可以有250个小批次,每个小批次可以包括1000幅图像中的4幅图像,并且可以用250个小批次来构成历元。权重可以在每个小批次之后被更新,其中,例如,当数据的子集(例如,4幅图像)被发送以用于模型或系统110的训练时,可以评估根据用于训练模型或系统110的数据的子集的发送(例如,应用)而生成的输出,并且可以基于评估来确定或计算统计,然后可以相应地基于该统计来更新权重。
关于与训练模型或系统110(例如,深度学习模型或系统)相关联的数据集,量化器管理组件108可以根据定义的量化标准,至少部分基于一个或多个相应的统计函数,为相应的权重子集(例如,权重集的相应权重层或相应权重层的相应部分)确定相应的估计的量化标度值,其中该一个或多个相应的统计函数可以至少部分地基于与相应的权重子集相关联或相关的相应统计数据。这可以由量化器管理组件108执行,例如,直到已经为相应的权重子集的全部或期望部分确定了估计的量化标度值的全部或期望部分。根据定义的量化标准,部分取决于与相应的权重子集的相应权重分布相关联的相应统计,一个权重子集的估计的量化标度值可以与另一权重子集的估计的量化标度值不同或相同。量化器组件106可以将相应的估计的量化标度值应用于相应的权重子集,以生成相应的权重子集的相应的量化的权重。
在一些实施例中,例如,在模型或系统110的训练期间,量化器管理组件108可以确定初始估计的量化标度值以应用于权重子集。量化器管理组件108可以监视模型或系统110的训练,包括监视模型或系统110的训练和/或使用初始估计的量化标度值量化权重的性能。至少部分基于评估训练模型或系统110和/或使用初始估计的量化标度值量化权重的性能的结果,量化器管理组件108可以根据定义的量化标准确定初始估计的量化标度值是否合适或者是否应该将其更新为不同的(例如,改进的或精细的)估计的量化标度值。例如,量化器管理组件108可以确定要与一个或多个统计函数一起使用的一个或多个不同的系数,可以至少部分地基于该一个或多个不同的系数确定不同的估计的量化标度值以与量化权重相关地来应用,并且可以对新的(例如,不同的)估计的量化标度值执行更新,其中该新的估计的量化标度值可以由量化器组件106用来量化权重。量化器管理组件108和量化器组件106可以根据定义的量化标准,在模型或系统110的训练期间确定或采用零个、一个或多于一个更新的估计的量化标度值。
量化器管理组件108至少部分基于统计数据(例如,与与权重子集相关联的权重分布相关联的统计数据)和确定的统计函数来确定或估计期望的量化标度值以应用于权重集的权重子集,从而期望地降低(例如,实质上降低或最小化)权重的量化误差的期望质量之一可以是,量化器管理组件108可以在单次确定中确定这种期望的量化标度值,而不需要反复试错,不需要使用蛮力,也不需要执行多次迭代以便确定这种期望的量化标度值。这可以使得期望的量化标度值的确定或估计成为更有效的过程,并且可以使得训练系统110的模型(例如,深度学习模型或系统)的过程更有效(例如,更好的性能、更少的时间消耗以及用于量化和训练的更少的开销)。
参考图3,图3呈现了根据所公开主题的各方面和实施例的示例量化器管理组件300的框图。量化器管理组件300可以包括量化设置组件302、量化级别组件304、量化标度组件306和统计确定组件308。
量化设置组件302可以用于设置或选择与量化相关的各种参数。例如,量化设置组件302可以至少部分地基于用户输入信息、与权重量化相关联的应用或模型的类型(例如,深度学习应用或模型的类型)、要量化的权重的权重分布的类型(例如,高斯、均匀、拉普拉斯……)和/或另一类型的量化标准来将量化设置或选择为对称和/或均匀的,或者既不对称也不均匀的。量化设置组件302还可以至少部分基于用户输入信息、与权重量化相关联的应用或模型的类型、要量化的权重的权重分布的类型和/或另一量化标准,来设置或选择与值的舍入和/或值偏移相关的参数。例如,量化设置组件302可以设置或选择舍入参数以在权重的量化期间采用最接近舍入或另一期望的舍入技术,和/或可以设置或选择偏移参数以将偏移值(例如,正或负偏置)应用于中间量化的值以产生量化的值(例如,当采用最接近舍入或其它期望的舍入技术时,可以使用最接近舍入或另一期望的舍入技术将其舍入到最终量化的值)。
量化级别组件304可以根据定义的量化标准,确定或选择量化级别的期望数量,以应用于数据集的权重集或其一部分。例如,量化级别组件304可以至少部分地基于用户输入信息、与权重量化相关联的应用或模型的类型、要量化的权重的权重分布的类型和/或另一类型的量化标准,来确定或选择应用于数据集的权重集或其一部分的量化级别的期望数量。量化级别的数量可以是,例如,2、3、4、8、16、32或者量化级别的另一期望数量。
量化标度组件306可以用于至少部分基于权重集或其一部分的比特精度级别或量化级别来确定期望的(例如,合适的或最优的)量化标度。如本文更全面描述的,对于与数据集相关联的权重集的给定权重子集,结合模型或系统(例如,深度学习模型或系统)的训练或与模型或系统相关联的(多个)推理,量化标度组件306还可以根据定义的量化标准,至少部分基于一个或多个统计函数,来确定或估计与量化标度相关联的量化标度值中的期望的量化标度值(例如,合适的或最优的)。如本文更全面描述的,期望的量化标度值可以被用来期望地降低(例如,显著地降低或最小化)权重的量化误差。对于给定的权重子集,在模型或系统(例如,深度学习模型或系统)的训练期间、在另一期望时间处、或在(例如,响应于)特定的一组环境或条件下,量化标度组件306还可以根据定义的量化标准来更新(例如,自动或动态地更新)量化标度值、用于确定量化标度值的系数值、用于促进确定或估计期望的量化标度值的统计函数、和/或与确定或估计期望的量化标度值相关联的其它参数。
统计确定组件308可以用于根据定义的量化标准,来确定或计算关于与数据集相关联的权重集的权重分布的统计(例如,统计数据和/或统计函数),其中该数据集与模型或系统相关(例如,与深度学习模型或系统的训练相关)。例如,关于权重子集(例如,权重集的权重层或权重层的一部分),统计确定组件308可以分析与权重子集相关联的权重分布。至少部分基于分析结果,统计确定组件308可以确定或计算与权重分布相关的统计,包括确定将要用于确定相对于权重子集使用的期望的量化标度值的一个或多个统计函数,确定与该一个或多个统计函数相关联的系数,确定或估计关于权重分布的统计特性的、未量化的权重值的期望的(例如,合适的或最优的,或至少实质上最优的)量化的权重值之间的关系。量化标度组件306可以利用(例如,使用、分析和/或评估)与权重分布相关的统计来确定权重子集的期望的量化标度值。
参考图4,图4描绘了根据所公开主题的各方面和实施例的、模拟结果的示例图400的图示,该模拟结果可以促进凭经验确定可以用于估计各种类型的权重分布的量化标度值的函数(例如,统计函数)或等式。图400可以示出相应量化级别的相应模拟结果。对于不同类型的权重分布(包括,高斯、均匀、拉普拉斯、逻辑、三角形和冯米塞斯)的不同量化级别(例如,2个、3个、4个、8个、16个和32个量化级别),图400分别相对于(例如,versus)沿x轴的在y轴上绘制/>
如在图400中可以观察到的,给定可以与量化级别相对应的比特精度nbin,可以(例如,由量化器管理组件108或另一组件)被导出为/>和E(|w|)的线性函数。量化器管理组件108和量化器组件106可以利用经验函数来确定或估计期望的量化标度值,以在模型或系统110(例如,深度学习模型或系统)的训练或者关于模型或系统110产生推论期间促进权重的量化。
图400可以包括图410,该图410可以包括关于各种类型的权重分布(例如,高斯(411)、均匀(412)、拉普拉斯(413)、逻辑(414)、三角形(415)和冯米塞斯(416))的量化级别2的模拟结果。根据与图410中呈现的各种类型的权重分布相关的数据,可以(例如,通过量化器管理组件108或另一组件)将用于量化级别2的经验函数导出为如参考编号417所示。
图400还可以包括图420,该图420可以包括关于各种类型的权重分布(例如,高斯(421)、均匀(422)、拉普拉斯(423)、逻辑(424)、三角形(425)和冯米塞斯(426))的量化级别3的模拟结果。根据与图420中呈现的各种类型的权重分布相关的数据,可以(例如,通过量化器管理组件108或另一组件)将关于量化级别3的经验函数导出为 如参考编号427所示。该/>可以被视为包括基于/>并具有第一系数2.587的第一统计函数、和基于E(|w|)并具有第二系数-1.693的第二统计函数。
图400还可以包括图430,该图430可以包括关于各种类型的权重分布(例如,高斯(431)、均匀(432)、拉普拉斯(433)、逻辑(434)、三角形(435)和冯米塞斯(436))的量化级别4的模拟结果。至少部分地基于与图430中呈现的各种类型的权重分布相关的数据,可以(例如,通过量化器管理组件108或另一组件)将关于量化级别4的经验函数导出为 如参考编号437所示。该/>可以被视为包括基于并具有第一系数3.212的第一统计函数、和基于E(|w|并具有第二系数-2.178的第二统计函数。
图400还可以包括图440,该图440可以包括关于各种类型的权重分布(例如,高斯(441)、均匀(442)、拉普拉斯(443)、逻辑(444)、三角形(445)和冯米塞斯(446))的量化级别8的模拟结果。至少部分地基于与图440中呈现的各种类型的权重分布相关的数据,可以(例如,通过量化器管理组件108或另一组件)将关于量化级别8的经验函数导出为 如参考编号447所示。该/>可以被视为包括基于/>并具有第一系数7.509的第一统计函数、和基于E(|w|)并具有第二系数-6.892的第二统计函数。
图400还可以包括图450,该图450可以包括关于各种类型的权重分布(例如,高斯(451)、均匀(452)、拉普拉斯(453)、逻辑(454))、三角形(455)和冯米塞斯(456))的量化级别16的模拟结果。至少部分地基于与图450中呈现的各种类型的权重分布相关的数据,可以(例如,通过量化器管理组件108或另一组件)将量化级别16的经验函数导出为 如参考编号457所示。该/>可以被视为包括基于/>并具有第一系数12.68的第一统计函数、和基于E(|w|)并具有第二系数-12.80的第二统计函数。
图400还可以包括图460,该图460可以包括关于各种类型的权重分布(例如,高斯(461)、均匀(462)、拉普拉斯(463)、逻辑(464)、三角形(465)和冯米塞斯(466))的量化级别32的模拟结果。至少部分地基于与图460中呈现的各种类型的权重分布相关的数据,可以(例如,通过量化器管理组件108或另一组件)将量化级别32的经验函数导出为 如参考编号457所示。该可以被视为包括基于/>并具有第一系数17.74的第一统计函数、和基于E(|w|)并具有第二系数-18.64的第二统计函数。
应当领会和理解,对于图400中的相应量化级别,用于估计的相应等式以及与相应等式相关联的相应统计函数和相应系数是示例等式、示例统计函数和示例系数,并且可以(例如,通过量化器管理组件108或另一组件)至少部分地基于特定权重分布、特定类型的权重分布和/或其它因素来导出用于估计/>的不同等式、不同统计函数和/或不同系数。
图5-图7示出了相应实验结果,其比较了各个类型的实现方式(例如,DoReFa网络实现方式、用于确定或估计用于权重量化的期望的量化标度值的所公开的技术、以及全精度实现方式)的相应权重量化的训练误差和测试误差。用于实验的权重量化包括以下内容:
2b:
3b:和
4b:
实验涉及CIFAR10ResNet。全精度中有2-4比特权重量化、激活和梯度。所公开的主题(例如,用于确定或估计用于权重量化的期望的量化标度值的所公开的技术)可以与具有全精度中的相同比特精度的权重量化、激活和梯度的DoReFa网络实现方式进行比较。
对于DoReFa实现方式、所公开的技术(也称为提出的)和全精度(全精度)实现方式,针对2b权重、3b权重和4b权重的相应训练误差和测试误差的实验结果在如下表1中呈现:
表1
图5示出了根据所公开主题的各方面和实施例的第一示例(例如,2b)权重量化的实验结果的示例图500的图示。图500包括图502,针对使用 的示例2b权重量化,该图502沿x轴在y轴上绘制了关于训练历元的训练误差。如可以观察到的,图502呈现了全精度的实验训练误差结果504、所公开的(例如,提出的)技术的实验训练误差结果506以及DoReFa网络实现方式的实验训练误差结果508。
图500还包括图510,针对使用的示例2b权重量化,该图510沿x轴在y轴上绘制了关于训练历元的验证误差(例如,测试误差)。如在图510中可以看出,图510呈现了全精度的实验验证误差结果512、所公开(例如,提出的)技术的实验验证误差结果514以及DoReFa网络实现方式的实验验证误差结果516。
关于图6,图6描绘了根据所公开主题的各方面和实施例的第二示例(例如,3b)权重量化的实验结果的示例图600的图示。图600可以包括图602,针对使用的示例3b权重量化,该图602沿x轴在y轴上绘制关于训练历元的训练误差。如从图602中可以看出,图602呈现了全精度的实验训练误差结果604、所公开的(例如,提出的)技术的实验训练误差结果606以及DoReFa网络实现方式的实验训练误差结果608。
图600还包括图610,针对使用的示例3b权重量化,该图610沿x轴在y轴上绘制了关于训练历元的验证误差(例如,测试误差)。图610呈现了全精度的实验验证误差结果612、所公开的(例如,提出的)技术的实验验证误差结果614以及DoReFa网络实现方式的实验验证误差结果616。
简要转向图7,图7示出了根据所公开主题的各方面和实施例的第三示例(例如,4b)权重量化的实验结果的示例图700的图示。图700可以包括图702,针对使用的示例4b权重量化,该图702沿x轴在y轴上绘制关于训练历元的训练误差。如可以观察到的,图702呈现了全精度的实验训练误差结果704、所公开的(例如,提出的)技术的实验训练误差结果706以及DoReFa网络实现方式的实验训练误差结果708。
图700还包括图710,针对使用的示例4b权重量化,该图710沿x轴在y轴上绘制了关于训练历元的验证误差(例如,测试误差)。如可以看到的,图710呈现了全精度的实验验证误差结果712、所公开的(例如,提出的)技术的实验验证误差结果714、以及DoReFa网络实现方式的实验验证误差结果716。
从包括相应实验结果的图5-图7中的相应图中可以观察到,与DoReFa实现方式和全精度实现方式相比,本文公开的用于估计期望的(例如,最优的或合适的)量化标度值以用于促进量化数据集的权重的技术可以非常有利地执行。此外,本文公开的用于估计期望的量化标度值的技术可以实现与量化权重相关的期望的低量化误差,同时还使能更有效地量化数据集的权重,因为用于量化权重所花费的时间和资源量可以降低。
图8示出了根据所公开主题的各方面和实施例的示例非限制性方法800的流程图,该方法用于确定用于量化权重的量化标度值,以促进降低(例如,最小化或至少实质上最小化)与量化权重相关的量化误差。方法800可以由例如处理器组件、量化器管理组件和/或量化器组件来执行。为了简洁起见,本文描述的其它实施例中采用的类似元件的重复描述被省略或可以被省略。
在802处,对于权重集,可以根据比特精度级别来确定量化标度,其中该量化标度可以包括量化标度值。量化器管理组件可以根据比特精度级别来确定量化标度。
在804处,可以根据与量化误差相关的定义的量化标准确定量化标度值,其中,该量化标度值可以降低权重集的量化误差。量化器管理组件可以根据与量化误差相关的定义的量化标准来确定和选择与量化标度相关联的量化标度值中、可以降低权重集的量化误差的量化标度值。例如,量化器管理组件可以确定或估计量化标度值中、可以比与量化标度相关联的所有或至少几乎所有的其它量化标度值更好地降低(例如,最小化或至少实质上最小化)关于权重集的权重的量化误差的量化标度值。
在806处,可以至少部分基于量化标度值量化权重集的层的至少一部分的权重,以生成量化的权重。量化器组件可以至少部分基于量化标度值量化权重集的层的至少一部分的权重,以生成量化的权重。在一些实施例中,至少部分基于量化标度值,量化器组件可以量化权重集的整个层的权重,以生成关于该层的量化的权重。
在其它实施例中,根据方法800,并且如在本文另外描述的,量化器管理组件可以根据与量化误差相关的定义的量化标准来确定或估计相应的期望的(例如,最优或合适的)量化标度值,该相应的期望的量化标度值可以降低权重集的层的相应部分(例如,相应权重子集)的相应量化误差。至少部分基于相应的量化标度值,量化器组件可以量化该层的相应部分的相应权重子集,以生成相应的量化的权重。
图9描绘了根据所公开主题的各方面和实施例的另一示例的非限制性方法900的流程图,该方法用于确定用于量化权重的量化标度值,以促进降低(例如,最小化或至少实质上最小化)与量化权重相关的量化误差。方法900可以由例如处理器组件、量化器管理组件和/或量化器组件来执行。为了简洁起见,本文描述的其它实施例中采用的类似元件的重复描述被省略或可以被省略。
在902处,可以确定量化是要对称和/或均匀地设置,还是要既不对称也不均匀地设置。量化器管理组件可以确定量化是要对称和/或均匀地设置,还是要既不对称也不均匀地设置。量化器管理组件可以至少部分地基于用户输入信息(例如,用户可以输入信息以选择量化是要对称和/或均匀地设置,还是要既不对称也不均匀地设置)、与权重量化相关联的应用或模型的类型(例如,深度学习应用或模型的特定类型)、要量化的权重的权重分布的类型(例如,高斯、均匀、拉普拉斯……)和/或另一类型的量化标准来做出这样的确定。
在904处,可以做出关于是否要使用最接近舍入和/或偏移值来量化权重的确定。量化器管理组件可以确定是否要使用量化的权重(例如,量化权重值)的最接近舍入和/或使用偏移值(例如,正或负偏置或偏移值)来量化权重,其中该偏移值可以被应用于中间量化的权重以促进生成量化的权重(例如,在将中间量化的权重和偏移值的组合值舍入到最接近的量化的值之后)。量化器管理组件可以至少部分地基于用户输入信息(例如,选择最接近舍入和/或偏移值的来自用户的输入信息)、与权重量化相关联的应用或模型的类型、要量化的权重的权重分布的类型和/或另一量化标准,来做出关于是否使用最接近舍入和/或偏移值的这种确定。应当领会和理解,虽然方法900的参考编号904描述了确定是否要使用最接近舍入和/或偏移值来量化权重,但是所公开的主题不限于此,并且根据各种其它实施例,参考编号904处的方法900可以包括确定是否要使用如本文更全面描述的最接近舍入或另一期望的舍入技术、和/或偏移值来量化权重。
在906处,关于权重集的至少一个权重子集,可以至少部分基于比特精度级别来确定量化标度。量化器管理组件可以至少部分基于比特精度级别来确定用于量化至少一个权重子集的权重的量化标度。例如,权重子集可以是权重集的权重层的全部或一部分。比特精度级别可以对应于仓数(例如,仓的数量)(例如,至少部分基于仓数来确定比特精度级别),其中仓数可以对应于量化级别的数量(例如,2个级别、3个级别、4个级别、8个级别、16个级别、32个级别或另一期望的量化级别)(例如,至少部分基于量化级别的数量来确定仓数)。量化器管理组件可以至少部分基于用户输入信息(例如,选择比特精度级别的来自用户的输入信息)、与权重量化相关联的应用或模型的类型、要量化的权重的权重分布的类型和/或另一类型的量化标准来确定比特精度级别。
在908处,关于至少一个权重子集,可以至少部分基于与量化权重相关和/或与权重子集相关联的权重分布相关的测量数据,来确定与第一统计函数相关联的第一系数值和与第二统计函数相关联的第二系数值。关于至少一个权重子集(例如,权重层的全部或一部分),量化器管理组件可以根据定义的量化标准,至少部分地基于与量化权重相关和/或与权重子集相关联的权重分布相关的测量数据,来确定与第一统计函数相关联的第一系数值和与第二统计函数相关联的第二系数值。第一系数值也可以至少部分地基于第一统计函数的统计函数类型来确定,并且第二系数值可以至少部分地基于第二统计函数的统计函数类型来确定。
例如,如果第一统计函数是权重子集的权重分布值的平方的期望值(例如,平均值)的平方根,则量化器管理组件可以将第一系数值确定为特定值。然而,如果第一统计函数涉及与权重子集的权重分布值相关联的标准偏差值,则量化器管理组件可以将第一系数值确定为与该特定值不同的值。
作为另一示例,如果第二统计函数是权重子集的权重分布值的绝对值的期望值(例如平均值),量化器管理组件可以将第二系数值确定为指定值。然而,如果第二统计函数涉及与权重子集的权重分布值相关联的方差函数值,则量化器管理组件可以将第二系数值确定为与该指定值不同的值。
测量数据可以包括与量化权重相关的经验数据,可以(例如,通过量化器管理组件或另一组件)从该经验数据中导出或确定第一和第二系数值。例如,测量数据可以是在训练深度学习模型或系统之前和/或在训练深度学习模型或系统期间获得的数据。
在910处,可以至少部分基于将包括第一系数值的第一统计函数应用于权重子集的权重分布值并将包括第二系数值的第二统计函数应用于该权重分布值,来估计量化标度的多个量化标度值中的一个量化标度值。量化器管理组件可以至少部分地基于将包括第一系数值的第一统计函数应用于权重分布值并将包括第二系数值的第二统计函数应用于该权重分布值,来估计量化标度的多个量化标度值中的一个量化标度值。
估计的量化标度值可以是期望的(例如,最优的或合适的)量化标度值,该期望的量化标度值在与量化权重子集的权重相关地使用时,可以带来实质上降低的(例如,更低的)量化误差,该量化误差可以低于可以与量化标度值的其它量化标度值相关联的所有或至少几乎所有其它量化误差(例如,如果这样的其它量化标度值已经用于量化权重)。与估计的量化标度值相关联的实质上降低的量化误差可以实质上接近于与量化权重相关的最小量化误差,其中该最小量化误差与理论量化标度值相关联,该理论量化标度值在量化权重子集的权重期间使用时可以最小化量化误差。因此,根据定义的量化标准,估计的量化标度值可以与理论量化标度值近似相同(例如,可以在理论量化标度值的定义的值距离内)。
如本文更全面描述的,例如,在深度学习模型或系统的训练期间、在另一期望的时间处、或者在(例如,响应于)特定的一组环境或条件下,第一和第二系数,以及相应地,估计的量化标度值可以被更新(例如,被自动或动态地更新)。
在912处,可以将估计的量化标度值应用于权重子集的权重,以生成量化的权重。量化器组件可以将估计的量化标度值应用于权重子集的权重,以生成相对应的量化的权重。如上所述,与量化权重相关联的量化误差可以是期望的较低的量化误差量,该期望的较低的量化误差量可以实质上接近于与理论量化标度值相关联的最小量化误差,并且可以低于与其它量化标度值相关联的所有或至少几乎所有其它量化误差。
在一些实施例中,关于权重集的另一权重子集(如果存在权重的另一子集),方法900可以从这一点开始返回到参考编号906或参考编号908,其中所述另一权重子集可以包括层的另一部分的权重(例如,如果权重子集仅包括层的权重的一部分),或者可以包括权重集的权重中的另一层的权重。方法900可以继续,例如,直到权重集的所有权重已经被量化以生成相对应的量化的权重。
为了解释简单,方法和/或计算机实现的方法被描绘和描述为一系列动作。应当理解和领会,所公开的主题不受所示出的动作和/或动作顺序的限制,例如动作可以以各种顺序和/或同时发生,并且与本文没有呈现和描述的其它动作一起发生。此外,根据所公开的主题,实现计算机实现的方法可以不要求所有示出的动作。此外,本领域的技术人员将理解和领会,计算机实现的方法可以可替换地经由状态图或事件被表示为一系列相互关联的状态。此外,应该进一步领会,下文和贯穿本说明书中公开的计算机实现的方法能够存储在制品上,以促进将这种计算机实现的方法传输和传递到计算机。本文使用的术语制品意图包含可从任何计算机可读设备或存储介质访问的计算机程序。
为了提供用于所公开主题的各方面的上下文,图10以及下面的讨论意图提供其中可以实现所公开主题的各方面的合适环境的一般描述。图10示出了其中可以促进本文描述的一个或多个实施例的示例非限制性操作环境的框图。为了简洁起见,本文描述的其它实施例中采用的类似元件的重复描述被省略或可以被省略。参考图10,用于实现本公开的各方面的合适的操作环境1000也可以包括计算机1012。计算机1012还可以包括处理单元1014、系统存储器1016和系统总线1018。系统总线1018将包括但不限于系统存储器1016的系统组件耦合到处理单元1014。处理单元1014可以是各种可用处理器中的任何一种。双微处理器和其它多处理器架构也可以用作处理单元1014。系统总线1018可以是一种或多种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各种可用总线架构的本地总线,其中该各种可用总线架构包括但不限于工业标准架构(ISA)、微通道架构(MSA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、VESA本地总线(VLB)、外围组件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、火线(IEEE1394)和小型计算机系统接口(SCSI)。系统存储器1016还可以包括易失性存储器1020和非易失性存储器1022。包含诸如在启动期间在计算机1012内的元件之间传递信息的基本例程的基本输入/输出系统(BIOS)被存储在非易失性存储器1022中。作为说明而非限制,非易失性存储器1022可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存或非易失性随机存取存储器(RAM)(例如,铁电RAM(FeRAM))。易失性存储器1020还可以包括充当外部高速缓冲存储器的随机存取存储器(RAM)。作为说明而非限制,RAM有多种形式,诸如,静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus动态RAM(DRDRAM)和Rambus动态RAM。
计算机1012还可以包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图10示出了磁盘存储装置1024。磁盘存储装置1024还可以包括但不限于如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒的设备。磁盘存储装置1024还可以包括单独的存储介质或者与其它存储介质相结合的存储介质,其中该其它存储介质包括但不限于光盘驱动器,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或者数字多功能光盘ROM驱动器(DVD-ROM)。为了促进将磁盘存储装置1024连接到系统总线1018,典型地使用可移动或不可移动接口,诸如接口1026。图10还描绘了充当在合适的操作环境1000中描述的用户与基本计算机资源之间的中间件的软件。这种软件还可以包括,例如,操作系统1028。可以被存储在磁盘存储装置1024上的操作系统1028用于控制和分配计算机1012的资源。系统应用1030利用操作系统1028通过程序模块1032和程序数据1034管理资源,例如存储在系统存储器1016或磁盘存储装置1024中。应当领会,本公开可以用各种操作系统或操作系统的组合来实现。用户通过(多个)输入设备1036向计算机1012输入命令或信息。输入设备1036包括但不限于定点设备,例如鼠标、轨迹球、触笔、触摸板、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、网络相机等。这些和其它输入设备经由(多个)接口端口1038通过系统总线1018连接到处理单元1014。(多个)接口端口1038包括例如串行端口、并行端口、游戏端口和通用串行总线(USB)。(多个)输出设备1040使用与(多个)输入设备1036相同类型的端口中的一些端口。因此,例如,可以使用USB端口向计算机1012提供输入,并从计算机1012向输出设备1040输出信息。提供输出适配器1042是为了说明除了其它输出设备1040之外,还有一些输出设备1040,如监视器、扬声器和打印机,这要求专用适配器。作为说明而非限制,输出适配器1042包括视频卡和声卡,该视频卡和声卡提供输出设备1040和系统总线1018之间的连接方法。应当注意,其它设备和/或设备的系统提供输入和输出能力两者,诸如(多个)远程计算机1044。
计算机1012可以使用到诸如(多个)远程计算机1044的一个或多个远程计算机的逻辑连接在网络化环境中操作。(多个)远程计算机1044可以是计算机、服务器、路由器、网络PC、工作站、基于微处理器的设备、对等设备或其它公共网络节点等,并且典型地还可以包括相对于计算机1012描述的许多或所有元件。为了简洁起见,仅与(多个)远程计算机1044一起示出了存储器存储设备1046。(多个)远程计算机1044通过网络接口1048逻辑连接到计算机1012,然后经由通信连接1050物理连接。网络接口1048包括有线和/或无线通信网络,诸如局域网(LAN)、广域网(WAN)、蜂窝网络等。LAN技术包括光纤分布式数据接口(FDDI)、铜分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于点对点链路、如综合业务数字网(ISDN)及其变体的电路交换网络、分组交换网络和数字用户线路(DSL)。(多个)通信连接1050指用于将网络接口1048连接到系统总线1018的硬件/软件。虽然为了说明清楚起见,通信连接1050被示出在计算机1012内部,但是它也可以在计算机1012外部。仅出于示例性目的,用于连接到网络接口1048的硬件/软件还可以包括内部和外部技术,诸如包括普通电话级调制解调器的调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器和以太网卡。
在任何可能的技术细节结合层面,一个或多个实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现一个或多个的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是--但不限于--电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)也可以包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如互联网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本公开客体操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用互联网服务提供商来通过互联网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开客体的各个方面。
这些计算机可读程序指令可以提供给这里参照根据本公开客体的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开客体的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的方法。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作动作,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开客体的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然上面已经在运行在计算机和/或多个计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了主题,但是本领域技术人员将认识到,本公开也可以结合其它程序模块来实现。通常,程序模块包括执行特定的任务和/或实现特定的抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将领会,本文公开的计算机实现的方法可以用其它计算机系统配置来实践,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机以及计算机、手持计算设备(例如,PAD、电话)、基于微处理器的或可编程的消费或工业电子产品等。示出的方面也可以在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实践。然而,如果不是本公开的所有方面,本公开的一些方面也可以在独立计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如在本申请中使用的,术语“组件”、“系统”、“平台”、“接口”等可以指和/或可以包括计算机相关的实体或与具有一个或多个特定功能的操作机器相关的实体。本文公开的实体可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程中,并且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。在另一示例中,相应组件可以从其上存储有各种数据结构的各种计算机可读介质执行。这些组件可以经由本地和/或远程进程进行通信,诸如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据经由信号与本地系统、分布式系统中的另一组件进行交互,和/或经由信号跨诸如互联网的网络与其它系统进行交互)。作为另一示例,组件可以是具有特定功能的装置,该特定功能由由电路或电子电路操作的机械部件提供,该电路或电子电路由由处理器执行的软件或固件应用来操作。在这种情况下,处理器可以在装置的内部或外部,并且可以执行软件或固件应用的至少一部分。作为又一个示例,组件可以是通过电子组件提供特定功能而没有机械部件的装置,其中电子组件可以包括处理器或其它方法以执行至少部分赋予电子组件功能的软件或固件。在一个方面,组件可以经由虚拟机仿真电子组件,例如在云计算系统内。
此外,术语“或”意图意味着包含性的“或”而不是排他性的“或”。也就是说,除非另外指明,或者从上下文中清楚,“X采用A或B”意图意味着任何自然的包含置换。也就是说,如果X采用A;X采用B;或X采用A和B两者,则在任何前述情况下都满足“X采用A或B”。此外,除非另有指明或者从上下文中清楚地指向单数形式,否则在主题说明书和附图中使用的冠词“一”和“一个”通常应该被解释为意味着“一个或多个”。如本文使用的,术语“示例”和/或“示例性”用于表示意味着用作示例、实例或说明。为避免疑问,本文公开的主题不受这些示例的限制。此外,本文描述为“示例”和/或“示例性”的任何方面或设计不一定被解释为比其它方面或设计更优选或更具优势,也不意味着排除本领域普通技术人员已知的等效示例性结构和技术。
如在主题说明书中所采用的,术语“处理器”可以实质上指任何计算处理单元或设备,包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;并行平台;和具有分布式共享内存的并行平台。此外,处理器可以指集成电路、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑控制器(PLC))、复杂可编程逻辑器件(CPLD)、离散门或晶体管逻辑、离散硬件组件或设计用于执行本文描述的功能的它们的任意组合。此外,处理器可以利用纳米级架构,诸如但不限于基于分子和量子点的晶体管、开关和门,以便优化空间使用或增强用户设备的性能。处理器也可以被实现为计算处理单元的组合。在本公开中,诸如“存储”、“存储装置”、“数据存储”、“数据存储装置”、“数据库”和实质上与组件的操作和功能相关的任何其它信息存储组件的术语被用来指代“存储器组件”、被包含在“存储器”中的实体、或包括存储器的组件。应当领会,本文描述的存储器和/或存储器组件可以是易失性存储器或非易失性存储器,或者可以包括易失性和非易失性存储器。作为说明而非限制,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存或非易失性随机存取存储器(RAM)(例如,铁电RAM(FeRAM))。易失性存储器可以包括例如可以充当外部高速缓冲存储器的随机存取存储器。作为说明而非限制,RAM有多种形式,诸如,静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus动态RAM(DRDRAM)和Rambus动态RAM(RDRAM)。此外,本文公开的系统或计算机实现的方法的存储器组件意图包括但不限于这些和任何其它合适类型的存储器。
上面已经描述的仅仅包括系统和计算机实现的方法的示例。当然,为了描述本公开的目的,不可能描述组件或计算机实现的方法的每一种可想到的组合,但是本领域普通技术人员可以认识到,本公开的许多进一步的组合和置换是可能的。此外,就具体实施方式、权利要求、附录和附图中使用的术语“包括”、“有”、“具有”等而言,这些术语意图以类似于术语“包含”的方式被包含在内,因为“包含”在权利要求中用作过渡词时被解释。为了说明的目的,已经呈现了各种实施例的描述,但是并不意图穷举或者限制于所公开的实施例。在不脱离所述实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择本文使用的术语是为了最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或者使本领域普通技术人员能够理解本文公开的实施例。
Claims (11)
1.一种计算机实现的在计算密集型应用中促进量化权重的方法,包括:
对于权重集,由可操作地耦合到处理器的系统根据比特精度级别确定量化标度,其中所述量化标度包括量化标度值;
由所述系统根据与量化误差相关的定义的量化标准来确定降低所述权重集的量化误差的一量化标度值;以及
由所述系统基于所述量化标度值量化所述权重集的层的至少一部分的权重,以生成量化的权重,
其中,确定所述量化标度值包括,根据权重的权重值的第一统计函数和所述权重值的第二统计函数的线性或非线性函数来估计量化标度值以应用于所述权重集的权重,并且其中所述第二统计函数不同于所述第一统计函数,
由所述系统应用所述量化标度值来生成量化的权重,以促进训练深度学习系统或促进通过所述深度学习系统产生推理,所述深度学习系统用于进行图像、语音或文本的识别和/或生成。
2.根据权利要求1所述的计算机实现的在计算密集型应用中促进量化权重的方法,其中,量化权重还包括,对于所述比特精度级别,基于所述量化标度值进行对称地量化权重或者均匀地量化权重中的至少一个操作,以生成量化的权重,并且其中利用舍入来生成所述量化的权重。
3.根据权利要求1所述的计算机实现的在计算密集型应用中促进量化权重的方法,还包括:
由所述系统基于与权重量化相关的测量数据确定与所述第一统计函数相关联的第一系数值;以及
由所述系统基于所述测量数据确定与所述第二统计函数相关联的第二系数值。
4.根据权利要求1所述的计算机实现的在计算密集型应用中促进量化权重的方法,还包括:
由所述系统基于与所述权重量化相关的附加测量数据来更新所述第一系数值或所述第二系数值中的至少一个,以生成与所述第一统计函数相关联的第三系数值或与第二统计函数相关联的第四系数值中的至少一个。
5.根据权利要求1所述的计算机实现的在计算密集型应用中促进量化权重的方法,其中所述量化标度值和比与其它量化标度值相关联的所有或至少大多数其它量化误差更低的量化误差相关联。
6.根据权利要求1所述的计算机实现的在计算密集型应用中促进量化权重的方法,其中确定所述量化标度值包括,基于所述定义的量化标准估计所述量化标度值,其中根据所述定义的量化标准,所述量化标度值在理论量化标度值的定义的值距离内,其中所述理论量化标度值能够最小化与量化权重相关联的所述量化误差。
7.根据权利要求5所述的计算机实现的在计算密集型应用中促进量化权重的方法,还包括:
由所述系统基于所述量化标度值的应用降低所述权重集的权重的比特精度。
8.根据权利要求5所述的计算机实现的在计算密集型应用中促进量化权重的方法,还包括:
所述系统基于所述量化标度值的应用降低用于在深度学习系统的层之间传递数据的存储器使用或通信开销中的至少一个。
9.一种在计算密集型应用中促进量化权重的系统,包括:
存储器,存储计算机可执行组件;以及
处理器,可操作地耦合到所述存储器,所述处理器执行计算机可执行组件以执行根据权利要求1至8中任一项所述的方法的方法步骤。
10.一种在计算密集型应用中促进量化权重的计算机可读存储介质,其上包含程序指令,所述程序指令可由处理器执行,以在所述处理器上执行时,使所述处理器执行根据权利要求1至8中任一项所述的方法的方法步骤。
11.一种包括多个模块的促进量化权重的的装置,所述多个模块被单独地配置为执行根据权利要求1至8中任一项所述的方法的每个步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/007,984 US11551077B2 (en) | 2018-06-13 | 2018-06-13 | Statistics-aware weight quantization |
US16/007,984 | 2018-06-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110598838A CN110598838A (zh) | 2019-12-20 |
CN110598838B true CN110598838B (zh) | 2024-01-19 |
Family
ID=68839370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910509429.6A Active CN110598838B (zh) | 2018-06-13 | 2019-06-13 | 统计感知权重量化 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11551077B2 (zh) |
CN (1) | CN110598838B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11195096B2 (en) * | 2017-10-24 | 2021-12-07 | International Business Machines Corporation | Facilitating neural network efficiency |
WO2019220755A1 (ja) * | 2018-05-14 | 2019-11-21 | ソニー株式会社 | 情報処理装置および情報処理方法 |
DE102018220608A1 (de) * | 2018-09-26 | 2020-03-26 | Robert Bosch Gmbh | Maschinelles Lernsystem, sowie ein Verfahren, ein Computerprogramm und eine Vorrichtung zum Erstellen des maschinellen Lernsystems |
KR20200086581A (ko) * | 2019-01-09 | 2020-07-17 | 삼성전자주식회사 | 뉴럴 네트워크 양자화를 위한 방법 및 장치 |
US20200302288A1 (en) * | 2019-03-20 | 2020-09-24 | Gyrfalcon Technology Inc. | Using output equalization in training an artificial intelligence model in a semiconductor solution |
JP7298266B2 (ja) * | 2019-04-19 | 2023-06-27 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US11456970B1 (en) | 2019-05-13 | 2022-09-27 | Barefoot Networks, Inc. | Augmenting data plane functionality with field programmable integrated circuits |
US20200364552A1 (en) * | 2019-05-13 | 2020-11-19 | Baidu Usa Llc | Quantization method of improving the model inference accuracy |
KR20210035968A (ko) * | 2019-09-24 | 2021-04-02 | 엘지전자 주식회사 | 사용자의 표정이나 발화를 고려하여 마사지 동작을 제어하는 인공 지능 마사지 장치 및 그 방법 |
US11842169B1 (en) | 2019-09-25 | 2023-12-12 | Amazon Technologies, Inc. | Systolic multiply delayed accumulate processor architecture |
US20210125064A1 (en) * | 2019-10-24 | 2021-04-29 | Preferred Networks, Inc. | Method and apparatus for training neural network |
US11816446B2 (en) | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
WO2021158830A1 (en) * | 2020-02-05 | 2021-08-12 | Qualcomm Incorporated | Rounding mechanisms for post-training quantization |
US11093794B1 (en) * | 2020-02-13 | 2021-08-17 | United States Of America As Represented By The Secretary Of The Navy | Noise-driven coupled dynamic pattern recognition device for low power applications |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
KR20210121946A (ko) * | 2020-03-31 | 2021-10-08 | 삼성전자주식회사 | 뉴럴 네트워크 양자화를 위한 방법 및 장치 |
CN113762500B (zh) * | 2020-06-04 | 2024-04-02 | 合肥君正科技有限公司 | 一种卷积神经网络在量化时提高模型精度的训练方法 |
US11308027B1 (en) | 2020-06-29 | 2022-04-19 | Amazon Technologies, Inc. | Multiple accumulate busses in a systolic array |
US20220222519A1 (en) * | 2021-01-13 | 2022-07-14 | Mipsology SAS | Optimizing operations in artificial neural network |
CN113238987B (zh) * | 2021-06-08 | 2022-11-22 | 中科寒武纪科技股份有限公司 | 量化数据的统计量化器、存储装置、处理装置及板卡 |
US11880682B2 (en) * | 2021-06-30 | 2024-01-23 | Amazon Technologies, Inc. | Systolic array with efficient input reduction and extended array performance |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08279899A (ja) * | 1995-04-07 | 1996-10-22 | Mamoru Tanaka | ニューラルネットワークによる静止画及び動画の低ビット中間調表現 |
JPH10164581A (ja) * | 1996-12-03 | 1998-06-19 | Sony Corp | 画像信号符号化方法及び装置、信号記録媒体 |
CN1454348A (zh) * | 2000-07-06 | 2003-11-05 | 株式会社山武 | 软传感器装置和用于评估该装置的装置 |
CN101127909A (zh) * | 2007-09-29 | 2008-02-20 | 华为技术有限公司 | 一种图像码率控制方法及装置 |
CN101145787A (zh) * | 2006-09-13 | 2008-03-19 | 华为技术有限公司 | 一种矢量量化方法及矢量量化器 |
CN103281083A (zh) * | 2013-05-20 | 2013-09-04 | 电子科技大学 | 带数字校正的逐次逼近全差分模数转换器及其处理方法 |
CN103548041A (zh) * | 2011-06-28 | 2014-01-29 | 国际商业机器公司 | 用于确定主观层级聚类中的每个特征的权重的信息处理装置、方法和程序 |
TW201411509A (zh) * | 2012-08-07 | 2014-03-16 | Qualcomm Inc | 用於神經系統中變數的最佳化表示的方法和設備 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106845640A (zh) * | 2017-01-12 | 2017-06-13 | 南京大学 | 基于深度卷积神经网络的层内非均匀的等间隔定点量化方法 |
CN107256422A (zh) * | 2017-06-06 | 2017-10-17 | 上海兆芯集成电路有限公司 | 数据量化方法及装置 |
CN107290748A (zh) * | 2017-07-26 | 2017-10-24 | 国家卫星海洋应用中心 | 一种sar幅度图像均匀相对误差量化方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN107665364A (zh) * | 2016-07-28 | 2018-02-06 | 三星电子株式会社 | 神经网络方法和设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7834887B2 (en) * | 2005-04-05 | 2010-11-16 | Samsung Electronics Co., Ltd. | Methods and systems for combining luminance preserving quantization and halftoning |
US9400918B2 (en) | 2014-05-29 | 2016-07-26 | Beijing Kuangshi Technology Co., Ltd. | Compact face representation |
CN107251059A (zh) | 2015-03-24 | 2017-10-13 | 赫尔实验室有限公司 | 用于深度学习的稀疏推理模块 |
US10262259B2 (en) | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN105512289B (zh) | 2015-12-07 | 2018-08-14 | 郑州金惠计算机系统工程有限公司 | 基于深度学习和哈希的图像检索方法 |
US10387298B2 (en) * | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
KR102526650B1 (ko) * | 2017-05-25 | 2023-04-27 | 삼성전자주식회사 | 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치 |
US20190050710A1 (en) * | 2017-08-14 | 2019-02-14 | Midea Group Co., Ltd. | Adaptive bit-width reduction for neural networks |
US11270187B2 (en) * | 2017-11-07 | 2022-03-08 | Samsung Electronics Co., Ltd | Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization |
-
2018
- 2018-06-13 US US16/007,984 patent/US11551077B2/en active Active
-
2019
- 2019-06-13 CN CN201910509429.6A patent/CN110598838B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08279899A (ja) * | 1995-04-07 | 1996-10-22 | Mamoru Tanaka | ニューラルネットワークによる静止画及び動画の低ビット中間調表現 |
JPH10164581A (ja) * | 1996-12-03 | 1998-06-19 | Sony Corp | 画像信号符号化方法及び装置、信号記録媒体 |
CN1454348A (zh) * | 2000-07-06 | 2003-11-05 | 株式会社山武 | 软传感器装置和用于评估该装置的装置 |
CN101145787A (zh) * | 2006-09-13 | 2008-03-19 | 华为技术有限公司 | 一种矢量量化方法及矢量量化器 |
CN101127909A (zh) * | 2007-09-29 | 2008-02-20 | 华为技术有限公司 | 一种图像码率控制方法及装置 |
CN103548041A (zh) * | 2011-06-28 | 2014-01-29 | 国际商业机器公司 | 用于确定主观层级聚类中的每个特征的权重的信息处理装置、方法和程序 |
TW201411509A (zh) * | 2012-08-07 | 2014-03-16 | Qualcomm Inc | 用於神經系統中變數的最佳化表示的方法和設備 |
CN103281083A (zh) * | 2013-05-20 | 2013-09-04 | 电子科技大学 | 带数字校正的逐次逼近全差分模数转换器及其处理方法 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN107665364A (zh) * | 2016-07-28 | 2018-02-06 | 三星电子株式会社 | 神经网络方法和设备 |
CN106845640A (zh) * | 2017-01-12 | 2017-06-13 | 南京大学 | 基于深度卷积神经网络的层内非均匀的等间隔定点量化方法 |
CN107256422A (zh) * | 2017-06-06 | 2017-10-17 | 上海兆芯集成电路有限公司 | 数据量化方法及装置 |
CN107290748A (zh) * | 2017-07-26 | 2017-10-24 | 国家卫星海洋应用中心 | 一种sar幅度图像均匀相对误差量化方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
Non-Patent Citations (1)
Title |
---|
On-Chip Training of Recurrent Neural Networks with Limited Numerical Precision;Taesik Na 等;《2017 international joint conference on neural networks》;第3716-3724页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110598838A (zh) | 2019-12-20 |
US20190385050A1 (en) | 2019-12-19 |
US11551077B2 (en) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110598838B (zh) | 统计感知权重量化 | |
Gholami et al. | A survey of quantization methods for efficient neural network inference | |
TWI806922B (zh) | 對人工神經網路進行量化的方法及裝置及對浮點神經網路進行量化的方法 | |
US11275986B2 (en) | Method and apparatus for quantizing artificial neural network | |
US20160358070A1 (en) | Automatic tuning of artificial neural networks | |
US11604960B2 (en) | Differential bit width neural architecture search | |
Kuzmin et al. | Fp8 quantization: The power of the exponent | |
Lesser et al. | Effects of reduced precision on floating-point SVM classification accuracy | |
US10715176B1 (en) | Recommending data compression scheme using machine learning and statistical attributes of the data | |
US20200302283A1 (en) | Mixed precision training of an artificial neural network | |
CN110728350A (zh) | 用于机器学习模型的量化 | |
US20210064954A1 (en) | System-aware selective quantization for performance optimized distributed deep learning | |
US20240061889A1 (en) | Systems and Methods for Weighted Quantization | |
CN111160000A (zh) | 作文自动评分方法、装置终端设备及存储介质 | |
Rokh et al. | A comprehensive survey on model quantization for deep neural networks | |
JP2019040414A (ja) | 学習装置及び学習方法 | |
US20230401382A1 (en) | Dynamic Language Models for Continuously Evolving Content | |
Lee et al. | Retraining-based iterative weight quantization for deep neural networks | |
US11663443B2 (en) | Restructuring deep neural networks to reduce the number of parameters | |
US20230070443A1 (en) | Contrastive time series representation learning via meta-learning | |
Wang et al. | Q-YOLO: Efficient inference for real-time object detection | |
US11740687B2 (en) | Variable power mode inferencing | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
US11068784B2 (en) | Generic quantization of artificial neural networks | |
US20230385600A1 (en) | Optimizing method and computing apparatus for deep learning network and computer-readable storage medium |
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 |