CN112396085A - 识别图像的方法和设备 - Google Patents
识别图像的方法和设备 Download PDFInfo
- Publication number
- CN112396085A CN112396085A CN202010534666.0A CN202010534666A CN112396085A CN 112396085 A CN112396085 A CN 112396085A CN 202010534666 A CN202010534666 A CN 202010534666A CN 112396085 A CN112396085 A CN 112396085A
- Authority
- CN
- China
- Prior art keywords
- input
- weight
- plane
- output
- layer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000013528 artificial neural network Methods 0.000 claims abstract description 101
- 238000009825 accumulation Methods 0.000 claims abstract description 65
- 239000013598 vector Substances 0.000 claims description 109
- 230000015654 memory Effects 0.000 claims description 43
- 238000010586 diagram Methods 0.000 claims description 28
- 230000001186 cumulative effect Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 description 38
- 230000004044 response Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 238000012549 training Methods 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- -1 reg3 Proteins 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Abstract
提供一种识别图像的方法和设备。所述方法包括:获得输入图像;基于输入图像计算神经网络的输入特征图;针对神经网络内的至少一个层的每个层,获得所述层的输入特征图的多个输入平面之中的与第一输入通道对应的第一输入平面;接收所述层的权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及基于第一累积数据生成所述层的输出特征图的多个输出平面之中的与第一输出通道对应的第一输出平面;以及基于输出特征图,输出图像识别结果。
Description
本申请要求于2019年8月13日在韩国知识产权局提交的第10-2019-0098810号韩国专利申请和于2019年10月14日在韩国知识产权局提交的第10-2019-0127258号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
以下描述涉及识别图像的方法和设备。
背景技术
图像识别可通过神经网络来实现。诸如识别(例如,语音识别和话音识别)的处理的技术自动化已经通过作为专用计算架构的处理器实现的神经网络模型实现,该神经网络模型在大量训练之后可在输入模式与输出模式之间提供计算上直观的映射。产生这样的映射的训练能力可称为神经网络的学习能力。此外,由于专门的训练,这样的专门训练的神经网络因此可具有针对例如可能尚未针对其训练神经网络的输入模式生成相对准确的输出的泛化能力。
发明内容
提供本发明内容,以便以简化的形式介绍在下面的具体实施方式中进一步描述的构思的选择。本发明内容不意图确定要求权利的主题的关键特征或必要特征,也不意图用于帮助确定要求权利的主题的范围。
在一个总体方面,一种识别图像的方法包括:获得输入图像;基于输入图像计算神经网络的输入特征图,其中,输入特征图包括多个输入平面;针对神经网络内的至少一个层的每个层,获得所述层的输入特征图的多个输入平面之中的与多个输入通道中的第一输入通道对应的第一输入平面;接收所述层的权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及基于第一累积数据生成所述层的输出特征图的多个输出平面之中的与多个输出通道中的第一输出通道对应的第一输出平面;以及基于输出特征图,输出图像识别结果,其中,所述多个输入平面与所述多个输入通道一一对应,所述多个权重平面与所述多个输入通道一一对应,其中,所述多个输出平面与所述多个输出通道一一对应。
基于输入图像计算神经网络的输入特征图的步骤包括:神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数,其中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图,其中,神经网络的最后层基于前一层的输出特征图生成并输出图像识别结果。
在一个总体方面中,一种用于识别图像的设备包括:一个或多个处理器,被配置为:获得输入图像;基于输入图像计算神经网络的输入特征图,其中,输入特征图包括多个输入平面;针对神经网络内的至少一个层的每个层,获得所述层的输入特征图的多个输入平面之中的与多个输出通道中的第一输入通道对应的第一输入平面;接收所述层的权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及基于第一累积数据生成所述层的输出特征图的多个输出平面之中的与多个输出通道中的第一输出通道对应的第一输出平面;基于输出特征图,输出图像识别结果,其中,所述多个输入平面与所述多个输入通道一一对应,所述多个权重平面与所述多个输入通道一一对应,其中,所述多个输出平面与所述多个输出通道一一对应。
所述一个或多个处理器还可被配置为:通过神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数,其中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图,其中,神经网络的最后层基于前一层的输出特征图生成并输出图像识别结果。
在一个总体方面,一种识别图像的方法包括:获得输入图像;基于输入图像计算神经网络的输入特征图;针对神经网络内的至少一个层的每个层,获得所述层的输入特征图的包括多个输入元素的输入平面;接收与所述层的输入平面对应的权重平面,所述权重平面包括多个权重元素;以及通过累积通过执行所述权重平面中的每个权重元素与所述输入平面中的所述多个输入元素中的对应输入元素之间的乘法运算而获得的乘法结果来生成所述层的输出特征图的输出平面;以及基于输出特征图,输出图像识别结果。
在一个总体方面,一种识别图像的方法包括:获得输入图像;基于输入图像计算神经网络的输入特征图,其中,输入特征图包括多个输入平面;针对神经网络内的至少一个层的每个层,获得所述层的包括多个输入平面的输入特征图;接收所述层的包括多个权重平面的权重核;执行输入特征图与权重核之间的累积卷积运算;以及基于累积卷积运算生成输出平面;基于输出特征图,输出图像识别结果。
在一个总体方面,一种非暂时性计算机可读记录介质,在其上记录了用于在计算机上执行所述方法的程序。
在一个总体方面,一种处理器实现的数据处理方法包括:接收输入特征图的多个输入平面之中的与第一输入通道对应的第一输入平面;接收权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及基于第一累积数据生成输出特征图的多个输出平面之中的与第一输出通道对应的第一输出平面,其中,所述多个输入平面中的每个输入平面和所述多个权重平面中的每个权重平面分别对应于输入通道,其中,所述多个输出平面中的每个输出平面对应于输出通道。
生成第一输出平面的步骤可包括:基于包括第一累积数据的每个输入通道的累积数据的和来生成第一输出平面。
所述方法可包括:接收所述输入平面之中的与第二输入通道对应的第二输入平面;接收所述多个权重平面中之中的与第二输入通道对应的第二权重平面;以及通过累积第二输入平面中的第二输入元素的至少一部分与第二权重平面中的第二权重元素的至少一部分之间的乘法的乘法结果来生成第二累积数据。
生成第一输出平面的步骤可包括:基于第一累积数据和第二累积数据的和来生成第一输出平面。
生成第一累积数据的步骤可包括:从第一输入平面提取与第一权重元素的所述部分对应的第一输入元素向量;生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量与第一权重元素的所述部分之间的乘法运算的乘法结果;以及通过累积第一加权输入元素向量来生成第一累积数据。
提取第一输入元素向量的步骤可包括:基于第一权重元素的所述部分的索引来确定与第一输入元素向量对应的偏移;以及基于确定的偏移从第一输入平面提取第一输入元素向量。
第一输入元素向量的尺寸和第一加权输入元素向量的尺寸可对应于单指令多数据(SIMD)运算单元。
当生成第一累积数据时,可跳过将第一权重元素的所述部分之中的与零值对应的零权重元素与第一输入元素的所述部分相乘的运算。
所述方法还可包括:确定第一权重元素之中不与零对应的非零权重元素的数量;以及从多种操作类型中选择与确定的非零权重元素的数量对应的操作类型,以执行预设类型的操作。
生成第一累积数据的步骤可包括:通过基于选择的操作类型累积第一输入元素的所述部分和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果来生成第一累积数据。
生成第一累积数据的步骤可包括:基于非零权重元素的索引从第一输入平面提取与非零权重元素对应的第一输入元素向量;生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果;以及通过累积第一加权输入元素向量来生成第一累积数据。
所述方法还可包括:将所述权重平面中的每个权重平面的各自的权重元素单独地乘以第一输入平面的多个元素。
在一个总体方面中,一种数据处理设备包括:一个或多个处理器,被配置为:接收输入特征图的多个输入平面之中的与第一输入通道对应的第一输入平面;接收权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及基于第一累积数据生成输出特征图的分别对应于输出通道的多个输出平面之中的与第一输出通道对应的第一输出平面,其中,所述多个输入平面中的每个输入平面和所述多个权重平面中的每个权重平面分别对应于输入通道,其中,所述多个输出平面中的每个输出平面对应于输出通道。
所述处理器还可被配置为:基于包括第一累积数据的每个输入通道的累积数据的和来生成第一输出平面。
所述处理器还可被配置为:接收所述输入平面之中的与第二输入通道对应的第二输入平面;接收所述多个权重平面中之中的与第二输入通道对应的第二权重平面;以及通过累积第二输入平面中的第二输入元素的至少一部分与第二权重平面中的第二权重元素的至少一部分之间的乘法的乘法结果来生成第二累积数据。
所述处理器还可被配置为:基于第一累积数据和第二累积数据的和来生成第一输出平面。
所述处理器还可被配置为:从第一输入平面提取与第一权重元素的所述部分对应的第一输入元素向量;生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量与第一权重元素的所述部分之间的乘法运算的乘法结果;以及通过累积第一加权输入元素向量来生成第一累积数据。
所述处理器还可被配置为:基于第一权重元素的所述部分的索引来确定与第一输入元素向量对应的偏移;以及基于确定的偏移从第一输入平面提取第一输入元素向量。
第一输入元素向量的尺寸和第一加权输入元素向量的尺寸可对应于单指令多数据(SIMD)运算单元。
当生成第一累积数据时,可跳过将第一权重元素的所述部分之中的与零值对应的零权重元素与第一输入元素的所述部分相乘的运算。
所述处理器还可被配置为:确定第一权重元素之中不与零对应的非零权重元素的数量;以及从多种操作类型中选择与确定的非零权重元素的数量对应的操作类型,以执行预设类型的操作。
所述处理器还可被配置为:通过基于选择的操作类型累积第一输入元素的所述部分和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果来生成第一累积数据。
所述处理器还可被配置为:基于非零权重元素的索引从第一输入平面提取与非零权重元素对应的第一输入元素向量;生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果;以及通过累积第一加权输入元素向量来生成第一累积数据。
所述设备可包括存储指令的存储器,所述指令在由所述一个或多个处理器执行时,配置所述一个或多个处理器执行接收第一输入平面的步骤、接收第一权重平面的步骤、生成第一累积数据的步骤以及生成第一输出平面的步骤。
在一个总体方面,一种由电子设备的处理器执行的处理器实现的方法包括:接收神经网络的层的包括多个输入元素的输入平面;接收与所述层的输入平面对应的权重平面,所述权重平面包括多个权重元素;以及通过累积通过执行所述权重平面中的每个权重元素与所述输入平面中的所述输入元素中的对应输入元素之间的乘法运算而获得的乘法结果来生成输出平面。
当在所述权重元素之中存在与零值对应的零权重元素时,可跳过零权重元素和与零权重元素对应的输入元素之间的乘法。
可基于单指令多数据(SIMD)来执行与神经网络的所述层相关联的卷积运算。
所述输入平面和所述权重平面可对应于单个输入通道,并且所述输出平面可对应于单个输出通道。
所述输入平面是与所述层的输入特征图对应的多个输入平面中的一个,并且所述权重平面是与所述层的权重核对应的多个权重平面中的一个,其中,基于所述输出平面,以及基于所述多个输入平面中之中的除了所述输入平面之外的一个或多个其他输入平面和所述多个权重平面之中的除了所述权重平面之外的一个或多个其他权重平面生成的一个或多个输出平面来确定所述层的输出特征图。
在一个总体方面,一种处理器实现的方法包括:接收包括多个输入平面的输入特征图;接收包括多个权重平面的权重核;执行输入特征图与权重核之间的累积卷积运算;以及基于累积卷积运算生成输出平面。
所述方法还可包括:通过执行所述多个输入平面与所述多个权重平面之间的乘法累加(MAC)运算来生成累积平面。
可通过累积所述累积平面的输出来生成输出平面。
从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1示出根据一个或多个实施例的具有神经网络实现的用于图像识别的示例数据处理设备。
图2示出根据一个或多个实施例的用于图像识别的示例卷积运算。
图3示出示例滑动窗口卷积运算。
图4和图5分别示出根据一个或多个实施例的通过累积卷积运算的输出平面的示例生成。
图6和图7分别示出根据一个或多个实施例的用于累积卷积运算的输入平面与权重平面之间的示例乘法累加(MAC)运算。
图8至图10分别示出根据一个或多个实施例的使用单指令多数据(SIMD)处理的示例累积卷积运算。
图11示出根据一个或多个实施例的累积卷积运算的示例零跳过(zero-skipping)。
图12示出根据一个或多个实施例的使用预设操作类型执行零跳过的示例。
图13是示出根据一个或多个实施例的示例累积卷积运算的流程图。
图14是示出根据一个或多个实施例的具有神经网络实现的示例数据处理方法的流程图。
图15示出根据一个或多个实施例的具有神经网络实现的示例数据处理设备。
图16示出根据一个或多个实施例的示例电子设备。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供以下具体实施方式以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,这里描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,这里描述的操作顺序仅是示例,并且不限于这里阐述的操作顺序,而是除了必须以特定顺序发生的操作之外,操作顺序可如在理解本申请的公开之后清楚地那样改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
这里描述的特征可以以不同形式来实现,并且不被解释为限于这里描述的示例。相反,已提供这里描述的示例以仅示出实现这里描述的方法、设备和/或系统的许多可能的方式中的一些方式,所述许多可能的方式在理解本申请的公开之后将是清楚的。
如这里使用的,术语“和/或”包括相关联的所列项的任意一个或任意两个或更多个的任意组合。
贯穿说明书,当诸如层、区域或基底的元件被描述为“在”另一元件“上”、“连接到”或“结合到”另一元件时,所述元件可直接“在”所述另一元件“上”、直接“连接到”或直接“结合到”所述另一元件,或者可存在介于它们之间的一个或多个其他元件。相反,当元件被描述为“直接在”另一元件“上”、“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。如这里使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。
尽管诸如“第一”、“第二”和“第三”的术语可在此用于描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,这里描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
这里使用的术语仅用于描述各种示例,并不用于限制本公开。除非上下文此外清楚地指示,否则单数形式也意图包括复数形式。术语“包含”、“包括”和“具有”说明存在阐述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
除非此外定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义和基于理解本申请的公开之后通常理解的含义相同的含义。除非这里明确地如此定义,否则术语(诸如在通用词典中定义的术语)将被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且不以理想化或过于形式化的含义进行解释。
此外,在示例的描述中,当认为在理解本申请的公开之后由此已知的结构或功能的详细描述将导致对示例的模糊解释时,将省略这样的描述。
在下文中,将参照附图详细描述示例,并且在附图中,相同的参考标号始终表示相同的元件。
图1示出根据一个或多个实施例的具有神经网络实现的用于图像识别的示例数据处理设备。如在下文中描述的用于图像识别的数据处理设备可表示处理用于神经网络的图像数据的设备,并且在下文中将被简称为数据处理设备。参照图1,数据处理设备100可包括神经网络110。数据处理设备可处理与神经网络110相关联的一个或多个操作。作为非限制性示例,与神经网络110相关联的一个或多个操作可包括图像识别操作。这里,应注意,关于示例或实施例使用术语“可”(例如,关于示例或实施例可包括什么或可实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有的示例和实施例不限于此。
一个或多个操作可通过作为专用计算架构的处理器实现的神经网络模型来实现,该神经网络模型在大量训练之后可在输入数据或输入模式与输出数据或输出模式或者输入模式的模式识别之间提供计算上直观的映射。产生这样的映射或执行这样的模式识别的训练能力可称为神经网络的学习能力。这样的训练能力还可使得专用计算架构能够将这样的输入模式或输入模式的部分分类为属于一个或多个预定组的成员。此外,由于专门的训练,这样的专门训练的神经网络因此可具有针对例如可能尚未针对其训练神经网络的输入模式生成相对准确或可靠的输出的泛化能力。
在一个示例中,作为非限制性示例,神经网络110可以是深度神经网络(DNN)。DNN可包括多个层。例如,深度神经网络可包括被施加输入数据的输入层、用于输出基于训练和输入数据通过预测得到的结果的输出层、以及用于在输入层与输出层之间执行神经网络操作的多个隐藏层。
在一个示例中,输入层可对应于或可被称为神经网络的最低层,并且输出层可对应于或可被称为神经网络的最高层。可从作为最高层的输出层到作为最低层的输入层顺序地分配和命名或称呼层顺序。例如,第二隐藏层可对应于高于第一隐藏层和输入层但低于输出层的层。
根据用于处理信息的机器学习,DNN可包括一个或多个卷积层,并且还可包括全连接层、递归神经网络等中的一个或多个,或者可包括分别具有这样的全连接、卷积连接或递归连接的不同或重叠的神经网络部分。
如所指出的,神经网络110可通过基于深度学习方法(诸如,在卷积神经网络或递归神经网络中)映射处于非线性关系的输入数据和输出数据来执行一个或多个操作(例如,对象识别操作或用户验证操作)。作为非限制性示例,深度学习方法可表示用于从大数据集识别图像的机器学习方法。深度学习方法可被解释为在使用准备的训练数据训练神经网络110的同时定位能量或损失最小化的点的优化的问题解决过程。深度学习方法可被分类为有监督学习或无监督学习,通过有监督学习或无监督学习可获得与神经网络110的架构或模型对应的权重。通过这样获得的核的元素或权重,可根据神经网络110的训练目标来映射输入数据和输出数据。
神经网络110可以是包括包含输入层、至少一个隐藏层和输出层的多个层的深度神经网络(DNN)。例如,如图1中所示,第一层111、一个或多个第二层120和第n层130可以是多个层的至少一部分。作为示例,神经网络110可包括全连接网络、卷积神经网络(CNN)和递归神经网络(RNN)中的至少一个。例如,神经网络110中的多个层的至少一部分可对应于CNN,并且神经网络110中的多个层的另一部分可对应于全连接网络。具体地说,神经网络110可经由输入层接收待识别的输入图像作为输入数据,然后在各个层执行运算,最终经由输出层基于前一层的运算的结果输出作为输出数据的识别结果,例如,但不限于,从图像中识别出的对象的类别/标签、位置、所在区域等。
在CNN或CNN部分中,输入到每个层的数据可被称为输入特征图或输入体(volume),且从每个层输出的数据可称为输出特征图或输出体。来自先前层的输入特征图和当前层的输出特征图可被称为激活数据。此外,输入层中的输入特征图可对应于输入数据。
为了处理与神经网络110相关联的操作,数据处理设备100可针对每个卷积层执行输入特征图与权重核之间的卷积运算,并且基于卷积运算的结果生成输出特征图。权重核可具有与输入特征图的通道的数量对应的多个通道,并且还可存在多个权重核,导致生成多个通道的输出特征图。当神经网络110的宽度和深度足够大时,神经网络110可具有足以实现功能的容量。如上所讨论的,当神经网络110通过训练处理学习了足够大量的训练数据或者使用足够大量的训练数据进行训练时,神经网络110可实现最佳性能。
权重核可被预先确定(例如,权重核包括训练的权重元素,训练的权重元素指示其在神经网络110被启动(执行)之前被确定)。神经网络110的启动可指示神经网络110准备好进行推断。在一个示例中,神经网络110的启动可指示神经网络110被加载到存储器中,或者用于推断的输入数据在神经网络110被加载到存储器中之后被输入到神经网络110。推断是将训练的神经网络应用于输入以生成输出的处理。
如下面进一步描述的,可通过在输出特征图中累积卷积运算的中间结果来执行卷积运算,并且可不需要将权重核或输入特征图转换为适合于卷积的形式并将其存储在缓冲器中的缓冲操作。也就是说,卷积运算可使用以平面(planar)形式存储的输入特征图的数据。因此,卷积运算的效率可大大提高。此外,在卷积运算中,单位运算可对应于将对应于标量的一个权重元素与对应于矩阵的一个输入平面相乘。因此,对于具有零值的权重元素,可通过软件有效地处理零跳过。
图2是示出用于图像识别的示例卷积运算的示图。参照图2,可通过执行权重核210与输入特征图220之间的卷积运算来生成输出特征图230。在图2的示例中,权重核210、输入特征图220和输出特征图230的数据可以以平面形式存储在存储器中。在一个示例中,权重核210的权重核1至权重核D中的每个权重核可包括C个权重平面,输入特征图220可包括C个输入平面,并且输出特征图230可包括D个输出平面,其中,C和D是大于0的自然数。权重核210的C个权重平面和输入特征图220的C个输入平面可分别对应于输入通道,并且D个输出平面可分别对应于输出通道。在这个示例中,C对应于输入通道的数量,D对应于输出通道的数量。
每个权重平面和每个输出平面可包括预设位宽的元素。例如,每个权重平面可具有K×K的尺寸,并且每个输入平面和每个输出平面可具有W×H的尺寸,其中,W、K和H指示元素的相应数量。权重平面的元素也可被称为权重元素,并且输入平面的元素和输出平面的元素也可分别被称为输入元素和输出元素。在一个示例中,可逐元素地执行卷积运算。
在下文中,为了便于描述,可假设权重平面的宽度和高度与K相同,并且输入平面的尺寸和输出平面的尺寸与W×H相同。然而,根据一个示例,权重平面的宽度与高度以及输入平面的尺寸与输出平面的尺寸可彼此不同。
图3示出根据一个或多个实施例的滑动窗口卷积运算的示例。
参照图3,当权重核310滑动到输入特征图320中时,通过实施基于滑动窗口的卷积运算来执行卷积运算,从而生成输出特征图330。
这样的滑动窗口卷积运算通常可被实施以执行卷积运算,并且与这里描述的累积卷积运算不同。例如,在滑动窗口卷积运算中,可对输入特征图320执行缓冲操作以生成列向量。然而,在一个或多个示例中,这里的累积卷积运算可在输出特征图330中累积卷积运算的中间结果,因此可不需要执行诸如如在滑动窗口卷积运算中的缓冲操作的操作。
通过滑动窗口卷积运算,可在权重核310滑过输入特征图320的同时执行权重核310与存储在输入特征图320的非连续地址中的数据之间的运算,因此可将输入特征图320转换成合适形式的连续数据以增加处理运算的速度。在图3的示例中,滑动步长为1,并且可通过两行零元素向量将零填充应用于输入特征图320的水平方向和垂直方向中的每个。在这个示例中,与权重核310对应的K2×C个行向量被定义,并且输入特征图320被转换为K2×C个列向量。
列向量可从平面结构或交错结构(interleaved structure)的输入特征图320缓冲于列缓冲器中。在平面结构的示例中,当输入特征图320被缓冲为列向量时,非连续最大存储器存取可发生核的高度K与输入通道的数量C相乘的结果那么多,以确定一个输出元素。在交错结构的示例中,当输入特征图320被缓冲为列向量时,非连续最大存储器存取可发生核的高度K那么多,以确定一个输出元素。
相比之下,在一个或多个示例中,通过这里所讨论的累积卷积运算,卷积运算的中间结果可累积在输出特征图330中,因此可不需要这样的额外缓冲操作来将输入特征图320转换为这样的平面结构或交错结构。因此,累积卷积运算可最小化存储器存取并且最大化处理卷积运算的速度。
图4和图5分别示出根据一个或多个实施例的通过累积卷积运算生成输出平面的示例。
如先前所讨论的,在一个示例中,输出特征图可包括D个输出平面。图4和图5分别示出生成D个输出平面中的一个输出平面的处理。可针对D个输出平面中的每个重复图4和图5中示出的处理,并且可生成输出特征图。
参照图4,可通过实施输入特征图410与权重核420之间的卷积运算来生成输出平面430。在一个示例中,权重核420可以是D个权重核之中的第d个权重核,并且输出平面430可以是D个输出平面之中的第d个输出平面。例如,输入特征图410可包括如图5中所示的一个或多个输入平面510,权重核420可包括如图5中所示的一个或多个权重平面520。此外,输出平面430可对应于如图5中所示的输出平面540。
参照图5,作为非限制性示例,输入平面510可包括输入平面511、512和513。输入平面510的数量对应于输入通道的数量C。在图5的示例中,输入通道的数量C是三。然而,为了便于描述,数量三被提供为示例,因此如与输入通道的数量C对应,输入平面的数量可小于3或大于3。作为非限制性示例,权重平面520可包括权重平面521、522和523,并且作为非限制性示例,累积平面530可包括累积平面531、532和533。
可通过输入平面511与权重平面521之间的乘法累加(MAC)运算来生成累积平面531。通过输入平面512与权重平面522之间的MAC运算生成累积平面532。可通过输入平面513与权重平面523之间的MAC运算生成累积平面533。在下文中将更详细地描述MAC运算。当生成累积平面530时,基于累积平面530生成输出平面540。例如,可通过累积平面530的和来生成输出平面540。
图6和图7分别示出根据一个或多个实施例的用于累积卷积运算的输入平面与权重平面之间的示例MAC运算。
参照图6,可基于输入平面610中的每个输入元素与权重平面620中的每个权重元素之间的MAC运算来生成累积平面630。作为非限制性示例,权重平面620可包括权重元素w1至w9。虽然为了便于描述,权重平面620被示出为具有3×3的尺寸,但是权重平面620的尺寸不限于示出的示例,并且权重平面620可具有各种其他尺寸。虽然没有在图6中示出,但是输入平面610和累积平面630中的每个可包括多个元素,并且可执行逐元素卷积运算。
参照图7,输入平面711可对应于图6的输入平面610,图7的权重平面的权重元素w1至w9可对应于图6的权重平面620的权重元素w1至w9,并且累积平面740可对应于图6的累积平面630。可通过基于滑动步长对输入平面711执行零填充来生成输入平面712。例如,当输入平面711的尺寸是W×H并且滑动步长是1时,输入平面712可具有(W+2)×(H+2)的尺寸。
考虑在包括权重元素w1至w9的权重平面与输入平面712之间的滑动窗口方法,在一个或多个示例中,可定义输入平面712中的分别响应于权重元素w1至w9的响应区域721至729。例如,响应区域721中的输入元素响应权重元素w1,响应区域722中的输入元素响应权重元素w2,并且响应区域729中的输入元素响应权重元素w9。
响应区域721至729的尺寸与输入平面711的尺寸相同。此外,响应区域721至729的各自的偏移基于权重元素w1至w9的相应索引来确定。例如,当输入平面711的宽度为W+2时,响应区域721至729的偏移被定义为(W+2)×a+b,其中,“a”表示通过将(i-1)除以K获得的商,并且“b”表示通过将(i-1)除以K获得的余数,i表示权重元素的索引,K表示权重核的宽度。在这个示例中,可基于输入平面(例如,应用了填充的输入平面的原点)来确定偏移。因此,响应区域721的偏移为0,响应区域722的偏移为1,响应区域729的偏移为(W+2)×2+2。
从响应区域721至729中的输入元素与权重元素w1至w9之间的各自的相乘生成乘法结果731至739。通过累积乘法结果731至739中的每个来生成累积平面740。在一个示例中,可通过C个累积平面的和来生成输出平面。在这个示例中,图7的累积平面740对应于C个累积平面中的一个。针对C个累积平面中的每个重复以上参照图7描述的处理,并且生成输出平面。乘法结果731至739中的元素中的每个也可被称为乘法结果元素。此外,在输出特征图包括D个输出平面的示例中,可通过以这样的累积方式生成的D个输出平面来确定输出特征图。
如上所述,可通过累积与卷积运算的中间结果对应的乘法结果(例如,乘法结果731至739)来生成输出特征图。因此,可不需要将输入特征图转换为连续数据并将连续数据存储在缓冲器中的操作。因此,可减少用于这种转换和缓冲的时间量,并且加速卷积运算的运算速度,并且节省用于存储转换后的数据的存储器空间。
图8至图10分别示出根据一个或多个实施例的使用单指令多数据(SIMD)处理的累积卷积运算的示例。SIMD可表示使用单个指令处理多个数据的处理器的运算处理方法。如将在下文中所描述的,根据一个或多个实施例的累积卷积运算可通过SIMD来执行。
参照图8,权重平面810滑动到输入平面820的滑动区域821中,MAC运算在它们之间被执行,并且累积平面830的累积区域831被确定。类似地,权重平面810滑动到输入平面820的滑动区域822中,MAC运算在它们之间被执行,并且累积平面830的累积区域832被确定。此外,权重平面810滑动到输入平面820的滑动区域823中,MAC运算在它们之间被执行,并且累积平面830的累积区域833被确定。滑动区域821至823的高度可对应于权重平面810的高度,并且累积区域831至833的高度可对应于单个元素。通过以上描述的这样的处理,可建立滑动区域与累积区域之间的关系。
参照图9,输入平面900中的滑动区域910可包括权重元素w1至w9的响应区域911至919。响应区域911至919的各自的偏移基于权重元素w1至w9的各自的索引来确定。例如,如图9中所示,响应区域911至919的偏移被定义为(W+2)×a+b。在这个示例中,响应区域911至919的偏移分别为0、1、2、(W+2)、(W+2)+1、(W+2)+2、(W+2)×2、(W+2)×2+1和(W+2)×2+2。可基于滑动区域(例如,每个滑动区域的原点)来确定偏移。
输入元素向量从响应区域911至919提取,并存储在寄存器r1至r9中。例如,响应区域911的第一输入元素向量存储在寄存器r1中,响应区域912的第二输入元素向量存储在寄存器r2中。类似地,输入元素向量按顺序分别存储在寄存器r1至r9中。
输入元素向量中的每个可按元素与权重元素w1至w9之中的对应的权重元素相乘,从而生成加权输入元素向量。在一个示例中,响应区域911的第一输入元素向量存储在寄存器r1中并且与权重元素w1相乘,从而生成第一加权输入元素向量。类似地,响应区域912的第二输入元素向量存储在寄存器r2中并且与权重元素w2相乘,从而生成第二加权输入元素向量。响应区域911至919、输入元素向量和加权输入元素向量的尺寸可对应于SIMD运算单元。
可累积通过以上描述的这样的处理生成的加权输入元素向量,并且可生成与滑动区域910对应的累积向量。可针对每个滑动区域重复该处理,并且可生成分别对应于滑动区域的累积向量。生成的累积向量可形成累积平面。这里,累积平面和累积向量可表示不同形式的累积数据,并且可被统称为累积数据。
参照图10,先前存储的累积向量(在下文中被称为,第一累积向量)从输出平面1010中的输出区域1011加载,然后存储在寄存器r10中。当通过寄存器r1至r9生成新的累积向量(在下文中被称为,第二累积向量)时,第一累积向量和第二累积向量被累积在寄存器r10中并且被存储在输出区域1011中。
在图10的示例中,至少执行一次将累积向量存储在输出区域1011中的处理。在一个示例中,通过与第一输入通道对应的第一权重平面和第一输入平面之间的MAC运算来生成第一累积向量,并且将第一累积向量存储在输出区域1011中。随后,可通过与第二输入通道对应的第二权重平面和第二输入平面之间的MAC运算来生成第二累积向量。生成的第一累积向量和第二累积向量被累积并存储在输出区域1011中。然而,当初始值被存储在输出区域1011中时,即,当初始生成累积向量时,可省略从输出区域1011加载累积向量的操作,并且新生成的累积向量可存储在输出区域1011中而不进行累积操作。
当基于输入通道的数量将累积向量重复地存储在输出区域1011中时(例如,累积的数量比输入通道的数量少1),确定与输出区域1011对应的输出元素向量。此外,对输出平面1010中的剩余输出区域执行针对输出区域1011的这样的处理,然后可确定输出平面1010。因此,累积卷积运算可通过SIMD来实现。
图11示出根据一个或多个实施例的累积卷积运算的零跳过的示例。
在一个示例中,可针对作为单位的每个输入平面或者针对作为单位的输入平面中的每个响应区域执行卷积运算,因此可通过软件或者软件和硬件的组合来有效地处理零跳过。
参照图11,从响应区域1121至1123中的输入元素与权重元素w1至w9之间的各自的相乘生成乘法结果1141至1143。
参照图11中所示的示例,权重元素w3至w5、w8和w9是零(0)。与零对应的权重元素被称为零权重元素,并且不与零对应的权重元素被称为非零权重元素。在这个示例中,诸如从零权重元素生成的乘法结果1143的乘法结果可不影响累积平面或输出平面的数据,因此可跳过用于获得这样的乘法结果的操作。
图12示出根据一个或多个实施例的基于预设操作类型执行零跳过的示例。
参照图12,在操作1210中,执行零编码。通过零编码,确定包括在权重元素之中的非零权重元素的数量。在图12的示例中,作为零编码的结果,可将非零权重元素的数量确定为四。
在操作1220中,可从多个操作类型中选择与确定的非零权重元素的数量对应的操作类型,并且将与非零权重元素对应的数据加载到寄存器中。在图12的示例中,可选择与四个非零权重元素对应的操作类型4。操作类型可指示基于非零权重元素的数量分别预设的各个类型的操作。例如,对于权重元素中不存在非零权重元素的示例,可设置对应的操作类型,对于所有权重元素为非零权重元素的示例,可设置对应的操作类型。当操作类型的序号被定义为N并且权重元素的数量被定义为K×K时,N可以是K×K+1(N=K×K+1)。在图12的示例中,K=3,并且N=10。操作的类型可表示与MAC运算是使用零权重元素还是非零权重元素来执行有关的操作。在一个示例中,基于零权重元素的数量或非零权重元素的数量来确定操作的类型。
将被加载到寄存器的数据可对应于输入平面的至少一部分。例如,与非零权重元素对应的输入元素向量可被加载到寄存器。可基于非零权重元素的索引来确定与输入元素向量对应的偏移,并且输入元素向量可基于确定的偏移从输入平面被提取并被存储在寄存器中。在图12的示例中,基于与非零权重元素对应的w1、w2、w6和w7来确定偏移0、1、(W+2)+2和(W+2)×2,并且将与确定的偏移对应的输入元素向量加载到寄存器reg1、reg2、reg3和reg4。
预设类型的操作可包括执行非零权重元素与加载到寄存器的数据之间的MAC运算并生成累积数据的类型的操作。可基于非零权重元素的数量和偏移将数据加载到寄存器。例如,可执行非零权重元素与存储在寄存器中的输入元素向量之间的MAC运算。在图12的示例中,生成非零权重元素w1、w2、w6和w7与存储在寄存器reg1、reg2、reg3和reg4中的输入元素向量之间的相乘的乘法结果所对应的加权输入元素向量,并且累积生成的加权输入元素向量以生成累积数据。
在操作1230中,可执行与每个操作类型对应的源代码。在一个示例中,仅作为示例,与操作类型0至操作类型9中的每个对应的源代码可存储在存储器代码区中,并且与选择的操作类型对应的源代码可从存储器代码区加载并执行。在图12的示例中,与操作类型4对应的源代码被执行。这样的源代码可较少地占用存储器空间,因此源代码的使用可能不会极大地降低存储器效率。
图13是示出根据一个或多个实施例的累积卷积运算的示例的流程图。图13中的操作可以以如所示的顺序和方式执行,但是在不脱离所描述的说明性示例的精神和范围的情况下,可改变一些操作的顺序或者省略一些操作。图13中所示的许多操作可并行地或同时地执行。图13的一个或多个框以及框的组合可通过执行指定功能的基于专用硬件的计算机或者专用硬件和计算机指令的组合来实现。除了下面图13的描述之外,图1至图12的描述也适用于图13,并且通过引用包含于此。因此,这里可不重复以上描述。
参照图13,在操作1301中,获得权重核wd。在一个示例中,“d”可表示输出通道的索引,并且可以是具有初始值1的自然数(例如,1至D)。各个权重核可分别对应于各个输出通道。例如,权重核w1可对应于第一输出通道,权重核w2可对应于第二输出通道。
在操作1302中,获得输入平面ic。在操作1303中,获得权重平面在一个示例中,“c”表示输入通道的索引,并且可以是具有初始值1的自然数(例如,1至C)。输入平面和权重平面可分别对应于输入通道。在一个示例中,输入平面i1和权重平面对应于第一输入通道,输入平面i2和权重平面对应于第二输入通道。
在操作1306中,执行MAC运算。在一个示例中,通过累积输入平面ic中的输入元素的至少一部分与权重平面中的权重元素的至少一部分之间的相乘的乘法结果来生成累积数据。在这个示例中,从输入平面ic提取与权重元素的至少一部分对应的输入元素向量,生成提取的输入元素向量与权重元素的至少一部分之间的相乘的乘法结果所对应的加权输入元素向量,然后通过累积加权输入元素向量来生成累积数据。在这个示例中,可基于权重元素的至少一部分的索引来确定与输入元素向量对应的偏移,并且基于确定的偏移从输入平面ic提取输入元素向量。
在操作1304和1305中,执行零跳过。具体地,在操作1304中,执行零编码。在操作1305中,选择操作类型。当通过零编码确定了非零权重元素的数量时,选择与确定的非零权重元素的数量对应的操作类型,并且将与非零权重元素对应的输入元素加载到寄存器。例如,与非零权重元素对应的输入元素向量被加载到寄存器。
当选择了操作类型时,可执行基于预设的操作类型的操作。例如,操作可包括将非零权重元素与寄存器中的输入元素向量或输入元素相乘,并且通过累积相乘的结果来生成累积数据(例如,累积向量)。因此,当生成累积数据时,可跳过将零权重元素与输入元素相乘的操作。
在操作1307中,累积输出。例如,可累积与MAC运算的输出对应的累积数据。例如,当执行针对作为1的c(c=1)的第一重复时,获得输入平面i1并且获得权重平面并且通过累积获得的输入平面i1中的第一输入元素的至少一部分与获得的权重平面中的第一权重元素的至少一部分之间的相乘的乘法结果来生成第一累积数据。当执行针对作为2的c(c=2)的第二重复时,获得输入平面i2和权重平面并且通过累积获得的输入平面i2中的第二输入元素的至少一部分与获得的权重平面中的第二权元素的至少一部分之间的相乘的乘法结果来生成第二累积数据。在这个示例中,累积生成的第一累积数据和第二累积数据。当执行针对作为C(c=C)的c的第C重复时,基于每个输入通道的累积数据的和来生成输出平面。
在操作1308中,将c和C进行比较。当c和C不同时(例如,当c小于C时),在操作1309中将c增加1,并且执行操作1302。当c等于C时,在操作1309中将d和D进行比较。当d和D不同时(例如,当d小于D时),在操作1311中将d增加1,并且执行操作1301。可在通过操作1308和1309设置或固定输出通道的同时对所有输入通道执行卷积,并且可通过操作1310和1311改变输出通道来对所有输出通道执行卷积运算。
图14是示出根据一个或多个实施例的用于神经网络的数据处理方法的示例的流程图。图14中的操作可以以如所示的顺序和方式执行,但是在不脱离描述的说明性示例的精神和范围的情况下,可改变一些操作的顺序或者省略一些操作。图14中所示的许多操作可并行地或同时地执行。图14的一个或多个框以及框的组合可由执行指定功能的基于专用硬件的计算机或者专用硬件和计算机指令的组合来实现。除了下面图14的描述之外,图1至图13的描述也适用于图14,并且通过引用包含于此。因此,这里可不重复上述描述。
参照图14,在操作1410中,处理设备获得输入特征图的分别与输入通道对应的输入平面之中的与第一输入通道对应的第一输入平面。在操作1420中,处理设备获得权重核的分别与输入通道对应的权重平面之中的与第一输入通道对应的第一权重平面。在操作1430中,处理设备通过累积获得的第一输入平面中的第一输入元素的至少一部分与获得的第一权重平面中的第一权重元素的至少一部分之间的相乘的乘法结果,来生成第一累积数据。在操作1440中,处理设备基于生成的第一累积数据,生成输出特征图的分别与输出通道对应的输出平面之中的与第一输出通道对应的第一输出平面。对于具有神经网络实现的数据处理方法的更详细描述,可参照以上已经参照图1至图13描述的内容。
图15是示出根据一个或多个实施例的用于图像识别的数据处理设备的示例的示图。
数据处理设备1500可接收输入图像作为输入数据,并且处理与接收的输入图像相关联的神经网络的操作。作为非限制性示例,神经网络的操作可包括作为示例的图像识别操作。数据处理设备1500可执行这里描述的关于由神经网络处理的操作或方法中的一个或多个,并且向用户提供由神经网络处理的结果(例如,图像识别结果)。数据处理设备1500可在处理神经网络的操作的同时执行如上所述的累积卷积运算。
参照图15,数据处理设备1500可包括一个或多个处理器1510以及一个或多个存储器1520。在示例中,“处理器”可表示一个或多个处理器,并且“存储器”可表示一个或多个存储器。存储器1520可连接到处理器1510,并且存储可由处理器1510执行的指令,以及将由处理器1510处理的数据或已被处理器1510处理的数据。存储器1520可包括非暂时性计算机可读介质(例如,高速随机存取存储器(RAM))和/或非易失性计算机可读存储介质(例如,至少一个盘存储装置、闪存装置和其他非易失性固态存储器装置)。
处理器1510可执行指令以执行以上参照图1至图14描述的操作或方法中的一个或多个。例如,当存储在存储器1520中的指令被处理器1510执行时,处理器1510可获得输入特征图的分别与输入通道对应的输入平面之中的与第一输入通道对应的第一输入平面,获得权重核的分别与输入通道对应的权重平面之中的与第一输入通道对应的第一权重平面,通过累积获得的第一输入平面中的第一输入元素的至少一部分与获得的第一权重平面中的第一权重元素的至少一部分相乘的乘法结果来生成第一累积数据,并且基于生成的累积数据来生成输出特征图的分别与输出通道对应的输出平面之中的与第一输出通道对应的第一输出平面。在一个示例中,数据处理设备1500还可将指令存储在例如存储器1520中,所述指令在由处理器1510执行时配置处理器1510实现这里所述的操作中的这样的一个或多个或任何组合。
图16是示出根据一个或多个实施例的电子设备的示例的图。
电子设备1600可接收输入图像作为输入数据,并且处理与接收的输入图像相关联的神经网络的操作。作为非限制性示例,神经网络的操作可包括图像识别操作作为示例。电子设备1600可在处理神经网络的操作的同时执行如上所述的累积卷积运算。电子设备1600可包括以上参照图1至图15描述的处理设备,并且执行如以上参照图1至图15描述的处理设备的操作。
参照图16,电子设备1600可包括一个或多个处理器1610、一个或多个存储器1620、相机1630、存储装置1640、输入装置1650、输出装置1660和网络接口1670。处理器1610、存储器1620、相机1630、存储装置1640、输入装置1650、输出装置1660和网络接口1670可通过通信总线1680彼此通信。
一个或多个处理器1610可执行电子设备1600中的功能和指令。例如,处理器1610可处理存储在存储器1620或存储装置1640中的指令。处理器1610可执行以上参照图1至图15描述的操作或方法中的一个或多个。
存储器1620可存储将用于处理神经网络的操作的信息。存储器1620可包括计算机可读存储介质或计算机可读存储装置。存储器1620可存储将由处理器1610执行的指令,并且在软件或应用正由电子设备1600执行时存储相关信息。
相机1630可捕获静止图像、运动图像或视频图像或者两种图像。相机1630可捕获将由用户输入的面部区域的图像以用于面部验证或识别。相机1630还可提供包括对象的深度信息的三维(3D)图像。
存储装置1640可包括计算机可读存储介质或计算机可读存储装置。与存储器1620相比,存储装置1640可在更长的时间段内存储更大量的信息。存储装置1640可包括例如磁性硬盘、光盘、闪存、软盘以及相关技术领域中公知的其他类型的非易失性存储器。
输入装置1650可通过传统输入方法(作为非限制性示例,包括键盘和鼠标)和新输入方法(例如,触摸输入、语音输入和图像输入)从用户接收输入。输入装置1650可包括例如键盘、鼠标、触摸屏、麦克风和可检测来自用户的输入并将检测到的输入发送到电子设备1600的其他装置。
输出装置1660可通过视觉、听觉或触觉通道向用户提供电子设备1600的输出。输出装置1660可包括例如显示器、触摸屏、扬声器、振动发生器和可向用户提供输出的其他装置。网络接口1670可通过有线网络或无线网络与外部装置通信。
这里针对图1至图16描述的神经网络设备、数据处理设备、电子设备、数据处理设备100、处理器1510、存储器1520、处理器1610、存储器1620、相机1630、存储装置1640、输入装置1650、输出装置1660、网络接口1670和其他装置和其他组件被实现为硬件组件,并且由硬件组件实现。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可用于本申请中描述的示例的描述,但是在其他的示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或两者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,一个或多个其他硬件组件可通过一个或多个其他处理器,或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图16中示出的执行本申请中描述的操作的方法由计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被如上所述地那样实现为执行指令或软件,以执行在本申请中描述的由该方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可(例如,作为处理器实现的方法的各自的操作)通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或者计算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或者计算机直接执行的机器代码(诸如,由编译器生成的机器代码)。在另一个示例中,指令或软件包括由一个或多个处理器或者计算机使用解释器执行的高级代码。可基于附图中所示的框图和流程图以及说明书中的对应描述,使用任何编程语言编写指令或软件,附图中所示的框图和流程图以及说明书中的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、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、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、卡式存储器(诸如多媒体卡或微型卡(例如,安全数字(SD)或极速数字(XD))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将所述指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机使得一个或多个处理器或计算机能执行指令的任何其他装置。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令或软件以及任何相关联的数据、数据文件和数据结构以分布式方式被一个或多个处理器或计算机存储、访问和执行。
尽管本公开包括特定示例,但是本领域普通技术人员将清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。这里描述的示例仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。因此,本公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有变化应被解释为包括在本公开中。
Claims (37)
1.一种识别图像的方法,包括:
获得输入图像;
基于输入图像计算神经网络的输入特征图;
针对神经网络内的至少一个层的每个层,
获得所述层的输入特征图的多个输入平面之中的与多个输入通道中的第一输入通道对应的第一输入平面;
接收所述层的权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;
通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及
基于第一累积数据生成所述层的输出特征图的多个输出平面之中的与多个输出通道中的第一输出通道对应的第一输出平面;以及
基于输出特征图,输出图像识别结果,
其中,所述多个输入平面与所述多个输入通道一一对应,所述多个权重平面与所述多个输入通道一一对应,并且
其中,所述多个输出平面与所述多个输出通道一一对应。
2.根据权利要求1所述的方法,其中,基于输入图像计算神经网络的输入特征图的步骤包括:神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数,
其中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图,
其中,神经网络的最后层基于前一层的输出特征图生成并输出图像识别结果。
3.根据权利要求1所述的方法,其中,
生成第一输出平面的步骤包括:
基于包括第一累积数据的每个输入通道的累积数据的和来生成第一输出平面。
4.根据权利要求1所述的方法,还包括:
获得所述多个输入平面之中的与所述多个输入通道中的第二输入通道对应的第二输入平面;
接收所述多个权重平面中之中的与第二输入通道对应的第二权重平面;以及
通过累积第二输入平面中的第二输入元素的至少一部分与第二权重平面中的第二权重元素的至少一部分之间的乘法运算的乘法结果来生成第二累积数据。
5.根据权利要求4所述的方法,其中,生成第一输出平面的步骤包括:
基于第一累积数据和第二累积数据的和来生成第一输出平面。
6.根据权利要求1所述的方法,其中,生成第一累积数据的步骤包括:
从第一输入平面提取与第一权重元素的所述部分对应的第一输入元素向量;
生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量与第一权重元素的所述部分之间的乘法运算的乘法结果;以及
通过累积第一加权输入元素向量来生成第一累积数据。
7.根据权利要求6所述的方法,其中,提取第一输入元素向量的步骤包括:
基于第一权重元素的所述部分的索引来确定与第一输入元素向量对应的偏移;以及
基于确定的偏移从第一输入平面提取第一输入元素向量。
8.根据权利要求6所述的方法,其中,第一输入元素向量的尺寸和第一加权输入元素向量的尺寸对应于单指令多数据运算单元。
9.根据权利要求1所述的方法,其中,当生成第一累积数据时,跳过将第一权重元素的所述部分之中的与零值对应的零权重元素与第一输入元素的所述部分相乘的运算。
10.根据权利要求1所述的方法,还包括:
确定第一权重元素之中不与零对应的非零权重元素的数量;以及
从多种操作类型中选择与确定的非零权重元素的数量对应的操作类型,以执行预设类型的操作。
11.根据权利要求10所述的方法,其中,生成第一累积数据的步骤包括:
通过基于选择的操作类型累积第一输入元素的所述部分和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果来生成第一累积数据。
12.根据权利要求10所述的方法,其中,生成第一累积数据的步骤包括:
基于非零权重元素的索引从第一输入平面提取与非零权重元素对应的第一输入元素向量;
生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果;以及
通过累积第一加权输入元素向量来生成第一累积数据。
13.根据权利要求1所述的方法,还包括:将所述多个权重平面中的每个权重平面的各自的权重元素单独地乘以第一输入平面的多个元素。
14.一种识别图像的设备,包括:
一个或多个处理器,被配置为:
获得输入图像;
基于输入图像计算神经网络的输入特征图;
针对神经网络内的至少一个层的每个层,
获得所述层的输入特征图的多个输入平面之中的与多个输出通道中的第一输入通道对应的第一输入平面;
接收所述层的权重核的多个权重平面之中的与第一输入通道对应的第一权重平面;
通过累积第一输入平面中的第一输入元素的至少一部分与第一权重平面中的第一权重元素的至少一部分之间的乘法运算的乘法结果来生成第一累积数据;以及
基于第一累积数据生成所述层的输出特征图的多个输出平面之中的与多个输出通道中的第一输出通道对应的第一输出平面;以及
基于输出特征图,输出图像识别结果,
其中,所述多个输入平面与所述多个输入通道一一对应,所述多个权重平面与所述多个输入通道一一对应,并且
其中,所述多个输出平面与所述多个输出通道一一对应。
15.根据权利要求14所述的设备,其中,为了基于输入图像计算神经网络的输入特征图,所述一个或多个处理器还被配置为:通过神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数,
其中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图,
其中,神经网络的最后层基于前一层的输出特征图生成并输出图像识别结果。
16.根据权利要求14所述的设备,其中,所述一个或多个处理器还被配置为:
基于包括第一累积数据的每个输入通道的累积数据的和来生成第一输出平面。
17.根据权利要求14所述的设备,其中,所述一个或多个处理器还被配置为:
获得所述多个输入平面之中的与所述多个输入通道中的第二输入通道对应的第二输入平面;
接收所述多个权重平面中之中的与第二输入通道对应的第二权重平面;以及
通过累积第二输入平面中的第二输入元素的至少一部分与第二权重平面中的第二权重元素的至少一部分之间的乘法运算的乘法结果来生成第二累积数据。
18.根据权利要求17所述的设备,其中,所述一个或多个处理器还被配置为:
基于第一累积数据和第二累积数据的和来生成第一输出平面。
19.根据权利要求14所述的设备,其中,所述一个或多个处理器还被配置为:
从第一输入平面提取与第一权重元素的所述部分对应的第一输入元素向量;
生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量与第一权重元素的所述部分之间的乘法运算的乘法结果;以及
通过累积第一加权输入元素向量来生成第一累积数据。
20.根据权利要求19所述的设备,其中,所述一个或多个处理器还被配置为:
基于第一权重元素的所述部分的索引来确定与第一输入元素向量对应的偏移;以及
基于确定的偏移从第一输入平面提取第一输入元素向量。
21.根据权利要求19所述的设备,其中,第一输入元素向量的尺寸和第一加权输入元素向量的尺寸对应于单指令多数据运算单元。
22.根据权利要求14所述的设备,其中,当生成第一累积数据时,跳过将第一权重元素的所述部分之中的与零值对应的零权重元素与第一输入元素的所述部分相乘的运算。
23.根据权利要求14所述的设备,其中,所述一个或多个处理器还被配置为:
确定第一权重元素之中不与零对应的非零权重元素的数量;以及
从多种操作类型中选择与确定的非零权重元素的数量对应的操作类型,以执行预设类型的操作。
24.根据权利要求23所述的设备,其中,所述一个或多个处理器还被配置为:
通过基于选择的操作类型累积第一输入元素的所述部分和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果来生成第一累积数据。
25.根据权利要求23所述的设备,其中,所述一个或多个处理器还被配置为:
基于非零权重元素的索引从第一输入平面提取与非零权重元素对应的第一输入元素向量;
生成第一加权输入元素向量,第一加权输入元素向量对应于第一输入元素向量和与第一权重元素的所述部分对应的非零权重元素之间的乘法运算的乘法结果;以及
通过累积第一加权输入元素向量来生成第一累积数据。
26.根据权利要求14所述的设备,还包括存储指令的存储器,所述指令在由所述一个或多个处理器执行时,配置所述一个或多个处理器执行接收第一输入平面的步骤、接收第一权重平面的步骤、生成第一累积数据的步骤以及生成第一输出平面的步骤。
27.一种识别图像的方法,所述方法包括:
获得输入图像;
基于输入图像计算神经网络的输入特征图;
针对神经网络内的至少一个层的每个层,
获得所述层的输入特征图的包括多个输入元素的输入平面;
接收与所述层的输入平面对应的权重平面,所述权重平面包括多个权重元素;以及
通过累积通过执行所述权重平面中的每个权重元素与所述输入平面中的所述多个输入元素中的对应输入元素之间的乘法运算而获得的乘法结果来生成所述层的输出特征图的输出平面;以及
基于输出特征图,输出图像识别结果。
28.根据权利要求27所述的方法,其中,基于输入图像计算神经网络的输入特征图的步骤包括:神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数,
其中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图,
其中,神经网络的最后层基于前一层的输出特征图生成并输出图像识别结果。
29.根据权利要求27所述的方法,其中,当在所述多个权重元素之中存在与零值对应的零权重元素时,跳过零权重元素和与零权重元素对应的输入元素之间的乘法。
30.根据权利要求27所述的方法,其中,基于单指令多数据来执行与神经网络的所述层相关联的卷积运算。
31.根据权利要求27所述的方法,其中,所述输入平面对应于单个输入通道,所述权重平面对应于单个输入通道,并且
输出平面对应于单个输出通道。
32.根据权利要求27所述的方法,其中,所述输入平面是与所述层的输入特征图对应的多个输入平面中的一个,并且
所述权重平面是与所述层的权重核对应的多个权重平面中的一个,并且
其中,基于所述输出平面,以及基于所述多个输入平面中之中的除了所述输入平面之外的一个或多个其他输入平面和所述多个权重平面之中的除了所述权重平面的之外一个或多个其他权重平面生成的一个或多个其他输出平面,来确定所述层的输出特征图。
33.一种识别图像的方法,包括:
获得输入图像;
基于输入图像计算神经网络的输入特征图;
针对神经网络内的至少一个层的每个层,
获得所述层的包括多个输入平面的输入特征图;
接收所述层的包括多个权重平面的权重核;
执行输入特征图与权重核之间的累积卷积运算;以及
基于累积卷积运算生成所述层的输出特征图的输出平面;以及基于输出特征图,输出图像识别结果。
34.根据权利要求33所述的方法,其中,基于输入图像计算神经网络的输入特征图的步骤包括:神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数,
其中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图,
其中,神经网络的最后层基于前一层的输出特征图生成并输出图像识别结果。
35.根据权利要求33所述的方法,还包括:通过执行所述多个输入平面与所述多个权重平面之间的乘法累加运算来生成累积平面。
36.根据权利要求33所述的方法,其中,通过累积所述累积平面的输出来生成输出平面。
37.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使得处理器执行如权利要求1至权利要求13、权利要求27至权利要求36中的任意一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0098810 | 2019-08-13 | ||
KR20190098810 | 2019-08-13 | ||
KR1020190127258A KR20210019917A (ko) | 2019-08-13 | 2019-10-14 | 뉴럴 네트워크를 위한 데이터 처리 방법 및 장치 |
KR10-2019-0127258 | 2019-10-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112396085A true CN112396085A (zh) | 2021-02-23 |
Family
ID=71783857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010534666.0A Pending CN112396085A (zh) | 2019-08-13 | 2020-06-12 | 识别图像的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210049474A1 (zh) |
EP (1) | EP3789928A3 (zh) |
JP (1) | JP7114659B2 (zh) |
CN (1) | CN112396085A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220114209A (ko) * | 2021-02-08 | 2022-08-17 | 삼성전자주식회사 | 연사 영상 기반의 영상 복원 방법 및 장치 |
US11941111B2 (en) * | 2021-07-31 | 2024-03-26 | International Business Machines Corporation | Exploiting fine-grained structured weight sparsity in systolic arrays |
KR20230064137A (ko) | 2021-11-03 | 2023-05-10 | 삼성전자주식회사 | 터치 센서에 대한 노이즈를 예측하는 디스플레이 장치 및 컴퓨팅 시스템 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070112707A1 (en) * | 2005-10-27 | 2007-05-17 | Computer Associates Think, Inc. | Weighted pattern learning for neural networks |
CN107729996A (zh) * | 2016-08-11 | 2018-02-23 | 图芯芯片技术有限公司 | 零系数跳过卷积神经网络引擎 |
CN108073981A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 处理卷积神经网络的方法和设备 |
CN108229655A (zh) * | 2016-12-22 | 2018-06-29 | 三星电子株式会社 | 卷积神经网络(cnn)处理方法和设备 |
CN109871936A (zh) * | 2017-12-05 | 2019-06-11 | 三星电子株式会社 | 用于处理神经网络中的卷积运算的方法和装置 |
CN110007959A (zh) * | 2017-11-03 | 2019-07-12 | 畅想科技有限公司 | 用于深度神经网络的硬件实现的层次化尾数位长度选择 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10489479B1 (en) * | 2016-09-12 | 2019-11-26 | Habana Labs Ltd. | Matrix multiplication engine |
US10824938B2 (en) * | 2017-04-24 | 2020-11-03 | Intel Corporation | Specialized fixed function hardware for efficient convolution |
JP6879072B2 (ja) * | 2017-06-21 | 2021-06-02 | コニカミノルタ株式会社 | 処理方法、プログラム、情報処理装置、および画像処理装置 |
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
KR20190051697A (ko) * | 2017-11-07 | 2019-05-15 | 삼성전자주식회사 | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 |
US11544559B2 (en) * | 2019-01-08 | 2023-01-03 | Neuralmagic Inc. | System and method for executing convolution in a neural network |
-
2020
- 2020-04-23 US US16/856,112 patent/US20210049474A1/en active Pending
- 2020-06-12 CN CN202010534666.0A patent/CN112396085A/zh active Pending
- 2020-07-23 EP EP20187317.1A patent/EP3789928A3/en active Pending
- 2020-08-07 JP JP2020134566A patent/JP7114659B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070112707A1 (en) * | 2005-10-27 | 2007-05-17 | Computer Associates Think, Inc. | Weighted pattern learning for neural networks |
CN107729996A (zh) * | 2016-08-11 | 2018-02-23 | 图芯芯片技术有限公司 | 零系数跳过卷积神经网络引擎 |
CN108073981A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 处理卷积神经网络的方法和设备 |
CN108229655A (zh) * | 2016-12-22 | 2018-06-29 | 三星电子株式会社 | 卷积神经网络(cnn)处理方法和设备 |
CN110007959A (zh) * | 2017-11-03 | 2019-07-12 | 畅想科技有限公司 | 用于深度神经网络的硬件实现的层次化尾数位长度选择 |
CN109871936A (zh) * | 2017-12-05 | 2019-06-11 | 三星电子株式会社 | 用于处理神经网络中的卷积运算的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7114659B2 (ja) | 2022-08-08 |
EP3789928A2 (en) | 2021-03-10 |
US20210049474A1 (en) | 2021-02-18 |
EP3789928A3 (en) | 2021-04-21 |
JP2021034039A (ja) | 2021-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073981B (zh) | 处理卷积神经网络的方法和设备 | |
CN109871936B (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
CN111352656A (zh) | 使用按位运算的神经网络设备和方法 | |
CN112396085A (zh) | 识别图像的方法和设备 | |
WO2020113355A1 (en) | A content adaptive attention model for neural network-based image and video encoders | |
CN114026569A (zh) | 使用脉动阵列的扩张卷积 | |
EP3528181B1 (en) | Processing method of neural network and apparatus using the processing method | |
CN113010099A (zh) | 有效地利用存储器空间的神经网络处理设备及其操作方法 | |
CN111340177A (zh) | 基于嵌套位表示的神经网络处理方法和设备 | |
CN112598120A (zh) | 数据处理的方法和设备 | |
CN113673701A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
US20230196113A1 (en) | Neural network training under memory restraint | |
CN113065632A (zh) | 验证用于图像识别的神经网络的训练的方法和设备 | |
CN113947703A (zh) | 通过神经网络识别图像的方法和设备 | |
CN112668381A (zh) | 用于识别图像的方法和设备 | |
CN114792387A (zh) | 图像恢复方法和设备 | |
CN114254731A (zh) | 用于神经网络操作的方法和设备 | |
US11435941B1 (en) | Matrix transpose hardware acceleration | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
CN113408693A (zh) | 识别图像的方法和设备 | |
CN113868187A (zh) | 处理神经网络的方法和电子装置 | |
US10997497B2 (en) | Calculation device for and calculation method of performing convolution | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
US11468306B2 (en) | Storage device with artificial intelligence and storage system including the same | |
US20210279568A1 (en) | Method and apparatus for processing convolution operation on layer in neural network |
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 |