CN115917556A - 用于神经网络参数的表示的改进的概念 - Google Patents
用于神经网络参数的表示的改进的概念 Download PDFInfo
- Publication number
- CN115917556A CN115917556A CN202180042521.1A CN202180042521A CN115917556A CN 115917556 A CN115917556 A CN 115917556A CN 202180042521 A CN202180042521 A CN 202180042521A CN 115917556 A CN115917556 A CN 115917556A
- Authority
- CN
- China
- Prior art keywords
- representation
- parameter
- parameters
- matrix
- inter
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder 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/0499—Feedforward networks
Abstract
一种用于产生NN表示的装置,该装置被配置为通过确定一量化参数和该NN参数的量化值,将该NN参数量化为一量化值,以使从该量化参数可得出乘数和位移位数。另外,执行量化参数和NN参数的量化值的确定,以使NN参数的量化值对应于量化值和取决于乘数的因子之间的乘积,该乘积被位移位的位数量取决于位移位数。
Description
技术领域
根据本发明的实施例涉及使用用于神经网络参数的表示的改进概念来编码或解码神经网络参数的装置和方法。可以实现在推理和/或存储比特率优化方面的改进。
背景技术
在其最基本的形式中,神经网络构成仿射变换的链,其后是元素方式的非线性函数。它们可以表示为有向非循环图,如图1所示。每个节点需要特定值,该特定值通过与边的相应权重值相乘而被前向传播到下一节点。然后,简单地聚合所有输入值。
图1示出了前馈神经网络的图形表示的示例。具体地,该2层神经网络是将4维输入向量映射到实线的非线性函数。
在数学上,图1的神经网络将以如下方式计算输出:
输出=L2(L1(输入))
其中
Li(X)=Ni(Bi(X))
并且其中Bi是层i的仿射变换,并且其中Ni是层i的某个非线性函数。
偏置层
在所谓的“偏置层”的情况下,Bi是与层i相关联的权重参数(边缘权重)Wi与层i的输入Xi的矩阵乘法,伴随与偏差bi的求和:
Bi(X)=Wi*Xi+bi
Wi是维度为ni×ki的加权矩阵,并且Xi是维度为ki×mi的输入矩阵。偏置bi是长度为ni的转置向量。运算符*表示矩阵乘法。与偏置bi求和是对矩阵的列的逐元素操作。更详细地说,Wi*Xi+bi意味着对Wi*Xi的各列加bi。
所谓的卷积层也可以通过将它们作为矩阵-矩阵乘积来使用,如“CuDNN:Efficient Primitives for Deep Learning”(Sharan Chetlur等人;arXiv:1410.0759,2014)中所述。
从现在开始,我们将从给定输入计算输出的过程称为推理。另外,我们将把中间结果称为隐藏层或隐藏激活值,其构成线性变换+逐元素非线性,例如,诸如以上第一点积+非线性的计算。
通常,神经网络包含数百万个参数,因此可能需要数百兆字节用于它们的表示。因此,它们需要高计算资源以使被执行,因为它们的推理过程涉及大矩阵之间的许多点积运算的计算。因此,降低执行这些点积的复杂度是非常重要的。
批标准化层
神经网络层的仿射变换的更复杂的变体包括如下的所谓的偏置和批标准化操作:
等式1
其中μ、σ2、γ和β表示批标准化参数。注意,这里忽略层索引i。W是维度为n×k的加权矩阵,并且X是维度为k×m的输入矩阵。偏置b和批标准化参数μ、σ2、γ和β是长度为n的转置向量。运算符*表示矩阵乘法。注意,对具有向量的矩阵的所有其他运算(求和、乘法、除法)是对矩阵的列的逐元素运算。例如,X·γ是指X的每一列逐元素地与γ相乘。∈是避免除以0所需的小标量数(例如,0.001)。然而,它也可以是0。
在b的所有向量元素等于零的情况下,等式1指批标准化层。相反,如果∈以及μ和β的所有向量元素被设置为零,并且γ和σ2的所有元素被设置为1,则没有批标准(仅有偏置)的层被寻址。
参数的有效表示
参数W、b、μ、σ2、γ和β将被共同表示为层的参数。它们通常需要在位流中被用信号通知。例如,它们可以被表示为32位浮点数,或者它们可以被量化为整数表示。注意,通常不在位流中用信号通知∈。
一种用于编码此类参数的特别有效的方法采用均匀重构量化器,其中每个值被表示为所谓的量化步长值的整数倍。可以通过将该整数乘以量化步长来重构相应的浮点数,量化步长通常是单个浮点数。然而,神经网络推理的高效实现(即,计算神经网络针对输入的输出)在任何可能的时候都采用整数运算。因此,可能不希望要求将参数重构为浮点表示。
因此,期望改进用于神经网络参数的表示的概念以支持对此类参数的高效编码和/或解码。可能希望减少神经网络参数被编码到其中的位流,从而减少信号通知成本。另外,或可替代地,可能期望降低计算资源的复杂度以改进神经网络推理,例如,可能期望实现神经网络推理的高效实现。
这通过本申请的独立权利要求的主题来实现。
根据本发明的进一步实施例由本申请的从属权利要求的主题限定。
发明内容
根据本发明的第一方面,本申请的发明人认识到,神经网络(NN)表示所遇到的一个问题源于神经网络包含数百万个参数,并且因此可能需要数百兆字节用于它们的表示。因此,它们需要高计算资源以使被执行,因为它们的推理过程涉及大矩阵之间的许多点积运算的计算。根据本申请的第一方面,通过使用NN参数的量化克服了这个困难,该NN参数的量化允许仅用很少或甚至根本不用浮点运算的推理。发明人发现,确定量化参数是有利的,基于该量化参数可以得出乘数和位移位数。这是基于这种思想,即,在比特率方面,仅用信号通知量化参数和量化值而不是32比特浮点值是高效的。NN参数的经量化值可以使用乘数、位移位数和量化值来计算,为此,可以在整数域而不是浮点域中执行计算,例如,NN参数的求和和/或NN参数与向量的相乘。因此,利用所呈现的NN表示,可以实现推理的高效计算。
因此,根据本申请的第一方面,一种用于生成NN表示,例如数据流的装置被配置为通过确定量化参数和NN参数的量化值来将NN参数量化为经量化值,从而从量化参数可得出乘数和位移位数。生成的NN表示可由装置读取/解码,用于从NN表示,例如数据流,得出NN参数,例如,NN参数的经量化值。用于得出NN参数的装置被配置为从NN表示得出量化参数和量化值,并从量化参数得出乘数和位移位数。基于由量化参数得出的被除数和由精度参数得出的除数之间的除法的余数,从量化参数可得出乘数,例如,可将精度参数设置为默认值,或者可由设备针对整个NN或针对NN的每个部分如每一层来测试精度参数的若干不同的整数值如自然数或2的幂,并且在量化误差和比特率方面最佳,如在其朗格斯和方面,以使将最佳值作为精度参数并在NN表示中用信号通知该选择。基于除法的商的舍入,从量化参数可得出位移位数。NN参数(在用于得出NN参数的装置的情况下)或NN参数的经量化值(在用于生成NN表示的装置的情况下)对应于(例如,至少在经量化值的绝对值方面,在移位的情况下,对符号进行单独处理,或者甚至在绝对值和符号两方面,例如,分别使用2的补码表示和2的补码运算的情况下,对于乘积、其因子和移位)量化值和因子之间的乘积,因子取决于乘数,被位移位的位数取决于位移位数。数字数据可以定义NN表示,如上所述,包括用于表示NN参数的量化参数和量化值。
应当注意,由用于得出NN参数的装置得出的NN参数对应于NN参数的经量化值,该值由用于生成NN表示的装置生成。这是因为,用于得出NN参数的装置从未见到原来的NN参数,因此,从用于得出NN参数的装置的角度来看,将NN参数的经量化值作为NN参数。
一个实施例涉及用于使用NN来执行推理的设备,该设备包括被配置为对NN进行参数化的NN参数化器。NN参数化器包括如上所述的用于从NN表示得出NN参数的装置。另外,设备包括计算单元,该计算单元被配置为使用NN基于NN输入来计算推理输出。如上所述,NN参数可基于乘数、位移位数和量化值来得出,为此,可在整数域而不是浮点域中执行计算,例如,NN参数的求和和/或NN参数与向量的乘法。因此,可以由该设备实现推理的高效计算。
根据本发明的第二方面,本申请的发明人认识到,当使用神经网络(NN)执行推理时遇到的一个问题源于这样的事实:用于推理的权重矩阵可能具有量化误差,为此,仅实现低水平的精度。根据本申请的第一方面,通过使用转置向量s,例如,缩放因子而逐元素地与权重矩阵W′的每列相乘来克服该困难。发明人发现,算术译码方法通过使用权重矩阵的缩放产生更高的译码增益和/或权重矩阵的缩放增加了神经网络性能结果,例如,实现更高的精度。这基于这种思想,即,转置向量s可以例如,根据权重矩阵(例如,量化的权重矩阵)而被有效地适配,以便减小量化误差,并且因此提高经量化的神经网络的预测性能。此外,发明人发现,通过将权重参数因式分解为转置向量s和权重矩阵W’的组合,可以提高表示效率,因为允许独立地量化这两者,例如,可以将不同的量化参数用于转置向量s和权重矩阵W'的量化。从性能的观点来看,而且从硬件效率的观点来看,这是有益的。
因此,根据本申请的第二方面,一种用于使用NN来执行推理的设备被配置为使用NN基于NN输入来计算推理输出。NN包括一对NN层和从该对NN层的第一层到该NN层的第二层的神经元间激活前馈。设备被配置为通过从第一NN层的神经网络神经元的激活形成矩阵X并计算s·W′*X,基于第一NN层的神经网络神经元的激活来计算第二NN层的神经网络神经元的激活。运算符*表示矩阵乘法,W′是具有n和的维度n×m的权重矩阵,s是长度为n的转置向量,并且运算符·表示·一侧的矩阵和·另一侧的转置向量之间的逐列哈达玛乘法。
根据本发明的第三方面,本申请的发明人认识到,当使用批标准化层时遇到的一个问题源于批标准化运算符的批标准化参数/元素通常在浮点表示中的事实。然而,神经网络推理的高效实现(即,针对输入,计算神经网络的输出)在任何可能的时候都采用整数运算。通过将预定的常数值分配给批标准化参数/元素,例如,分配给b和μ以及σ2或σ来克服这个困难。发明人发现,如果批标准化参数/元素具有预定的常数值,则它们可以被更有效地压缩。这基于这种思想,即,这能够使用指示所有元素/参数是否具有预定常数值的单个标志,以使它们能够被设置为预定常数值。另外,发现通过使用预定的常数值,批标准化运算符的结果没有改变。
因此,根据本申请的第三方面,第一实施例涉及一种用于将NN的批标准化运算符的NN参数编码到NN表示的装置。批标准化运算符被定义为
其中
μ、σ2、γ和β是批标准化参数,例如,每个输出节点包括一个分量的转置向量,
W是加权矩阵,例如,其每一行用于一个输出节点,相应行的每个分量与X的一行相关联,
X是从NN层的激活得出的输入矩阵,
b是形成偏置的转置向量,例如,对于每个输出节点包括一个分量的转置向量,
∈是用于零除避免的常数,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法。
装置被配置为接收b和μ以及γ和β和σ2或σ并计算
另外,装置被配置为将β′和γ′作为批标准化运算符的NN参数编码到NN表示,例如,以使它们也是对于每个输出节点包括一个分量的转置向量,从而将批标准化运算符定义为
σ′2:=θ、μ′:=0、b′:=0,其中θ是预定参数。
一种用于从NN表示解码NN的批标准化运算符的NN参数的并行装置被配置为从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ′2:=θ和μ′:=0和b′:=0,其中θ是预定参数。装置例如被配置为读取一个信令,例如,标志,并从中推理或得出σ′2:=θ和μ′:=0和b′:=0。如上文关于第三方面的第一实施例所述,定义了批标准化运算符。
因此,根据本申请的第三方面,第二实施例涉及一种用于将NN的批标准化运算符的NN参数编码到NN表示的装置。批标准化运算符被定义为
其中
μ、σ2、γ和β是批标准化参数,例如,对于每个输出节点包括一个分量的转置向量,
W是加权矩阵,例如,其每一行用于一个输出节点,相应行的每个分量与X的一行相关联,
X是从NN层的激活得出的输入矩阵,
b是形成偏置的转置向量,例如,对于每个输出节点包括一个分量的转置向量,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法。
装置被配置为接收b和μ以及γ和β和σ2或σ并计算
另外,装置被配置为将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以使将批标准化运算符定义为
σ′2:=1、μ′:=0和b′:=0。
一种用于从NN表示解码NN的批标准化运算符的NN参数的并行装置被配置为从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ′2:=1和μ:=0和b:=0。装置例如被配置为读取一个信令,例如,标志,并从中推理或得出σ2:=1和μ:=0和b:=0。如上文关于第三方面的第二实施例所述,定义了批标准化运算符。
因此,根据本申请的第三方面,第三实施例涉及一种用于将NN的批标准化运算符的NN参数编码到NN表示的装置。批标准化运算符被定义为
其中
μ、σ2、γ和β是批标准化参数,例如,对于每个输出节点包括一个分量的转置向量,
W是加权矩阵,例如,其每一行用于一个输出节点,相应行的每个分量与X的一行相关联,
X是从NN层的激活得出的输入矩阵,
∈是用于零除避免的常数,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法。
装置被配置为接收μ和γ以及β和σ2或σ并计算
另外,装置被配置为将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以使将批标准化运算符定义为
σ′2:=θ和μ′:=0,其中θ是预定参数。
一种用于从NN表示解码NN的批标准化运算符的NN参数的并行装置被配置为从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ2:=θ和μ:=0,其中θ是预定参数。装置例如被配置为读取一个信令,例如,标志,并从中推理或得出σ2:=θ和μ:=0。如上文关于第三方面的第三实施例所述,定义了批标准化运算符。
因此,根据本申请的第三方面,第四实施例涉及一种用于将NN的批标准化运算符的NN参数编码到NN表示的装置。批标准化运算符被定义为
其中
μ、σ2、γ和β是批标准化参数,例如,对于每个输出节点包括一个分量的转置向量,
W是加权矩阵,例如,其每一行用于一个输出节点,相应行的每个分量与X的一行相关联,
X是从NN层的激活得出的输入矩阵,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法。
装置被配置为接收μ和γ以及β和σ2或σ并计算
另外,装置被配置为将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以使将批标准化运算符定义为
σ′2:=1和μ′:=0。
一种用于从NN表示解码NN的批标准化运算符的NN参数的并行装置被配置为从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ2:=1和μ:=0。装置例如被配置为读取一个信令,例如,标志,并从中推理或得出σ2:=1和μ:=0。如上文关于第三方面的第四实施例所述,定义了批标准化运算符。
以下方法根据上述原理操作:
一个实施例涉及用于产生NN表示的方法,包括:通过确定NN参数的量化值和量化参数,将NN参数量化为经量化值,以使从量化参数,基于由量化参数得出的被除数和由精度参数得出的除数之间的除法的余数可得出乘数,并以使从量化参数,基于除法的商的舍入可得出位移位数。量化参数被确定,以使NN参数的量化值对应于量化值和取决于乘数的因子之间的乘积,该乘积被位移取决于位移位数的多个位。
一个实施例涉及从NN表示得出NN参数的方法,包括:从NN表示得出量化参数和量化值。另外,方法包括从量化参数,基于由量化参数得出的被除数与由精度参数得出的除数之间的除法的余数得出乘数,以及从量化参数,基于除法的商的舍入得出位移位数。NN参数对应于量化值和取决于乘数的因子之间的乘积,该乘积被位移取决于位移位数的多个位。
一个实施例涉及使用NN来执行推理的方法,方法包括使用如上所述的用于得出NN参数的方法从NN表示得出NN参数而参数化MN。另外,用于执行推理的方法包括使用NN基于NN输入来计算推理输出。
一个实施例涉及用于使用NN来执行推理的方法,包括使用NN基于NN输入来计算推理输出。NN包括一对NN层和从该对NN层的第一层到该NN层的第二层的神经元间激活前馈。方法包括基于第一NN层的神经网络神经元的激活,通过由第一NN层的神经网络神经元的激活形成矩阵X,并通过计算s·W′*X来计算第二NN层的神经网络神经元的激活,其中,*表示矩阵乘法,W′是具有n和的维度n×m的权重矩阵,s是长度为n的转置向量,并且·表示在·的一侧的矩阵和在·的另一侧之间的逐列哈达玛乘法。
一个实施例涉及用于将NN的批标准化运算符的NN参数编码到NN表示的方法,批标准化运算符被定义为其中μ、σ2、γ和β是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,b是形成偏置的转置向量,∈是用于零除避免的常数,·表示·一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括接收b、μ、γ、β和σ2或σ,并计算
另外,方法包括将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以使将批标准化运算符定义为
一个实施例涉及用于将NN的批标准化运算符的NN参数编码到NN表示的方法,批标准化运算符被定义为其中μ、σ2、γ和β是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,b是形成偏置的转置向量,·表示·一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括接收b、μ、γ、β和σ2或σ并计算和另外,方法包括将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以将该批标准化运算符定义为其中σ′2:=1、μ′:=0和b′:=0。
一个实施例涉及用于将NN的批标准化运算符的NN参数编码到NN表示的方法,批标准化运算符被定义为其中μ、σ2、γ和β和是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,∈是用于零除避免的常数,·表示·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括接收μ、γ、β和σ2或σ,并计算和另外,方法包括将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以使将批标准化运算符定义为其中σ′2:=θ和μ′:=0,其中θ是预定参数。
一个实施例涉及用于将NN的批标准化运算符的NN参数编码到NN表示的方法,批标准化运算符被定义为其中μ、σ2、γ和β和是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,·表示·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括接收μ、γ、β和σ2或σ,并计算和另外,方法包括将β′和γ′作为批标准化运算符的NN参数编码到NN表示,以使将批标准化运算符定义为其中γ′2:=1并且μ′:=0。
一个实施例涉及用于从NN表示解码NN的批标准化运算符的NN参数的方法,批标准化运算符被定义为其中μ、σ2、γ和β是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,b是形成偏置的转置向量,∈是用于零除避免的常数,·表示·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ′2:=θ、μ′:=0和b′:=0,其中θ是预定参数。
一个实施例涉及用于从NN表示解码NN的批标准化运算符的NN参数的方法,批标准化运算符被定义为其中μ、σ2、γ和β是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,b是形成偏置的转置向量,·表示·一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ2:=1、μ:=0和b:=0。
一个实施例涉及用于从NN表示解码NN的批标准化运算符的NN参数的方法,批标准化运算符被定义为其中μ、σ2、γ和β是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,∈是用于零除避免的常数,·表示·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ2:=θ和μ:=0,其中θ是预定参数。
一个实施例涉及用于从NN表示解码NN的批标准化运算符的NN参数的方法,批标准化运算符被定义为其中μ、σ2、γ和β和是批标准化参数,W是权重矩阵,X是从NN层的激活得出的输入矩阵,·表示·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及*表示矩阵乘法。方法包括从NN表示得出γ和β,并通过应用于其所有分量的一个信令推理或得出σ2:=1和μ:=0。
如上所述,这些方法基于与上述装置或设备相同的考虑。顺便提一下,这些方法可以用也关于装置或设备描述的所有特征和功能来完成。
一个实施例涉及数字存储介质,该数字存储介质包括定义NN表示的数字数据,该NN表示由如上所述的用于生成NN表示的方法或装置生成。
一个实施例涉及用于实现上述方法中的一个的计算机程序。
一个实施例涉及由如上所述的用于生成NN表示的方法或装置生成的数据流。
附图说明
附图不一定是按比例的;而重点通常在于说明本发明的原理。在以下描述中,参考以下附图描述本发明的各种实施例,其中:
图1示出了神经网络;
图2示意性地示出了根据本发明的实施例的用于生成NN表示、定义NN表示的数字数据的装置和用于从NN表示得出NN参数的装置;
图3示意性地示出了前馈神经网络;
图4示意性地示出了根据本发明的实施例的用于使用NN参数化器执行推理的设备;
图5示意性地示出了根据本发明的实施例的用于通过将权重参数因式分解为向量和矩阵的组合来执行推理的设备;
图6示意性地示出了根据本发明的实施例的用于将NN参数编码到NN表示的装置和用于从NN表示解码NN参数的装置;以及
图7示意性地示出了矩阵X和W之间可能的关系。
具体实施方式
在以下描述中,即使在不同的图中出现,也用相同或等效的附图标记来表示相同或等效的元件或者具有相同或等效功能的元件。
在以下描述中,阐述了多个细节以提供对本发明的实施例的更全面的解释。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明的实施例。在其他实例中,以框图形式而不是详细地示出了公知的结构和装置,以避免使本发明的实施例含糊不清。另外,在下文中描述的不同实施例的特征可以相互组合,除非另外特别指出。
在下文中,提出了一种用于表示和用信号通知层的参数的量化步长大小的有效方法,其允许仅用很少或甚至根本不用浮点运算来进行推理。也就是说,表示在比特率方面是高效的,并且可以进一步用于推理的高效计算。
图2示出了用于生成NN表示110的装置100。装置100被配置为通过确定140量化参数142和通过确定150NN参数120的量化值152来将NN参数120量化为经量化值130。可以基于量化参数142确定150量化值152。量化参数142的确定140可以由量化参数确定器执行。量化值152的确定150可以由量化值确定器执行。
确定140量化参数142,以使从量化参数142可得出乘数144和位移位数146。在确定140量化参数142时,装置100例如,可能已经检查是否可以从所确定的量化参数142得出乘数144和位移位数146。
可选地,装置100可以被配置为从量化参数142得出乘数144并且从量化参数142得出位移位数146,例如,以允许由装置100确定经量化值130。然而,这不是必需的,因为经量化值130可以由量化参数142和量化值152表示。装置100不必明确地确定经量化值130。
根据实施例,生成的NN表示110可包括确定的量化参数142和确定的量化值152,以使从NN表示110可得出NN参数120,即NN参数120的经量化值130。例如,装置100可被配置为将量化参数142和量化值152编码到NN表示110。
基于由量化参数142得出的被除数与由精度参数k 145得出的除数之间的除法的余数,可从量化参数142得出乘数144。
基于除法的商的舍入,即基于由量化参数142得出的被除数和由精度参数k 145得出的除数之间的除法的商的舍入,从量化参数142可得出位移位数146。
执行量化参数142的确定140,以使NN参数120的经量化值130对应于量化值152和取决于乘数144的因子148之间的乘积,该乘积被位移取决于位移位数146的多个位。NN参数120的经量化值130对应于乘积,例如,至少在经量化值的绝对值方面,在移位的情况下对符号进行单独处理,或者甚至在绝对值和符号方面,例如,在分别使用2的补码表示和2的补码运算的情况下,对于乘积、其因子和移位。这在单元150中示例性地和示意性地示出。
根据实施例,装置100被配置为通过使用NN参数的浮点表示训练NN 20,并通过以减小量化误差为目的的迭代优化方案来确定NN参数的量化值152和量化参数142来提供NN参数120的经量化值130。
除了装置100,图1示出了定义NN表示110的数字数据200和用于从NN表示110得出NN参数,即NN参数120的经量化值130的装置300。由于数字数据200和装置300从未看到NN参数的原始值的事实,经量化值130在该上下文中将被理解为NN参数的值。因此,在以下数字数据200与装置300的描述中,NN参数将以标记130表示。很明显,这里讨论的NN参数可由分配给NN参数的原始值120或由基于原始值120确定的经量化值130来表示。因此,在描述特征的情况下,NN参数将在下文中用120/130表示,例如,无论NN参数是由原始值120还是由经量化值130表示,NN参数通常都是适用的。
数字数据200定义了NN表示110,NN表示110包括用于表示NN参数130的量化参数142和量化值152,以使从量化参数142,基于由量化参数142得到的被除数和由精度参数k145得到的除数之间的除法的余数可得出乘数144,并且以使从量化参数142,基于除法的商的舍入可得出位移位数146。NN表示110包括量化参数142和量化值152,以使NN参数130对应于量化值152和取决于乘数144的因子148之间的乘积,该乘积被位移取决于位移位数146的多个位。
用于从NN表示110得出NN参数130的装置300被配置为,例如使用量化参数得出单元310,从NN表示110得出量化参数142,以及,例如使用量化值得出单元320,从NN表示110得出量化值152。另外,装置300被配置为从量化参数142得出乘数144和位移位数146。装置300被配置为基于由量化参数142得出的被除数和由精度参数145得出的除数之间的除法的余数来得出乘数144,并且基于除法的商的舍入来得出位移位数146。可以使用乘数得出单元330来执行乘数144的得出,并且可以使用位移位数得出单元340来执行位移位数146的得出。NN参数130对应于量化值152和取决于乘数144的因子148之间的乘积,该乘积被位移取决于位移位数146的多个位,参见以上对图2中的装置100和单元150的相应描述,NN参数130可例如,使用NN参数得出单元350来得出。NN参数130可例如,使用NN参数得出单元350来得出。NN参数得出单元350可包括与装置100的可选单元150相同的特征和/或功能。
下面,给出了适用于装置100和装置300两者的实施例和示例。
根据实施例,NN参数120/130是权重参数、批标准化参数和偏置中的一个。权重参数,例如,w,W的分量,可以可用于对一对神经元之间的神经元间激活前馈进行加权,或者可替代地,换言之,可以表示与连接第一神经元和第二神经元的边有关的权重,并且在对第二神经元的入站激活的求和中对第一神经元的激活的转发进行加权。批标准化参数,例如,μ、σ2、γ、β,可以可用于参数化神经网络层的仿射变换,而偏置,例如,bi的分量,可以可用于偏置预定神经网络神经元的入站神经元间激活前馈的和。
根据实施例,NN参数120/130根据NN的多个神经元间激活前馈122中的单个12i,例如,w(W的分量),即神经元间激活前馈,来参数化NN 20,例如,如图1所示的。装置100/装置300被配置为针对多个122神经元间激活前馈中的每个,将对应的NN参数120/130编码到NN表示110/从NN表示得出NN参数。相应的NN参数130包括在NN表示110中。在该情况下,装置100可以被配置为针对多个122神经元间激活前馈中的每个,通过确定140与相应的神经元间激活前馈12i相关联的关联量化参数142以及与相应的神经元间激活前馈12i相关联的关联量化值152来将相应的NN参数120量化到相应的经量化值130。执行关联量化参数142的确定140,以使从关联量化参数142,基于由关联量化参数142得出的被除数和由与相应的神经元间激活前馈12i相关联的关联精度参数145得出的除数之间的除法的余数,可得出与相应的神经元间激活前馈12i相关联的关联乘数144,并且基于除法的商的舍入,可得出与相应的神经元间激活前馈12i相关联的关联位移位数146。针对该情况的对应装置300被配置为针对多个122神经元间激活前馈中的每个,从NN表示110得出310与相应的神经元间激活前馈12i相关联的关联量化参数142,并且从NN表示110得出320与相应的神经元间激活前馈12i相关联的关联量化值152。得出310和320可以例如,通过从NN表示110解码来执行,即,每边可解码一个。另外,装置300被配置为针对多个122神经元间激活前馈中的每个,从关联量化参数142,基于由关联量化参数142得出的被除数和由与相应的神经元间激活前馈12i相关联的关联精度参数145得出的除数之间的除法的余数,得出与相应的神经元间激活前馈12i相关联的关联乘数144,并且基于对除法的商的舍入,得出与相应的神经元间激活前馈12i相关联的关联位移位数146,参见330和340。得出330和340可以例如,通过从NN表示110解码来执行,即,每边可解码一个。
根据另一个实施例,装置100/装置300被配置为将NN 20的多个122神经元间激活前馈细分成神经元间激活前馈的子组122a、122b,以使每个子组与NN的关联NN层对相关联,并且包括关联NN层对之间的神经元间激活前馈,并且排除除关联NN层对之外的另一NN层对之间的神经元间激活前馈,并且多于一个子组与预定NN层相关联,例如,参见图3。例如,子组122a与NN 20的相关联的一对NN层114和1161相关联,并且包括在相关联的一对NN层114和1161之间的神经元间激活前馈,并且排除在除了相关联的一对层114和1161之外的另一对NN层之间(例如,在另一对NN层1161和1162之间)的神经元间激活前馈。子组122a和122b与层1161相关联。对NN 20的多个122神经元间激活前馈的细分可以例如,通过NN 20中的每个边/权重12的索引来执行,或者通过以其他方式分割每个层对之间的边12来执行。NN参数120/130根据NN 20的多个122神经元间激活前馈中的单个12i神经元间激活来参数化NN20。对于多个122神经元间激活前馈中的每个,相应的NN参数120/130包括在NN表示110中。装置300被配置为例如,通过从NN表示进行解码,即,解码每边子组一个,来对于多个122神经元间激活前馈中的每个,从NN表示110得出相应的NN参数120/130。装置100/装置300被配置为针对神经元间激活前馈的每个子组122a、122b,确定140/得出310与相应子组122a或122b相关联的关联量化参数142。量化参数142由装置100确定140,以使与相应子组122a或122b相关联的关联乘数144可基于由关联量化参数142得出的被除数和由与相应子组相关联的关联精度参数145得出的除数之间的除法的余数从量化参数142得出,并且量化参数142由装置100确定140,以使与相应子组122a或122b相关联的关联位移位数146可基于除法的商的舍入从量化参数142得出。装置300被配置为从NN表示110得出关联乘数144和关联位移位数146。装置100/装置300被配置为针对多个122神经元间激活前馈中的每个,从NN表示110确定150/得出320(例如,通过从NN表示110解码,即每边解码一个,得出320)与相应的神经元间激活前馈12i相关联的关联量化值152。相应的神经元间激活前馈12i的对应NN参数120/130对应于关联量化值142与因子148之间的乘积,因子取决于与其中包括相应的神经元间激活前馈12i的子组(例如,122a或122b)相关联的关联乘数144,该乘积被位移多个位,该多个位取决于其中包括相应的神经元间激活前馈12i的子组(例如,122a或122b)的关联位移位数146。
例如,关联精度参数145在NN 20上或在每个NN层114、1161和1162内全局相等地取值。可选地,装置100/装置300被配置为将关联精度参数145编码到NN表示110/从NN表示得出关联精度参数145。
根据实施例,装置100/装置300被配置为通过使用上下文自适应二进制算术编码/解码,或者通过直接将表示量化参数142的位写入NN表示110中/通过从NN表示110读取表示量化参数142的位,或者通过经由装置100/装置300的上下文自适应二进制编码器/解码器的等概率旁路模式,将表示量化参数142的位编码到NN表示110/从NN表示得出表示量化参数142的位,将量化参数142编码到NN表示110/从NN表示110得出量化参数142。装置100/装置300可被配置为通过使用二值化方案二值化/解二值化二进制串来从NN表示110得出量化参数142。例如,二值化方案是指数哥伦布码。
根据实施例,装置100被配置为确定140量化参数142并将其编码到固定小数点表示形式的NN表示110,例如,2的补码表示。装置300可以被配置为从固定小数点表示形式的NN表示110,例如,2的补码表示,得出310量化参数142。可选地,精度参数145是2t,并且固定小数点表示的位长度,例如,2的补码表示,被设置为对于NN 20为常数,或者被设置为对于NN 20是常数的基准位长度与t的和。
根据一个实施例,装置100/装置300被配置为将量化参数142编码到NN表示110/从NN表示得出量化参数,作为整数值的语法元素。
根据一个实施例,装置100被配置为确定量化值152并将其编码到固定小数点表示形式的NN表示110,例如,2的补码表示。装置300可以被配置为从固定小数点表示形式的NN表示110,例如,2的补码表示,得出320量化值152。
根据一个实施例,装置100/装置300被配置为通过根据二值化方案将量化值152二值化到二进制串/从二进制串解二值化出量化值152,使用上下文自适应算术编码/解码来对二进制串的位进行编码/解码,来将量化值152编码到NN表示110/从NN表示得出量化值。
根据一个实施例,装置100/装置300被配置为通过根据二值化方案将量化值152二值化到二进制串/从二进制串解二值化出量化值152,使用上下文自适应算术编码/解码对二进制串的第一位进行编码/解码,以及使用等概率旁路模式对二进制串的第二位进行编码/解码,来将量化值152编码到NN表示110/从NN表示解码量化值。
根据一个实施例,量化步长Δ149可以由装置100和/或装置300根据以下等式从表示为量化参数QP142的有符号整数和正整数参数k(即,精度参数145)得出:
mul=k+QP%k
可选地,装置100和/或装置300可以被配置为将精度参数k 145设置为默认值。
可替代地,装置100可以可选地测试精度参数k 145的若干不同整数值,诸如自然数或2的幂。诸如,对整个NN或对NN的每个部分如每层测试不同的整数值,并选择在量化误差和比特率方面如在其朗格斯和方面的最佳精度参数k 145。装置100例如,可以被配置为确定精度参数k 145以例如,在确定140处检查乘数144和位移位数146是否可从量化参数142得出。可选地,由装置100选择的精度参数k 145在NN表示110中被用信号通知,例如,被编码到NN表示110。例如,装置300被配置为从NN表示110得出精度参数k 145。
根据一个实施例,精度参数145是2的幂。
根据一个实施例,装置100/装置300被配置为通过直接将表示精度参数145的位写入NN表示110/直接从NN表示110读取表示精度参数145的位,或通过经由装置100/装置300的上下文自适应二进制编码器/解码器的等概率旁路模式将表示精度参数145的位写入NN表示110/从NN表示110读取表示精度参数145的位,来将精度参数145编码到NN表示110/从NN表示110得出精度参数145。
代替在位流,例如数字数据200中用信号通知32位浮点值,仅需要用信号通知参数QP142和k145。对于一些应用,仅在位流中用信号通知QP142并且将k 145设定为某一固定值甚至可能是足够的。
在优选实施例中,在位流中用信号通知参数QP′=QP-QP0,而不是QP 142,其中参数QP0是预定义的常数值。换言之,根据一个实施例,装置100/装置300被配置为以与参考量化参数QP0的差值的形式将关联量化参数QP 142编码到NN表示110/从NN表示得出关联量化参数QP 142。
在另一优选实施例中,k 145被设定为2t。以此方式,Δ149的计算可以在没有划分的情况下如下执行:
Δ=mul·2shift-t
这允许在整数域中而不是在浮点域中执行一些计算,如下面所例示的。
图4示意性地示出了用于使用NN 20执行推理的设备400。设备400包括被配置为参数化NN20的NN参数化器410。NN参数化器410包括用于从NN表示110得出NN参数130的装置300。用于得出NN参数130的装置300可包括与关于图2中的装置300所描述的相同或相似的特征。装置300可被理解为NN参数得出单元。装置300可以被理解为NN参数得出单元。另外,设备400包括计算单元420,其被配置为使用NN 20,例如,使用由NN参数化器410确定的NN20的参数化450,基于NN输入440来计算推理输出430。
示例1:
根据实施例,NN参数化器410被配置为经由装置300得出第一NN参数和第二NN参数中的至少一个,以使第一NN参数对应于第一量化值和第一因子之间的乘积,该乘积被位移第一位移位数,第二NN参数对应于第二量化值和第二因子之间的乘积,该乘积被位移第二位移位数。
第一量化值和第二量化值都表示在图2中用152表示的量化值。第一因子和第二因子都表示在图2中用148表示的因子。
例如,令t=2并且令k=2t并且定义第一QP,即,表示为QPa的第一量化参数142,相关联的shifta,即,第一位移位数146,mula,即,第一乘数144,和Δa,即,第一量化步长149。
另外,定义第二QP,即表示为QPb的第二量化参数142,相关联的shiftb,即第二位移位数146,mulb,即第二乘数144,和Δb,即第二量化步长149。
尽管在此上下文中用相同的附图标记表示“第一”参数和“第二”参数,但是清楚的是,它们可以具有不同的值。它们仅用相同的附图标记表示,以清楚它们属于图2中所示的哪个特征。
考虑C=Δa·Ca成立的第一经量化矩阵Ca。
考虑D=Δb·Db成立的第二经量化矩阵Db。
即,使用QPa量化Ca,并且使用QPb量化Db。
两个矩阵将具有相同的维度。图2中所讨论的量化值152可以表示Ca的一个分量或Db的一个分量。例如,Ca可以包括多个第一量化值152,并且Db可以包括多个第二量化值152。
另外,假设C+D之和应计算如下:
设备400被配置为通过形成第一加数和第二加数之间的和并且使第一加数和第二加数的和进行位移对第一NN参数C和第二NN参数D求和来产生NN 20的最终NN参数,第一加数例如,mula·Ca,由第一NN参数C的第一量化值Ca形成,用第一乘数mula加权,第二加数例如,由第二NN参数D的第二量化值Db形成,用第二乘数mulb加权,并被移位第一位移位数和第二位移位数之差,参见第一和第二加数的和被位移的位数量,该位数量取决于第一位移位数和第二位移位数中的一个,例如,它取决于第一位移位数shifta或取决于第二位移位数shiftb。
可选地,该计算/运算可以由计算单元420执行。在该情况下,计算单元420被配置为在执行计算时对第一NN参数C和第二NN参数D进行求和以产生NN 20的最终NN参数,如上所述。
从等式可以看出,不必得出C和D(这可能需要浮点运算)。相反,Ca的元素,即第一量化值152,简单地乘以mula,即第一乘数144,并且Db的元素,即第二量化值152,乘以mulb,即第二乘数144,并且因子被实现为简单的位移操作,其取决于与Ca的第一量化值152,即Ca的分量相关联的第一位移位数shifta 146,以及取决于与Db的第二量化值152,即Db的分量相关联的第二位移位数shiftb 146。注意,由于t=2,整数变量mula和mulb都是值4、5、6和7中的一个。这样小数字的整数乘法可以非常有效地在硬件或软件实现中实现。
根据实施例,第一NN参数表示NN 20的基本层表示,第二NN参数表示NN 20的增强层表示。可替代地,第一NN参数例如,表示NN 20的当前表示,第二NN参数表示当前NN表示的更新,即NN 20的当前表示的更新。可替代地,例如,第一NN参数表示用于偏置预定神经网络神经元10的入站神经元间激活前馈之和的偏置,即bi的分量,第二NN参数表示用于参数化神经网络层114、1161或1162的仿射变换,例如,b+μ,的批标准化参数,即μ、σ2、γ或β。
示例2:
根据一个实施例,NN参数化器410被配置为经由装置300得出第三NN参数和第四NN参数中的至少一个,以使第三NN参数对应于第三量化值和第三因子之间的乘积,该乘积被位移第三位移位数,第四NN参数对应于第四量化值和第四因子之间的乘积,该乘积被位移第四位移位数。
第三量化值和第四量化值都表示在图2中用152表示的量化值。第三因子和第四因子都表示在图2中用148表示的因子。
例如,令t=2并且令k=2t并且定义第一QP,例如,表示为QPa的第三量化参数142,相关联的shifta,即第三位移位数146,mula,即第三乘数144,和Δa,即第三量化步长149。
另外,定义第二QP,例如,表示为QPb的第四量化参数142,相关联的shiftb,即第四位移位数146,mulb,即第四乘数144,和Δb,即第四量化步长149。
尽管在此上下文中用相同的附图标记表示“第三”参数和“第四”参数,但是清楚的是,它们可以具有不同的值。它们仅用相同的附图标记表示,以清楚它们属于图2中所示的哪个特征。设备400可以被配置为仅得出第三和/或第四参数,或者附加地得出第一和/或第二参数,如以上示例1中所描述的。
考虑W=Δa·Wa成立的经量化矩阵Wa。
考虑γ=Δb·γb成立的经量化的转置向量γb。
即,使用QPa量化Wa,并且使用QPb量化γb。
图2中所讨论的量化值152可以表示Wa的一个分量或γb的一个分量。例如,Wa可以包括多个量化值152,并且γb可以包括多个量化值152。
另外,假定逐元素乘积W·γ应计算如下:
该计算/运算可由计算单元420执行,例如,通过使第三NN参数W和第四NN参数γ相乘以通过形成由第三NN参数W的第三量化值Wa形成的第一因子、由第三乘数mula形成的第二因子、由第四NN参数γ的第四量化值γb形成的第三因子、和由第四乘数mulb形成的第四因子的乘积而产生乘积,该乘积被位移多个位,例如,对应于包括由第三位移位数shifta形成的第一加数和由第四位移位数shiftb形成的第二加数的和。
从等式可以看出,不必得出W和γ(这可能需要浮点运算)。相反,计算mula·mulb·Wa·γb仅涉及整数乘法,且与的后续乘法可被实现为位移。注意,由于t=2,整数变量mula和mulb都是值4、5、6和7中的一个。这样小数字的整数乘法可以非常有效地在硬件或软件实现中实现。
根据实施例,第三NN参数表示用于对从第一NN层114的第一神经元101到第二NN层1162的第二神经元102的神经元间激活前馈进行加权的权重参数,例如,W的分量w,或者说,第三NN参数表示与连接第一神经元101和第二神经元102的边12i相关的权重,并且对第二神经元102的入站激活的总和中的第一神经元101的激活的转发进行加权。
第四NN参数例如,表示批标准化参数,例如,μ、σ2、γ或β。例如,批标准化参数用于调整第一神经元101相对于第二NN层1161的激活前馈放大,例如,γ。
输入X的量化
根据实施例,设备400被配置为通过为激活确定第五量化参数QP,即量化参数142,和第五量化值,例如X’,即量化值152,例如使用装置300通过将激活量化到量经化值,例如X″,来量化NN输入X440,使得从第五量化参数QP,基于由第五量化参数QP得出的被除数和由与激活相关联的精度参数k即精度参数145得出的除数之间的除法的余数而得出第五乘数mul即乘数144,并且基于除法的商的舍入而得出第五位移位数shift,即位移位数146,从而产生对应于第五量化值和取决于第五乘数的因子即因子148之间的乘积的经量化值,乘积被位移取决于第五位移位数的第五数量的位。
在优选实施例中,偏置层或批标准化层的输入X440也使用本发明的量化方法来被量化,参见图2中的装置100的描述。即,选择量化参数QP和相关联的变量-相关联的shift、mul和Δ(具有t=2和k=2t),并且将X量化为X',以使X″=Δ·X’=mul·2shift-t·X’成立。然后,不使用X来执行偏置层或批标准化层,而是使用X″作为输入。注意,X’通常可以用比X少得多的每个元素的位来表示,这对于高效的硬件或软件实现是另一个优点。
根据一个实施例,NN参数化器410被配置为经由装置300得出第六NN参数,以使第六NN参数对应于第六量化值和第六因子之间的乘积,该乘积被位移第六位移位数。设备400被配置为对第六NN参数和激活进行乘法,以通过形成第一因子、第二因子、第三因子和第四因子的乘积来产生乘积,其中第一因子由第六NN参数的第六量化值形成,第二因子由第六乘数形成,第三因子由第五量化值形成,第四因子由第五乘数形成,乘积被位移与包括由第六位移位数形成的第一加数和由第四位移位数形成的第二加数的总和相对应的位数量。
根据本实施例,第六NN参数表示用于对输入440进行加权的权重参数W,由此能够计算乘积W*X。
返回参考图2,在下文中描述了装置100和/或装置300的另外的可选特征。
参数QP的高效编码和解码
在优选实施例中,参数QP,即量化参数142,由装置100/装置300使用根据以下定义的阶数K的带符号指数哥伦布码编码到位流200中/从位流解码。
另一个优选实施例与前一优选实施例相同,其中阶数K被设置为0。
无符号整数的指数哥伦布码
无符号整数的无符号指数哥伦布码应根据如高效视频编码(HEVC)标准中定义的语法元素ue(v)的解码规范。
本规范简要综述如下:
根据以下伪代码定义从二进制表示解码无符号整数变量‘decNum’,其中二进制表示是用阶数K的无符号指数哥伦布码编码的:
leadingZeroBits=-1
for(b=0;!b;leadingZeroBits++)
b=read_bits(1)
然后如下分配变量codeNum:
decNum=(2leadingZeroBits-1)*2K+read_bits(leadingZeroBits+K)
函数read_bits(x)从位流读取x个位,并将其作为无符号整数返回。所读取的位从最高有效位(MSB)到最低有效位(LSB)排序。
用于有符号整数的指数哥伦布码
有符号整数的无符号指数哥伦布码应根据如高效视频编码(HEVC)标准中定义的语法元素se(v)的解码规范。
本规范简要综述如下:
从用带符号的指数哥伦布码编码的二进制表示中解码带符号的整数‘signedDecNum’如下。首先,根据如上所述的HEVC的ue(v)语法元素解码处理来解码无符号整数。其次,根据以下等式将无符号整数转换为有符号整数:
进一步优选的实施例
在优选实施例中,参数k,即精度参数145,被设置为2t,并且使用具有bits_t个位(例如,bits_t=3或bits_t=4)的无符号整数表示来编码参数t。
在另一优选实施例中,参数k,即精度参数145,被设为2t,并且使用无符号整数的指数哥伦布码来编码参数t。
在另一优选实施例中,使用带符号整数的指数哥伦布码来编码参数QP,即量化参数142。
在另一优选实施例中,参数k,即精度参数145,被设置为2t,并且使用bits_qp个位以2的补码表示的有符号整数来编码参数QP。或者,bits_qp被设置为恒定值,例如,12或13,或者bits_qp被设置为bits_qp0+t并且bits_qp0是非零恒定整数值(例如,bits_qp0=6)。
在经CABAC编码的位流200的情况下,表示参数t和/或QP 142的位可编码成旁路二进位(使用CABAC的旁路模式)或其可直接写入到位流200中。
在另一优选实施例中,参数W、b、μ、σ2、γ和β中的每一个用单独的QP 142值来量化,在对QP值进行编码之后紧接着对参数进行编码。
在另一优选实施例中,第一QP 142被编码到位流200,并且与模型的参数的子集相关联。对于该子集的每个参数x,每参数一个QP偏移QPx被编码,并且用于解量化参数的有效QP 142,即NN参数120被给定为QP+QPx。QPx的二进制表示优选地使用比QP的二进制表示更少的比特。例如,使用用于有符号整数的指数哥伦布码或固定数量的位(在2的补码表示中)来编码QPx。
关于加权参数的译码的进一步的实施例
图5所示的另一个优选实施例涉及加权参数W 545的表示。即,它将它们因式分解为向量546和矩阵544的组合:W->s·W′。W和W′,即加权矩阵544是维度n×m的矩阵,并且s是长度为n的转置向量546。向量s546的每个元素被用作权重矩阵W′544的逐行缩放因子。换句话说,s546被逐元素地与W′544的每一列相乘。我们将s546称为局部缩放因子或局部缩放自适应(LSA)。
图5示出了用于使用NN 20执行推理的设备500。设备500被配置为使用NN 20基于NN输入440来计算推理输出430。NN 20包括一对NN层114和116以及从该对NN层的第一层114到该NN层的第二层116的神经元间激活前馈122。设备500被配置为通过,例如使用设备500的矩阵形成单元530,从第一NN层114的神经网络神经元101的激活520形成矩阵X 532,而基于第一NN层114的神经网络神经元101的激活520计算第二NN层116的神经网络神经元102的激活510。另外,设备500被配置为通过计算s·W′*X542基于第一NN层114的神经网络神经元101的激活520来计算第二NN层116的神经网络神经元102的激活510,其中*表示矩阵乘法,W′是具有n和的维度n×m的权重矩阵544,s是长度为n的转置向量546,·表示·一侧的矩阵和另一侧·上的转置向量之间的逐列哈达玛乘法。设备500可以包括被配置为执行计算542的计算单元540。
根据一个实施例,转置向量s 546是在用于编码W′544的更高压缩和/或更高的推理保真度方面的W′544的优化的结果。
基本原理是LSA缩放权重矩阵544,以使算术编码方法产生更高的编码增益和/或增加神经网络性能结果,例如,实现更高的精度。例如,在W的量化之后,s546可以被适配以使减少量化误差并且因此增加经量化的神经网络的预测性能,在使用或不使用输入数据440,例如,X532的情况下。
因此,s546和W′544可以具有不同的量化参数,即不同的QP。从性能的观点来看,而且从硬件效率的观点来看,这是有益的。例如,可以量化W′544,以使可以以8位表示执行与输入X532的点积,然而,随后以16位与缩放因子s546相乘。设备500例如被配置为使用n位固定小数点算术来计算矩阵乘法W′*X,从而生成点积,并使用m位固定小数点算术来将点积与s 546相乘,其中m>n。
然而,即使W′544和s546都被量化为n位表示,比量化W545所必需的位更小的n也可能足以产生相同的推理精度。类似地,如果s546被量化为比W′544更少位的表示,则甚至可以实现表示效率方面的优点。
根据一个实施例,设备500包括NN参数化器,例如,图4中所示的NN参数化器410,其被配置为从NN表示110得出W′544。NN参数化器包括用于从NN表示110得出NN参数的装置,例如,图4或图2所示的装置300。权重矩阵W′544可以是由装置300得出的NN参数。可选地,NN参数化器410还被配置为使用与和W′544相关的NN参数相比不同的量化参数142从NN表示110得出s 546。
在优选实施例中,加权矩阵W 544的编码如下。首先,编码指示是否使用LSA的标志。如果标志是1,则使用现有技术参数编码方案,如DeepCABAC,对参数s 546和W'544进行编码。如果标志是0,则编码W 545。
在另一个优选实施例中,根据先前的优选实施例,不同的QP值被用于W'544和s546。
批标准化压缩
图6中所示的实施例涉及改进批标准化压缩。图6示出了用于将NN的批标准化运算符710的NN参数610,例如,μ、σ2、γ、β和可选的b编码到NN表示110的装置600,和用于从NN表示110解码NN的批标准化运算符710的NN参数610,例如,γ722和β724,和参数732,即μ、σ2和可选的b的装置700。示出了四个实施例,其中第一实施例说明了一般情况,而其他实施例针对特殊情况。
一般而言,批标准化运算符7101可被定义为
其中
μ、σ2、γ和β是批标准化参数,例如,对于每个输出节点包括一个分量的转置向量,
W是加权矩阵,例如,其每一行用于一个输出节点,相应行的每个分量与X的一行相关联,
X是从NN层的激活得出的输入矩阵,
b是形成偏置的转置向量,例如,对于每个输出节点包括一个分量的转置向量,
∈是用于零除避免的常数,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法。
在图6中,批标准化运算符710的一些参数具有撇号,以能够区分由不带撇号的参数指示的原始参数610与由带撇号的参数指示的修改参数722、724和732。显然,原始参数610或修改的参数722、724和732可以用作上面定义的批标准化运算符710中的一个的参数。
装置600被配置为接收参数μ、γ、β和σ2或σ,参见6101至6104,并且可选地接收参数b,参见6101和6102。
计算出的参数β′和γ′被作为批标准化运算符710的NN参数编码到NN表示110,例如,以使其(β′和γ′)也是转置向量,包括每个输出节点的一个分量。
因此,第一实施例的批标准化运算符7101可被定义为其中σ′2:=θ、μ′:=0和b′:=0,其中θ是预定参数。第二实施例的批标准化运算符7102可被定义为其中σ′2:=1、μ′:=0和b′:=0。第三实施例的批标准化运算符7103可被定义为其中σ′2:=θ和μ′:=0,其中θ是预定参数,并且用于第四实施例的批标准化运算符7104可被定义为其中σ′2:=1和μ′:=0。
预定参数是1或1-∈,例如,再次地,μ′、σ′2、γ′和β′是转置向量,其包括用于每个输出节点的一个分量,W是权重矩阵,X是从NN层的激活得出的输入矩阵,b’是形成偏置的转置向量,例如,包括用于每个输出节点的一个分量的转置向量。
装置700被配置为,例如通过使用可被装置700包括的γ和β得出单元720从NN表示得出γ和β,即γ′和β′。
根据第一实施例,装置700被配置为通过应用于其所有分量的一个信令734来推理或得出σ′2:=θ、μ′:=0和b′:=0,其中θ是预定参数。
根据第二实施例,装置700被配置为通过应用于其所有分量的一个信令734来推理或得出σ′2:=1、μ′:=0和b′:=0。
根据第三实施例,装置700被配置为通过应用于其所有分量的一个信令734来推理或得出σ′2:=θ和μ′:=0,其中θ是预定参数。
根据第四实施例,装置700被配置为通过应用于其所有分量的一个信令734来推理或得出σ′2:=1和μ′:=0。
参数σ′2、μ′以及可选地b′的该得出或推理可以使用参数推理/得出单元730来执行。
预定参数是1或1-∈,例如,再次地,μ′、σ′2、γ′和β′是转置向量,其包括用于每个输出节点的一个分量,W是权重矩阵,X是从NN层的激活得出的输入矩阵,b’是形成偏置的转置向量,例如,包括用于每个输出节点的一个分量的转置向量。
在图6中,由装置700得出或推理的参数由撇号指示,然而,由于装置700从未看到原始参数610的事实,由装置700得出或推理的参数也可以在不使用撇号的情况下指示。考虑到装置700,得出的或推理的参数是唯一的现有参数。
可选地,装置700可被配置为使用具有得出或推理的参数722、724和732的批标准化运算符,例如,用于推理。批标准化运算符计算单元可被配置为使用批标准化运算符。可替代地,用于推理的设备,例如,设备400或设备500,可以包括装置700以获得批标准运算符710的参数。
引入恒定标量值θ,即预定参数,其例如,可以等于1或1-∈,参数b、μ、σ2、γ和β可以通过以下排序的步骤修改而不改变BN(X)的结果,即批标准化运算符710的结果:
3)σ2:=θ
4)μ:=0
5)b:=0
每个运算都应被解释为对转置向量的元素的逐元素运算。不改变BN(X)的进一步修改也是可能的,如在实施例二至三中所例示。例如,将偏置b和平均值μ被‘整合’到β,以使b和μ随后被设置为0,参见第三实施例。或者σ2可以被设置为1-∈(即θ=1-∈),以使在相应地调整其他参数时将BN(X)中的分数的分母设置为等于1。
结果,b、σ2、μ和b可以被更有效地压缩,因为所有的向量元素具有相同的值。
在优选实施例中,编码指示参数的所有元素是否具有预定义常数值的标志734。参数可以是,例如,b、μ、σ2、γ或β。例如,预定义值可以是0、1或1-∈。如果标志等于1,则参数的所有向量元素被设置为预定义值。否则,使用现有技术参数编码方法中的一个,例如,DeepCABAC来编码参数。
在另一个优选实施例中,对每个参数编码一个标志,标志指示是否所有向量元素具有相同的值。当所有向量元素具有相同值时,标志等于1,使用现有技术参数编码方法,例如,DeepCABAC或指数哥伦布码或固定长度码来编码该值。如果标志是0,则使用现有技术参数编码方法中的一个,例如DeepCABAC,来编码参数的向量元素。
根据一个实施例,装置600/装置700被配置为在表示110中指示/从表示110得出σ′2的所有分量(例如,每个分量用于表示相应的输出节点的W的相应行)及其值彼此相等。另外或可替代地,装置600/装置700被配置为在表示110中指示/从表示110得出μ′的所有分量(例如,每个分量用于表示相应的输出节点的W的相应行)及其值彼此相等。另外或可替代地,装置600/装置700被配置为在表示119中指示/从表示119得出,例如,在第一实施例和第二实施例的情况下,而不是在第三实施例和第四实施例的情况下,b′的所有分量及其值彼此相等,例如,每个分量用于表示相应的输出节点的W的相应行。
根据一个实施例,装置600被配置为在两个批标准化编码模式之间可切换,其中在第一批标准化编码模式中,装置600被配置为执行β′和γ′的计算和编码,在第二批标准化编码模式中,装置被配置为对接收的μ、σ2或σ、γ和β进行编码,并且如果存在,则对b进行编码。换句话说,在第二批标准化模式中将接收的参数610直接编码到表示110。并行地,装置700也可被配置为在两个批标准化编码模式之间可切换,其中在第一批标准化编码模式中,装置700被配置为执行得出和推理或得出,而在第二批标准化编码模式中,装置700被配置为从表示110解码μ、σ2或σ、γ和β,并且如果存在的话,解码b。换句话说,在第二批标准化模式中从表示110直接解码参数610。
根据一个实施例,装置600包括装置100,见图2,以使将β′和γ′量化和编码到NN表示110。例如,装置600首先执行计算620,并将获得的参数β′和γ′传递到装置100,以用于参数的量化。根据一个实施例,装置700包括装置300,见图2,以从NN表示110得出β和γ。
为了便于理解,图7中描绘了X和W与一对层之间的可能关系:左边是全连接层i+1,右边是卷积层i+1。层的神经元由圆圈10描绘。每层的神经元定位在阵列位置(x,y)。每层i具有qi列的神经元10和pi行的神经元10。在全连接的情况下,Xi是分量的向量,其中每个Xg填充有位置处的神经元的激活,并且Wi是分量的矩阵,其中每个Wg,h填充有位置处的层i+1的神经元10与位置处的层i的神经元10之间的边12的权重。在卷积的情况下,Xi是分量的矩阵,其中每个Xg,h填充有位置处的神经元的激活,并且Wi是分量W1…r·s的向量,其中每个Wg,h填充有从位于分布在层i上的pi+1·qi+1个位置之一处的层i中的大小为r x s的矩形滤波器核中的神经元到与核位置相对应的层i+1中的神经元位置的边的权重。
尽管已经在设备的上下文中描述了一些方面,但是清楚的是,这些方面还表示对应方法的描述,其中方框或装置对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的各方面还表示对相应装置的相应方框或项目或特征的描述。可以通过(或使用)硬件装置(例如,微处理器、可编程计算机或电子电路)来执行这些方法步骤中的一些或全部。在一些实施例中,此类装置可以执行一个或多个最重要的方法步骤。
本发明的包含本发明的NN表示的数字数据、数据流或文件可被存储在数字存储介质上,或者可在诸如无线传输介质或诸如因特网的有线传输介质的传输介质上传输。
取决于某些实现方式需求,可以用硬件或软件来实现本发明的实施例。该实现方式可以使用其上存储有电子可读控制信号的数字存储介质(例如,软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或闪存)来执行,电子可读控制信号与可编程计算机系统协作(或能够协作),从而执行相应的方法。因此,数字存储介质可以是计算机可读的。
根据本发明的一些实施例包括能够与可编程计算机系统协作,以使执行本文描述的方法中的一个的具有电子可读控制信号的数据载体。
通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,当计算机程序产品在计算机上运行时,该程序代码用于执行方法中的一个。该程序代码例如,可以存储在机器可读载体上。
其他实施例包括存储在机器可读载体上的用于执行本文所述方法之一的计算机程序。
换句话说,本发明方法的实施例因此是一种计算机程序,当计算机程序在计算机上运行时,该计算机程序具有用于执行这里描述的方法中的一者的程序代码。
因此,本发明方法的另一个实施例是一种数据载体(或数字存储介质,或计算机可读介质),包括记录在其上的用于执行这里描述的方法中的一个的计算机程序。数据载体、数字存储介质或记录介质通常是有形的和/或非过渡的。
因此,本发明方法的另一个实施例是表示用于执行这里描述的方法中的一个的计算机程序的数据流或信号序列。该数据流或该信号序列可以例如,被配置为经由数据通信连接(例如,经由互联网)来传输。
另一个实施例包括处理设备,例如,被配置为或适于执行这里描述的方法中的一个的计算机或可编程逻辑装置。
另一实施例包括其上安装有用于执行本文所述方法中的一个的计算机程序的计算机。
根据本发明的另一实施例包括被配置为将用于执行本文描述的方法中的一个的计算机程序(例如,通过电子或光学)传输到接收器的装置或系统。接收器例如,可以是计算机、移动装置、存储装置等。该装置或系统例如,可以包括用于将计算机程序传送到接收器的文件服务器。
在一些实施例中,可编程逻辑装置(例如,现场可编程门阵列)可以用于执行在此描述的方法的一些或全部功能。在一些实施例中,现场可编程门阵列可与微处理器协作以执行本文中所描述的方法中的一个。通常,这些方法优选地由任何硬件装置来执行。
本文描述的设备可以使用硬件装置,或使用计算机,或使用硬件装置和计算机的组合来实现。
可以至少部分地以硬件和/或软件来实现本文描述的装置或本文描述的装置的任何组件。
本文描述的方法可以使用硬件装置,或使用计算机,或使用硬件装置和计算机的组合来执行。
本文描述的方法或本文描述的装置的任何组件可以至少部分地由硬件和/或软件来执行。
上述实施例仅是对本发明原理的说明。应当理解,这里描述的布置和细节的修改和变化对于本领域的其他技术人员将是显而易见的。因此,意图是仅由所附权利要求的范围而不是由通过本文实施例的描述和解释而呈现的具体细节来限制。
Claims (108)
1.一种用于生成NN表示(110)的装置(100),所述装置(100)被配置为通过确定(140)用于NN参数(120)的量化值(152)和量化参数(142)将所述NN参数(120)量化到经量化值(130),以使从所述量化参数(142)
基于由所述量化参数(142)得出的被除数与由精度参数(145)得出的除数之间的除法的余数,可得出乘数(144),以及
基于所述除法的商的舍入可得出位移位数(146),
以使所述NN参数(120)的所述经量化值(130)对应于所述量化值(152)和取决于所述乘数(144)的因子(148)之间的乘积,所述乘积被位移多个位,所述多个位取决于所述位移位数(146)。
2.根据权利要求1所述的装置(100),还被配置为将所述精度参数(145)编码到所述NN表示(110)。
3.根据权利要求1或权利要求2所述的装置(100),其中所述NN参数(120)是以下中的一个:
用于对神经元对(10)之间的神经元间激活前馈(12)进行加权的权重参数,
用于参数化神经网络层的仿射变换的批标准化参数,以及
用于偏置预定神经网络神经元(10)的入站神经元间激活前馈(12)的总和的偏置。
4.根据前述权利要求中任一项所述的装置(100),
其中所述NN参数(120)根据NN(20)的多个(122)神经元间激活前馈中的单个神经元间激活前馈(12)来参数化所述NN(20),并且对于所述多个(122)神经元间激活前馈中的每个,相应的NN参数(120)包括在所述NN表示(110)中,
其中所述装置(100)被配置为针对所述多个(122)神经元间激活前馈中的每个,通过确定与所述相应的神经元间激活前馈(12)相关联的关联量化参数(142)和与所述相应的神经元间激活前馈(12)相关联的关联量化值(152)来将对应的NN参数(120)量化到对应的经量化值(130),
以使从所述关联量化参数(142),
基于由所述关联量化参数(142)得出的被除数和由与所述相应的神经元间激活前馈(12)相关联的关联精度参数(145)得出的除数之间的除法的余数,可得出与所述相应的神经元间激活前馈(12)相关联的关联乘数(144),以及
基于所述除法的所述商的舍入,可得出与所述相应的神经元间激活前馈(12)相关联的关联位移位数(146),
以使用于所述相应的神经元间激活前馈(12)的所述对应的NN参数(120)的所述对应的经量化值(130)对应于所述关联量化值(152)和取决于所述关联乘数(144)的因子(148)之间的乘积,所述乘积被位移多个位,所述多个位取决于所述关联位移位数(146)。
5.根据前述权利要求1至3中任一项所述的装置(100),其中
所述装置(100)被配置为将NN的多个(122)神经元间激活前馈细分为神经元间激活前馈的子组(122a、122b),以使每个子组(122a、122b)与所述NN(20)的关联NN层对相关联,并且包括所述关联NN层对之间的神经元间激活前馈(12),并且排除除所述关联层对之外的另外的NN层对之间的神经元间激活前馈(12),并且多于一个子组(122a、122b)与预定NN层相关联,
所述NN参数(120)根据所述NN的所述多个(122)神经元间激活前馈中的单个神经元间激活前馈(12)来参数化所述NN(20),其中对于所述多个(122)神经元间激活前馈中的每个,相应的NN参数(120)包括在所述NN表示(110)中,其中所述装置(100)被配置为
对于神经元间激活前馈的每个子组(122a、122b),
从所述NN表示(110)确定与相应子组(122a、122b)相关联的关联量化参数(142),以使
从所述关联量化参数(142),
基于由所述关联量化参数(142)得出的被除数和由与所述相应子组(122a、122b)相关联的关联精度参数(145)得出的除数之间的除法的余数,可得出与所述相应子组(122a、122b)相关联的关联乘数(144),和
基于所述除法的商的舍入,可得出与所述相应子组(122a、122b)相关联的关联位移位数(146),
对于所述多个(122)神经元间激活前馈中的每个,通过从所述NN表示(110)确定与所述相应的神经元间激活前馈(12)相关联的关联量化值(152),将所述对应的NN参数(120)量化到对应的经量化值(130),
其中所述相应的神经元间激活前馈(12)的所述对应的NN参数(120)对应于所述关联量化值(152)与因子(148)之间的乘积,所述因子取决于与包括所述相应的神经元间激活前馈(12)的所述子组(122a、122b)相关联的所述关联乘数(144),所述乘积被位移多个位,所述多个位取决于其中包括所述相应的神经元间激活前馈(12)的所述子组(122a、122b)的所述关联位移位数(146)。
6.根据权利要求4或权利要求5所述的装置(100),其中所述关联精度参数(145)在所述NN(20)上或在每个NN层(114、116)内全局相等地取值。
7.根据前述权利要求4至6中任一项所述的装置(100),被配置为将所述关联精度参数(145)编码到所述NN表示(110)。
8.根据前述权利要求4至7中任一项所述的装置(100),被配置为以与参考量化参数的差值的形式将所述关联量化参数(142)编码到所述NN表示(110)。
10.根据前述权利要求中任一项所述的装置(100),其中所述精度参数(145)是2的幂。
11.根据前述权利要求中任一项所述的装置(100),被配置为
通过使用上下文自适应二进制算术编码,或者
通过将表示所述量化参数(142)的位直接写入所述NN表示(110),或者
通过所述装置(100)的上下文自适应二进制编码器的等概率旁路模式将表示所述量化参数(142)的位编码到所述NN表示(110),
而将所述量化参数(142)编码到所述NN表示(110)。
12.根据前述权利要求中任一项所述的装置(100),被配置为通过使用二值化方案将所述量化参数(142)二值化为二进制串来将所述量化参数(142)编码到所述NN表示(110)。
13.根据权利要求12所述的装置(100),其中所述二值化方案是指数哥伦布码。
14.根据前述权利要求中任一项所述的装置(100),被配置为确定所述量化参数(142)并将其编码成固定小数点表示形式的所述NN表示(110)。
15.根据权利要求14所述的装置(100),其中所述精度参数(145)为2t,所述固定小数点表示的位长度被设置为对于所述NN(20)为常数,或者被设置为对于所述NN(20)为常数的基准位长度与t的和。
16.根据前述权利要求中任一项所述的装置(100),被配置为将所述量化参数(142)作为整数值的语法元素编码到所述NN表示(110)。
17.根据前述权利要求中任一项所述的装置(100),被配置为通过将表示所述精度参数(145)的位直接写入所述NN表示(110)中,或者通过经由所述装置(100)的上下文自适应二进制编码器的等概率旁路模式将表示所述精度参数(145)的位编码到所述NN表示(110),而将所述精度参数(145)编码到所述NN表示(110)。
18.根据前述权利要求中任一项所述的装置(100),被配置为将所述量化值(152)和所述量化参数(142)编码到所述NN表示(110)。
19.根据前述权利要求中任一项所述的装置(100),被配置为
通过使用用于所述NN参数(120)的浮点表示训练NN,而提供所述NN参数(120),以及
通过旨在减少量化误差的迭代优化方案来确定所述NN参数(120)的所述量化参数(142)和所述量化值(152)。
20.根据前述权利要求中任一项所述的装置(100),被配置为确定所述量化值(152)并将其编码到固定小数点表示形式的所述NN表示(110)。
21.根据前述权利要求中任一项所述的装置(100),被配置为通过根据二值化方案将所述量化值(152)二值化为二进制串,使用上下文自适应算术编码对所述二进制串的位进行编码,将所述量化值(152)编码到所述NN表示(110)。
22.根据前述权利要求中任一项所述的装置(100),被配置为通过根据二值化方案将所述量化值(152)二值化为二进制串,使用上下文自适应算术译码对所述二进制串的第一位进行编码,以及使用等概率旁路模式对所述二进制串的第二位进行编码,将所述量化值(152)编码到所述NN表示(110)。
23.一种定义NN表示(110)的数字数据,所述NN表示(110)包括用于表示NN参数(130)的量化参数(142)和量化值(152),
以使从所述量化参数(142),
基于由所述量化参数(142)得出的被除数与由精度参数(145)得出的除数之间的除法的余数,可得出乘数(144),和
基于所述除法的商的舍入,可得出位移位数(146),以及
以使所述NN参数(130)对应于所述量化值(152)和取决于所述乘数(144)的因子(148)之间的乘积,所述乘积被位移多个位,所述多个位取决于所述位移位数(146)。
24.根据权利要求23所述的数字数据,其中所述精度参数(145)被编码到所述NN表示(110)。
25.根据权利要求23或24所述的数字数据,其中所述NN参数(130)是以下中的一个:
用于对神经元对(10)之间的神经元间激活前馈(12)进行加权的权重参数,
用于参数化神经网络层的仿射变换的批标准化参数,以及
用于偏置预定神经网络神经元(10)的入站神经元间激活前馈(12)的总和的偏置。
26.根据前述权利要求23至25中任一项所述的数字数据,其中所述NN参数(130)根据所述NN的多个(122)神经元间激活前馈中的单个神经元间激活前馈(12)来参数化所述NN,并且对于所述多个(122)神经元间激活前馈中的每个,相应的NN参数(130)包括在所述NN表示(110)中,
其中对于所述多个(122)神经元间激活前馈中的每个,
与所述相应的神经元间激活前馈(12)相关联的关联量化参数(142)被包括在所述NN表示(110)中,并且
与所述相应的神经元间激活前馈(12)相关联的关联量化值(152)被包括在所述NN表示(110)中,以使
从所述关联量化参数(142)中,
基于由所述关联量化参数(142)得出的被除数和由与所述相应的神经元间激活前馈(12)相关联的关联精度参数(145)得出的除数之间的除法的余数,可得出与所述相应的神经元间激活前馈(12)相关联的关联乘数(144),以及
基于所述除法的所述商的舍入,可得出与所述相应的神经元间激活前馈(12)相关联的关联位移位数(146),
以使用于所述相应的神经元间激活前馈(12)的所述对应的NN参数(130)的所述对应的经量化值(130)对应于所述关联量化值(152)和取决于所述关联乘数(144)的因子(148)之间的乘积,所述乘积被位移多个位,所述多个位取决于所述关联位移位数(146)。
27.根据前述权利要求23至25中任一项所述的数字数据,其中NN的多个(122)神经元间激活前馈被细分为神经元间激活前馈的子组(122a、122b),以使每个子组(122a、122b)与所述NN的关联NN层对相关联,并且包括所述关联NN层对之间的神经元间激活前馈,并且排除除了所述关联层对之外的另外的NN层对之间的神经元间激活前馈,并且多于一个子组(122a、122b)与预定NN层相关联,
所述NN参数(130)根据所述NN的所述多个(122)神经元间激活前馈中的单个神经元间激活前馈(12)来参数化所述NN,其中对于所述多个(122)神经元间激活前馈中的每个,相应的NN参数(130)包括在所述NN表示(110)中,其中
对于神经元间激活前馈的每个子组(122a、122b),
与所述相应子组(122a、122b)相关联的关联量化参数(142)被包括在所述NN表示(110)中,以使
从所述关联量化参数(142),
基于由所述关联量化参数(142)得出的被除数和由与所述相应子组(122a、122b)相关联的关联精度参数(145)得出的除数之间的除法的余数,可得出与所述相应子组(122a、122b)相关联的关联乘数(144),和
基于所述除法的商的舍入,可得出与所述相应子组(122a、122b)相关联的关联位移位数(146),
对于所述多个(122)神经元间激活前馈中的每个,
与相应的神经元间激活前馈相关联的关联量化值(152)被包括在所述NN表示(110)中,
其中所述相应的神经元间激活前馈(12)的所述对应的NN参数(130)对应于所述关联量化值(152)与因子(148)之间的乘积,所述因子取决于与包括所述相应的神经元间激活前馈(12)的所述子组(122a、122b)相关联的所述关联乘数(144),所述乘积被位移多个位,所述多个位取决于其中包括所述相应的神经元间激活前馈(12)的所述子组(122a、122b)的所述关联位移位数(146)。
28.根据前述权利要求26或27中任一项所述的数字数据,其中所述关联精度参数(145)在所述NN上或在每个NN层内全局相等地取值。
29.根据前述权利要求26至28中任一项所述的数字数据,其中所述关联精度参数(145)被编码到所述NN表示(110)。
30.根据前述权利要求26至29中任一项所述的数字数据,所述关联量化参数(142)以与参考量化参数的差值的形式被编码到所述NN表示(110)。
32.根据前述权利要求23至31中任一项所述的数字数据,其中所述精度参数(145)是2的幂。
33.根据权利要求23至32中任一项所述的数字数据,其中
通过使用上下文自适应二进制算术编码,或者
通过将表示所述量化参数(142)的位直接写入所述NN表示(110),或者
通过上下文自适应二进制编码器的等概率旁路模式将表示所述量化参数(142)的位编码到所述NN表示(110),
而将所述量化参数(142)编码到所述NN表示(110)。
34.根据前述权利要求23至33中任一项所述的数字数据,其中使用二值化方案将所述量化参数(142)以二值化为二进制串的形式编码到所述NN表示(110)。
35.根据权利要求34所述的数字数据,其中所述二值化方案为指数哥伦布码。
36.根据前述权利要求23至35中任一项所述的数字数据,其中所述量化参数(142)以固定小数点表示的形式被编码到所述NN表示(110)。
37.根据权利要求36所述的数字数据,其中所述精度参数(145)为2t,所述固定小数点表示的位长度被设置为对于所述NN为常数,或者被设置为对于所述NN为常数的基准位长度与t的和。
38.根据前述权利要求23至37中任一项所述的数字数据,其中所述量化参数(142)被作为整数值的语法元素编码到所述NN表示(110)。
39.根据前述权利要求23至38中任一项所述的数字数据,其中通过将表示所述精度参数(145)的位直接写入所述NN表示(110)中,或者通过经由上下文自适应二进制编码器的等概率旁路模式将表示所述精度参数(145)的位编码到所述NN表示(110),而将所述精度参数(145)编码到所述NN表示(110)。
40.根据前述权利要求23至39中任一项所述的数字数据,其中所述量化值(152)以固定小数点表示的形式被编码到所述NN表示(110)。
41.根据前述权利要求23至40中任一项所述的数字数据,其中以根据二值化方案将所述量化值(152)二值化为二进制串并使用上下文自适应算术编码将所述二进制串的位编码到位流的形式而将所述量化值(152)编码到所述MN表示(110)。
42.根据前述权利要求23至41中任一项所述的数字数据,其中以根据二值化方案将所述量化值(152)二值化到所述二进制串中,并且使用上下文自适应算术编码将所述二进制串的第一位编码到所述位流,使用等概率旁路模式将所述二进制串的第二位编码到所述位流的形式来而将所述量化值(152)编码到所述MN表示(110)。
43.一种用于从NN表示(110)得出NN参数的装置,被配置为
从所述NN表示(110)得出量化参数(142),
从所述NN表示(110)得出量化值(152),以及
从所述量化参数(142),
基于由所述量化参数(142)得出的被除数与由精度参数(145)得出的除数之间的除法的余数,得出乘数(144),和
基于所述除法的商的舍入,得出位移位数(146),
其中所述NN参数(130)对应于所述量化值(152)和取决于所述乘数(144)的因子(148)之间的乘积,所述乘积被位移多个位,所述多个位取决于所述位移位数(146)。
44.根据权利要求43所述的装置,还被配置为从所述NN表示(110)中得出所述精度参数(145)。
45.根据权利要求43或44所述的装置,其中所述NN参数(130)是以下中的一个:
用于对神经元对(10)之间的神经元间激活前馈(12)进行加权的权重参数,
用于参数化神经网络层的仿射变换的批标准化参数,和
用于偏置预定神经网络神经元(10)的入站神经元间激活前馈(12)的总和的偏置。
46.根据前述权利要求43至45中任一项所述的装置,其中所述NN参数(130)根据所述NN的多个(122)神经元间激活前馈中的单个神经元间激活前馈(12)来参数化所述NN,并且所述装置被配置为针对所述多个(122)神经元间激活前馈中的每个,从所述NN表示(110)得出相应的NN参数(130),其中
对于所述多个(122)神经元间激活前馈(12)中的每个,
从所述NN表示(110)得出与所述相应的神经元间激活前馈(12)相关联的关联量化参数(142),
从所述NN表示(110)得出与所述相应的神经元间激活前馈(12)相关联的关联量化值(152),
从所述关联量化参数(142),
基于由所述关联量化参数(142)得出的被除数和由与所述相应的神经元间激活前馈(12)相关联的关联精度参数(145)得出的除数之间的除法的余数,得出与所述相应的神经元间激活前馈(12)相关联的关联乘数(144),和
基于所述除法的所述商的舍入,得出与所述相应的神经元间激活前馈(12)相关联的关联位移位数(146),
其中用于所述相应的神经元间激活前馈(12)的所述对应的NN参数(130)对应于所述关联量化值(152)和取决于所述关联乘数(144)的因子(148)之间的乘积,所述乘积被位移多个位,所述多个位取决于所述关联位移位数(146)。
47.根据前述权利要求43至45中任一项所述的装置,其中所述装置被配置为将NN的多个(122)神经元间激活前馈细分为神经元间激活前馈的子组(122a、122b),以使每个子组(122a、122b)与所述NN的关联NN层对相关联,并且包括所述关联NN层对之间的神经元间激活前馈,并且排除除了所述关联层对之外的另外的NN层对之间的神经元间激活前馈,并且多于一个子组(122a、122b)与预定NN层相关联,
所述NN参数(130)根据所述NN的多个(122)神经元间激活前馈中的单个神经元间激活前馈(12)来参数化所述NN,并且所述装置被配置为针对所述多个(122)神经元间激活前馈中的每个,从用所述NN表示(110)得出对应的NN参数(130),其中
对于神经元间激活前馈的每个子组(122a、122b),
从所述NN表示(110)得出与所述相应子组(122a、122b)相关联的关联量化参数(142),
从所述关联量化参数(142),
基于由所述关联量化参数(142)得出的被除数和由与所述相应子组(122a、122b)相关联的关联精度参数(145)得出的除数之间的除法的余数,得出与所述相应子组(122a、122b)相关联的关联乘数(144),和
基于所述除法的商的舍入,得出与所述相应子组(122a、122b)相关联的关联位移位数(146),
对于所述多个(122)神经元间激活前馈中的每个,
从所述NN表示(110)得出与所述相应的神经元间激活前馈(12)相关联的关联量化值(152),
其中所述相应的神经元间激活前馈(12)的所述对应的NN参数(130)对应于所述关联量化值(152)与因子(148)之间的乘积,所述因子取决于与包括所述相应的神经元间激活前馈(12)的所述子组(122a、122b)相关联的所述关联乘数(144),所述乘积被位移多个位,所述多个位取决于其中包括所述相应的神经元间激活前馈(12)的所述子组(122a、122b)的所述关联位移位数(146)。
48.根据前述权利要求46或47中任一项所述的装置,其中所述关联精度参数(145)在所述NN上或在每个NN层内全局相等地取值。
49.根据前述权利要求46至48中任一项所述的装置,被配置为从所述NN表示(110)得出所述关联精度参数(145)。
50.根据前述权利要求46至49中任一项所述的装置,被配置为以与参考量化参数的差值的形式从所述NN表示(110)得出所述关联量化参数(142)。
52.根据前述权利要求43至51中任一项所述的装置,所述精度参数(145)是2的幂。
53.根据前述权利要求43至52中任一项所述的装置,被配置为
通过使用上下文自适应二进制算术解码或
通过直接从所述NN表示(110)读取表示所述量化参数(142)的位,或
通过经由所述装置的上下文自适应二进制解码器的等概率旁路模式从所述NN表示(110)得出表示所述量化参数(142)的位,
而从所述NN表示(110)得出所述量化参数(142)。
54.根据前述权利要求43至53中任一项所述的装置,被配置为通过使用二值化方案对二进制串进行解二值化来从所述NN表示(110)得出所述量化参数(142)。
55.根据权利要求54所述的装置,其中所述二值化方案是指数哥伦布码。
56.根据前述权利要求43至55中任一项所述的装置,被配置为以固定小数点表示的形式从所述NN表示(110)得出所述量化参数(142)。
57.根据权利要求56所述的装置,其中所述精度参数(145)为2t,所述固定小数点表示的位长度被设置为对于所述NN为常数,或者被设置为对于所述NN为常数的基准位长度与t的和。
58.根据前述权利要求43至57中任一项所述的装置,被配置为从所述NN表示(110)得出所述量化参数(142)作为整数值的语法元素。
59.根据前述权利要求43至58中任一项所述的装置,被配置为通过直接从所述NN表示(110)读取表示所述精度参数(145)的位或通过经由所述装置的上下文自适应二进制解码器的等概率旁路模式从所述NN表示(110)得出表示所述精度参数(145)的位,而从所述NN表示(110)得出所述精度参数(145)。
60.根据前述权利要求43至59中任一项所述的装置,被配置为以固定小数点表示的形式从所述NN表示(110)得出所述量化值(152)。
61.根据前述权利要求43至60中任一项所述的装置,被配置为通过根据二值化方案从二进制串解二值化出所述量化值(152),并且使用上下文自适应算术解码从所述NN表示(110)解码所述二进制串的位,而从所述NN表示(110)得出所述量化值(152)。
62.根据前述权利要求43至61中任一项所述的装置,被配置为通过根据二值化方案从二进制串解二值化出所述量化值(152),并且使用上下文自适应算术解码从所述NN表示(110)解码所述二进制串的第一位,并使用等概率旁路模式解码所述二进制串的第二位,而从所述NN表示(110)得出所述量化值(152)。
63.一种用于使用NN(20)执行推理的设备(400),所述设备(400)包括:
NN参数化器(410),被配置为对所述NN(20)进行参数化,所述NN参数化器(410)包括根据前述权利要求43至62中任一项所述的用于从NN表示(110)得出NN参数(130)的装置(300),以及
计算单元(420),被配置为使用所述NN(20)基于NN输入(440)计算推理输出(430)。
64.根据权利要求63所述的设备(400),其中所述NN参数化器(410)被配置为
经由所述装置(300)得出第一NN参数(130)和第二NN参数(130)中的至少一个,以使所述第一NN参数(130)对应于第一量化值(152)和第一因子(148)之间的乘积,所述乘积被位移第一位移位数(146),所述第二NN参数(130)对应于第二量化值(152)和第二因子(148)之间的乘积,所述乘积被位移第二位移位数(146),以及
通过形成第一加数和第二加数之间的和并且使所述第一加数和所述第二加数的和进行位移对所述第一NN参数(130)和所述第二NN参数(130)求和来产生所述NN(20)的最终NN参数(130),其中所述第一加数由用于所述第一NN参数(130)的第一量化值(152)形成、由所述第一乘数(144)加权,并且所述第二加数由用于所述第一NN参数(130)的第二量化值(152)形成、由所述第二乘数(144)加权,并被移位所述第一位移位数和第二位移位数(146)之差,所述第一加数和所述第二加数的和被位移的位的数量取决于所述第一位移位数和所述第二位移位数(146)中的一个。
65.根据权利要求64所述的设备(400),其中
所述第一NN参数(130)表示所述NN(20)的基本层表示,所述第二NN参数(130)表示所述NN的增强层表示,或
所述第一NN参数(130)表示所述NN(20)的当前表示,所述第二NN参数(130)表示所述当前NN表示(110)的更新,或
所述第一NN参数(130)表示用于偏置预定神经网络神经元(10)的入站神经元间激活前馈(12)的和的偏置,所述第二NN参数(130)表示用于参数化神经网络层的仿射变换的批标准化参数。
66.根据前述权利要求63至65中任一项所述的设备(400),其中所述NN参数化器(410)被配置为
经由所述装置(300)得出第三NN参数(130)和第四NN参数(130)中的至少一个,以使所述第三NN参数(130)对应于第三量化值(152)和第三因子(148)之间的乘积,所述乘积被位移第三位移位数(146),所述第四NN参数(130)对应于第四量化值(152)和第四因子(148)之间的乘积,所述乘积被位移第四位移位数(146),以及
所述计算单元(420)被配置为在执行所述计算时,
对所述第三NN参数(130)和所述第四NN参数(130)进行乘法运算,以通过形成第一因子、第二因子、第三因子和第四因子的乘积来产生乘积,所述第一因子由所述第三NN参数(130)的第三量化值(152)形成,所述第二因子由所述第三乘数(144)形成,所述第三因子由所述第四NN参数(130)的第四量化值(152)形成,所述第四因子由所述第四乘数(144)形成,所述乘积被位移多个位,所述多个位对应于包括由第三位移位数形成的第一加数和由第四位移位数形成的第二加数的和。
67.根据权利要求66所述的设备(400),其中所述第三NN参数(130)表示用于对从第一NN层(114)的第一神经元(101)到第二NN层(116)的第二神经元(102)的神经元间激活前馈(12)进行加权的权重参数,并且所述第四NN参数(130)表示批标准化参数。
68.根据权利要求67所述的设备(400),其中所述批标准化参数用于调整所述第一神经元(101)相对于所述第二NN层的激活前馈放大。
69.根据权利要求63至68中任一项所述的设备(400),还被配置为通过确定用于激活的第五量化参数(142)和第五量化值(152),将所述激活量化到经量化值(130)而量化所述NN输入(440),使得从所述第五量化参数(142),基于由所述第五量化参数(142)得出的被除数和由与所述激活相关联的精度参数(145)得出的除数之间的除法的余数而得出第五乘数(144),基于对除法的商的舍入而得出第五位移位数(146),从而产生经量化值(130),所述经量化值(130)对应于所述第五量化值(152)和取决于所述第五乘数(144)的因子(148)之间的乘积,所述乘积被位移取决于所述第五位移位数(146)的第五数量的位。
70.根据权利要求69所述的设备(400),其中所述NN参数化器(410)被配置为
经由所述装置(300)得出第六NN参数(130),以使所述第六NN参数(130)对应于第六量化值(152)和第六因子(148)之间的乘积,所述乘积被位移第六位移位数(146),
将所述第六NN参数(130)和所述激活相乘,以通过形成第一因子、第二因子、第三因子和第四因子的乘积来产生乘积,所述第一因子由所述第六NN参数(130)的第六量化值(152)形成,所述第二因子由所述第六乘数(144)形成,所述第三因子由所述第五量化值(152)形成,所述第四因子由所述第五乘数(144)形成,所述乘积被位移与包括由所述第六位移位数形成的第一加数和由所述第四位移位数(146)形成的第二加数的和相对应的位数量。
71.一种用于使用NN(20)执行推理的设备(500),所述设备(500)被配置为使用所述NN(20)基于NN输入(440)来计算推理输出(430),其中所述NN(20)包括一对NN层和从所述一对NN层中的第一NN层到所述NN层中的第二NN层的神经元间激活前馈(12),并且所述设备(500)被配置为通过
由所述第一NN层的所述神经网络神经元(10)的激活形成(530)矩阵X(532),以及
计算(540)s·W′*X
72.根据权利要求71所述的设备(500),被配置为使用n位固定小数点算术来计算(540)所述矩阵乘法以产生点积,并且使用m位固定小数点算术将所述点积与s(546)相乘,其中m>n。
73.根据权利要求71或72所述的设备(500),其中s(546)是在用于编码W′(544)的更高压缩和/或更高的推理保真度方面对W′(544)进行优化的结果。
74.根据前述权利要求71至73中任一项所述的设备(500),包括被配置为从NN表示(110)得出W′(544)的NN参数化器(410),所述NN参数化器(410)包括根据前述权利要求43至62中任一项所述的用于从NN表示(110)得出NN参数(130)的装置(300)。
75.根据前述权利要求71至74中任一项所述的设备(500),其中所述NN参数化器(410)还被配置为使用与和W′(544)相关的NN参数(130)相比不同的量化参数(142)从所述NN表示(110)得出s(546)。
76.一种用于将NN(20)的批标准化运算符(710)的NN参数编码到NN表示(110)的装置(600),所述批标准化运算符(710)被定义为
其中
μ、σ2、γ和β是批标准化参数,
W是权重矩阵,
X是从NN层的激活得出的输入矩阵,
b是形成偏置的转置向量,
∈是用于零除避免的常数,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法,
其中所述装置(600)被配置为
接收b、μ、σ2或σ、γ和β(610),
计算(620)
将β′和γ′作为所述批标准化运算符(710)的NN参数编码到所述NN表示(110),以使将所述批标准化运算符(710)定义为
3)σ′2:=θ,
4)μ′:=0,
5)b′:=0,其中θ是预定参数。
77.根据权利要求76所述的装置(600),其中所述预定参数是1或1-∈。
78.一种用于将NN的批标准化运算符(710)的NN参数编码成NN表示(110)的装置(600),所述批标准化运算符(710)被定义为
其中
μ、σ2、γ和β是批标准化参数,
W是权重矩阵,
X是从NN层的激活得出的输入矩阵,
b是形成偏置的转置向量,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法,
其中所述装置(600)被配置为
接收b、μ、σ2或σ、γ和β(610),
计算(620)
将β′和γ′作为所述批标准化运算符(710)的NN参数编码到所述NN表示(110),以使将所述批标准化运算符(710)定义为
3)σ′2:=1,
4)μ′:=0,
5)b′:=0。
79.一种用于将NN的批标准化运算符(710)的NN参数编码到NN表示(110)的装置(600),所述批标准化运算符(710)被定义为
其中
μ、σ2、γ和β是批标准化参数,
W是权重矩阵,
X是从NN层的激活得出的输入矩阵,
∈是用于零除避免的常数,
·表示在·的一侧的矩阵和另一侧的转置向量之间的逐列哈达玛乘法,以及
*表示矩阵乘法,
其中所述装置(600)被配置为
接收μ、σ2或σ、γ和β(610),
计算(620)
将β′和γ′作为所述批标准化运算符(710)的NN参数编码到所述NN表示(110),以使将所述批标准化运算符(710)定义为
3)σ′2:=θ
4)μ′:=0,其中θ是预定参数。
80.根据权利要求79所述的装置(600),其中所述预定参数是1或1-∈。
82.根据权利要求76至81中任一项所述的装置(600),还被配置为
在所述表示中指示σ′2的所有分量及其值彼此相等,和/或
在所述表示中指示μ′的所有分量及其值彼此相等,和/或
在所述表示中指示,如果存在,则b′的所有分量及其值彼此相等。
83.根据权利要求76至82中任一项所述的装置(600),进一步被配置为在两个批标准化编码模式之间可切换,其中在第一批标准化编码模式中,所述装置(600)被配置为执行β′和γ′的计算和编码,在第二批标准化编码模式中,所述装置(600)被配置为对接收的μ、σ2或σ、γ和β进行编码,并且如果存在,对b进行编码。
84.根据权利要求76至83中任一项所述的装置(600),还包括根据前述权利要求1至22中任一项所述的装置(100),以使将β′和γ′量化并编码到所述NN表示(110)。
86.根据权利要求85所述的装置(700),其中所述预定参数是1或1-∈。
89.根据权利要求88所述的装置(700),其中所述预定参数是1或1-∈。
91.根据权利要求85至90中任一项所述的装置(700),还被配置为
从所述表示得出σ′2的所有分量及其值彼此相等,和/或
从所述表示得出μ′的所有分量及其值彼此相等,和/或
如果存在的话,从所述表示得出b′的所有分量及其值彼此相等。
92.根据权利要求85至91中任一项所述的装置(700),还被配置为在两个批标准化编码模式之间可切换,其中在第一批标准化编码模式中,所述装置(700)被配置为执行所述得出和所述推理或得出,在第二批标准化编码模式中,所述装置(700)被配置为从所述表现解码μ、σ2或σ、γ和β,以及如果存在,从所述表现解码b。
93.根据权利要求85至92中任一项所述的装置(700),还包括根据前述权利要求43至62中任一项所述的装置(700),用于从所述NN表示(110)得出β和γ。
94.一种产生NN表示的方法,包括通过以下步骤将NN参数量化到量化值:
确定NN参数的量化值和量化参数,以使从所述量化参数
基于由所述量化参数得出的被除数和由精度参数得出的除数之间的除法的余数,可得出乘数,以及
基于所述除法的商的舍入,可得出位移位数,
从而所述NN参数的所述量化值对应于所述量化值和取决于所述乘数的因子之间的乘积,所述乘积被位移取决于所述位移位数的多个位。
95.一种用于从NN表示得出NN参数的方法,包括
从所述NN表示得出量化参数,
从所述NN表示得出量化值,以及
从所述量化参数,
基于由所述量化参数得出的被除数和由精度参数得出的除数之间的除法的余数,得出乘数,以及
基于所述除法的商的舍入,得出位移位数,
其中所述NN参数对应于所述量化值和取决于所述乘数的因子之间的乘积,所述乘积被位移取决于所述位移位数的多个位。
96.一种使用NN执行推理的方法,包括:
使用根据权利要求95所述的方法从NN表示得出NN参数参数化所述MN,以及
使用所述NN基于NN输入来计算推理输出。
106.一种数字存储介质,包括根据权利要求23至42中任一项所述的数字数据。
107.一种计算机程序,用于实现权利要求94至105中任一项所述的方法。
108.一种数据流,由根据前述权利要求1至22和76至84中任一项所述的装置生成。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20169502.0 | 2020-04-14 | ||
EP20169502 | 2020-04-14 | ||
PCT/EP2021/059592 WO2021209469A1 (en) | 2020-04-14 | 2021-04-13 | Improved concept for a representation of neural network parameters |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115917556A true CN115917556A (zh) | 2023-04-04 |
Family
ID=70456712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180042521.1A Pending CN115917556A (zh) | 2020-04-14 | 2021-04-13 | 用于神经网络参数的表示的改进的概念 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230075514A1 (zh) |
EP (1) | EP4136582A1 (zh) |
JP (1) | JP2023522886A (zh) |
KR (1) | KR20230010854A (zh) |
CN (1) | CN115917556A (zh) |
WO (1) | WO2021209469A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432715B (zh) * | 2023-06-14 | 2023-11-10 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
-
2021
- 2021-04-13 CN CN202180042521.1A patent/CN115917556A/zh active Pending
- 2021-04-13 KR KR1020227039626A patent/KR20230010854A/ko active Search and Examination
- 2021-04-13 EP EP21717115.6A patent/EP4136582A1/en active Pending
- 2021-04-13 JP JP2022562943A patent/JP2023522886A/ja active Pending
- 2021-04-13 WO PCT/EP2021/059592 patent/WO2021209469A1/en unknown
-
2022
- 2022-10-13 US US18/046,406 patent/US20230075514A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230075514A1 (en) | 2023-03-09 |
EP4136582A1 (en) | 2023-02-22 |
KR20230010854A (ko) | 2023-01-19 |
JP2023522886A (ja) | 2023-06-01 |
WO2021209469A1 (en) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101399988A (zh) | 减少位深的量子化方法 | |
JP7356513B2 (ja) | ニューラルネットワークのパラメータを圧縮する方法および装置 | |
WO2019086104A1 (en) | Neural network representation | |
US20160021396A1 (en) | Systems and methods for digital media compression and recompression | |
US9672838B2 (en) | Method for coding pulse vectors using statistical properties | |
KR20220058628A (ko) | 신경망 모델 압축 | |
JP2023507502A (ja) | ニューラルネットワークのパラメータを符号化するための概念 | |
US20230075514A1 (en) | Concept for a representation of neural network parameters | |
CN114615507B (zh) | 一种图像编码方法、解码方法及相关装置 | |
Sitaram et al. | Efficient codebooks for vector quantization image compression with an adaptive tree search algorithm | |
US9584833B2 (en) | Method for coding pulse vectors using statistical properties | |
Khataei et al. | Optimizing hybrid binary-unary hardware accelerators using self-similarity measures | |
US20230289588A1 (en) | Deep Neural Network Processing Device with Decompressing Module, Decompressing Method and Compressing Method | |
KR20110033154A (ko) | 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법 | |
Zhang et al. | Stabilizing the convolution operations for neural network-based image and video codecs for machines | |
US20240046100A1 (en) | Apparatus, method and computer program for decoding neural network parameters and apparatus, method and computer program for encoding neural network parameters using an update model | |
He et al. | Post-training quantization is all you need to perform cross-platform learned image compression | |
JP2023522887A (ja) | ニューラルネットワークの重みパラメーターを復号化するデコーダー、エンコーダー、方法、及び確率推定パラメーターを使用する符号化表現 | |
KR20240014289A (ko) | 작은 회로 면적을 갖는 곱셈 및 누산 연산기 | |
Khandelwal et al. | Implementation of Direct Indexing and 2-V Golomb Coding of Lattice Vectors for Image Compression | |
Sanikomm | Hardware Implementation of a Novel Image Compression Algorithm | |
CN109302614A (zh) | 一种基于三阶张量自编码网络的视频压缩方法 | |
Ade et al. | Design of LBG Image Compression by Using VHDL Simulation | |
Kekre et al. | Halftone Image Data Compression using KFCG Vector Quantization Algorithm for Video Conferencing | |
KFCG | Journal of Signal and Image Processing |
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 |