CN112215347A - 用于确定神经网络的成对连续层之间的传递函数的方法和计算工具 - Google Patents
用于确定神经网络的成对连续层之间的传递函数的方法和计算工具 Download PDFInfo
- Publication number
- CN112215347A CN112215347A CN202010652563.4A CN202010652563A CN112215347A CN 112215347 A CN112215347 A CN 112215347A CN 202010652563 A CN202010652563 A CN 202010652563A CN 112215347 A CN112215347 A CN 112215347A
- Authority
- CN
- China
- Prior art keywords
- neural network
- layers
- quantized
- pair
- operator
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 90
- 238000012546 transfer Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 80
- 238000013139 quantization Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 17
- 238000012549 training Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 210000000857 visual cortex Anatomy 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开的实施例涉及一种用于确定神经网络的成对连续层之间的传递函数的方法和计算工具。该方法可以在由处理单元实现神经网络之前被执行。神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符。一种计算工具生成旨在被处理单元执行以便实现神经网络的可执行代码。计算工具在至少一对层之间生成至少一个传递函数,该至少一个传递函数采取成组的经预计算的值的形式。
Description
相关申请的交叉引用
本申请要求于2019年7月10日提交的欧洲专利申请号19290051.2的优先权,该申请通过引用并入本文。
技术领域
本发明的实现模式和实施例涉及一种用于实现神经网络的方法。
背景技术
神经网络被广泛用于解决各种统计问题,尤其是数据分类问题。
在通常受监督(即使用已分类的参考数据库实施)的机器学习阶段之后,神经网络自主“学习”并变得能够将相同的分类应用于未知数据。
可能提到卷积神经网络(CNN),这是其中两层之间的连接模式受到动物的视觉皮层启发的一种神经网络。这种神经网络允许有效识别图像或视频中的物体或人。
神经网络的体系结构通常包括一系列层,每个层都从前一层的输出接收其输入。
深度神经网络倾向于变得日益复杂,且越来越多的用户正在寻求量化神经网络的每一层的输入和输出数据,以便提高处理速度并减少存储这些数据所需的存储空间。
例如,每一层的输出数据和输入数据可以被量化为八位或十六位,但是具有相同或不同的量化格式。
具体地,所有层可能不能以相同的精度被量化并且具有相同的值的范围,这些参数特别地取决于层的输出数据的动态范围。
在神经网络中,将输入数据乘以针对每一层的给定值的至少一个权值。
“权值”是一个术语,在神经网络领域中其含义为本领域技术人员所熟知,该权值是指可被配置以获得良好输出数据的神经元参数。
使用训练数据库最初在神经网络中定义这些权值。更精确地,例如,神经网络处理从数据库中提取的图像,并进行预测作为输出,即,虽然图像所述的类别已知,但确定了该图像可能属于哪个类别。
根据该结果的准确性,例如使用反向传播算法更新神经网络的所有权值。
再一次,每一层的权值(尤其是出于存储器优化的原因)可以用十六位或八位表示。
量化方案的示例为本领域技术人员所熟知。
关于这些量化方案的信息尤其可以在Benoit Jacob等人的名称为“Quantizationand Training of Neural Networks for Efficient Integer-Arithmetic-OnlyInference”,arXiv:1712.05877v1[cs.LG]2017年12月15日,Google Inc.(https:// arxiv.org/pdf/1712.05877.pdf)的文章中以及在Raghuraman Krishnamoorthi的名称为“Quantizing deep convolutional networks for efficient inference:Awhitepaper”,arXiv:1806.08342v1[cs.LG]2018年6月21日,Google(https://arxiv.org/ pdf/1806.08342.pdf)的文章中找到。
而且,最常见的是,规定了一个或多个运算符,这些运算符被应用于层的输出。这种运算符可以是任何类型,并且最常见的是非线性的。该运算符也可以是ONNX类型的运算符。
应当记得,ONNX(开放神经网络交换)是与AI相关的社区项目,特别地,其提供了可扩展计算图模型的定义以及内置运算符和标准数据类型的定义。
这种ONNX运算符为本领域技术人员所熟知的,例如可以指代在以下因特网链路上可用的文档:
https://github.com/onnx/onnx/blob/master/docs/Operators.md
确定应用了一个或多个运算符的两层之间的传递函数的常规方法无效。
具体地,这些方法首先需要将第一层的输出层的每个量化数据转化为以浮点格式表达的数据,然后例如使用级联将运算符以浮点格式近似,并且将此近似应用于第一层的每个输出数据,并且最后以适当的量化格式对结果进行重新量化,以便递送下一层的经量化的输入数据。
这由执行神经网络的处理器实时完成,并且在计算时间和存储器方面完全没有效率。
发明内容
本发明的实现模式和实施例涉及神经网络,具体但非唯一地涉及深度神经网络,并且尤其涉及确定在应用一个或多个运算符的神经网络的成对的连续层之间的传递函数。
实施例提供了一种针对现有技术问题的令人满意的解决方案。
在一个实施例中,提供一种方法,该方法可以在由处理单元实现神经网络之前被执行。神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符。一种计算工具生成旨在由处理单元执行以便实现神经网络的可执行代码。计算工具在至少一对层之间生成至少一个传递函数,该至少一个传递函数采取成组的经预计算的值的形式。
下文讨论附加的实施例和变型。
附图说明
在阅读完全非限制性实现模式和实施例的详细描述以及附图时,本发明的其他优点和特征将变得明显,在附图中:
图1至图3涉及本发明的实现模式和实施例。
具体实施方式
根据一种实现模式和实施例,提供一种方法和计算工具,该方法和计算工具能够以在存储器和计算时间方面有效并且使所讨论的神经网络的性能降低最少量的方式来确定这种传递函数。
根据一种实现模式和实施例,建议在神经网络的实现期间不实时计算一个或多个传递函数,而是预计算这个或这些传递函数的值例如以形成一个或多个表,即,建议有利地在神经网络的训练阶段期间或之后、在其由处理单元(例如可以是诸如智能手机或甚至是平板计算机等设备的微处理器)实现之前计算这些值。这些示例是非限制性的。
根据一个方面,提供一种方法,该方法在由处理单元(例如诸如手机等设备的微处理器)实现神经网络之前被执行。神经网络包括一系列的层和至少一个运算符,该至少一个运算符被应用在至少一对连续层之间。方法包括利用计算工具(例如个人膝上型计算机)生成旨在由处理单元执行以便实现神经网络的可执行代码,并且利用计算工具在至少一对层之间生成至少一个传递函数,该至少一个传递函数采取成组的经预计算的值的形式。
这些值被预先计算,其意义在于计算值是在处理单元实现神经网络之前而被计算。因此,在神经网络的实现期间,即,在处理单元执行可执行代码期间,将不再需要实时计算一个或多个传递函数。从经预计算的值中提取对应值将足够简单。
通常,使用第一量化方案有利地对成对的层中的第一层的输出数据进行量化,并且使用第二量化方案有利地对该对中的第二层的输入数据进行量化。
两个量化方案可以相同或不同。
同样,经量化的输入数据的位数和经量化的输出数据的位数可以相同或不同。
传递函数考虑了第一和第二量化方案以及至少一个运算符。
通常,运算符可以是任何功能(或“激活”以使用神经网络领域的技术人员所熟知的术语)。
因此,运算符可以是例如“标识”运算符(OP(x)=x)。在这种情况下,传递函数仅表现为类似于收敛函数,从而允许将使用第一量化方案而被量化的数据转化为使用第二量化方案而被量化的数据。
根据一种实现模式,至少一个传递函数旨在于神经网络的实现期间从该对中的第一层接收经量化的输出数据,以应用至少一个运算符并将经量化的输入数据递送给该对中的第二层。
至少一个传递函数的生成包括针对输出数据的每个可能的经量化的值,应用逆第一量化函数,从而允许将经量化的值转化为浮点值,将至少一个运算符应用于该浮点值以便获得中间浮点值,并将第二量化函数应用于中间值以便递送输入数据的对应的经量化的值。生成进一步包括生成查找表,该查找表形成该组值,并包含针对经量化的输出数据的所有可能值的经量化的输入数据的所有对应的可能值。
可以使用任何类型的运算符,例如具有多个输入和多个输出的运算符。
然而,在这种情况下,优选限制被量化的输入和输出数据的位数,以便限制查找表的大小,并因此限制随后将其存储在旨在实现神经网络的设备中时所需的存储空间。
为此,针对至少一个运算符,优选使用点对点运算符,即,具有一个输入和一个输出的运算符。因此,输入和输出数据可以被量化为任何位数,例如八位或十六位。
根据一种实现模式,其中神经网络包括被应用在P对连续层之间的至少一个运算符,生成在P对层之间的P个相应传递函数包括生成最多P组值。
具体地,在表示P个传递函数的各组值的预计算期间,对于给定组的值可以能够将其用于两个不同对的层之间的两个传递函数。
通常,规定了训练神经网络的阶段,并且在训练阶段期间或之后有利地实施了至少一个传递函数的生成,这允许对所有经预计算的值中的值进行调整,尤其根据神经网络的权值的值进行调整,这些权值的值将已经在训练阶段期间进行优化。
根据另一方面,提供了一种计算工具,该计算工具被配置为实现如上文所定义的方法。
根据另一方面,提供了一种用于使用处理单元实现神经网络的方法,神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符。
该实现方法包括:在存储器中存储允许实现神经网络的可执行代码和表示至少一对层之间的至少一个传递函数的一组值,以及利用处理单元执行可执行代码。该执行包括通过从该组存储值中提取与至少一对层中的第一层的经量化的输出数据的值对应的值来确定传递函数,提取值是该对中的第二层的经量化的输入数据。
根据一种实现模式,表示至少一对层之间的至少一个传递函数的该组值以查找表的形式来被存储,该传递函数旨在于神经网络的实现期间从该对中的第一层接收经量化的输出数据、应用至少一个运算符并将经量化的输入数据递送给该对中的第二层,至少一个查找表包含针对经量化的输出数据的所有可能值的经量化的输入数据的所有对应的可能值。
至少一个运算符例如是点对点运算符。
当神经网络包括被应用在P对连续层之间的至少一个运算符,表示P对层之间的P个传递函数的最多P组值例如被存储在存储器中。
根据另一方面,提供了一种被配置为实现上文所定义的实现方法的设备。
根据另一方面,提供了一种计算工具,该工具包括生成装置,在由处理单元实现神经网络之前配置该生成装置,神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符,以生成旨在由处理单元执行以便实现神经网络的可执行代码,并在至少一对层之间生成至少一个传递函数,该至少一个传递函数采取成组的经预计算的值的形式。
根据一个实施例,至少一个传递函数旨在于神经网络的实现期间从该对中的第一层接收经量化的输出数据、应用至少一个运算符并将经量化的输入数据递送给该对中的第二层。出于生成至少一个传递函数的目的,针对输出数据的每个可能的量化值,生成装置被配置为应用逆第一量化函数,从而允许将经量化的值转化为浮点值、将至少一个运算符应用于浮点值以便获得中间浮点值、并将第二量化函数应用于中间值以便递送输入数据的对应的经量化的值,并生成查找表,该查找表包含针对经量化的输出数据的所有可能值的经量化的输入数据的所有对应的可能值。
根据一个实施例,至少一个运算符是点对点运算符。
根据一个实施例,提供了一种计算工具,其中神经网络包括被应用在P对连续层之间的至少一个运算符,并且生成装置被配置为当在P对层之间生成P个相应传递函数时生成最多P个查找表。
根据一个实施例,计算工具被配置为实施训练神经网络的阶段,并且生成装置被配置为在训练阶段期间或之后生成至少一个传递函数。
根据一个实施例,计算工具可以包括并入生成装置的微处理器或微控制器。
根据另一方面,提供了一种设备。该设备包括被配置为实现数字神经网络的处理单元。神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符。存储器被配置为存储允许实现神经网络的可执行代码和表示至少一对层之间的至少一个传递函数的至少一组值。处理单元被配置为执行可执行代码,该执行包括为通过从至少一组存储值中提取与至少一对层中的第一层的经量化的输出数据的值相对应的值,来确定至少一个传递函数,提取的值是该对中的第二层的经量化的输入数据。
根据一个实施例,表示至少一对层之间的至少一个传递函数的至少一组值以至少一个查找表的形式来被存储,该传递函数旨在于神经网络的实现期间从该对中的第一层接收经量化的输出数据、应用至少一个运算符并将经量化的输入数据递送给该对中的第二层,至少一个查找表包含针对经量化的输出数据的所有可能值的经量化的输入数据的所有对应的可能值。
根据一个实施例,至少一个运算符是点对点运算符。
根据一个实施例,其中神经网络包括被应用在P对连续层之间的至少一个运算符,存储器被配置为存储表示P对层之间的P个传递函数的最多P组值。
根据一个实施例,处理单元可以包括微处理器或包括实际的硬件加速器。
现在将参考附图。
在图1中,参考标记ORD指定包括微处理器或微控制器的计算工具,例如个人膝上型计算机。
工具ORD的微处理器并入了软件生成装置GEN,该软件生成装置将尤其生成(步骤11)表示神经网络DNN(特别地为深度神经网络)的可执行代码。
如图1中所示意性图示的,该神经网络DNN包括一系列的层,其当前层被称为LYk。
参考标记DSk指定层LYk的经量化的输出数据。
参考标记DEk+1指定等级k+1的下一层LYk+1的经量化的输入数据。
参考标记Opk指定此处被应用在层Lyk与下一层LYk+1之间的运算符。
参考标记Qk指定输出数据DSk的量化方案,并且参考标记Qk+1指定输入数据DEk+1的量化方案。
量化方案Qk和Qk+1尤其根据对应数据所需的精度可以相同或不同。
在神经网络的两个连续层之间存在运算符的情况下,有必要确定传递函数,该传递函数将从该对连续层中的第一层(此处为层LYk)接收经量化的输出数据,该经量化的输出数据将应用运算符OPk并且将会将经量化的输入数据递送给该对层中的第二层(此处为层LYk+1)。
根据本发明,将以经预计算值的表TF的形式来生成该传递函数。
该生成12也由生成装置实施,并且它有利地在训练神经网络的阶段PHT期间或之后实施,以便考虑神经网络的权值的最终值。
通常,两层之间的每个传递函数都有一个查找表TF。
这样,当例如在神经网络的P对层之间应用P个运算符时,针对某些成对层,多个经预计算的查找表可以是相同的。
换言之,如图1中所图示的,假设在神经网络的P对层之间应用一个或多个运算符,则生成装置将生成T个查找表,其中T小于或等于P。
因此,计算工具ORD将一方面递送可执行代码CX,且另一方面递送T个查找表TFt,其中t在1至T之间变化。
为了在设备APP内实现神经网络,该设备例如(通过非限制性示例)是配备有处理单元UT(例如微处理器或实际上硬件加速器)的智能手机或实际上是平板计算机,可执行代码CX和各种查找表TFt被存储(步骤13)在存储器MM中。
存储器可以包括一个或多个物理存储器。在多个物理存储器的情况下,可执行代码CX可以被存储在第一存储器中,而查找表TFt可以被存储在另一存储器中。
然后,处理单元UT通过一方面执行可执行代码CX并通过另一方面确定各种传递函数FTk(步骤14)来实现神经网络DNN,将该神经网络与任何种类的输入数据一起被递送给处理单元。
如由图1中的虚线箭头所示意性图示的,这些各种传递函数FTk并非通过实时计算来被确定,而是根据对应成对层中的第一层的输出数据的值,从对应查找表TFt中提取经预计算的值来被确定。
将在下文更详细地说明这种情况。
神经网络DNN的实现最终允许例如获得决策DF,例如分类决策。
更特别地,现在将参考图2和3,以便更详细地描述生成查找表TF的示例。
为了简单起见,假设在两个连续的层LYk与层LYk+1之间仅应用单个运算符OPk。
通常,针对输出数据DSk的每个可能的经量化的值,这两层之间的传递函数的生成包括:需要应用逆第一量化函数Qk-1,从而允许将使用给定量化方案进行量化的值转化为浮点值、将运算符OPk应用于浮点值以便获得中间浮点值、并将第二量化函数Qk+1应用于中间值以便递送输入数据DEk+1的对应的经量化的值(使用相同的量化方案或另一量化方案进行量化的)。
生成查找表TFi(步骤23),并且该查找表包含针对经量化的输出数据的所有可能值的经量化的输入数据的所有可能值。
此外,这些经预计算的值考虑了层LYk的输出数据的量化方案以及层LYk+1的输入数据的量化方案。
如图2中所图示的,首先定义表示输出数据DSk的经量化的值的索引j来生成该查找表。
这些经量化的值被量化为nb位,并且例如被量化为8位。
如图2的框21中所图示的,对于无符号量化(a),j在0与2nb-1之间变化。
对于有符号量化(b),j在-2nb-1与2nb-1-1之间变化。
对于具有对称范围的有符号量化(c),j在-2nb-1+1至2nb-1-1之间变化。
例如,当采用量化为8位(nb=8)时,在情况(a)中,j可以采取以十进制计数形式的包括0与255之间的所有值。
然后查找表TF的索引i(图2中的方框22)被定义。
在情况(a)中,i等于j。
在情况(b)中,i等于j+2nb-1。
在情况(c)中,i等于j+2nb-1-1。
通常,i等于j–minR,其中minR指定j的经量化的值范围的最小值。
此外,i在0与2nb-1之间变化。
因此,对于量化为8位,针对查找表TF获得了256个值。该查找表的各个值TF(i)与层LYk+1的输入数据DEk+1的经量化的值相对应,这些输入数据的经量化的值分别对应于层LYk的经量化的输出数据DSk的j值。
因此,在神经网络的实现期间,针对层LYk的输出数据的给定的经量化的值,并且因此针对给定的j值,将直接从表中的对应索引i处获得输入数据DEk+1的对应的经量化的值,该输入数据使用正确的量化方案来被量化并通过将运算符OPk应用于上一层的对应输出数据而产生。
此外,当对于给定层存在一组输出数据时,通过从查找表TF提取针对该组中的每个输出数据的输入数据的对应值来获得针对下一层的一组输入数据。
图3图示了各种可能的量化方案和各种可能的运算符,这些运算符有利地是点对点运算符,即,不修改应用这些运算符的张量维度的运算符。
关于运算符OPk,例如可能提到双曲正切函数、S型函数、leaky-ReLu函数和Erf函数。所有这些运算符为本领域技术人员所熟知并且例如在上述ONNX文档中进行了描述,该文档可以通过以下因特网https://github.com/onnx/onnx/blob/master/docs/Operators.md进行访问。
关于逆量化操作Q-1k,即将经量化的值转化为浮点值的操作,例如,如图3的框31中所图示的,可以使用均匀仿射量化(1),其中“scale”参数定义了量化步长,而“zero_point”参数是实零与经量化的值的零之间的偏移。
也可以使用非对称量化(2)或对称量化(3)或固定Qmn类型量化(4)。
所有这些示例都是非限制性的,并且为本领域技术人员所熟知的,无论出于什么意图和目的,本领域的技术人员都可以更详细地参考上述Krishnamoorthi和Jacob的文章。
函数Qk+1可以是图3的框31中提到的量化方案(1)至(4)中的一个的逆量化方案。
当然,本发明不限于刚刚描述的实现模式和实施例,并且涵盖本发明的所有变型。
因此,可以在神经网络的两个连续层之间应用多个运算符。
在这种情况下,传递函数的查找表将经由这些运算符级联的连续应用将这些各种传递运算符应用于索引j。
此外,本发明例如可以有利地与提交的编号为1902855的法国专利申请中所描述的发明结合使用。
Claims (24)
1.一种通过处理单元实现神经网络的方法,所述神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符,所述方法包括:
利用计算工具生成旨在被所述处理单元执行以便实现所述神经网络的可执行代码;以及
利用所述计算工具在至少一对所述层之间生成至少一个传递函数,所述至少一个传递函数采取成组的经预计算的值的形式。
2.根据权利要求1所述的方法,进一步包括执行所述可执行代码以实现所述神经网络。
3.根据权利要求2所述的方法,其中在所述神经网络的所述实现期间,所述至少一个传递函数从所述至少一对中的第一层接收经量化的输出数据、应用所述至少一个运算符并将经量化的输入数据递送给所述至少一对中的第二层,并且其中生成所述至少一个传递函数包括:
针对所述输出数据的每个可能的经量化的值,应用逆第一量化函数,从而允许所述经量化的值被转化为浮点值;
将所述至少一个运算符应用于所述浮点值,以便获得中间浮点值;
将第二量化函数应用于所述中间值,以便递送所述输入数据的对应的经量化的值;以及
生成查找表,所述查找表形成所述组的值,并且包含针对经量化的所述输出数据的所有所述可能值的、经量化的所述输入数据的所有对应的所述可能值。
4.根据权利要求1所述的方法,其中所述至少一个运算符是点对点运算符。
5.根据权利要求1所述的方法,其中所述神经网络包括被应用在P对连续层之间的至少一个运算符,并且其中生成所述至少一个传递函数包括:通过生成最多P组值而在P对所述层之间生成P个传递函数。
6.根据权利要求1所述的方法,进一步包括执行针对所述神经网络的训练阶段,其中在所述训练阶段期间或之后生成所述至少一个传递函数。
7.根据权利要求1所述的方法,其中所述计算工具包括微处理器或微控制器。
8.一种计算工具,包括:
处理器;以及
非瞬态计算机可读介质,存储将被所述处理器执行以实现根据权利要求1所述的方法的软件。
9.一种用于使用处理单元实现神经网络的方法,所述神经网络包括一系列的层以及被应用在至少一对连续层之间的至少一个运算符,所述方法包括:
将可执行代码和表示所述至少一对层之间的至少一个传递函数的成组值存储在存储器中;以及
利用所述处理单元执行所述可执行代码,所述执行包括通过从所述组的存储值中提取与所述至少一对层中的第一层的经量化的输出数据的所述值对应的值来确定所述传递函数,提取的所述值是所述至少一对中的第二层的经量化的输入数据。
10.根据权利要求9所述的方法,其中表示至少一对所述层之间的所述至少一个传递函数的所述组的值以查找表的形式被存储,其中所述函数旨在于所述神经网络的所述实现期间从所述至少一对的所述第一层接收经量化的输出数据、应用所述至少一个运算符并将所述至少一个查找表、经量化的输入数据递送给所述至少一对的所述第二层,所述查找表包含针对所述经量化的输出数据的所有可能值的、所述经量化的输入数据的所有对应的可能值。
11.根据权利要求9所述的方法,其中所述至少一个运算符是点对点运算符。
12.根据权利要求9所述的方法,其中所述神经网络包括被应用在P对连续层之间的至少一个运算符,表示P对所述层之间的P个所述传递函数的最多P组值被存储在所述存储器中。
13.一种设备,包括:
处理器;以及
非瞬态计算机可读介质,存储将被所述处理器执行以实现根据权利要求9所述的方法的软件。
14.一种计算工具,包括:
处理器;以及
非瞬态计算机可读介质,存储将在神经网络的实现之前由所述处理器执行的软件,所述神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符,所述软件在被所述处理器执行时,使所述处理器生成旨在被处理单元执行以便实现所述神经网络的可执行代码,并在至少一对所述层之间生成至少一个传递函数,该至少一个传递函数采取成组的经预计算的值的形式。
15.根据权利要求14所述的计算工具,其中所述至少一个传递函数旨在于所述神经网络的所述实现期间从所述至少一对中的第一层接收经量化的输出数据、应用所述至少一个运算符、并将经量化的输入数据递送给所述至少一对中的第二层,并且其中所述软件在被所述处理器执行时,使所述处理器执行以下操作:
针对所述输出数据的每个可能的经量化的值,应用逆第一量化函数,从而允许所述经量化的值被转化为浮点值;
将所述至少一个运算符应用于所述浮点值,以便获得中间浮点值;
将第二量化函数应用于所述中间值,以便递送所述输入数据的对应的经量化的值;以及
生成查找表,所述查找表包含针对经量化的所述输出数据的所有所述可能值的、经量化的所述输入数据的所有对应的所述可能值。
16.根据权利要求14所述的计算工具,其中所述至少一个运算符是点对点运算符。
17.根据权利要求14所述的计算工具,其中所述神经网络包括被应用在P对连续层之间的至少一个运算符,并且其中所述软件在被所述处理器执行时使所述处理器在P对所述层之间生成P个相应传递函数时生成最多P组值。
18.根据权利要求14所述的计算工具,其中所述软件在被所述处理器执行时使所述处理器实施所述神经网络的训练阶段,其中在所述训练阶段期间或之后生成所述至少一个传递函数。
19.一种设备,包括:
处理单元,被配置为实现数字神经网络,所述神经网络包括一系列的层和被应用在至少一对连续层之间的至少一个运算符;以及
存储器,被配置为存储允许所述神经网络被实现的可执行代码和表示至少一对所述层之间的至少一个传递函数的至少一组值;
其中所述处理单元被被配置为通过从所述至少一组的存储值中提取值来执行所述可执行代码以确定所述至少一个传递函数,所述提取值对应于至少一对所述层的第一层的经量化的输出数据的所述值,所述提取值是所述至少一对中的第二层的经量化的输入数据。
20.根据权利要求19所述的设备,其中表示至少一对所述层之间的所述至少一个传递函数的所述组的值被存储为至少一个查找表,其中所述至少一个传递函数旨在于所述神经网络的所述实现期间从所述至少一对中的所述第一层接收经量化的输出数据、应用所述至少一个运算符并将经量化的输入数据递送给所述至少一对中的所述第二层,所述至少一个查找表包含针对经量化的所述输出数据的所有可能值的经量化的所述输入数据的所有对应的可能值。
21.根据权利要求19所述的设备,其中所述至少一个运算符是点对点运算符。
22.根据权利要求19所述的设备,其中所述神经网络包括被应用在P对连续层之间的至少一个运算符,并且其中所述存储器被配置为存储表示P对所述层之间的P个所述传递函数的最多P组值。
23.根据权利要求19所述的设备,其中所述处理单元包括微处理器。
24.根据权利要求19所述的设备,其中所述处理单元包括硬件加速器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19290051.2A EP3764286A1 (fr) | 2019-07-10 | 2019-07-10 | Procédé et outil informatique de détermination de fonctions de transferts entre des paires de couches successives d'un réseau de neurones |
EP19290051.2 | 2019-07-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112215347A true CN112215347A (zh) | 2021-01-12 |
Family
ID=67614530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010652563.4A Pending CN112215347A (zh) | 2019-07-10 | 2020-07-08 | 用于确定神经网络的成对连续层之间的传递函数的方法和计算工具 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11593664B2 (zh) |
EP (1) | EP3764286A1 (zh) |
CN (1) | CN112215347A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11509897B2 (en) * | 2020-08-07 | 2022-11-22 | Samsung Display Co., Ltd. | Compression with positive reconstruction error |
US11503322B2 (en) | 2020-08-07 | 2022-11-15 | Samsung Display Co., Ltd. | DPCM codec with higher reconstruction quality on important gray levels |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280564A (en) * | 1991-02-20 | 1994-01-18 | Honda Giken Kogyo Kabushiki Kaisha | Neural network having an optimized transfer function for each neuron |
US20180350109A1 (en) * | 2017-06-06 | 2018-12-06 | Via Alliance Semiconductor Co., Ltd. | Method and device for data quantization |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004235993A (ja) * | 2003-01-30 | 2004-08-19 | Canon Inc | 画像処理方法 |
US10474458B2 (en) * | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US20190244080A1 (en) * | 2018-02-02 | 2019-08-08 | Wisconsin Alumni Research Foundation | Neural Network Processor with On-Chip Convolution Kernel Storage |
US20190325567A1 (en) * | 2018-04-18 | 2019-10-24 | Microsoft Technology Licensing, Llc | Dynamic image modification based on tonal profile |
US11488016B2 (en) * | 2019-01-23 | 2022-11-01 | Google Llc | Look-up table based neural networks |
-
2019
- 2019-07-10 EP EP19290051.2A patent/EP3764286A1/fr active Pending
-
2020
- 2020-06-30 US US16/917,414 patent/US11593664B2/en active Active
- 2020-07-08 CN CN202010652563.4A patent/CN112215347A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280564A (en) * | 1991-02-20 | 1994-01-18 | Honda Giken Kogyo Kabushiki Kaisha | Neural network having an optimized transfer function for each neuron |
US20180350109A1 (en) * | 2017-06-06 | 2018-12-06 | Via Alliance Semiconductor Co., Ltd. | Method and device for data quantization |
Non-Patent Citations (1)
Title |
---|
YAN YI等: "A New Learning Algorithm for Neural Networks with Integer Weights and Quantized Non-linear Activation Functions", ARTIFICIAL INTELLIGENCE IN THEORY AND PRACTICE II, 31 December 2008 (2008-12-31), pages 427 - 431, XP055656749, DOI: 10.1007/978-0-387-09695-7_42 * |
Also Published As
Publication number | Publication date |
---|---|
EP3764286A1 (fr) | 2021-01-13 |
US20210012208A1 (en) | 2021-01-14 |
US11593664B2 (en) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210256348A1 (en) | Automated methods for conversions to a lower precision data format | |
WO2020019236A1 (en) | Loss-error-aware quantization of a low-bit neural network | |
JP6977864B2 (ja) | 推論装置、畳み込み演算実行方法及びプログラム | |
CN115841137A (zh) | 一种用于对待量化数据进行定点化处理的方法及计算装置 | |
US11475284B2 (en) | Information processing apparatus, neural network program, and processing method for neural network | |
CN111127364B (zh) | 图像数据增强策略选择方法及人脸识别图像数据增强方法 | |
CN110781686B (zh) | 一种语句相似度计算方法、装置及计算机设备 | |
US20210166106A1 (en) | Residual binary neural network | |
EP4379603A1 (en) | Model distillation method and related device | |
CN112215347A (zh) | 用于确定神经网络的成对连续层之间的传递函数的方法和计算工具 | |
CN111105017A (zh) | 神经网络量化方法、装置及电子设备 | |
CN114078195A (zh) | 分类模型的训练方法、超参数的搜索方法以及装置 | |
KR20200121497A (ko) | 가중치 신경망의 신경망 연산 방법 및 장치 | |
CN113434699A (zh) | Bert模型的预训练方法、计算机装置和存储介质 | |
WO2024060839A9 (zh) | 对象操作方法、装置、计算机设备以及计算机存储介质 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN112115407A (zh) | 伊辛机数据输入设备以及将数据输入至伊辛机的方法 | |
EP4128067A1 (en) | Method and system for generating a predictive model | |
CN114581454B (zh) | 基于背景差分法的量子图像分割方法、装置及存储介质 | |
Yan et al. | Low Latency Conversion of Artificial Neural Network Models to Rate-encoded Spiking Neural Networks | |
Fonseca et al. | Hybrid extreme learning machine and backpropagation with adaptive activation functions for classification problems | |
Luo et al. | Image classification with a MSF dropout | |
CN115668229A (zh) | 用于经训练神经网络的低资源计算块 | |
CN114222997A (zh) | 用于对神经网络进行后训练量化的方法和装置 | |
KR20210116182A (ko) | 소프트맥스 연산 근사화 방법 및 장치 |
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 |