CN112955907A - 量化训练的长短期记忆神经网络 - Google Patents
量化训练的长短期记忆神经网络 Download PDFInfo
- Publication number
- CN112955907A CN112955907A CN201980071230.8A CN201980071230A CN112955907A CN 112955907 A CN112955907 A CN 112955907A CN 201980071230 A CN201980071230 A CN 201980071230A CN 112955907 A CN112955907 A CN 112955907A
- Authority
- CN
- China
- Prior art keywords
- gate
- neural network
- weight matrix
- input
- quantized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 126
- 238000012549 training Methods 0.000 title claims description 15
- 230000015654 memory Effects 0.000 title description 10
- 239000011159 matrix material Substances 0.000 claims abstract description 113
- 238000013139 quantization Methods 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims abstract description 65
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 62
- 230000006403 short-term memory Effects 0.000 claims abstract description 3
- 239000013598 vector Substances 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 20
- 238000012360 testing method Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 238000011002 quantification Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 25
- 238000004590 computer program Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 229940050561 matrix product Drugs 0.000 description 2
- 229910052754 neon Inorganic materials 0.000 description 2
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000009334 Singa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
用于量化具有多个权重的训练的长短期记忆(LSTM)神经网络的方法,所述方法包括:获得为训练的LSTM神经网络的每个权重指定训练的浮点值的数据,所述训练的LSTM神经网络包括一个或多个LSTM层,每个LSTM层具有多个门且多个门中的每个门与输入权重矩阵和循环权重矩阵相关联;量化训练的LSTM神经网络,包括:对每个门,将输入权重矩阵的元素量化到目标固定比特宽度;对每个门,将循环权重矩阵的元素量化到目标固定比特宽度;以及提供指定量化神经网络的数据以用于执行量化的推断。
Description
相关申请的交叉引用
本申请要求于2018年10月30日提交的No.62/752,914美国专利申请的优先权,其全部内容通过引用并入本文。
背景技术
本说明书涉及量化用于执行量化的推断的训练的长短期记忆(LSTM)神经网络。
神经网络是一种机器学习模型,它使用一层或多层非线性单元来预测接收的输入的输出。一些神经网络除了输出层外,还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即下一隐藏层或输出层)的输入。网络的每一层根据相应参数集合的当前值从接收的输入生成输出。
一些神经网络是循环神经网络。循环神经网络是接收输入序列并从输入序列生成输出序列的神经网络。特别地,循环神经网络使用在处理输入序列中的先前输入之后的网络的部分或全部内部状态从输入序列中的当前输入生成输出。循环神经网络的一个示例是LSTM神经网络。LSTM神经网络具有一个或多个LSTM层,每个层包含一个或多个门和存储单元。
LSTM神经网络解决了在长时间间隔内存储信息的问题。与LSTM神经网络的输入序列有关的信息通过一个或多个门和存储单元。根据门的功能,门可以控制:允许多少信息进入LSTM层;在LSTM层中保留多少信息;以及允许多少信息离开LSTM层作为下一时间步长的输出。可以训练LSTM神经网络优化这些门的决策,从而只保留处理输入序列所需的信息。
发明内容
本说明书描述了作为一个或多个位置的一个或多个计算机上的一个或多个计算机程序实现的训练的LSTM神经网络量化***(“量化***”),量化具有一个或多个LSTM层的训练的LSTM神经网络。特别地,量化***量化训练的LSTM神经网络,使得LSTM神经网络可以有效地用于执行量化的推断。
通常,说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:(i)获得为训练的LSTM神经网络的每个权重指定训练的浮点值的数据,所述训练的LSTM神经网络包括一个或多个LSTM层,每个LSTM层具有多个门,并且多个门中的每个门与输入权重矩阵和循环权重矩阵相关联;(ii)量化训练的LSTM神经网络,包括:对每个门,将输入权重矩阵和循环权重矩阵的元素量化到目标固定比特宽度;以及(iii)提供指定量化LSTM神经网络的数据以用于执行量化的推断。
输入权重矩阵是指由权重形成的矩阵,权重是用于在由门执行的生成输出的处理期间修改到门的对应输入(例如,输入向量)的值,例如乘法因子。
循环权重矩阵是指由权重构成的矩阵,权重是用于修改循环向量的对应分量的值,例如乘法因子。循环向量可以是门的先前输出(即,当处理先前由门执行时的结果),除非在至少第一次由该门执行该处理的情况下。在这种情况下,可以根据随机过程预定义或设置循环向量。
量化的LSTM神经网络可以是由与训练的LSTM神经网络的相应单元相对应的单元组成的神经网络,并且以与训练的LSTM神经网络的相应单元相同的方式彼此连接,但是其中,量化的LSTM神经网络的每个门采用训练的LSTM神经网络的对应门的输入矩阵和递归矩阵的量化的元素。
术语“量化的推断”是指通过包括量化的LSTM神经网络的每个门的程序将输入数据转换为输出数据的推断任务,所述量化的LSTM神经网络使用输入权重矩阵的对应量化的元素修改输入向量(例如,通过将输入向量到该门的分量乘以输入权重矩阵的对应量化的元素作为乘法因子),并且使用循环权重矩阵的对应量化的元素修改循环向量(例如,将循环向量的分量乘以循环权重矩阵的对应量化的元素)。
循环向量可以包括门的先前输出,即,当该门先前在一个或多个先前情况执行该处理时的结果,除非在至少第一次由该门执行该处理的情况下。在这种情况下,可以根据随机过程预定义或设置循环向量。
前述实施例和其它实施例可以各自可选地单独或组合地包括以下特征中的一个或多个。
量化训练的LSTM神经网络的步骤可以包括确定(i)输入权重矩阵和(ii)循环权重矩阵的元素的最大值和最小值;对每个门,可以包括确定比例因子,其中比例因子是:
并且对每个门,将比例因子应用于输入权重矩阵的元素和循环权重矩阵的元素。
此外,量化训练的LSTM神经网络的步骤可以包括将输入权重矩阵的元素量化到目标固定比特宽度,或者将循环权重矩阵的元素量化到目标固定比特宽度,包括使用非对称量化。
量化LSTM网络的步骤还可以包括对每个门,量化通过处理通过门的相应输入而获得的门的相应门输出。
此外,对每个门,量化门的相应门输出的步骤可以包括使用非对称或对称量化对相应门输出进行量化。
目标固定比特宽度可以是8比特。
量化训练的LSTM神经网络的步骤还可以包括将输入权重矩阵的元素量化到目标固定比特宽度或将循环权重矩阵的元素量化到目标固定比特宽度,包括使用对称量化。
如上所述,每个LSTM层可以接收输入向量和循环向量,并且量化训练的LSTM神经网络的步骤可以包括:对每个门,确定(i)输入权重矩阵的训练的浮点值和(ii)训练的LSTM神经网络的测试输入集合的输入向量的乘积的最小值和最大值;对每个门,确定(i)循环权重矩阵的训练的浮点值和(ii)测试输入集合的循环向量的乘积的最小值和最大值;对每个门,确定门的相应门输出的最小值和最大值;以及提供指定量化LSTM神经网络的数据以用于执行量化的推断,该数据包括:输入权重矩阵的训练的浮点值与测试输入集合的输入向量的乘积的最小值和最大值,循环权重矩阵的训练的浮点值和测试输入集合的循环向量的乘积的最小值和最大值,以及LSTM神经网络中每个门的相应门输出的最小值和最大值。
此外,量化训练的LSTM神经网络的步骤可以包括确定(i)输入权重矩阵或(ii)循环权重矩阵的一个或多个元素是否表示为浮点值;作为响应,确定舍入误差;以及对于每个LSTM层,使用舍入误差,(i)将输入权重矩阵的一个或多个元素输入量化到目标固定比特宽度以及(ii)将循环权重矩阵的一个或多个元素量化到目标固定比特宽度。
训练的LSTM神经网络可以被配置成接收使用至少一个传感器获得的数据,并且代表真实世界。在一种情况下,数据可以是语音话语,并且测试输入集合是表示语音话语的数据。
对每个门,该方法可以包括将门的门偏差量化到目标偏差比特宽度。
目标偏差比特宽度可以是32比特。
目标偏差比特宽度可以不同于目标固定比特宽度。
该方法还可以包括:提供指定量化LSTM神经网络的数据以用于执行量化的推断包括:对于每个LSTM层,提供门的量化的门偏差。
该方法还可以包括确定浮点协处理器对用于实现训练的LSTM神经网络的目标计算设备可用;以及作为响应,对每个门,避免量化门的门偏差。
可以实现本说明书中描述的主题的特定实现,以便实现以下一个或多个优点。在推断时,应用LSTM神经网络(例如,用于端到端语音标识、翻译、字符标识和其他序列处理管道)的产生***通常在优化的硬件(例如,专用神经网络硬件加速器)上运行。通常构建优化的硬件以执行具有较低精度操作的神经网络操作(例如,8比特定点整数或16比特定点整数)。对于循环神经网络(RNN),诸如LSTM神经网络,这通常会导致显著的精度损失,因为训练的权重通常被指定为浮点值。本说明书中描述的量化***允许对训练的LSTM神经网络进行量化,使得LSTM神经网络可以以导致可忽略的精度损失的方式使用较低精度操作(即,在低精度硬件上)来执行。此外,因为量化发生在训练后,不修改训练管道是需要的。不修改训练管道至少具有这样的优点:允许已经训练的模型在需要定点值的推断时部署在硬件上,而无需重新训练模型或修改推断***的功能。另一个优点是,所公开的主题比以特殊方式训练神经网络以便于在推断时间之前进行量化更简单且不易出错。事实上,神经网络被设计为在训练时考虑量化(“量化感知”)有时会导致训练的不稳定性和增加复杂性,并且需要在部署模型之前对已经训练过的模型进行重新训练。
在附图和下面的描述中阐述了主题的一个或多个实现的细节。从说明书和附图以及权利要求书中,主题的其他特征、对象和优点将是显而易见的。
附图说明
图1示出示例训练的LSTM神经网络量化***和示例量化的推断***。
图2是用于量化训练的LSTM神经网络的示例处理的流程图。
图3是通过对每个门量化输入矩阵和循环权重矩阵的每个元素来量化训练的LSTM神经网络的示例处理的流程图。
图4是用于提供用于量化的推断的最小值和最大值的示例处理的流程图。
各种附图中相似的附图标号表示相似的元件。
具体实施方式
图1示出示例训练的LSTM神经网络量化***(“量化***”)100和示例量化的推断***150。量化***100和量化的推断***150是在一个或多个位置的一个或多个计算机上分别实现为一个或多个计算机程序的***的示例,其中可以实现下面描述的***、组件和技术。
量化***100量化训练的LSTM神经网络101以供量化的推断***150使用。训练的LSTM神经网络意味着LSTM神经网络具有权重集合,每个权重表示为通过将神经网络训练程序应用于训练输入集合而修改的浮点值。
LSTM神经网络非常适合处理与时间相关的信息序列(即,序列随时间变化)。LSTM神经网络可以在推断期间中进行训练和使用,以执行各种任务,包括语言翻译、语音标识、字符标识和其他序列处理任务,其中序列信息取决于时间。
训练的LSTM神经网络101包括一个或多个LSTM层102。每个LSTM层包括一个或多个门104。每个门104与输入权重矩阵和循环权重矩阵相关联。例如,对于具有三个门和存储单元的LSTM层,对于输入序列中的每个时间步长t,门和存储单元的操作可以数学地表示为:
(1)ft=σg(Wfxt+Ufht-1+bf)
(2)it=σg(Wixt+Uiht-1+bi)
(3)ot=σg(Woxt+Uoht-1+bo)
每个门和存储单元具有由权重向量Wf、Wi、Wo和Wc组成的输入权重矩阵W和由权重向量Uf、Ui、Uo和Uc组成的循环权重矩阵U,并且,在一些情况下,由偏差值bf、bi、bo和bc组成的偏差向量b。激活函数σ可以是任何激活函数,诸如sigmoid或tanh。因为LSTM神经网络的输入是随时间变化的信息序列,t表示由LSTM层处理的输入序列当前所在的当前时间步长。在每个门,对每个时间步长t,门接收输入向量xt和循环向量ht-1。输入向量可以来自训练的LSTM神经网络的另一层,也可以来自神经网络之外的源。ht-1是由LSTM层在先前时间步长输出的循环向量。如果当前时间步长是第一时间步长,则ht-1被设置为某个初始值(例如,零)。在给定的时间步长,向量ft、it和ot分别使用等式(1)、(2)和(3)计算。存储单元ct如等式(4)所示更新,并在LSTM层内部维护。操作°可以是按元素(element-wise)相乘(即,对于相同维数的两个矩阵,A和B,循环向量ht可以输出到LSTM神经网络的另一层,但也可以保存在LSTM层中,并用于在下一时间步长处理输入序列。对每个时间步长的输入序列,迭代计算公式(1)–(5)。
训练LSTM神经网络的结果是,为每个偏差确定训练的浮点值,并为每个门确定输入矩阵和循环权重矩阵的每个元素(表示权重)。然而,在使用量化的推断***(例如,量化的推断***150)执行推断之前,至少量化神经网络中LSTM层的权重。这是因为,通常,量化的推断***150执行量化的推断。也就是说,量化的推断***150在执行推断时以降低的精度(即,以紧凑的格式)存储和计算数字。例如,量化的推断***150可以使用专用硬件来执行推断,专用硬件被配置为使用定点算法来执行计算,以便允许硬件以减少的延迟来计算推断。例如,移动设备可以具有使用定点算法在硬件中执行神经网络(和可选的其它处理器密集型计算)的专用芯片。作为另一示例,量化的推断***150可以在移动设备上实现,并且可以执行量化的推断以限制计算推断所消耗的计算资源量。
一旦LSTM神经网络101被训练和量化,量化的推断***150使用量化的、训练的LSTM神经网络101来执行推断。也就是说,量化的推断***150接收新输入154(例如,来自***用户),并使用训练的LSTM神经网络101处理这些新输入154以生成新的网络输出。
量化***100将训练的LSTM神经网络101的权重量化到目标固定比特宽度,并向量化的推断***150提供指定量化的LSTM神经网络的数据(例如,量化的权重152)。量化值是指根据映射方案将值从连续的或其他方式的较大的值集合约束到较小的、离散的集合,该映射方案为较大集合中的每个值定义到较小集合中的对应值的映射。比特宽度是指在定点表示中用于表示整数的比特数(例如,比特宽度8意味着8比特值用于表示浮点值量化到的整数集合)。将浮点值量化到比特宽度意味着将浮点值映射到可表示为该比特宽度的定点整数。下面讨论用于量化值的量化技术。量化可以使用非对称量化和/或使用对称量化来完成。将训练的LSTM神经网络101量化到目标固定比特宽度将参照图2和图3来描述,但是涉及对每个门量化表示为浮点值的输入权重矩阵和循环权重矩阵的元素。在一些实现方式中,表示为浮点值的偏差与每个门相关联,并且也被量化。可以将偏差量化到目标固定比特宽度或一些其他比特宽度(“目标偏差比特宽度”)。
量化***100可以被配置为将训练的LSTM神经网络101量化到与目标固定比特宽度相对应的无符号或有符号整数。例如,量化到8比特值的目标固定比特宽度的输入权重矩阵和循环权重矩阵的元素被量化到十进制值0到255作为无符号整数,或者-128到127作为有符号整数。
在一些实现方式中,量化的推断***150在定点硬件(例如,专用神经网络硬件加速器)上执行。定点硬件是设计用于对以固定比特宽度表示的数据执行操作的硬件(例如,设计用于对8比特值进行操作的定点硬件)。相对于具有同等功能的硬件(也可以处理浮点操作),定点硬件的复杂度较低,因此非常适合在成本较低的设备(尤其是移动设备)上实现。此外,量化的推断***150可能需要在提供并行化选项的硬件上操作,以促进与神经网络相关的操作。并行化选项可能需要定点操作数(例如,仅在8比特操作数上并行化操作,诸如在ARM NEON架构上)。其他技术(诸如按比特乘法)允许在定点操作数上执行更快、更经济高效的乘法。
图2是用于量化训练的LSTM神经网络的示例处理200的流程图。为了方便,将针对具有执行软件以实现处理200的一个或多个计算设备的***(例如,图1的量化***100)来描述处理200。例如,根据本说明书适当编程的量化***(例如,图1的量化***100)可以执行处理200。
作为示例,量化***100量化具有多个权重的训练的LSTM神经网络101。LSTM神经网络101包括一个或多个LSTM层102。LSTM层102是包括多个门104的神经网络层,每个门104与输入权重矩阵和循环权重矩阵相关联。对于训练的LSTM神经网络101中的每个LSTM层102,输入权重矩阵和循环权重矩阵的元素包括表示权重的浮点值。
转到图2的处理200,量化***100获得作为浮点值的数据(步骤202)。例如,量化***100获得为训练的LSTM神经网络101的每个权重指定训练的浮点值的数据。
量化***100将训练的LSTM神经网络101量化到目标固定比特宽度(步骤204)。目标固定比特宽度是可在量化之前指定的固定整数值(例如,4比特、8比特、16比特)。参照图1,如果量化的推断***150在构建成对具有特定固定比特宽度(例如,4比特、8比特、16比特)的操作数执行神经网络操作的硬件上实现,则目标固定比特宽度可以是该固定比特宽度。例如,如果量化的推断***150在为以8比特操作数作为输入的神经网络操作而构建的硬件上实现,则量化***100可以将训练的LSTM神经网络101量化到8比特的目标固定比特宽度。固定目标比特宽度可以响应于量化的推断***150在不同硬件上的实现而改变。在一些实现方式中,可能需要第二次量化值,称为重新量化(下文讨论)。
作为量化LSTM神经网络101的一部分,量化***100可以量化网络中每个层的每个门的每个门输出。
返回到图2的处理200,提供指定量化的LSTM神经网络的数据以用于执行量化的推断(步骤206)。参照图1,例如,可以将来自量化***100的数据提供给量化的推断***150以用于量化的推断。数据可以包括训练的LSTM神经网络101的量化的权重152。如图3所示,并且如下面将讨论的,可以根据需要提供数据(图4的步骤408)以促进重新量化。
图3是用于通过对每个门104量化输入矩阵和循环权重矩阵的每个元素来量化训练的LSTM神经网络101的示例处理300的流程图。量化***(例如,图1的量化***100)获得数据作为训练的浮点值(步骤302)。例如,量化***100获得为训练的LSTM神经网络的每个权重指定训练的浮点值的数据。根据训练期间由训练的LSTM神经网络101学习的权重,将权重作为元素存储在每个门104和每个LSTM层102的输入矩阵和循环权重矩阵中。
对每个LSTM层102中的每个门104,将输入权重矩阵的元素量化到目标固定比特宽度(步骤304)。对每个LSTM层102中的每个门104,将循环权重矩阵的元素量化到目标固定比特宽度(步骤306)。对每个门,门的输入权重矩阵的元素的量化与门的循环权重矩阵的元素的量化分开执行(例如,使用输入权重矩阵的元素的最小值和最大值而不是循环权矩阵的任何元素执行输入权重矩阵的元素的量化)。循环权重矩阵的元素的最大值可以不同于输入权重矩阵的元素的最大值。类似地,循环权重矩阵的元素的最小值可以不同于输入权重矩阵的元素的最小值。应当理解,步骤304和306可以以多种方式完成,包括顺序地或并行地完成。类似于步骤206,提供指定量化LSTM神经网络的数据以用于执行量化的推断(步骤308)。参照图1,例如,将来自量化***100的数据提供给量化的推断***150以用于量化的推断。提供的数据可以包括从量化输入权重矩阵的元素(步骤304)和/或从量化循环权重矩阵的元素(步骤306)获得的量化的权重152。
在量化的推断期间,量化的推断***150可以使用输入数据(其可以是由一个或多个传感器收集的真实世界数据)来执行量化的推断任务以生成输出数据。输出数据可以是用于控制用于在真实世界上操作的设备的控制数据,诸如声音产生设备、电磁辐射产生设备和/或机电设备。
在一些实现方式中,对每个门104,将门偏差量化到目标偏差比特宽度。在其它实现中,量化***100首先确定门偏差是否需要被量化。例如,如果量化的推断***150包括浮点协处理器,则在示例性实现中,门偏差将不被量化,而是以浮点形式保留。或者,如果门偏差已经表示为定点整数,则不需要量化。
量化门偏差可以使用非对称量化或对称量化(下文公开)或通过实现为量化表示为浮点值的输入权重矩阵的元素和循环权重矩阵的元素的任何量化技术来完成。门偏差可以被量化到与目标固定比特宽度无关的目标偏差比特宽度。例如,门偏差可以被量化到32比特的目标偏差比特宽度,而输入权重矩阵和循环权重矩阵的元素可以量化到8比特的目标固定比特宽度。作为另一示例,门偏差和输入权重矩阵和循环权重矩阵的元素两者都可以量化到16比特的比特宽度。
另外,在一些实现方式中,提供数据(例如预定数据),为每个门指定量化的门偏差以用于量化的推断。在又一其它实现中,量化***确定对每个门,门偏差应被量化(例如,量化***确定门偏差被表示为浮点值),并且作为响应,将门偏差量化到目标偏差比特宽度。
参照图3,对每个门,使用非对称量化或对称量化对在步骤304中量化的输入权重矩阵的元素和在步骤306中量化的循环权重矩阵的元素进行量化。量化是对称量化还是非对称量化取决于要量化的值的范围的最小值和最大值之间的关系(例如,在步骤304量化的输入权重矩阵中的元素的最小值和最大值以及在步骤306量化的循环权重矩阵中的元素的最小值和最大值)。
如果y是要量化的值,则y最小值(ymin)(y的最小值)是y可以等于的最小值,y最大值(ymax)(y的最大值)是y可以等于的最大值。其中,y是对某个函数f求值的结果,则y最小值和y最大值分别表示f范围内的下限和上限(表示为[y最小值,y最大值])。此外,f可以是任何数学或逻辑运算(例如,矩阵乘法)。如果量化是对称量化,则f的范围具有满足以下等式的最小值和最大值:
-y最大值=y最小值
如果不满足上述等式,则使用的量化是非对称量化。
根据量化技术,可以使用定点硬件的某些特性。例如,非对称量化需要将范围[y最小值,y最大值]移动偏移值,以解决浮点值的非对称量化中固有的可能舍入误差,(下文讨论)如果使用对称量化,则不需要此偏移。此外,虽然偏移值的添加是不对称量化中固有的操作,但是对称量化不需要该额外操作,因为没有偏移值。因此,某些定点硬件可以使用用于量化的设计特征(例如,利用可以并行地在定点值上相乘的硬件,如果随后必须将偏移量添加到结果中,则这是不可能的)。
此外,在一些实现方式中,可能有必要预期量化的推断***将需要在量化***向其提供用于量化的推断的数据之后“重新量化”权重。具体地,在一些实现方式中,量化的推断***150需要在操作期间对某些值重新量化。例如,如果一个操作的输出是32比特值,并且该输出被输入到另一个操作,但是量化的推断***150被配置为使用8比特或16比特操作数执行该操作,则量化的推断***150需要将该32比特值重新量化到8比特或16比特。当多个值被累积以生成一个操作的输出时(例如,当确定点乘作为矩阵乘法的一部分时),这可能会出现。
因此,在一些实现方式中,提供的指定量化的LSTM神经网络的数据以用于执行量化的推断包括量化的推理***可能需要重新量化的值集合的范围[y最小值,y最大值]的最小值和最大值。这是因为,在一些实现方式中,需要要量化的值集合的范围来计算比例因子(下面讨论),从而将值量化到目标固定比特宽度。
图4是用于提供用于量化的推断的最小值和最大值的示例处理400的流程图。
对每个LSTM层,获得输入向量和循环向量(步骤402)。在一些实现方式中,每个LSTM层接收输入向量和循环向量。输入向量可以来自训练的LSTM神经网络的另一层,或者可以来自神经网络之外的源。LSTM层在当前时间步长的循环向量是LSTM层在先前时间步长的输出。如果当前时间步长是第一时间步长,则将循环向量设置为某个初始值(例如,零)。对每个门,量化***100确定门的输入权重矩阵的元素与输入向量的乘积的最小值和最大值(步骤404)。对每个门,量化***100确定门的循环权重矩阵的元素与循环向量的乘积的最小值和最大值(步骤406)。对每个门,提供指定在步骤404和步骤406中确定的乘积的最小值和最大值的数据以用于量化的推断(步骤408)。
在一些实现方式中,确定矩阵乘积的最大值和最小值包括使用原型输入集合执行训练的LSTM神经网络。原型输入是反映***预期处理的输入范围的输入。对每个LSTM层,训练的LSTM神经网络获得输入集合中的每个原型输入的输入向量。然后,对每个门,量化***100对在训练的LSTM神经网络101的原型输入集合中获得的所有输入向量,确定(i)表示为门的输入权重矩阵的浮点值的元素和(ii)输入向量的乘积的最小值和最大值。对每个门,量化***100对LSTM层获得的所有循环向量,确定(i)表示为门的循环权重矩阵的浮点值的元素和(ii)循环向量的乘积的最小值和最大值。每个循环向量(除了初始循环向量之外)在先前时间步长从LSTM层输出,并在当前时间步长用作LSTM层的输入。对每个门,量化***100提供指定为量化的推断而确定的乘积的最小值和最大值的数据。
例如,如果训练的LSTM神经网络被配置为接收语音话语(例如,作为音频文件集合或以文本形式作为语音转录集合),则原型输入集合将是语音话语集合。在训练的LSTM神经网络上执行原型输入集合以生成输出集合。输出集合的最小值和最大值是矩阵乘积的最小值和最大值。
准确的最小值和最大值可以从相对较小的输入集合(例如,训练的LSTM神经网络的训练集合的大小的极小部分)获得。例如,在一个实现中,被配置为语音标识器的训练的LSTM神经网络接收100个语音话语的集合。在训练的LSTM神经网络上执行语音话语集合,并且生成输出集合(例如,对每个门,表示为输入矩阵的浮点值的元素和输入向量的乘积的最大值和最小值,以及对每个门,表示为循环权重矩阵的浮点值的元素和循环向量的乘积的最大值和最小值)。输出集合的最大值和最小值被提供给量化的推断***(例如,图1的量化的推断***150)用于量化的推断。
通过一个或多个量化技术对由每个门的输入权重矩阵和循环权重矩阵的浮点值表示的元素进行量化。量化技术是指如何将由浮点值表示的每个元素量化到固定比特宽度。例如,量化技术包括非对称量化和对称量化。
在一些实现方式中,量化技术包括通过确定比例因子并将比例因子应用于输入权重矩阵和循环权重矩阵中的每个元素来量化输入权重矩阵和循环权重矩阵的一个或多个元素。比例因子是通过缩放较大的浮点值集合中的值以对应于较小的定点整数集合中的量化值,如何将要量化的较大的值集合映射到对应的较小范围的定点整数。计算比例因子取决于使用的量化技术(例如,对称量化与非对称量化)。
比例因子取决于量化值是表示为无符号整数还是有符号整数。对于无符号整数表示,给定目标固定比特宽度、最大值和最小值,比例因子定义为:
目标固定比特宽度的比特比例(bit scale)定义为2目标固定比特宽度-1且表示可以以十进制形式表示的目标固定比特宽度的值的上限。例如,对8比特,比特比例是255,因此量化到8比特的值可以表示从0到255的所有无符号整数。无符号整数表示的比例因子的上述等式可以重写为:
在一些实现方式中,对于值y、比例因子Q和最小值y最小值,量化的值y′等于y′=Q*(y-y最小值)。如果量化的值y’被存储为有符号整数,则y’被减去(减少)(比特比例)/2。因为最小值和最大值是已知的,所以可以将y’重新量化到与推断时使用的优化的硬件匹配的固定比特宽度。
可能需要将量化的整数表示的浮点值相乘。在这种情况下,根据比例因子Q、量化的值y’和最小值y最小值来表示预量化的y的近似恢复,为:y=Q-1*(y′+Q*y最小值)(其中,Q-1等于)。因此,由量化的整数表示的两个实值x和z的乘积是:然而,要使乘法结果为定点积,(x′+Q*x最小值)和(z′+Q*z最小值)表示为定点整数。
量化(x′+Q*x最小值)和(z′+Q*z最小值)引入了潜在舍入误差,因为当将实值量化到量化的整数值时,精度会固有地损失。精度损失可被证明为:误差=Q*y最小值-舍入(Q*y最小值),其中,舍入(Q*y最小值)是Q*y最小值四舍五入到最接近的整数。舍入误差会导致计算过程中的显著偏差,影响训练的量化的LSTM神经网络的推断精度。例如,参照图1,对于门104的输入权重矩阵和循环权重矩阵中的一个或多个元素,如果表示浮点值的元素被量化,则可能无意地引入舍入误差。
为了消除这种舍入错误,一些实现方式为给定值x分配值Q*x最小值以在整数范围内精确表示。对于使用非对称量化的实现方式,这可以例如通过移动表示为[x最小值,x最大值]的值的范围来实现。这相当于使实值0.0在整数范围内精确表示:0.0=Q-1*(x′零+Q*x最小值,其中,x′零是实际值0.0量化到的量化值。因为对于给定x已知x最小值和Q(引申而言,Q-1),所以x′零=-Q*x最小值。
x′零被称为零点。因为要量化的值的范围被移动,x最小值可以不同于值的实际最小值,以保证精确的量化的表示。
如果经由对称量化进行量化,则不存在要添加的偏移来移动要量化的值的范围,并且要量化的值被假定为以零为中心。以零为中心意味着值均匀分布在实际值0.0周围。因为对称量化的定义,值y′的(-y最大值=y最小值)量化是y′=Q*(y+y最大值),以及比例因子Q写为:
因此,如果使用对称量化,则量化的值y’表示为:y’=Q*y,其中比例因子Q可以重写为:
对称量化整数表示的两个实值x和z的乘积为: 通过不添加偏移,可以使用仅适用于某些硬件平台上的乘法操作的特征(例如,ARM NEON架构或x86架构上的8比特操作数上的并行乘法)来执行对称量化。例如,可以将32比特浮点值量化到较小的比特宽度,以便一次计算多个操作(例如,在支持32比特值的硬件上用于乘法的两对8比特操作数)。上述还意味着值均匀地分布在量化的尺度的正和负两侧(例如,对8比特整数,量化的值分布在-127和127之间)。
本说明书使用术语“被配置为”与***和计算机程序组件相关。对于将被配置为执行特定操作或动作的由一个或多个计算机组成的***,意味着***在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或组合在操作中使***执行操作或动作。对于将被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实现方式可以在数字电子电路、具体体现的计算机软件或固件、计算机硬件中实现,包括本说明书中公开的结构及其结构等效物,或者是它们中的一个或多个的组合。本说明书中描述的主题的实现方式可以被实现为一个或多个计算机程序,即,编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备,或者它们中的一个或多个的组合。可选地或另外,可以在人工生成的传播信号(例如,机器生成的电信号、光信号或电磁信号)上对程序指令进行编码,所述人工生成的传播信号被生成以对信息进行编码以便发送到适当的接收装置以由数据处理装置执行。
术语“数据处理设备”是指数据处理硬件,并且包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
计算机程序,也可以被称为或描述为程序、软件、软件应用、应用(app)、模块、软件模块、脚本或代码,可以用任何形式的编程语言来编写,包括编译或解释语言,或声明性或过程性语言;并且可以用任何形式来部署,包括作为独立的程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。程序可以但不必与文件***中的文件相对应。程序可以被存储在保存其他程序或数据的文件的一部分中,例如,被存储在标记语言文档中的一个或多个脚本,被存储在专用于问题中的程序的单个文件中,或者被存储在多个协调文件中,例如,存储一个或多个模块、子程序或部分代码的文件。计算机程序可以被部署以在位于一个站点或分布在多个站点并通过数据通信网络互连的一个计算机或多个计算机上执行。
在本说明书中,术语“数据库”被广泛地用于指代数据的任何集合:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且它可以被存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以不同地被组织和访问。
类似地,在本说明书中,术语“引擎”被广泛地用于指基于软件的***、子***或处理,其被编程以执行一个或多个特定功能。通常,引擎将被实现为一个或多个软件模块或组件,安装在一个或多个位置的一个或多个计算机上。在某些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在相同的计算机或多个计算机上安装和运行多个引擎。
本说明书中描述的处理和逻辑流可以由一个或多个可编程计算机执行,通过对输入数据进行操作并生成输出来执行一个或多个计算机程序以执行功能。处理和逻辑流还可以由专用逻辑电路(例如,FPGA或ASIC)或专用逻辑电路与一个或多个编程计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行或执行指令的中央处理单元和存储指令和数据的一个或多个存储设备。中央处理单元和存储器可由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁光盘、磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或两者。然而,计算机不需要这样的设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储设备中,例如,通用串行总线(USB)闪存驱动器,仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备包括例如半导体存储器装置,例如EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及CDROM和DVD-ROM光盘。
为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和指示设备(例如,鼠标或轨迹球,用户可通过其向计算机提供输入)的计算机上实现本说明书中描述的主题的实现方式。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应从网络(web)浏览器接收的请求而向用户设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,正在运行消息传递应用的智能手机)发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集型部分,即推断、工作负载。
机器学习模型可以使用机器学习框架(例如,TensorFlow框架、Microsoft认知工具箱框架、Apache Singa框架或Apache MXNet框架)来实现和部署。
本说明书中描述的主题的实现方式可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有用户可以通过它与本说明书中描述的主题的实现进行交互的图形用户界面、网络浏览器或应用的客户端计算机)或者包括一个或多个这样的后端、中间件或前端组件的任意组合的计算***中实现。***的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算***可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。在一些实现方式中,服务器将数据(例如,HTML页面)传输到用户设备,例如,为了向与作为客户端的设备交互的用户显示数据和从用户设备接收用户输入。在用户设备上生成的数据(例如,用户交互的结果)可以在服务器上从设备接收。
尽管本说明书包含许多特定实现方式细节,但是这些细节不应被解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实现方式而言特定的特征的描述。在单独的实现方式的上下文中在本说明书中描述的特定特征也可以在单个实现方式中组合实现。相反,在单个实现方式的上下文中描述的各种特征也可以分别在多个实现方式中或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为以特定组合起作用并且甚至最初如此宣称,但是在某些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变型。
类似地,尽管操作在附图中以特定顺序被描绘并且在权利要求书中叙述,但这不应被理解为要求以所示的特定顺序或以连续的顺序来执行这样的操作,或者要求执行所有图示的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实现中的各种***模块和组件的分离不应理解为要求在所有实现中都需要这种分离,并且应当理解,所描述的程序组件和***通常可以集成在单个软件产品中或者打包成多个软件产品。
已经描述了主题的特定实现。其他实现在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定实现下,多任务和并行处理可能是有利的。
Claims (18)
1.一种用于量化具有多个权重的训练的长短期记忆(LSTM)神经网络的方法,所述方法包括:
获得为训练的LSTM神经网络的每个权重指定训练的浮点值的数据,训练的LSTM神经网络包括一个或多个LSTM层,每个LSTM层具有多个门,并且多个门中的每个门与输入权重矩阵和循环权重矩阵相关联;
量化训练的LSTM神经网络,包括:
对每个门,将输入权重矩阵的元素量化到目标固定比特宽度;
对每个门,将循环权重矩阵的元素量化到目标固定比特宽度;以及
提供指定量化神经网络的数据以用于执行量化的推断。
3.根据任一前述权利要求所述的方法,其中,量化LSTM网络还包括:
对每个门,量化通过处理通过门的相应输入而获得的门的相应门输出。
4.根据任一前述权利要求所述的方法,其中,对每个门,量化门的相应门输出包括使用非对称或对称量化对相应门输出进行量化。
5.根据任一前述权利要求所述的方法,其中,固定目标比特宽度是8比特。
6.根据任一前述权利要求所述的方法,其中,将输入权重矩阵的元素量化到目标固定比特宽度或将循环权重矩阵的元素量化到目标固定比特宽度中的一个或多个包括使用对称量化或非对称量化。
7.根据任一前述权利要求所述的方法,还包括:
确定(i)输入权重矩阵或(ii)循环权重矩阵的一个或多个元素是否表示为浮点值;
作为响应,确定舍入误差;以及
对于每个LSTM层,使用舍入误差(i)将输入权重矩阵的一个或多个元素量化到目标固定比特宽度以及(ii)将循环权重矩阵的一个或多个元素量化到目标固定比特宽度。
8.根据任一前述权利要求所述的方法,其中,每个LSTM层接收输入向量和循环向量,并且其中所述方法还包括:
对每个门,确定(i)输入权重矩阵的训练的浮点值和(ii)训练的LSTM神经网络的测试输入集合的输入向量的乘积的最小值和最大值;
对每个门,确定(i)循环权重矩阵的训练的浮点值和(ii)测试输入集合的循环向量的乘积的最小值和最大值;
对每个门,确定门的相应门输出的最小值和最大值;以及
提供指定量化神经网络的数据以用于执行量化的推断,所述数据包括:
输入权重矩阵的训练的浮点值与测试输入集合的输入向量的乘积的最小值和最大值,
循环权重矩阵的训练的浮点值和测试输入集合的循环向量的乘积的最小值和最大值,以及
LSTM神经网络中每个门的相应门输出的最小值和最大值。
9.根据权利要求8所述的方法,其中,训练的LSTM神经网络被配置为接收语音话语,并且测试输入集合是表示语音话语的数据。
10.根据任一前述权利要求的方法,还包括:
对每个门,将门的门偏差量化到目标偏差比特宽度。
11.根据权利要求10所述的方法,其中,目标偏差比特宽度不同于目标固定比特宽度。
12.根据权利要求10所述的方法,其中,目标偏差比特宽度是32比特。
13.根据权利要求10-12中任一权利要求所述的方法,其中,提供指定量化神经网络的数据以用于执行量化的推断包括:
对每个LSTM层,提供门的量化的门偏差。
14.根据任一前述权利要求的方法,还包括:
确定浮点协处理器对用于实现训练的LSTM神经网络的目标计算设备可用;以及
作为响应,对每个门,避免量化门的门偏差。
15.一种执行基于输入数据生成输出数据的推断任务的方法,所述方法包括:
使用根据任一前述权利要求的方法获得指定具有多个权重的量化的LSTM神经网络的数据;
基于获得的数据生成量化LSTM神经网络;以及
通过量化的LSTM神经网络处理输入数据以生成输出数据。
16.根据权利要求15所述的方法,其中,(i)输入数据是由至少一个传感器获得并代表真实世界的真实世界数据,或者(ii)输出数据是用于控制被布置为在真实世界上操作的设备的控制数据,或两者。
17.一个或多个计算机可读存储介质,存储指令,当由一个或多个计算机运行指令时,使一个或多个计算机执行权利要求1至16中任一方法的相应操作。
18.一种***,包括一个或多个计算机和一个或多个存储设备,存储指令,当一个或多个计算机执行指令时,使一个或多个计算机执行权利要求1至16中任一方法的相应操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862752914P | 2018-10-30 | 2018-10-30 | |
US62/752,914 | 2018-10-30 | ||
PCT/US2019/058821 WO2020092532A1 (en) | 2018-10-30 | 2019-10-30 | Quantizing trained long short-term memory neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112955907A true CN112955907A (zh) | 2021-06-11 |
CN112955907B CN112955907B (zh) | 2024-07-19 |
Family
ID=69467669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980071230.8A Active CN112955907B (zh) | 2018-10-30 | 2019-10-30 | 用于量化训练的长短期记忆神经网络的方法和*** |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220036155A1 (zh) |
EP (1) | EP3857458A1 (zh) |
JP (1) | JP7266693B2 (zh) |
KR (1) | KR102602195B1 (zh) |
CN (1) | CN112955907B (zh) |
WO (1) | WO2020092532A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126558B (zh) * | 2018-10-31 | 2024-04-02 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
US12045725B1 (en) | 2018-12-05 | 2024-07-23 | Perceive Corporation | Batch normalization for replicated layers of neural network |
US11995555B1 (en) * | 2019-12-17 | 2024-05-28 | Perceive Corporation | Training a neural network with quantized weights |
US20210248467A1 (en) * | 2020-02-06 | 2021-08-12 | Qualcomm Incorporated | Data and compute efficient equivariant convolutional networks |
US11861467B2 (en) * | 2020-03-05 | 2024-01-02 | Qualcomm Incorporated | Adaptive quantization for execution of machine learning models |
WO2022007879A1 (zh) * | 2020-07-09 | 2022-01-13 | 北京灵汐科技有限公司 | 权重精度配置方法和装置、计算机设备、存储介质 |
CN111831356B (zh) * | 2020-07-09 | 2023-04-07 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
US20220191482A1 (en) * | 2020-12-16 | 2022-06-16 | Tencent America LLC | Method and apparatus for video coding |
CN112466285B (zh) * | 2020-12-23 | 2022-01-28 | 北京百度网讯科技有限公司 | 离线语音识别方法、装置、电子设备及存储介质 |
CN113011571B (zh) * | 2021-03-03 | 2022-09-20 | 华南理工大学 | 基于Transformer模型的INT8离线量化及整数推断方法 |
KR20220154902A (ko) * | 2021-05-14 | 2022-11-22 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
CN113624350B (zh) * | 2021-08-18 | 2022-05-31 | 哈尔滨工业大学 | 一种基于神经网络的空中远程目标的温度测量装置及方法 |
CN114781650B (zh) * | 2022-04-28 | 2024-02-27 | 北京百度网讯科技有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
US20240205124A1 (en) * | 2022-12-19 | 2024-06-20 | Adobe Inc. | Predicting processing unit utilization |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170169326A1 (en) * | 2015-12-11 | 2017-06-15 | Baidu Usa Llc | Systems and methods for a multi-core optimized recurrent neural network |
CN106952181A (zh) * | 2017-03-08 | 2017-07-14 | 深圳市景程信息科技有限公司 | 基于长短时记忆神经网络的电力负荷预测*** |
CN107145940A (zh) * | 2016-03-01 | 2017-09-08 | 谷歌公司 | 压缩的递归神经网络模型 |
US20180046896A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Method and device for quantizing complex artificial neural network |
US20180053085A1 (en) * | 2015-06-03 | 2018-02-22 | Mitsubishi Electric Corporation | Inference device and inference method |
CN107798385A (zh) * | 2017-12-08 | 2018-03-13 | 电子科技大学 | 基于块张量分解的循环神经网络稀疏连接方法 |
US20180121796A1 (en) * | 2016-11-03 | 2018-05-03 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN108460481A (zh) * | 2018-01-30 | 2018-08-28 | 中国航天电子技术研究院 | 基于循环神经网络的无人机侦察目标演变规律预测方法 |
US20180300600A1 (en) * | 2017-04-17 | 2018-10-18 | Intel Corporation | Convolutional neural network optimization mechanism |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810482B2 (en) * | 2016-08-30 | 2020-10-20 | Samsung Electronics Co., Ltd | System and method for residual long short term memories (LSTM) network |
-
2019
- 2019-10-30 CN CN201980071230.8A patent/CN112955907B/zh active Active
- 2019-10-30 US US17/289,227 patent/US20220036155A1/en active Pending
- 2019-10-30 WO PCT/US2019/058821 patent/WO2020092532A1/en unknown
- 2019-10-30 JP JP2021548550A patent/JP7266693B2/ja active Active
- 2019-10-30 KR KR1020217011986A patent/KR102602195B1/ko active IP Right Grant
- 2019-10-30 EP EP19848834.8A patent/EP3857458A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180053085A1 (en) * | 2015-06-03 | 2018-02-22 | Mitsubishi Electric Corporation | Inference device and inference method |
US20170169326A1 (en) * | 2015-12-11 | 2017-06-15 | Baidu Usa Llc | Systems and methods for a multi-core optimized recurrent neural network |
CN107145940A (zh) * | 2016-03-01 | 2017-09-08 | 谷歌公司 | 压缩的递归神经网络模型 |
US20180046896A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Method and device for quantizing complex artificial neural network |
US20180121796A1 (en) * | 2016-11-03 | 2018-05-03 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN106952181A (zh) * | 2017-03-08 | 2017-07-14 | 深圳市景程信息科技有限公司 | 基于长短时记忆神经网络的电力负荷预测*** |
US20180300600A1 (en) * | 2017-04-17 | 2018-10-18 | Intel Corporation | Convolutional neural network optimization mechanism |
CN107798385A (zh) * | 2017-12-08 | 2018-03-13 | 电子科技大学 | 基于块张量分解的循环神经网络稀疏连接方法 |
CN108460481A (zh) * | 2018-01-30 | 2018-08-28 | 中国航天电子技术研究院 | 基于循环神经网络的无人机侦察目标演变规律预测方法 |
Non-Patent Citations (4)
Title |
---|
BENOIT JACOB等: "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference", 《ARXIV:1712.05877V1》, 15 December 2017 (2017-12-15), pages 1 - 14, XP002798211 * |
QINYAO HE等: "Effective Quantization Methods for Recurrent Neural Networks", 《ARXIV:1611.10176V1》, 30 November 2016 (2016-11-30), pages 1 - 10 * |
RAGHURAMAN KRISHNAMOORTHI: "Quantizing deep convolutional networks for efficient inference: A whitepaper", 《ARXIV:1806.08342V1》, 21 June 2018 (2018-06-21), pages 1 - 36 * |
李幼军等: "基于SAE和LSTM RNN的多模态生理信号融合和情感识别研究", 《通信学报》, vol. 38, no. 12, 25 December 2017 (2017-12-25), pages 109 - 120 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020092532A1 (en) | 2020-05-07 |
KR102602195B1 (ko) | 2023-11-13 |
US20220036155A1 (en) | 2022-02-03 |
KR20210064303A (ko) | 2021-06-02 |
JP7266693B2 (ja) | 2023-04-28 |
JP2022513404A (ja) | 2022-02-07 |
CN112955907B (zh) | 2024-07-19 |
EP3857458A1 (en) | 2021-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112955907B (zh) | 用于量化训练的长短期记忆神经网络的方法和*** | |
KR102458808B1 (ko) | 신경망을 이용한 텍스트 시퀀스 처리 | |
US10713818B1 (en) | Image compression with recurrent neural networks | |
US10643131B1 (en) | Training variational autoencoders to generate disentangled latent factors | |
JP6666457B2 (ja) | リカレントニューラルネットワークモデルの圧縮 | |
TWI825596B (zh) | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 | |
CN112106081A (zh) | 提供综合机器学***台和软件开发套件 | |
JP2018533804A (ja) | 畳み込みゲート制御再帰型ニューラルネットワーク | |
CA3155320A1 (en) | Generating audio using neural networks | |
WO2019157251A1 (en) | Neural network compression | |
US20230049747A1 (en) | Training machine learning models using teacher annealing | |
US20200410365A1 (en) | Unsupervised neural network training using learned optimizers | |
JP2020506488A (ja) | バッチ再正規化層 | |
US11164066B1 (en) | Generating parameter values for recurrent neural networks | |
US11755879B2 (en) | Low-pass recurrent neural network systems with memory | |
CN113348472A (zh) | 具有软内核选择的卷积神经网络 | |
US20220044109A1 (en) | Quantization-aware training of quantized neural networks | |
WO2019118639A1 (en) | Residual binary neural network | |
US20220058472A1 (en) | Implementing a multi-layer neural network using a single physical layer of analog neurons | |
EP3362951B1 (en) | Neural random access machine | |
CN111587441B (zh) | 使用以比特值为条件的回归神经网络生成输出示例 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
US11861452B1 (en) | Quantized softmax layer for neural networks | |
KR102384588B1 (ko) | 신경망 연산방법 및 신경망 가중치 생성방법 | |
WO2022051548A1 (en) | Conditional output generation through data density gradient estimation |
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 |