CN110443347B - 神经网络方法和装置 - Google Patents
神经网络方法和装置 Download PDFInfo
- Publication number
- CN110443347B CN110443347B CN201910315912.0A CN201910315912A CN110443347B CN 110443347 B CN110443347 B CN 110443347B CN 201910315912 A CN201910315912 A CN 201910315912A CN 110443347 B CN110443347 B CN 110443347B
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- accuracy
- classes
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 207
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 38
- 238000012549 training Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 23
- 230000004913 activation Effects 0.000 description 21
- 238000001994 activation Methods 0.000 description 21
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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/0495—Quantised networks; Sparse networks; Compressed 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了神经网络方法和装置。处理器实现的神经网络方法包括:基于所确定的输入数据的类的数量来确定输出运算结果的神经网络层的精度,以及根据所确定的精度来处理所述层的参数。
Description
相关申请的交叉引用
本申请要求2018年5月3日在美国专利商标局递交的美国专利申请序列NO.62/666,269和2018年7月4日在韩国知识产权局递交的韩国专利申请No.10-2018-0077496的权益,其中每个专利申请的全部公开内容被并入本文中用于所有目的。
技术领域
本公开涉及神经网络方法和装置。
背景技术
特征提取、模式识别和/或分析(仅作为示例)的技术自动化已经通过作为专门的计算架构的处理器实现的神经网络模型而得到实现,该处理器实现的神经网络模型在经过大量训练之后可以提供计算上直观的特征提取或识别、输入模式与输出模式之间的映射、输入模式的模式识别、归类或各种形式的分类。提取这种信息或识别、生成这种映射、执行这种模式识别或执行这种归类或分类的经训练的能力可以被称为神经网络的学习能力。这种经训练的能力还可以使专门的计算架构能够将输入模式或对象或输入模式或对象的一部分例如分类为属于一个或多个预定组的成员。此外,由于专门的训练,这种经过特殊训练的神经网络由此可以具有针对例如神经网络可能没有针对其被训练的输入模式来生成相对准确或可靠的输出的推广能力。然而,因为这些运算是通过这种专门的计算架构来执行的,并且以与在非计算机实现的方法或非自动化方法中执行它们不同的自动化方式来执行,所以它们还招致仅由于它们被实现的自动化和专门的计算架构方式而出现的问题或缺陷。
这种神经网络实现针对复杂的输入数据还需要许多运算,这可能需要大的功耗并且需要长的处理时间。此外,所实现的用于降低这种处理需求的尝试导致准确度和精度的降低。
发明内容
提供该发明内容以便以简化的形式来介绍下面将在具体实施方式中被进一步描述的概念的选择。该发明内容不意在识别所要求保护的主题的关键特征或必要特征,其也不意在被用作帮助确定所要求保护的主题的范围。
在一个一般方面中,一种处理器实现的神经网络方法包括:基于所确定的输入数据的类的数量来确定输出运算结果的神经网络层的精度,以及根据所确定的精度来处理所述层的参数。
所述方法可以基于对所述层的参数的处理的结果来指示所述神经网络的结果。所述方法可以包括:基于对所述层的参数的处理来生成损失信息,以及在考虑所述神经网络层的训练精度的情况下基于所生成的损失来训练所述神经网络。
所述方法可以包括:与所确定的类的数量正相关地确定所述精度。
所述方法可以包括:确定所述类的数量是否满足预定阈值,以及当确定所述类的数量满足所述预定阈值时,确定所述层的精度高于所述神经网络中其他层的精度。
所述方法可以包括:所述精度与所述层的参数的比特宽度相对应。
所述方法可以包括:所述层是所述神经网络的最后的全连接层。
所述方法可以包括:所述神经网络还包括连接到所述层并且在所述层之后的softmax层和连接到所述softmax层的损失层,并且所述方法还可以包括:基于根据由所述损失层生成的损失所导出的交叉熵损失来训练所述神经网络。
所述方法可以包括:所述参数包括所述交叉熵损失相对于向所述层输入的所述运算结果的梯度和所述层的权重。
在另一一般方面中,一种计算机可读记录介质存储指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行上述处理器实现的神经网络方法。
在另一一般方面中,一种神经网络装置包括处理器,被配置为:获得与输入数据被分类到的类的数量有关的信息,基于所获得的与所述类的数量有关的信息来确定输出运算结果的层的精度,以及根据所确定的精度来处理输出运算结果的所述层中的参数。
所述装置可以基于对所述层的参数的处理的结果来指示所述神经网络的结果。
所述方法可以包括:基于对所述层的参数的处理来生成损失信息;以及在考虑所述神经网络层的训练精度的情况下基于所生成的损失来训练所述神经网络。
所述处理器还可以被配置为:确定输出运算结果的所述层的精度要基于所述类的数量。
所述装置可以包括还被配置为执行如下操作的所述处理器:当所述类的数量大于或等于预定阈值时,确定输出运算结果的所述层的精度要高于所述神经网络中其他层的精度。
所述装置可以包括:所述精度表示要在所述层中被处理的参数的比特宽度。
所述装置可以包括:输出运算结果的所述层是所述神经网络中的最后的全连接层。
所述装置可以包括:输出运算结果的所述层连接到softmax层和损失层,并且所述处理器还被配置为:基于交叉熵损失的梯度来训练所述神经网络。
所述装置可以包括:所述参数包括所述交叉熵损失相对于所述运算结果的梯度和所述层的权重。
所述装置可以包括存储指令的存储器,所述指令在由所述处理器执行时将所述处理器配置为执行对所述层的精度的确定和对所述层的参数的处理。
附图说明
图1是示出了根据一个或多个实施例的神经网络的示例的图;
图2是根据一个或多个实施例的神经网络装置的硬件配置的框图;
图3示出了根据一个或多个实施例的用于分类的神经网络;
图4示出了根据一个或多个实施例的用于分类的神经网络中的每层的输出值;
图5示出了根据一个或多个实施例的确定用于分类的神经网络中的精度的方法;
图6是根据一个或多个实施例的电子系统的框图;以及
图7是用于说明根据一个或多个实施例的操作神经网络装置的方法的图。
在整个附图和具体实施方式中,相同的附图标记指代相同的元素。附图可以不按比例,并且为了清楚、说明和方便,可以夸张附图中的元素的相对尺寸、比例和描绘。
具体实施方式
提供以下详细描述以帮助读者获得对本文中所描述的方法、装置和/或系统的全面理解。然而,在理解本申请的公开内容之后,本文中所描述的方法、装置和/或系统的各种改变、修改和等同物将是显而易见的。例如,本文中所描述的操作顺序仅仅是示例,并且不限于本文所阐述的顺序,而是在理解本申请的公开内容之后可以变得显而易见(除了必须按照一定的顺序发生的情况外)。此外,为了增加清楚度和简要度,可以省略对已知特征的描述。
本文中所描述的特征可以用不同的形式来体现,并且不应被解释为受限于本文中所描述的示例。相反,提供本文中所描述的示例仅仅是为了说明实现本文中所描述的方法、装置和/或系统的许多可能方式中的一些方式,这些方式在理解本申请的公开内容之后将是显而易见的。
现在详细参考实施例,在附图中示出了实施例的示例,其中,贯穿附图类似的附图标记指代类似的元素。在这点上,呈现的实施例可以具有不同形式,并且不应当被解释为受限于本文所阐明的描述。因此,下面仅通过参考附图来描述实施例,以解释各个方面。如本文中所使用的,术语“和/或”包括相关列出项目中的一个或多个的任意和所有组合。诸如“...中的至少一项”之类的表述在元素列表之前时修饰整个元素列表,而不是修饰列表中的单独元素。
如本文所使用的,术语“包括”或“包含”等不应被解释为必须包括说明书中描述的所有各种元素或操作,并且应当被解释为不包括它们中的一些,或者可以被解释为包括附加组件或操作。
此外,如本文所使用的,包括诸如“第一”或“第二”之类的序数在内的术语可用于描述各种元素,但是这些元素不应该受这些术语的限制。这些术语仅用于将一个元素与另一元素彼此区分的目的。
图1是示出了根据一个或多个实施例的神经网络10的示例的图。
参照图1,神经网络10可以具有包括输入层、隐藏层和输出层在内的结构。神经网络10可以基于所接收的输入数据(例如,I1和I2)来执行运算,并基于运算的结果来生成输出数据(例如,O1和O2)。
神经网络10可以是深度神经网络(DNN)或包括一个或多个隐藏层在内的n层神经网络。例如,如图1中所示,神经网络10可以是包括输入层层1、两个隐藏层(第二层层2和第三层层3)以及输出层层4在内的DNN。DNN可以是卷积神经网络(CNN)、递归神经网络(RNN)、深度信念网络、受限玻尔兹曼(Boltzman)机,或者示例可以通过其他机器学习架构来实现,并且因此示例不限于此。本文中关于示例或实施例使用的术语“可以”(例如,关于示例或实施例可以包括或实现什么)意味着存在包括这种特征在内或实现这种特征的至少一个示例或实施例,而全部示例和实施例不限于此。
当示例神经网络10包括DNN结构时,神经网络10可以包括可以提取或生成新的或推断的有效信息的更多的层。因此,在各种示例中,神经网络10可以处理比之前的机器学习方法更复杂的数据集。在图1中,神经网络10被示为包括四层,但是这仅仅是示例,并且神经网络10可以包括更少的或更多的层。另外,神经网络10可以包括具有与图1中所示不同的各种结构的层。在实施例中,作为DNN,神经网络10可以包括卷积层、池化层或全连接层。
神经网络10中包括的每个层可以包括多个节点,该多个节点也可以被称为节点“处理单元(PE)”、“单元”或类似的计算架构术语。在图1所示的实施例中,输入层层1可以包括两个节点,并且第二层层2可以包括三个节点。然而,这仅仅是示例并且神经网络10中包括的每个层可以包括各种数量的节点。因此,神经网络10包括多个层,并且每个层包括多个节点。取决于神经网络10的架构,层内和/或相邻层中包括的节点可以根据相应的连接(例如,其可以被加权或不加权)被选择性地连接。例如,神经网络10可以由处理器(即,一个或多个处理器)来实现,该处理器被配置为生成具有这样的多个层的神经网络结构/架构,每个层包括多个节点并且被配置为在神经网络结构的相邻层中的相邻节点之间应用这样的示例加权连接,和/或在层内应用示例核(kernel)或加权连接,以解释向神经网络结构应用的输入数据。仅作为示例,本文中对输入数据的这种“解释”可以包括所执行的识别、验证或拒绝,或输入数据二元或多类分类、聚类、模式观察、变换和/或回归,以及各种示例中的神经网络的任何其他训练的目标。
神经网络10中包括的每个层中包括的节点可以彼此连接以交换数据。在实施例中,一个节点可以从其他节点接收数据并根据所接收的数据来进行运算,并且向其他节点输出运算结果。
每个节点的输出值可以被称为激活,即,作为相对于至少针对对应节点的输入信息所应用的对应节点的一个或多个激活函数的相应结果。例如,激活可以简单得如对多个加权输入的总和应用的修正线性单元(ReLU)、sigmoid函数或tanh,或者节点可以更复杂,作为非限制性示例,例如门控或长短期记忆节点。因此,激活可以是一个层的一个节点的输出值,然后可以是一个或多个接下来的层、其他后续的层、一个或多个先前的层或相同的层、或另一神经网络中包括的一个或多个节点的输入值。因此,仅作为示例,示例神经网络10的每个节点可以基于权重和从前一层中包括的节点接收的激活来生成其激活。例如,权重可以是神经网络10的经训练的参数,其由对初始或过渡神经网络的参数进行训练而产生。因此,可以将经训练的权重应用于针对节点的特定输入(或者来自前一节点/层的作为结果的激活),并且将相应的其他经训练的权重应用于针对该节点的其他相应输入,使得节点的相对于这种加权输入的激活,并且可以是随后被输出并且被分配给该节点与一个或多个接下来的节点之间的连接关系的值或激活结果。除了这种权重参数之外,神经网络10还可以针对这种激活来应用偏置。例如,可以在神经网络10的训练期间设置或训练该偏置。。
因此,每个节点可以是计算单元,该计算单元接收一个或多个数据值并输出激活,并且最后可以将输入映射到输出。例如,当σ是激活函数时,是从第i-1层中的第k个节点到第i层中的第j个节点的权重,并且/>是第j层的偏置值,并且/>是第i层中的第j个节点的激活,激活/>可以由等式1来表示。
等式1
如图1中所示,第二层层2中的第一个节点的激活可以被表示为另外,根据等式1,/>可以具有值/>然而,上述等式1仅仅是描述用于处理神经网络10中的数据的激活和权重的示例,但是不限于此。如在上述示例中所述,激活可以是通过ReLU对以下值进行处理而获得的值:该以下值是通过对从前一层接收的激活的加权和应用激活函数而获得的。
如上所述,在神经网络10中,大量的数据集可以在彼此互连的多个通道之间交换,并且可以在穿过各层时经历海量的运算过程。在本文的示例中,发现可能期望一种通过减少处理复杂输入数据所需的运算量并且同时减少准确度损失来改进神经网络以及改进对这种神经网络的训练的技术,由此改进对应的神经网络装置和方法的计算机功能。
因此,一个或多个实施例提供技术改进,该技术改进可以包括改进处理器的处理操作(例如,帮助提高速度并且帮助最小化任何对应的准确度损失),降低存储器需求,提高存储器访问速度和/或提高分类确定的速度。此外,通过一个或多个实施例,可以在具有较少能力的处理系统上执行更复杂和精密的经训练的神经网络,作为非限制性示例,例如在移动示例中,其中这种经训练的神经网络可能尚未可用于实现或者可能尚未能够在这种移动装置的操作期间以足够的速度执行以便实时操作。
图2是根据实施例的神经网络装置100的硬件配置的框图。
参照图2,神经网络装置100可以包括处理器110和存储器120。神经网络装置100可以包括图6的600的选项和装置,以及例如移动装置示例中的附加的硬件组件。
在示例中,神经网络装置100可以与包括一个或多个处理器在内的计算设备相对应,该一个或多个处理器具有各种处理功能(例如,用于生成神经网络、训练或学习神经网络、将浮点型神经网络量化为定点型神经网络、或者重新训练神经网络的功能)。在实施例中,神经网络装置100可以用各种类型的设备来实现,诸如个人计算机(PC)、服务器设备、移动设备等。而且,神经网络装置100可以包括用于驱动神经网络的硬件加速器。例如,硬件加速器可以与神经处理单元(NPU)、张量处理单元(TPU)、神经引擎等相对应,它们是用于驱动神经网络的专用模块,但是本公开不限于此。
处理器110可以执行用于控制神经网络装置100的所有控制操作。在实施例中,处理器110通过执行神经网络装置100的存储器120中存储的复杂的可读取指令来控制神经网络装置100的所有功能。处理器110可以由在神经网络装置100中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)等来实现。然而,本公开并不限于此。
存储器120是用于存储在神经网络装置100中处理的各条数据的硬件。例如,存储器120可以存储在神经网络装置100中处理和将在神经网络装置100中处理的数据。此外,存储器120可以存储由神经网络装置100驱动的应用、驱动程序等。存储器120可以是DRAM,但是本公开不限于此。存储器120可以包括易失性存储器或非易失性存储器中的至少一种。存储器120也可以存储神经网络的经训练的参数。
处理器110可以通过重复训练(学习)给定的初始神经网络来生成经训练的神经网络。在这方面,处理器110可以根据预定精度来训练神经网络。换言之,处理器110可以在训练神经网络时设置在神经网络中处理的参数的精度。精度指的是神经网络中的参数可以被处理的详细程度。精度可以由神经网络中的参数的比特宽度来描述。在实施例中,可以存在具有高精度(例如,32比特浮点精度的参数)的参数和具有低精度(例如,8比特定点精度的参数)的参数。在这方面,参数可以包括向神经网络输入/从神经网络输出的各种类型的数据,例如神经网络的输入/输出激活以及权重、偏置等。
在示例中,处理器110可以根据低精度来处理神经网络的参数。换言之,处理器110可以使用具有比典型的神经网络相对小的比特宽度的数据作为参数,从而在降低精度的同时减少计算量。在实施例中,与使用32比特或64比特浮点或定点数据的这种典型神经网络不同,处理器110可以根据低精度使用8比特或16比特浮点或定点数据作为参数。然而,当为神经网络中的所有层共同设置低精度时,因为可能发生由于神经网络中的一些层的特性所导致的大的准确度损失,因此在示例中,本文发现通过为神经网络中的一些层设置高精度来减小或最小化该准确度损失。
在示例中,处理器110可以生成用于分类的神经网络,并且可以训练该用于分类的神经网络。用于分类的神经网络可以输出与哪类输入数据与哪个类相对应有关的运算结果。具体地,用于分类的神经网络可以输出与输入数据与多个类中的每个相对应的可能性有关的运算结果作为每个类的结果值。此外,用于分类的神经网络可以包括softmax层和损失层。softmax层可以将每个类的结果值转换成概率值或其他概率信息。损失层可以被用于将损失计算为用于学习的目标函数。
图3示出了根据实施例的用于分类的神经网络300。
用于分类的神经网络300可以包括隐藏层310、全连接(FC)层320、softmax层330和损失层340。一些隐藏层310可以是FC层,并且因此FC层320可以是神经网络300的最后的FC层。换言之,作为非限制性示例,FC层320可以是神经网络300的所有FC层中的最后一个FC层。
当输入数据被输入到神经网络300时,在隐藏层310和FC层320的顺序运算之后,FC层320可以输出与输入数据被分类到每个类中的可能性有关的运算结果s。换言之,FC层320可以输出输入数据被分类到每个类中的可能性的结果值作为每个类的运算结果s。具体地,FC层320可以包括与每个类相对应的节点,并且FC层320的每个节点可以输出输入数据被分类到每个类中的可能性的结果值。在实施例中,当针对目标为五个类的分类作业来实现神经网络300时,FC层320的第一到第五节点中的每一个节点的输出值可以是输入数据被分类到第一到第五类中的每个类的可能性的结果值。
FC层320可以向softmax层330输出运算结果s。softmax层330可以将运算结果s转换为概率值y。换言之,softmax层330可以通过对输入数据被分类到每个类中的可能性的结果值进行归一化来生成概率值y。然后,softmax层330可以向损失层340输出概率值y。损失层340可以基于概率值y来计算运算结果s的交叉熵损失L。换言之,损失层340可以例如基于输入训练数据的已知标签来计算指示运算结果s的误差的交叉熵损失L。
在实施例中,softmax层330可以通过使用下面的等式2来将计算结果s转换成概率值y,并且损失层340可以通过使用下面的等式3来计算运算结果s的交叉熵损失L。
等式2
等式3
在等式2和3中,si表示FC层320的第i个节点的输出值(即,类中的第i类的结果值),yi表示softmax层330的第i个节点的输出值(即,类中第i类的概率值),Nc表示类的数量,并且ti表示第i类的基本真值(ground truth)(GT)标签。
然后,作为反向传播学习过程,softmax层330可以计算通过损失层340的交叉熵损失L的梯度
在实施例中,softmax层330可以被认为通过使用等式4来计算交叉熵损失L的梯度
等式4
在等式4中,si表示FC层320的第i个节点的输出值(即,类中的第i类的结果值),yi表示softmax层330的第i个节点的输出值(即,类中的第i类的概率值),Nc表示类的数量,并且ti表示第i类的GT标签。
然后,可以针对FC层320执行学习过程,该FC层320可以基于交叉熵损失L的梯度来执行学习过程。例如,可以根据梯度下降算法来更新FC层320的权重。此外,隐藏层310也可以使其权重在这种反向传播链式学习过程中分别被更新。
图4示出了根据一个或多个实施例的用于分类的神经网络中的每个层的输出值。
在神经网络中的每个层中,可以输出根据预定精度的值。具体而言,参照图4,神经网络中每个层的输出值可以以量化级别来分布。例如,当预定精度是3比特的比特宽度时,输出值可以被分布到23个量化级别。
参照图4的上侧图形,一种训练或推断操作,作为最后的FC层的FC层320的输出值si可以被分布到相对于0的量化级别,而softmax层330的输出值yi可以是归一化的概率值,并且被分布到相对于1/(类的数量Nc)的量化级别。例如,当类的数量是2时,sofimax层330的输出值yi可以被分布到相对于1/2的量化级别,并且当类的数量是1000时,softmax层330的输出值yi可以被分布到相对于1/1000的量化级别。
图4的下侧图形示出了在反向传播学习过程中用于训练FC层320的交叉熵损失L的梯度由于根据等式4的梯度的特性,与GT标签相对应的类的梯度可以具有-1和0之间的值,但是其他类的梯度可以具有0和1之间的值。具体地,类的数量越大,其他类的梯度就可以具有越接近0的值。
可以处理用于训练FC层320的梯度以具有根据预定精度的值。换言之,可以根据预定比特宽度将根据sofimax层所导出的用于训练FC层320的梯度调整为量化级别。然而,当类的数量很大时,在将梯度调整到量化级别的过程期间,可以将与GT标签相对应的类的梯度调整为-1,但是可以将其他类的梯度调整为0。在实施例中,参照图4的右侧图形,当类的数量是2时,可以将不与GT标签相对应的类的梯度调整到0和1之间的级别,而当类的数量是100时,可以将不与GT标签相对应的类的梯度全部调整为0。因此,当类的数量很大时,所有类的梯度的总和可能被偏置为负值,并且因此可能对神经网络300的学习或训练具有负面影响。
因此,需要针对FC层320在考虑到类的数量的情况下设置精度,而不是一次性设置对于神经网络300中的所有层固定的精度(特别是低精度)。
再次参照图2,处理器110可以基于与类的数量有关的信息来确定输出输入数据被分类到每个类中的可能性的运算结果s的层(下文中被称为输出层)的精度。例如,参照图3,输出层可以是FC层320,其是最后的FC层。输出层还可以连接到sofimax层330和损失层340。
首先,处理器110可以获得与输入数据可以被分类到的类的数量有关的信息。根据实施例,由于类的数量等于输出层的节点的数量,因此处理器110可以确定输出层的节点的数量并获得与类的数量有关的信息。根据实施例,处理器110还可以基于用户输入来获得与类的数量有关的信息,或者类的数量可以被确定。
然后,处理器110可以基于所获得的与类的数量有关的信息来确定输出层的精度。
根据实施例,处理器110可以确定与类的数量正相关的输出层的精度或基于类的数量来确定输出层的精度。换言之,处理器110可以确定类的数量越高,输出层的精度就越高。例如,当类的数量是10时,处理器110可以将输出层的精度确定为8比特的比特宽度,并且当类的数量是100时,可以将输出层的精度确定为11比特的比特宽度。因此,可以基于类的数量以各种方式来设置输出层精度。
根据另一实施例,处理器110可以根据下面的等式5来确定输出层的精度。即,处理器110可以将应用于输出层的比特宽度确定为输出层的精度。
等式5
比特宽度>β×log2(|类|)+α
在等式5中,|类|表示类的尺寸(即,类的数量),α表示预定偏置,并且β表示比例常数。例如,当α被设置为4、β被设置为1并且类的数量是10时,处理器110可以将输出层的精度确定为7.32比特或更多比特的比特宽度。此外,当α被设置为4并且类的数量是100时,处理器110可以将输出层的精度确定为10.64比特或更多比特的比特宽度。此外,当α被设置为4并且类的数量是1000时,处理器110可以将输出层的精度确定为14比特或更多比特的比特宽度。
根据另一实施例,当类的数量大于或等于预定阈值时,处理器110可以确定输出层的精度高于神经网络中其他层的精度。在实施例中,当类的数量是10或更多时,处理器110可以确定输出层的精度高于8比特的比特宽度,该8比特的比特宽度是神经网络中其他层的精度。
处理器110可以根据预定精度来处理输出层中的参数。处理器110可以处理输出层的参数以具有预定精度,并且通过具有预定精度的参数来执行神经网络的训练/学习过程。可以使用相对于后续的softmax层所导出的交叉熵损失的梯度来训练输出层的参数。因此,处理器110可以根据预定比特宽度将向输出层输入的交叉熵损失的梯度调整到某一量化级别,并且通过经调整的梯度来执行对神经网络的训练/学习过程。此外,输出层的参数还可以包括输出层的权重和激活。
因此,神经网络装置100可以在考虑类的数量的情况下设置诸如最后的FC层之类的输出层的精度,例如,而不是针对神经网络中的所有层来设置固定精度,由此减小或最小化训练/学习过程中的准确度损失。具体地,神经网络装置100可以针对神经网络的其他层以低精度来处理神经网络的参数,同时在考虑类的数量的情况下以高精度来处理神经网络的输出层的参数,由此减小或最小化可能由于统一低精度设置而发生的准确度损失。
图5示出了根据实施例的确定用于分类的神经网络300中的精度的示例。
神经网络装置100可以获得与用于分类的神经网络300的类尺寸有关的信息。即,神经网络装置100可以获得与用于分类的神经网络300中输入数据可以被分类到的类的数量有关的信息。神经网络装置100可以通过确定作为最后的FC层的FC层320的节点的数量来获得与类的数量有关的信息。
神经网络装置100可以基于所获得的与类的数量有关的信息来确定作为输出层的FC层320的精度。神经网络装置100可以确定FC层320的精度与类的数量正相关。例如,当类的数量是10时,神经网络装置100可以将FC层320的精度确定为10比特的比特宽度,并且当类的数量是1000时,神经网络装置100可以将FC层320的精度确定为16比特的比特宽度。
神经网络装置100可以根据预定精度来处理FC层320中的参数。根据实施例,神经网络装置100可以处理从softmax层330输出并且被用于训练FC层320的交叉熵损失的梯度以具有预定精度,并且因此通过具有预定精度的梯度来继续进行神经网络300的学习/训练。可以通过调整神经网络的参数来继续对神经网络300的训练,直到神经网络被训练到预定准确度和/或预定不准确度为止。
图6是根据实施例的电子系统600的框图。
参照图6,电子系统600可以通过基于神经网络实时分析输入数据来提取有效信息,基于所提取的信息来确定情况,或者控制由电子系统600表示的或其上安装有电子系统600的电子设备的元件。例如,作为非限制性电子设备示例,电子系统600可以是以下任何一项,可以被应用于以下项或者可以被安装在以下项中:诸如无人机、高级驾驶员辅助系统(ADAS)等的机器人设备、智能TV、智能电话、医疗设备、移动设备、图像显示设备、测量设备、IoT设备等。
电子系统600可以包括处理器610、RAM 620、神经网络装置630、存储器640、传感器模块650和通信(Tx/Rx)模块660。电子系统600还可以包括输入/输出模块、安全模块、电力控制设备等。例如,电子系统600的一些硬件组件可以被安装在至少一个半导体芯片上。在示例中,神经网络装置630可以包括上述神经网络装置100或神经网络专用硬件加速器或包括该神经网络专用硬件加速器在内的装置。
处理器610可以控制电子系统600的一些或所有操作。处理器610可以包括一个处理器核(单核)或多个处理器核(多核)。处理器610可以处理或执行存储器640中存储的指令和程序和/或数据。在实施例中,处理器610可以通过执行存储器640中存储的指令来控制神经网络装置630的实现。处理器610也可以由CPU、GPU、AP等来实现。
RAM 620可以暂时性地存储程序、数据或指令。例如,存储器640中存储的程序和/或数据可以根据引导代码或处理器610的控制被暂时性地存储在RAM 620中。RAM 620可以由诸如动态RAM(DRAM)或静态RAM(SRAM)等的存储器来实现。ram也可以在如本文中所描述并且由系统600执行的任何训练操作期间临时存储初始或过渡参数。
神经网络装置630可以基于所接收的输入数据来执行神经网络的运算,并且基于运算的结果例如使用本文中所描述的神经网络来生成信息信号。神经网络可以包括CNN、RNN、深度信念网络、受限玻尔兹曼机等,但是本公开不限于此。神经网络装置630是驱动上述用于分类的神经网络的硬件,并且可以与神经网络专用硬件加速器相对应。
信息信号可以包括各种类型的识别信号中的一种,例如,语音识别信号、对象识别信号、图像识别信号、生物特征信息识别信号等。例如,神经网络装置630可以接收视频流中包括的帧数据作为输入数据,并且根据帧数据来生成针对由帧数据指示的图像中包括的对象的识别信号,并且基于或不基于所述识别来进行操作,或者锁定或解锁对对应设备的访问。然而,本公开不限于此,并且根据表示电子系统600或在其上安装有电子系统600的电子设备的类型,神经网络装置630可以接收各种类型的输入数据并根据输入数据来生成识别或分类信号。
存储器640是用于存储数据(例如,操作系统(OS)、各种程序和各条数据)的存储器。在实施例中,存储器640可以存储在执行神经网络装置630的处理的运算中生成的中间结果(例如,输出特征图),作为输出特征列表或外部特征矩阵。在实施例中,存储器640可以存储经压缩的输出特征图。此外,存储器640可以存储由神经网络装置630使用的经量化的神经网络数据,例如参数、权重图或权重列表。
存储器640可以是DRAM,但是本公开不限于此。存储器640可以包括易失性存储器和非易失性存储器中的至少一种。非易失性存储器可以包括ROM、PROM、EPROM、EEPROM、闪存、PRAM、MRAM、RRAM、FRAM等。易失性存储器可以包括DRAM、SRAM、SDRAM、PRAM、MRAM、RRAM、FeRAM等。在实施例中,存储器640可以包括HDD、SSD、CF、SD、Micro-SD、Mini-SD、xD和记忆棒中的至少一种。
传感器模块650可以收集与由电子系统600表示或其上安装有电子系统600的电子设备的外围有关的信息。传感器模块650可以从电子设备的外部感测或接收诸如图像信号、语音信号、磁信号、生物特征信号、触摸信号等的信号,并且将所感测或所接收的信号转换成数据。为此,传感器模块650可以包括各种类型的感测设备中的至少一种,例如麦克风、成像设备、图像传感器、光检测和测距(LIDAR)传感器、超声传感器、红外传感器、生物特征传感器、触摸传感器等。
传感器模块650可以向神经网络装置630提供经转换的数据作为输入数据。例如,传感器模块650可以包括图像传感器,并可以通过拍摄电子设备的外部环境来生成视频流,并且按顺序向神经网络装置630提供视频流的连续数据帧作为输入数据。然而,本公开不限于此,并且传感器模块650可以向神经网络装置630提供各种类型的数据。
通信模块660可以包括能够与外部设备通信的各种有线或无线接口。例如,通信模块660可以包括局域网(LAN)、诸如无线保真(Wi-Fi)之类的无线局域网(WLAN)、诸如蓝牙之类的无线个域网(WPAN)、无线通用串行总线(USB)、ZigBee、近场通信(NFC)、射频识别(RFID)、电力线通信(PLC)或能够连接到诸如第3代(3G)、第4代(4G)、长期演进(LTE)等的移动蜂窝网络的通信接口。
图7是用于说明根据实施例的操作神经网络装置100的方法的示图。
作为非限制性示例,图7中所示的方法可以由图2的神经网络装置100或图6的电子系统的每个组件来执行。因此,下面省略冗余的说明。
在操作S710中,神经网络装置100可以获得与输入数据可以被分类到的类的数量有关的信息。根据实施例,神经网络装置100可以确定输出运算结果的层的节点的数量,该运算结果指示输入数据被分类到每个类中的可能性,并且获得与类的数量有关的信息。根据实施例,神经网络装置100可以基于用户输入来获得与类的数量有关的信息。
在操作S720中,神经网络装置100可以基于在操作S710中所获得的信息来确定用于输出运算结果的层(下文中被称为输出层)的精度,该运算结果指示输入数据被分类到每个类中的可能性。根据实施例,神经网络装置100可以确定输出层的精度与类的数量正相关。根据另一实施例,神经网络装置100可以根据等式4来确定输出层的精度。根据另一实施例,当类的数量大于或等于预定阈值时,神经网络装置100可以确定输出层的精度高于神经网络的其他层的精度。
在操作S730中,神经网络装置100可以根据在操作S720中所确定的精度来处理层中的参数。神经网络装置100可以处理输出层的参数以具有预定准确度,并且通过具有预定精度的参数来执行神经网络的训练/学习过程。然后可以将经学习的参数存储在存储器中。
根据实施例,神经网络装置可以选择性地不针对神经网络中的所有层设置固定精度,而是可以在考虑诸如最后的FC层之类的输出层的类的数量的情况下设置精度,由此在神经网络的训练/学习过程中减小或最小化精度损失。
图1至图7中执行本申请中描述的操作的神经网络装置100、处理器110、存储器120、RAM 620、神经网络设备630、传感器模块650、Tx/Rx模块660由硬件组件实现,该硬件组件被配置为执行本申请中描述为由该硬件组件执行的操作。执行本申请中描述的操作的一个或多个硬件组件由计算硬件实现,例如,由一个或多个处理器或计算机实现。处理器或计算机可以由被配置为以限定的方式响应并执行指令以实现期望的结果的一个或多个处理元件实现,例如逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或任何其他设备或设备组合。在一个示例中,处理器或计算机包括或被连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可以执行指令或软件,例如操作系统(OS)和在OS上运行的一个或多个软件应用,以执行本申请中描述的操作。硬件组件还可以响应于对指令或软件的执行来访问、操纵、处理、创建和存储数据。为简单起见,单数术语“处理器”或“计算机”可以用于对本申请中描述的示例的描述,但是在其他示例中,可以使用多个处理器或计算机,或者处理器或计算机可以包括多个处理元件或多种类型的处理元件,或这二者。例如,单个硬件组件或两个或更多个硬件组件可以由单个处理器、或两个或更多个处理器、或处理器和控制器来实现。一个或多个硬件组件可以由一个或多个处理器或处理器和控制器来实现,并且一个或多个其他硬件组件可以由一个或多个其他处理器或另一处理器和另一控制器来实现。一个或多个处理器、或处理器和控制器可以实现单个硬件组件、或两个或更多个硬件组件。硬件组件可以具有任何一种或多种不同的处理配置,其示例包括单个处理器、独立的处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
执行本申请的图1至图7中描述的操作的方法由计算硬件执行,例如,由一个或多个处理器或计算机执行,该计算硬件如上所述被实现为执行指令或软件以执行由所述方法执行的本申请中描述的操作。例如,单个操作或两个或更多个操作可以由单个处理器、或两个或更多个处理器、或处理器和控制器来执行。一个或多个操作可以由一个或多个处理器或由处理器和控制器来执行,并且一个或多个其他操作可以由一个或多个其他处理器或由另一处理器和另一控制器来执行。一个或多个处理器或处理器和控制器可以执行单个操作、或两个或更多个操作。
可以将用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行上述方法的指令或软件编写为计算机程序、代码段、指令或它们的任何组合,用于单独地或共同地指示或配置一个或多个处理器或计算机作为用于执行由所述硬件组件执行的操作和如上所述的方法的机器或专用计算机来操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码,例如由编译器产生的机器代码。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的更高级代码。可以基于附图中示出的框图和流程图以及说明书中的对应描述使用任何编程语言来编写指令或软件,其公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。
可以将用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构加以记录、存储或固定在一个或多个非暂时性计算机可读存储介质之中或之上。非暂时性计算机可读存储介质的示例包括被配置为以非暂时方式存储指令或软件以及任何相关联数据、数据文件和数据结构并且向一个或多个处理器或计算机提供指令或软件以及任何相关联数据、数据文件和数据结构以使得一个或多个处理器或计算机可以执行指令的只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R,BD-R LTH、BD-RE、磁带、软盘、磁光数据存储设备、光学数据存储设备、硬盘、固态盘、以及任何其他设备。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在网络耦接的计算机系统上,以使得指令和软件以及任何相关联的数据、数据文件和数据结构以分布式方式由一个或多个处理器或计算机进行存储、访问和执行。
在描述本公开的上下文中(尤其是在所附权利要求的上下文中)对术语“一”、“一个”和“所述”及类似指示物的使用应当被解释为涵盖单数和复数两者。此外,除非本文中另外指示,否则本文中对值的范围的叙述仅意在用作分别引用落入该范围内的各个单独值的便捷方法,并且除非在本文中有相反指示,否则各个单独值被并入本说明书中犹如其被单独在本文中叙述一样。最后,除非本文中另外指出或者上下文另外明确地相反指示,否则可以按照任何适当顺序执行本文中描述的所有方法的操作。本文中提供的任何和所有示例或示例性语言(例如,“诸如(例如)”)的使用仅意在更好地阐述本公开且不对本公开的范围施加限制,除非另外要求。在不脱离本公开的精神和范围的情况下,许多修改和改编对于本领域普通技术人员来说将是显而易见的。
尽管本公开包括具体示例,但在理解本申请的公开内容之后将显而易见地可以在不脱离权利要求及其等同物的精神和范围的情况下在这些示例中进行形式和细节方面的各种改变。本文描述的示例应被视为仅是描述性的,且不用于限制。对每个示例中的特征或方面的描述应被视为适用于其它示例中的类似特征或方面。如果以不同顺序来执行所述技术,和/或如果所述系统、架构、设备或电路中的组件以不同方式结合,和/或被其他组件或其等同物所替换或补充,则可以实现合适的结果。因此,本公开的范围不由具体实施方式来限定,而是由权利要求及其等同物来限定,且在权利要求及其等同物的范围内的所有变化都应被视为被包括在本公开中。
Claims (18)
1.一种用于神经网络的处理器实现的方法,所述方法包括:
基于所确定的输入数据的类的数量来确定输出运算结果的神经网络层的精度;以及
根据所确定的精度来处理所述层的参数,
其中,所述方法还包括:确定所述类的数量是否满足预定阈值,以及当确定所述类的数量满足所述预定阈值时,确定所述层的精度高于所述神经网络中其他层的精度,
其中,所述输入数据包括在视频流中包括的帧数据。
2.根据权利要求1所述的方法,还包括:基于对所述层的参数的处理的结果来指示所述神经网络的结果。
3.根据权利要求1所述的方法,还包括:基于对所述层的参数的处理来生成损失信息;以及
在考虑所确定的所述神经网络层的精度的情况下,基于所生成的损失来训练所述神经网络。
4.根据权利要求1所述的方法,其中,在确定所述精度时,与所确定的类的数量正相关地确定所述精度。
5.根据权利要求1所述的方法,其中,所述精度与所述层的参数的比特宽度相对应。
6.根据权利要求1所述的方法,其中,所述层是所述神经网络的最后的全连接层。
7.根据权利要求1所述的方法,其中,所述神经网络还包括连接到所述层并且在所述层之后的softmax层和连接到所述softmax层的损失层,并且所述方法还包括:基于根据由所述损失层生成的损失所导出的交叉熵损失来训练所述神经网络。
8.根据权利要求7所述的方法,其中,所述参数包括所述交叉熵损失相对于向所述层输入的所述运算结果的梯度和所述层的权重。
9.一种存储指令的计算机可读记录介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行权利要求1的方法。
10.一种用于神经网络的装置,所述装置包括:
处理器,被配置为:获得与输入数据被分类到的类的数量有关的信息,基于所获得的与所述类的数量有关的信息来确定输出运算结果的神经网络层的精度,以及根据所确定的精度来处理输出运算结果的所述层中的参数,
其中,所述处理器还被配置为:当所述类的数量大于或等于预定阈值时,确定输出运算结果的所述层的精度要高于所述神经网络中其他层的精度,
其中,所述输入数据包括在视频流中包括的帧数据。
11.根据权利要求10所述的装置,还包括:基于对所述层的参数的处理的结果来指示所述神经网络的结果。
12.根据权利要求10所述的装置,还包括:基于对所述层的参数的处理来生成损失信息;以及
在考虑所确定的所述神经网络层的精度的情况下,基于所生成的损失来训练所述神经网络。
13.根据权利要求10所述的装置,其中,所述处理器还被配置为:确定输出运算结果的所述层的精度要基于所述类的数量。
14.根据权利要求10所述的装置,其中,所述精度表示要在所述层中被处理的参数的比特宽度。
15.根据权利要求10所述的装置,其中,输出运算结果的所述层是所述神经网络中的最后的全连接层。
16.根据权利要求10所述的装置,其中,输出运算结果的所述层连接到softmax层和损失层,并且所述处理器还被配置为:基于交叉熵损失的梯度来训练所述神经网络。
17.根据权利要求16所述的装置,其中,所述参数包括所述交叉熵损失相对于所述运算结果的梯度和所述层的权重。
18.根据权利要求10所述的装置,还包括存储指令的存储器,所述指令在由所述处理器执行时将所述处理器配置为执行对所述层的精度的确定和对所述层的参数的处理。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862666269P | 2018-05-03 | 2018-05-03 | |
US62/666,269 | 2018-05-03 | ||
KR1020180077496A KR102581471B1 (ko) | 2018-05-03 | 2018-07-04 | 분류를 위한 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 |
KR10-2018-0077496 | 2018-07-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110443347A CN110443347A (zh) | 2019-11-12 |
CN110443347B true CN110443347B (zh) | 2024-04-02 |
Family
ID=66182448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910315912.0A Active CN110443347B (zh) | 2018-05-03 | 2019-04-18 | 神经网络方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11875251B2 (zh) |
EP (1) | EP3564868A1 (zh) |
JP (1) | JP7329352B2 (zh) |
CN (1) | CN110443347B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020172829A1 (zh) * | 2019-02-27 | 2020-09-03 | 华为技术有限公司 | 一种神经网络模型处理方法及装置 |
US20210125064A1 (en) * | 2019-10-24 | 2021-04-29 | Preferred Networks, Inc. | Method and apparatus for training neural network |
US11836629B2 (en) * | 2020-01-15 | 2023-12-05 | SambaNova Systems, Inc. | Computationally efficient softmax loss gradient backpropagation |
CN113392954B (zh) * | 2020-03-13 | 2023-01-24 | 华为技术有限公司 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
CN111639745B (zh) * | 2020-05-13 | 2024-03-01 | 北京三快在线科技有限公司 | 一种数据处理方法及装置 |
CN114492721A (zh) * | 2020-10-27 | 2022-05-13 | 北京晶视智能科技有限公司 | 神经网络的混合精度量化方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598509A (en) * | 1992-08-28 | 1997-01-28 | Hitachi, Ltd. | Method of configuring a neural network and a diagnosis/recognition system using the same |
EP1353293A2 (en) * | 2002-04-08 | 2003-10-15 | Honda Giken Kogyo Kabushiki Kaisha | Behavior control apparatus and method |
KR20060094006A (ko) * | 2005-02-23 | 2006-08-28 | 인천대학교 산학협력단 | 신경망 기법을 이용한 뉴스 비디오의 앵커 화면 추출 장치및 그 방법 |
CA2629069A1 (en) * | 2005-11-15 | 2007-05-24 | Bernadette Garner | Method for training neural networks |
CN105320495A (zh) * | 2014-07-22 | 2016-02-10 | 英特尔公司 | 用于卷积神经网络的权重移位机制 |
CN106228238A (zh) * | 2016-07-27 | 2016-12-14 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
CN106575379A (zh) * | 2014-09-09 | 2017-04-19 | 英特尔公司 | 用于神经网络的改进的定点整型实现方式 |
CN107679525A (zh) * | 2017-11-01 | 2018-02-09 | 腾讯科技(深圳)有限公司 | 图像分类方法、装置及计算机可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095917B2 (en) * | 2013-11-04 | 2018-10-09 | Facebook, Inc. | Systems and methods for facial representation |
US9524450B2 (en) | 2015-03-04 | 2016-12-20 | Accenture Global Services Limited | Digital image processing using convolutional neural networks |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CA3021085A1 (en) * | 2016-05-20 | 2017-11-23 | Magic Leap, Inc. | Method and system for performing convolutional image transformation estimation |
US20190050710A1 (en) * | 2017-08-14 | 2019-02-14 | Midea Group Co., Ltd. | Adaptive bit-width reduction for neural networks |
US20190171927A1 (en) * | 2017-12-06 | 2019-06-06 | Facebook, Inc. | Layer-level quantization in neural networks |
-
2019
- 2019-01-10 US US16/244,644 patent/US11875251B2/en active Active
- 2019-04-11 JP JP2019075655A patent/JP7329352B2/ja active Active
- 2019-04-15 EP EP19169298.7A patent/EP3564868A1/en active Pending
- 2019-04-18 CN CN201910315912.0A patent/CN110443347B/zh active Active
-
2023
- 2023-12-05 US US18/529,620 patent/US20240112030A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598509A (en) * | 1992-08-28 | 1997-01-28 | Hitachi, Ltd. | Method of configuring a neural network and a diagnosis/recognition system using the same |
EP1353293A2 (en) * | 2002-04-08 | 2003-10-15 | Honda Giken Kogyo Kabushiki Kaisha | Behavior control apparatus and method |
KR20060094006A (ko) * | 2005-02-23 | 2006-08-28 | 인천대학교 산학협력단 | 신경망 기법을 이용한 뉴스 비디오의 앵커 화면 추출 장치및 그 방법 |
CA2629069A1 (en) * | 2005-11-15 | 2007-05-24 | Bernadette Garner | Method for training neural networks |
CN105320495A (zh) * | 2014-07-22 | 2016-02-10 | 英特尔公司 | 用于卷积神经网络的权重移位机制 |
CN106575379A (zh) * | 2014-09-09 | 2017-04-19 | 英特尔公司 | 用于神经网络的改进的定点整型实现方式 |
CN106228238A (zh) * | 2016-07-27 | 2016-12-14 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
CN107679525A (zh) * | 2017-11-01 | 2018-02-09 | 腾讯科技(深圳)有限公司 | 图像分类方法、装置及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Adaptive Quantization for Deep Neural Network;Yiren Zhou等;《Proceedings of the AAAI Conference on Artificial Intelligence》;第32卷(第1期);1-9 * |
Training and Inference with Integers in Deep Neural Networks;Shuang Wu等;《arXiv》;1-14 * |
Also Published As
Publication number | Publication date |
---|---|
US20240112030A1 (en) | 2024-04-04 |
US20190340504A1 (en) | 2019-11-07 |
CN110443347A (zh) | 2019-11-12 |
JP2019194851A (ja) | 2019-11-07 |
US11875251B2 (en) | 2024-01-16 |
JP7329352B2 (ja) | 2023-08-18 |
EP3564868A1 (en) | 2019-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443347B (zh) | 神经网络方法和装置 | |
US20220335284A1 (en) | Apparatus and method with neural network | |
US11836603B2 (en) | Neural network method and apparatus with parameter quantization | |
CN109389219B (zh) | 用于对神经网络的参数进行量化的方法和装置 | |
US11250320B2 (en) | Neural network method and apparatus | |
US12026611B2 (en) | Method and apparatus for quantizing parameters of neural network | |
CN110689109A (zh) | 神经网络方法和装置 | |
KR20200086581A (ko) | 뉴럴 네트워크 양자화를 위한 방법 및 장치 | |
US11829862B2 (en) | Method and device with neural network implementation | |
US11763153B2 (en) | Method and apparatus with neural network operation | |
US11816557B2 (en) | Method and apparatus with neural network parameter quantization | |
US11531893B2 (en) | Method and apparatus with neural network parameter quantization | |
US11513770B2 (en) | Neural network method and apparatus with floating point processing | |
US20240086694A1 (en) | Neuromorphic method and apparatus with multi-bit neuromorphic operation | |
CN114358274A (zh) | 训练用于图像识别的神经网络的方法和设备 | |
US11853869B2 (en) | Neural network apparatus and method of processing variable-resolution operation by the same | |
KR102581471B1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |