CN113947703A - 通过神经网络识别图像的方法和设备 - Google Patents
通过神经网络识别图像的方法和设备 Download PDFInfo
- Publication number
- CN113947703A CN113947703A CN202110156681.0A CN202110156681A CN113947703A CN 113947703 A CN113947703 A CN 113947703A CN 202110156681 A CN202110156681 A CN 202110156681A CN 113947703 A CN113947703 A CN 113947703A
- Authority
- CN
- China
- Prior art keywords
- weight
- feature map
- vector
- output
- convolution operation
- 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
- 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
-
- 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
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
Abstract
提供了通过神经网络识别图像的方法和设备。所述方法包括:获得待识别的图像作为输入图像;确定与输入图像对应的输入特征图;获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;基于卷积运算的运算结果来生成输出特征图;和基于输出特征图,输出图像识别结果。
Description
本申请要求于2020年7月15日提交到韩国知识产权局的第10-2020-0087449号韩国专利申请的权益,该韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及具有神经网络运算处理的方法和设备。
背景技术
识别处理的技术自动化可使用例如由处理器实现为特殊计算结构的神经网络模型来实现,其可在相当大的训练之后提供输入模式与输出模式之间的计算上直观的映射。被训练以生成这样的映射的能力可被称为“神经网络的训练能力”。此外,由于专用的训练,这样的专用的和训练的神经网络可具有针对未被训练的输入模式生成相对准确的输出的泛化能力。
发明内容
提供本发明内容来以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种通过神经网络识别图像的方法包括:获得待识别的图像作为输入图像;确定与输入图像对应的输入特征图;获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;基于卷积运算的运算结果来生成输出特征图;和基于输出特征图,输出图像识别结果。
在另一总体方面,一种通过神经网络识别图像的设备包括:处理器,被配置为:获得待识别的图像作为输入图像;确定与输入图像对应的输入特征图;获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;基于卷积运算的运算结果来生成输出特征图;和基于输出特征图,输出图像识别结果。
在另一总体方面,一种电子设备包括:相机,被配置为生成输入图像;和处理器,被配置为:确定与输入图像对应的输入特征图;获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;基于卷积运算的运算结果来生成输出特征图;和基于输出特征图生成输入图像的识别结果。
在另一总体方面,一种处理器实现的神经网络方法包括:获得权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;和基于卷积运算的运算结果来生成神经网络层的输出特征图。
修剪信息可包含包括在第一权重核中的权重元素向量的数量的信息以及第一权重核中的权重元素向量的位置的信息,并且第一权重核中的每个权重元素向量可对应于有效向量,有效向量区别于在修剪处理中从第一权重核去除的无效向量。
确定针对每个权重元素向量的处理范围的步骤可包括:基于修剪信息,确定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围,并且执行卷积运算的步骤可包括:通过执行第一权重元素向量与第一处理范围之间的卷积运算来生成第一中间输出平面。
第一权重元素向量与第一处理范围之间的卷积运算可包括1×1卷积运算。
第一权重元素向量与第一处理范围之间的卷积运算可包括第一处理范围的每个输入元素向量与第一权重元素向量之间的1×1卷积运算。
生成输出特征图的步骤可包括:通过累加包括第一中间输出平面的中间输出平面来生成输出特征图的第一输出平面。
生成输出特征图的步骤可包括:通过累加与卷积运算的运算结果对应的中间输出平面来生成输出特征图的第一输出平面。
第一权重核和第一输出平面可对应于第一输出通道。
权重模型可包括:多个权重核,所述多个权重核包括第一权重核,并且所述多个权重核的权重元素向量可对应于非零向量。
可通过使用相应的基本权重核和缩放矩阵的训练处理来增加权重模型的所述多个权重核中的每个的稀疏性。
训练处理可包括,针对所述多个权重核中的每个:基于损失函数将稀疏性诱导至缩放矩阵;和基于基本权重核与稀疏性诱导的缩放矩阵之间的逐点乘法来生成权重核。
所述方法可包括:使用相机生成输入图像;和确定输入特征图,输入特征图对应于输入图像。
一种非暂时性计算机可读存储介质可存储指令,所述指令在被处理器执行时,配置处理器执行所述方法。
在另一总体方面,一种神经网络设备包括:处理器,被配置为:获得权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;和基于卷积运算的运算结果来生成神经网络层的输出特征图。
修剪信息可包含包括在第一权重核中的权重元素向量的数量的信息以及第一权重核中的权重元素向量的位置的信息,并且第一权重核中的每个权重元素向量可对应于有效向量,有效向量区别于在修剪处理中从第一权重核去除的无效向量。
处理器可被配置为:为了确定针对每个权重元素向量的处理范围,基于修剪信息确定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围;并且为了执行卷积运算,通过执行第一权重元素向量与第一处理范围之间的卷积运算来生成第一中间输出平面。
为了生成输出特征图,处理器可被配置为:通过累加包括第一中间输出平面的中间输出平面来生成输出特征图的第一输出平面。
为了生成输出特征图,处理器可被配置为:通过累加与卷积运算的运算结果对应的中间输出平面来生成输出特征图的第一输出平面。
权重模型可包括多个权重核,所述多个权重核包括第一权重核,并且所述多个权重核的权重元素向量可对应于非零向量。
可通过使用相应的基本权重核和缩放矩阵的训练处理来增加权重模型的所述多个权重核中的每个的稀疏性。
所述设备可以是包括被配置为生成输入图像的相机的电子设备,处理器可被配置为确定输入特征图,并且输入特征图可对应于输入图像。
所述设备可包括:存储指令的存储器,所述指令在被处理器执行时配置处理器执行获得第一权重核的步骤、确定处理范围的步骤、执行卷积的步骤以及生成输出特征图的步骤。
在另一总体方面,一种电子设备包括:相机,被配置为生成输入图像;和处理器,被配置为:确定与输入图像对应的输入特征图;获得权重模型的第一权重核和第一权重核的修剪信息;基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;和基于卷积运算的运算结果来生成神经网络层的输出特征图。
处理器可被配置为:为了确定针对每个权重元素向量的处理范围,基于修剪信息确定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围;并且为了执行卷积运算,通过执行第一权重元素向量与第一处理范围之间的卷积运算来生成第一中间输出平面。
处理器可被配置为:基于输出特征图生成输入图像的识别结果。
在另一总体方面,一种处理器实现的神经网络方法包括:针对修剪的权重核的每个有效向量,基于在修剪的权重核内的有效向量的位置确定输入特征图的处理范围;针对每个有效向量,执行有效向量与输入特征图的对应处理范围之间的卷积运算;和通过累加针对每个有效向量执行的卷积运算的结果来生成神经网络层的输出特征图的通道。
输入特征图内的每个处理范围的位置可对应于修剪的权重核内的对应有效向量的位置。
有效向量可对应于修剪的权重核的非零向量。
在另一总体方面,一种处理器实现的神经网络方法包括:获得修剪的权重核的有效向量和有效向量的修剪信息;针对每个有效向量,基于修剪信息确定输入特征图的处理范围;通过执行有效向量与对应的处理范围之间的卷积运算,针对每个有效向量生成中间输出平面;和通过针对每个权重核通过累加与权重核对应的中间输出平面生成输出特征图的输出平面来生成输出特征图。
从下面的具体实施方式、附图以及权利要求,其它特征和方面将是清楚的。
附图说明
图1示出与卷积运算相关的运算处理设备的操作的示例。
图2示出与卷积运算有关的数据的示例。
图3示出权重模型的数据结构的示例。
图4示出修剪信息的数据结构的示例。
图5示出与每个权重元素向量对应的处理范围的示例。
图6示出通过累加型卷积运算生成输出平面的处理的示例。
图7示出通过卷积运算生成输出特征图的处理的示例。
图8示出使用缩放矩阵的神经网络的训练处理的示例。
图9示出基于训练的卷积权重的改变的示例。
图10示出与卷积运算相关的运算处理方法的示例。
图11示出运算处理设备的配置的示例。
图12示出电子设备的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
在下文中,将参照附图详细描述一些示例实施例。可对示例实施例进行各种修改。这里,示例实施例不被解释为限于公开,而是应被理解为包括在公开的理念和技术范围内的所有改变、等同物和替换。
在此使用的术语仅用于描述示例实施例的目的,而不意在限制本公开。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。如在此使用的,术语“包括”、“包含”和“具有”说明存在叙述的特征、整体、步骤、操作、元件、组件、数量和/或它们的组合,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件、数量和/或它们的组合。在此针对示例或实施例使用术语“可”(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
除非另有定义,否则在此使用的所有术语(包括技术术语或科学术语)具有与本公开所属一致领域的普通技术人员通常理解和在理解本公开之后的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与相关领域中的上下文和本公开中的含义匹配的含义,并且将不被解释为理想化或过于形式化的含义。
当参照附图描述示例实施例时,相同的参考标号表示相同的构成元件,并且与相同的构成元件相关的重复描述将被省略。在示例实施例的描述中,当认为公知的相关结构或功能的详细描述将导致本公开的模糊解释时,将省略这样的详细描述。
此外,术语“第一”、“第二”、“A”、“B”、“(a)”、“(b)”等在此可用于描述根据示例实施例的组件。这些术语中的每个不用于限定对应的组件的本质、顺序或序列,而仅用于将对应的组件与一个或多个其它组件区分开。尽管在此使用“第一”或“第二”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不被这些术语所限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
贯穿说明书,当诸如层、区域或基底的元件被描述为“在”另一元件“上”、“连接到”或“结合到”另一元件时,所述元件可直接“在”所述另一元件“上”、“连接到”或“结合到”所述另一元件,或者可存在介于它们之间的一个或多个其它元件。相反,当元件被描述为“直接在”另一元件“上”、“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其它元件。同样地,例如“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”的表述也可如前面的描述的那样来解释。
具有与包括在一个示例实施例中的组件共同功能的组件在另一示例实施例中使用相同的名称来描述。除非另有描述,否则在一个示例实施例中进行的描述可适用于另一示例实施例,并且冗余范围内的详细描述被省略。
图1示出与卷积运算相关的运算处理设备(例如,运算处理设备100)的操作的示例。参照图1,运算处理设备100可处理与神经网络110相关的操作。响应于与神经网络110相关的操作被处理,神经网络110可执行用于训练神经网络110的操作。例如,神经网络110的操作可包括图像识别(诸如,对象分类、对象检测、对象标识、对象识别或用户认证)。与神经网络110相关的处理操作的至少一部分可由包括神经处理器的硬件或硬件和软件的组合来实现。运算处理设备100可以是例如移动电话、台式计算机、膝上型计算机、平板个人计算机(PC)、可穿戴装置、智能电视(TV)、智能车辆、安全系统、智能家庭系统、智能家用电器等,或者设置在例如移动电话、台式计算机、膝上型计算机、平板个人计算机(PC)、可穿戴装置、智能电视(TV)、智能车辆、安全系统、智能家庭系统、智能家用电器等中。
神经网络110可对应于包括多个层的深度神经网络(DNN)。多个层可包括输入层、至少一个隐藏层和输出层。图1的第一层111、第二层112和第n层113可以是多个层的至少一部分。例如,输入层可以是第一层111,至少一个隐藏层可包括第二层112至第n-1层,输出层可以是第n层。神经网络110可包括全连接网络(FCN)、卷积神经网络(CNN)和循环神经网络(RNN)中的任何一个或任何组合。例如,神经网络110中的多个层的至少一部分可对应于CNN,并且另一部分可对应于FCN。在该示例中,CNN可被称为卷积层,FCN可被称为全连接层。
在CNN中,输入到每个层的数据可被称为“输入特征图”,从每个层输出的数据可被称为“输出特征图”。输入特征图和输出特征图也可被称为激活数据。层的输出特征图可以是后续层的输入特征图,或者可用于生成后续层的输入特征图。当卷积层对应于输入层时,输入层的输入特征图可对应于输入数据。例如,输入数据可以是输入图像或从输入图像的初始处理产生的数据。在一个示例中,神经网络的第一层接收输入图像,并基于输入图像输出第一层的输出特征图作为第二层的输入特征图。神经网络的第i层基于作为第i层的输入特征图的第i-1层的输出特征图,输出第i层的输出特征图,i为大于1的整数。神经网络的最后层基于前一层的输出特征图生成并输出与输入图像对应的识别结果。
神经网络110可基于深度学习而被训练,并且可通过映射处于非线性关系的输入数据和输出数据来执行适合于训练目的的推断。深度学习可以是用于基于大数据集解决诸如图像识别的问题的机器学习方案。深度学习可被理解为在基于准备的训练数据训练神经网络110的同时解决优化问题以找到能量最小化的点的处理。
通过深度学习的有监督学习或无监督学习,神经网络110的结构或与模型对应的权重可被获得或确定,并且输入数据和输出数据可通过权重而被彼此映射。例如,当神经网络110的宽度和深度足够大时,神经网络110可具有大到足以实现任意功能的能力。当通过适当的训练处理在足够大量的训练数据上训练神经网络110时,可实现最佳性能。
在下面的描述中,神经网络110可被表达为“预训练的”,其中“预”可指示在神经网络110被“启动”之前的状态。“启动的”神经网络110可指示神经网络110可准备好进行推断。例如,神经网络110的“启动”可包括将神经网络110加载到存储器中,或者在将神经网络110加载到存储器中之后将用于推断的输入图像数据输入到神经网络110。
运算处理设备100可执行每个卷积层的输入特征图与权重核之间的卷积运算以处理与每个卷积层相关的运算,并且可基于卷积运算的运算结果来生成输出特征图。为了处理与神经网络110相关的运算,可处理包括乘法和累加(MAC)运算的多个运算。此外,可能消耗大量计算资源和时间来处理运算。一个或多个实施例的运算处理设备100可使神经网络110轻量化并执行高速操作处理,从而减少以上的计算资源和时间的消耗,使得神经网络110也可在资源有限的环境(诸如,传感器环境或嵌入式环境(例如,移动终端))中被有效地实现。
在一个示例中,运算处理设备100可基于权重模型和修剪信息来执行与神经网络110中的卷积层相关的卷积运算。在该示例中,逐点修剪(pruning)可应用于权重模型。修剪可以是通过去除冗余权重值(例如,零值或通过将冗余权重设置为零值)来使模型轻量化的方案,并且可包括结构化修剪和非结构化修剪。结构化修剪可以是使用结构元素(例如,通道)作为修剪的单位的方案,非结构化修剪可以是修剪冗余值而非使用结构元素的方案。
例如,基于作为一种结构化修剪的通道修剪,可针对与输出通道对应的每个权重核以值“0”修剪模型。例如,在通道修剪中,可修剪被确定为冗余的同一通道的每个权重核。基于结构化修剪,可相对容易地实现加速和轻量化,然而,由于去除了重要的权重(例如,通过修剪可能具有一些重要权重的整个权重核),性能可能降低。基于非结构化修剪,“0”的比例可增加,但是由于缺乏规律性,在没有硬件辅助的情况下可能难以实现加速和轻量化。逐点修剪可具有结构化修剪的特性,但是可通过使用相对小的单元(例如,点张量)作为修剪的单元来使性能的降低最小化。
图2示出与卷积运算有关的数据的示例。参照图2,权重模型可包括核,该核包括分别与输出通道对应的D个权重核。例如,权重核可与输出通道一一对应。例如,权重核的数量可等于输出通道的数量。每个权重核可包括多个权重元素向量。例如,可基于高度×宽度×输入通道将权重核的大小定义为“K1×K2×C”。权重核的大小可指示包括在权重核中的权重元素的数量。换句话说,权重核可包括“K1×K2×C”个权重元素。这里,C可指示输入通道的数量。权重核可包括“K1×K2”个权重元素向量。当K1=K2=K时,权重核可包括“K2×C”个权重元素和“K2”个权重元素向量。权重元素向量可对应于点张量。例如,权重元素向量的大小可被定义为“1×1×C”。
修剪信息可指示基于修剪的权重模型的结构特征。逐点修剪可对应于结构化修剪,因此权重模型的数据可具有结构含义,并且权重模型的数据的结构含义可被记录在修剪信息中。例如,修剪信息可包含关于包括在每个权重核中的权重元素向量的位置的信息和/或关于包括在每个权重核中的权重元素向量的数量(例如,总数)的信息。在该示例中,包括在每个权重核中的权重元素向量可对应于有效向量。运算处理设备100可基于修剪信息来分析权重模型的每个权重核的结构特征,并且可基于结构特征来执行卷积运算。
有效向量可以是保留在修剪处理中或作为修剪处理的结果的权重元素向量,无效向量可以是在修剪处理中被去除的权重元素向量。例如,有效向量可对应于非零向量,无效向量可以是零向量。例如,权重模型的第一权重核可包括作为第一权重元素向量至第九权重元素向量之中的有效向量的第三权重元素向量、第六权重元素向量和第七权重元素向量。在该示例中,修剪信息可包括关于有效向量的数量(例如,总数)(例如,三个)的信息和关于有效向量的位置(例如,分别与矩阵位置[1,3]、[2,3]、[3,1]对应的“3、6和7”)的信息。
在一个示例中,运算处理设备100可执行累加型卷积运算。可通过累加卷积运算的中间结果来执行累加型卷积运算。例如,可通过第一权重核的第一有效向量与输入特征图的第一处理范围之间的卷积运算来生成第一中间输出平面。通过以上处理,可通过第一权重核的每个有效向量与输入特征图的对应的处理范围之间的卷积运算来生成中间输出平面。生成的中间输出平面可被累加以生成输出特征图的与第一权重核对应的第一输出平面。可基于有效向量的位置信息(例如,偏移)来确定输入特征图的对应的处理范围。此外,第一权重核和第一输出平面可对应于输出特征图的第一输出通道。
基于以上累加型卷积运算,一个或多个实施例的运算处理设备100可执行卷积运算以生成输出特征图,而不需要执行如由典型运算处理设备在执行卷积运算时执行的将权重核或输入特征图变换为适合于卷积的形式并将权重核或输入特征图存储在缓冲器中的缓冲操作。因此,一个或多个实施例的运算处理设备100的卷积运算的速度比典型运算处理设备的卷积运算的速度快。此外,一个或多个实施例的运算处理设备100的累加型卷积运算可基于每个有效向量而被执行,因此可针对每个点张量应用修剪。另外,一个或多个实施例的运算处理设备100的累加型卷积运算可适用于针对每个点张量跳过零的逐点修剪。
图3示出权重模型(例如,权重模型200)的数据结构的示例。在一个示例中,权重模型200可以是应用了逐点修剪的权重模型。参照图3,权重模型200包括权重元素向量W1_2、W1_3、W1_4、W1_6、W1_8、W2_2、W2_4、W2_6、W2_8、W3_2、W3_4、W3_5、W3_6、W4_3、W4_6和W4_7(被称为“权重元素向量W1_2至W4_7”)。权重元素向量W1_2至W4_7可分别对应于有效向量。权重元素向量Wa_b可指示第a权重核的第b权重元素向量。换句话说,a可以是权重核的标识信息,b可以是权重元素向量的位置信息(例如,偏移)。权重模型200可视觉地被表示为图3的下部中示出的三维(3D)块。图3示出“3×3×C”权重核,即,满足“K1=K2=3”的权重核。以下将描述“3×3×C”权重核的示例,然而,这仅是为了便于描述的示例。例如,K1和K2可具有除“3”之外的任何值。
权重模型200可包括与权重核W1至W4的权重元素向量W1_1至W4_9之中的有效向量对应的权重元素向量W1_2至W4_7。例如,当在训练操作中将逐点修剪应用于权重核W1时,权重元素向量W1_2、W1_3、W1_4、W1_6和W1_8可被确定为有效向量,权重元素向量W1_1、W1_5、W1_7和W1_9可被确定为无效向量。类似地,基于逐点修剪,权重核W2至W4的权重元素向量中的每个可被确定为有效向量或无效向量。当权重模型200仅包括每个有效向量作为连续数据时,可使用与每个有效向量相关的结构信息来解释每个有效向量。可通过修剪信息提供以上结构信息。
图4示出修剪信息(例如,修剪信息300)的数据结构的示例。参照图4,修剪信息300可包括与权重核W1至W4的有效向量(例如,图3的权重元素向量W1_2至W4_7)相关的信息。例如,修剪信息300可包含关于包括在权重核W1至W4中的每个中的有效向量的数量的信息以及关于权重核W1至W4中的每个中的每个有效向量的位置的信息。
在一个示例中,参照图3和图4,修剪信息300可包含指示包括在权重核W1中的有效向量的数量的“5”以及指示权重核W1中的有效向量的位置的“2、3、4、6、8”;可包含指示包括在权重核W2中的有效向量的数量的“4”以及指示权重核W2中的有效向量的位置的“2、4、6、8”;可包含指示包括在权重核W3中的有效向量的数量的“4”以及指示权重核W3中的有效向量的位置的“2、4、5、6”;并且可包含指示包括在权重核W4中的有效向量的数量的“3”以及指示权重核W4中的有效向量的位置的“3、6、7”。
修剪信息300可被提供为权重模型的头信息(header information)。在一个示例中,在修剪信息300中,可将2个字节分配给权重核W1至W4中的每个。在该示例中,修剪信息300可包括针对权重核W1的“0000101011101010”。这里,“0000101”可指示有效向量的数量,“011101010”可指示每个有效向量的位置。
例如,二进制数“0000101”可表示十进制数“5”。“011101010”的每个比特位置可对应于“3×3×C”权重核的每个位置,“1”可指示有效向量,“0”可指示无效向量。换句话说,“011101010”可指示第二权重元素向量、第三权重元素向量、第四权重元素向量、第六权重元素向量和第八权重元素向量对应于有效向量。类似地,修剪信息300可包括针对权重核W2的“0000100010101010”、针对权重核W3的“0000100010111000”以及针对权重核W4的“0000011001001100”。在一个示例中,当比特顺序对应于权重核的宽度方向和高度方向的顺序时,权重核W1中的有效向量的位置信息可被显示为以上描述的“011101010”。在另一示例中,当比特顺序对应于权重核的高度方向和宽度方向的顺序时,权重核W1中的有效向量的位置信息可被显示为“010101110”(即,以相反的顺序)。
图5示出与每个权重元素向量对应的处理范围的示例。如上所述,根据示例,可执行一个或多个实施例的累加型卷积运算。对于累加型卷积运算,可确定与每个有效向量对应的输入特征图的处理范围。例如,当基于滑动窗口方案执行权重核与输入特征图之间的卷积运算时,可在输入特征图中指定权重核滑动通过的路径。因此,可在输入特征图中指定权重核的每个权重元素向量通过的区域。根据示例,与权重元素向量对应的输入特征图的处理范围可对应于权重元素向量通过输入特征图的区域。
例如,参照图5,输入特征图的第一处理范围421可对应于权重核410的第一权重元素向量。类似地,输入特征图的第二处理范围422可对应于权重核410的第二权重元素向量,输入特征图的第三处理范围423可对应于权重核410的第三权重元素向量。输入特征图的第四处理范围424至第九处理范围429可分别与权重核410的第四权重元素向量至第九权重元素向量一一对应。以上定义的处理范围可用在以下将进一步描述的一个或多个实施例的累加类型卷积运算中。
图6示出通过累加型卷积运算生成输出平面的处理的示例。参照图6,可执行输入特征图510与权重核520之间的累加型卷积运算。输入特征图510与权重核520之间的卷积运算可包括输入特征图510与权重核520的每个有效向量之间的单独的卷积运算。
尽管在图6中将权重核520作为整体示出以帮助理解,但是可关于权重核520的有效向量而非整个权重核520来执行卷积运算。换句话说,尽管权重核520以“3×3”的形式被示出,但是权重核520可像使用三个1×1权重核那样起作用。在权重核520中,第三权重元素向量、第六权重元素向量和第七权重元素向量可对应于有效向量。因此,可基于第三权重元素向量、第六权重元素向量和第七权重元素向量来执行权重核520的卷积运算。
例如,可生成中间输出平面531作为输入特征图510的处理范围511与权重核520的第三权重元素向量之间的卷积运算的运算结果。类似地,可生成中间输出平面532作为输入特征图510的处理范围512与权重核520的第六权重元素向量之间的卷积运算的运算结果,并且可生成中间输出平面533作为输入特征图510的处理范围513与权重核520的第七权重元素向量之间的卷积运算的运算结果。在一个示例中,输入特征图510可被零填充,使得处理范围511、512和513中的每个包括零填充的部分。
可基于与权重核520相关的修剪信息来指定或确定输入特征图510的每个处理范围。例如,运算处理设备(例如,运算处理设备100)可在卷积运算之前分析或确定权重核的每个权重元素向量与输入特征图的每个处理范围之间的对应关系(例如,如图5中所示),并且可基于对应关系指定输入特征图510中的与权重核520的有效向量对应的处理范围。
每个权重元素向量与每个处理范围之间的卷积运算可包括1×1卷积运算。例如,第三权重元素向量与处理范围511之间的卷积运算可包括处理范围511的输入元素向量与第三权重元素向量之间的1×1卷积运算,使得1×1卷积运算的运算结果可对应于中间输出平面531的一个输出元素。可执行处理范围511的每个输入元素向量与第三权重元素向量之间的1×1卷积运算,以确定中间输出平面531的所有输出元素。因此,在一个示例中,中间输出平面531、532和533的宽度和高度可等于相应的处理范围511、512和513的宽度和高度。
可累加中间输出平面531、532和533,以生成输出特征图的输出平面540。权重核520和输出平面540可对应于输出通道。权重核520可对应于包括在权重模型中的多个权重核中的一个,并且多个权重核中的每个可对应于输出通道。可基于每个权重核的累加型卷积运算来生成对应于每个输出通道的输出平面。当生成与所有输出通道对应的所有输出平面时,可完全生成输出特征图。
图7示出通过卷积运算生成输出特征图的处理的示例。图7示出与神经网络的第n层(例如,卷积层)相关的操作。参照图7,在操作610中,运算处理设备(例如,运算处理设备100)可获得第d权重核,并且可获得或确定修剪信息。第n层的权重核的总数量可以是“D”,并且d小于或等于D。运算处理设备可通过解析修剪信息来获得或确定与第d权重核的有效向量相关的信息(例如,有效向量的数量和/或有效向量的位置)。
在操作620中,运算处理设备可获得或确定第c权重元素向量。获得的权重元素向量可对应于有效向量。在操作630中,运算处理设备可获得或确定第n层的输入特征图。在操作640中,运算处理设备可执行卷积运算。运算处理设备可指定或确定输入特征图中的与权重元素向量对应的处理范围,并且可执行权重元素向量与处理范围的每个输入特征向量之间的1×1卷积运算。基于操作640的卷积运算,可生成第c中间输出平面。在操作650中,运算处理设备可累加中间输出平面。
在操作660中,运算处理设备将c和Valid-cnt进行比较。Valid-cnt可指示第d权重核中的有效向量的总数量。在一个示例中,当c和Valid-cnt不同时(即,当第d权重核中的有效向量之一的操作尚未被完成时),可将c增加“1”,并且可执行操作620。在另一示例中,当c和Valid-cnt相同时(即,当与第d权重核中的所有有效向量相关的操作被完成时),可执行操作670。c和Valid-cnt相同可指示第d权重核的所有中间输出平面已经被累加使得第d权重核的输出平面已经被生成。
在操作670中,运算处理设备将“d”和“D”进行比较。在一个示例中,当“d”和“D”不同时(即,当第n层的“D”个权重核之一的操作尚未被完成时),可将“d”增加“1”,并且可执行操作610。在另一示例中,当“d”和“D”相同时(即,当与第n层的所有“D”个权重核相关的操作被完成时),可终止与第n层相关的卷积运算。“d”和“D”相同可指示“D”个权重核的所有输出平面(即,“D”个输出通道)被生成使得第n层的输出特征图已经被生成。可关于神经网络的每层重复图7的以上处理,其中,层的输出特征图可以是或可用于生成后续层的输入特征图,其中,最终层的输出特征图可以是或可用于生成神经网络的输出数据。例如,输出数据可对应于图像识别(例如,对象分类、对象检测、对象标识、对象识别或用户认证)的结果。
图8示出使用缩放矩阵(scale matrix)的神经网络的训练处理的示例。神经网络可包括卷积层。可基于卷积层的训练输入与卷积权重核之间的卷积运算来确定训练输出。可基于训练输出的损失来训练神经网络。
可基于基本权重核和缩放矩阵来确定卷积权重核。在下文中,卷积权重核和基本权重核可分别被称为“卷积权重”和“基本权重”。基本权重可具有“K1×K2×C”的大小,缩放矩阵可具有“K1×K2”的大小。作为非限制性示例,如图8中所示,K1=K2=3。在一个示例中,可基于基本权重与缩放矩阵之间的逐点乘法运算来确定卷积权重。
图8的第一卷积权重731至第D卷积权重733可对应于预定卷积层的权重核。如上所述,可基于第一基本权重711与第一缩放矩阵721之间的逐点乘法运算来确定第一卷积权重731,可基于第二基本权重712与第二缩放矩阵722之间的逐点乘法运算来确定第二卷积权重732,并且可基于第D基本权重713与第D缩放矩阵723之间的逐点乘法运算来确定第D卷积权重733。
可训练神经网络以最小化卷积层的训练输出的损失。例如,训练输出可基于训练输入与卷积权重之间的卷积运算而被确定,并且训练输出与标签之间的差可被确定为损失。可调整卷积权重以减少损失。通过重复以上处理,可确定使损失最小化的卷积权重。
损失函数可包括任务损失分量(例如,交叉熵)和稀疏性诱导惩罚(sparsity-inducing penalty)分量。由于损失函数的稀疏性诱导惩罚分量,稀疏性可被诱导至卷积权重。例如,损失函数可如以下等式1中所示而被定义。
等式1:
在等式1中,L表示损失函数,x表示训练输入(例如,训练图像),W表示基本权重,r表示缩放矩阵,f表示卷积运算。因此,W*r表示卷积权重,f(x,W*r)表示训练输入与卷积权重之间的卷积运算。此外,y表示标签,l表示损失。因此,l(f(x,W*r),y)表示标签与卷积运算的运算结果之间的损失。此外,γ表示尺度超参数,g表示稀疏性诱导惩罚(例如,L1范数)。
图9示出基于训练的卷积权重的改变的示例。参照图9,可通过使用基本权重811和缩放矩阵821的训练处理来增加卷积权重831的稀疏性。例如,由于损失函数的稀疏性诱导惩罚分量,稀疏性可被诱导至缩放矩阵821,因此缩放矩阵821可被改变为或被训练为具有稀疏性的缩放矩阵822。此外,缩放矩阵821到缩放矩阵822的改变可能导致基本权重811与基本权重812之间的差。
可基于基本权重811与缩放矩阵821之间的逐点乘法运算来确定卷积权重831,可基于基本权重812与缩放矩阵822之间的逐点乘法运算来确定卷积权重832。由于缩放矩阵822的稀疏性的影响,卷积权重832也可具有稀疏性(例如,相同的稀疏性)。可针对每个点张量将修剪应用于卷积权重832,因此以上修剪可被称为“逐点修剪”。
可基于卷积权重832来确定权重模型(例如,权重模型200)。此外,可基于卷积权重832中的有效向量的分布来确定修剪信息。例如,可将逐点修剪应用于图8的第一卷积权重731至第D卷积权重733,以构建权重模型。此外,可生成用于权重模型的修剪信息(例如,修剪信息300)。例如,修剪信息可被存储为权重模型的头。
图10示出与卷积运算相关的运算处理方法的示例。参照图10,在操作910中,运算处理设备(例如,运算处理设备100)可获得或确定权重模型的第一权重核和第一权重核的修剪信息。在操作920中,运算处理设备可基于修剪信息指定或确定输入特征图中的与第一权重核的每个权重元素向量对应的处理范围。在操作930中,运算处理设备可基于指定的处理范围执行输入特征图与第一权重核之间的卷积运算。例如,运算处理设备可基于修剪信息指定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围,并且可执行第一权重元素向量与第一处理范围之间的卷积运算,以生成第一中间输出平面。在操作940中,运算处理设备可基于卷积运算的运算结果来生成输出特征图。例如,运算处理设备可通过累加包括第一中间输出平面的中间输出平面来生成输出特征图的第一输出平面。如上所述的图1至图9、图11和图12的描述和操作可适用于运算处理方法,并且在此不再重复进一步的描述。
图11示出运算处理设备(例如,运算处理设备1000)的配置的示例。参照图11,运算处理设备1000包括处理器1010(例如,一个或多个处理器)和存储器1020(例如,一个或多个存储器)。存储器1020可连接到处理器1010,并且可存储可由处理器1010执行的指令、将由处理器1010计算的数据或由处理器1010处理的数据。存储器1020可包括例如非暂时性计算机可读存储介质(例如,高速随机存取存储器(RAM))和/或非易失性计算机可读存储介质(例如,至少一个磁盘存储装置、闪存装置或其它非易失性固态存储器装置)。在一个示例中,运算处理设备1000可以是图1的运算处理设备100。
处理器1010可执行指令以执行参照以上图1至图10和以下图12描述的操作中的至少一个或全部。例如,处理器1010可获得权重模型的第一权重核和第一权重核的修剪信息,可基于修剪信息指定在输入特征图中与第一权重核的每个权重元素向量对应的处理范围,可基于指定的处理范围执行输入特征图与第一权重核之间的卷积运算,并且可基于卷积运算的运算结果生成输出特征图。另外,图1至图10和图12的描述也适用于运算处理设备1000,并且在此不再重复进一步的描述。
图12示出电子设备(例如,电子设备1100)的示例。电子设备1100可以是、或者包括图1的运算处理设备100或图11的运算处理设备1000。电子设备1100可获得输入图像,并且可使用神经网络执行与输入图像相关的操作。与输入图像相关的操作可包括图像识别(例如,对象分类、对象检测、对象跟踪、对象标识、对象识别或用户认证)。例如,电子设备1100可确定与输入图像对应的输入特征图,可通过神经网络的至少一层生成与输入特征图对应的输出特征图,并且可基于输出特征图生成与输入图像相关的图像识别结果(诸如,分类结果、检测结果、跟踪结果、标识结果、和认证结果中的任何一个或任何组合)。
电子设备1100包括处理器1110(例如,一个或多个处理器)、存储器1120(例如,一个或多个存储器)、相机1130、存储装置1140、输入装置1150、输出装置1160和网络接口1170。处理器1110、存储器1120、相机1130、存储装置1140、输入装置1150、输出装置1160和网络接口1170可经由通信总线1180彼此通信。例如,电子设备1100可被实现为例如移动装置(诸如,移动电话、智能电话、个人数字助理(PDA)、上网本、平板计算机或膝上型计算机)、可穿戴装置(诸如,智能手表、智能手环或智能眼镜)、计算装置(诸如,台式计算机或服务器)、家用电器(诸如,电视(TV)、智能TV或冰箱)、安全装置(诸如,门锁)或车辆(诸如,智能车辆)的至少一部分。
处理器1110可执行电子设备1100中的指令和功能。例如,处理器1110可处理存储在存储器1120或存储装置1140中的指令。处理器1110可执行以上参照图1至图12描述的操作中的至少一个操作。
存储器1120可存储用于图像识别的数据。存储器1120可包括非暂时性计算机可读存储介质或非暂时性计算机可读存储装置。存储器1120可存储将由处理器1110执行的指令,并且还可在电子设备1100正在执行软件和/或应用时存储与软件和/或应用相关的信息。
相机1130可拍摄照片和/或视频,并且可生成输入图像。例如,相机1130可生成包括用户(例如,面部)的用户图像。在一个示例中,相机1130可提供包括与对象相关的深度信息的三维(3D)图像。
存储装置1140可包括非暂时性计算机可读存储介质或非暂时性计算机可读存储装置。在一个示例中,存储装置1140可在相对长的时间段内存储比存储器1120更大量的信息。例如,存储装置1140可包括磁硬盘、光盘、闪存、软盘或本领域已知的其它形式的非易失性存储器。
输入装置1150可通过使用键盘和鼠标的传统输入方案以及通过新输入方案(诸如,触摸输入、语音输入和图像输入)从用户接收输入。输入装置1150可包括例如键盘、鼠标、触摸屏、麦克风或被配置为检测来自用户的输入并将检测的输入发送到电子设备1100的其它装置。
输出装置1160可通过视觉通道、听觉通道或触觉通道向用户提供电子设备1100的输出。输出装置1160可包括例如显示器、触摸屏、扬声器、振动产生器或被配置为向用户提供输出的任何其它装置。网络接口1170可经由有线网络或无线网络与外部装置通信。
在此关于图1至图12描述的运算处理设备、处理器、存储器、电子设备、相机、存储装置、输入装置、输出装置、网络接口、通信总线、运算处理设备100、运算处理设备1000、处理器1010、存储器1020、电子设备1100、处理器1110、存储器1120、相机1130、存储装置1140、输入装置1150、输出装置1160、网络接口1170、通信总线1180、设备、单元、模块、装置和其它组件由硬件组件实现或表示。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器和被配置为执行在本申请中描述的操作的任何其它电子组件。在其它示例中,执行在本申请中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。处理器或计算机可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其它装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件也可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可用在本申请中描述的示例的描述中,但是在其它示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其它硬件组件可通过一个或多个其它处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图12中示出的执行在本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述地执行指令或软件,以执行在本申请中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其它操作可通过一个或多个其它处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及在此使用的相应描述,使用任何编程语言编写指令或软件,其中,附图中示出的框图和流程图以及在此使用的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(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-RLTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡式存储器(诸如,多媒体卡或者微型卡(例如,安全数字(SD)或者极速数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其它装置,任何其它装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器和计算机可执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式的方式被存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例将被认为仅是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其它示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其它组件或它们的等同物替换或补充,则可实现合适的结果。
Claims (24)
1.一种通过神经网络识别图像的方法,所述方法包括:
获得待识别的图像作为输入图像;
确定与输入图像对应的输入特征图;
获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;
基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;
基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;
基于卷积运算的运算结果来生成输出特征图;和
基于输出特征图,输出图像识别结果。
2.根据权利要求1所述的方法,其中,
修剪信息包含包括在第一权重核中的权重元素向量的数量的信息以及第一权重核中的权重元素向量的位置的信息,并且
第一权重核中的每个权重元素向量对应于有效向量,有效向量区别于在修剪处理中从第一权重核去除的无效向量。
3.根据权利要求1所述的方法,其中,
确定针对每个权重元素向量的处理范围的步骤包括:基于修剪信息,确定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围,并且
执行卷积运算的步骤包括:通过执行第一权重元素向量与第一处理范围之间的卷积运算来生成第一中间输出平面。
4.根据权利要求3所述的方法,其中,第一权重元素向量与第一处理范围之间的卷积运算包括1×1卷积运算。
5.根据权利要求4所述的方法,其中,第一权重元素向量与第一处理范围之间的卷积运算包括第一处理范围的每个输入元素向量与第一权重元素向量之间的1×1卷积运算。
6.根据权利要求3所述的方法,其中,生成输出特征图的步骤包括:通过累加包括第一中间输出平面的中间输出平面来生成输出特征图的第一输出平面。
7.根据权利要求1所述的方法,其中,生成输出特征图的步骤包括:通过累加与卷积运算的运算结果对应的中间输出平面来生成输出特征图的第一输出平面。
8.根据权利要求7所述的方法,其中,第一权重核和第一输出平面对应于第一输出通道。
9.根据权利要求1所述的方法,其中,
权重模型包括:多个权重核,所述多个权重核包括第一权重核,并且
所述多个权重核的权重元素向量对应于非零向量。
10.根据权利要求9所述的方法,其中,通过使用相应的基本权重核和缩放矩阵的训练处理来增加权重模型的所述多个权重核中的每个的稀疏性。
11.根据权利要求10所述的方法,其中,训练处理包括,针对所述多个权重核中的每个:
基于损失函数将稀疏性诱导至缩放矩阵;和
基于基本权重核与诱导了稀疏性的缩放矩阵之间的逐点乘法来生成权重核。
12.根据权利要求1至权利要求11中的任意一项所述的方法,还包括:
使用相机生成输入图像。
13.一种存储指令的非暂时性计算机可读存储介质,所述指令在被处理器执行时,配置处理器执行根据权利要求1至权利要求12中的任何一项所述的方法。
14.一种通过神经网络识别图像的设备,所述设备包括:
处理器,被配置为:
获得待识别的图像作为输入图像;
确定与输入图像对应的输入特征图;
获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;
基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;
基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;
基于卷积运算的运算结果来生成输出特征图;和
基于输出特征图,输出图像识别结果。
15.根据权利要求14所述的设备,其中,
修剪信息包含包括在第一权重核中的权重元素向量的数量的信息以及第一权重核中的权重元素向量的位置的信息,并且
第一权重核中的每个权重元素向量对应于有效向量,有效向量区别于在修剪处理中从第一权重核去除的无效向量。
16.根据权利要求14所述的设备,其中,处理器被配置为:
为了确定针对每个权重元素向量的处理范围,基于修剪信息确定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围;并且
为了执行卷积运算,通过执行第一权重元素向量与第一处理范围之间的卷积运算来生成第一中间输出平面。
17.根据权利要求16所述的设备,其中,为了生成输出特征图,处理器被配置为:通过累加包括第一中间输出平面的中间输出平面来生成输出特征图的第一输出平面。
18.根据权利要求14所述的设备,其中,为了生成输出特征图,处理器被配置为:通过累加与卷积运算的运算结果对应的中间输出平面来生成输出特征图的第一输出平面。
19.根据权利要求14所述的设备,其中,
权重模型包括:多个权重核,所述多个权重核包括第一权重核,并且
所述多个权重核的权重元素向量对应于非零向量。
20.根据权利要求19所述的设备,其中,通过使用相应的基本权重核和缩放矩阵的训练处理来增加权重模型的所述多个权重核中的每个的稀疏性。
21.根据权利要求14至权利要求20中的任何一项所述的设备,其中,
所述设备是包括被配置为生成输入图像的相机的电子设备。
22.根据权利要求14至权利要求20中的任何一项所述的设备,还包括:存储指令的存储器,所述指令在被处理器执行时配置处理器执行获得待识别的图像的步骤、确定与输入图像对应的输入特征图的步骤、获得第一权重核的步骤、确定处理范围的步骤、执行卷积的步骤、生成输出特征图的步骤以及输出图像识别结果的步骤。
23.一种电子设备,包括:
相机,被配置为生成输入图像;和
处理器,被配置为:
确定与输入图像对应的输入特征图;
获得神经网络的权重模型的第一权重核和第一权重核的修剪信息;
基于修剪信息,确定针对第一权重核的每个权重元素向量的输入特征图的处理范围;
基于确定的处理范围执行输入特征图与第一权重核之间的卷积运算;
基于卷积运算的运算结果来生成输出特征图;和
基于输出特征图生成输入图像的识别结果。
24.根据权利要求23所述的电子设备,其中,处理器被配置为:
为了确定针对每个权重元素向量的处理范围,基于修剪信息确定输入特征图中的与第一权重核的第一权重元素向量对应的第一处理范围;并且
为了执行卷积运算,通过执行第一权重元素向量与第一处理范围之间的卷积运算来生成第一中间输出平面。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200087449A KR20220009126A (ko) | 2020-07-15 | 2020-07-15 | 뉴럴 네트워크 연산 처리 장치 및 방법 |
KR10-2020-0087449 | 2020-07-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113947703A true CN113947703A (zh) | 2022-01-18 |
Family
ID=74867478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110156681.0A Pending CN113947703A (zh) | 2020-07-15 | 2021-02-04 | 通过神经网络识别图像的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11836628B2 (zh) |
EP (1) | EP3940600A1 (zh) |
KR (1) | KR20220009126A (zh) |
CN (1) | CN113947703A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115311536A (zh) * | 2022-10-11 | 2022-11-08 | 绍兴埃瓦科技有限公司 | 图像处理中稀疏卷积处理方法及装置 |
WO2024078376A1 (zh) * | 2022-10-12 | 2024-04-18 | 华为技术有限公司 | 一种模型剪枝方法及相关装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116451139B (zh) * | 2023-06-16 | 2023-09-01 | 杭州新航互动科技有限公司 | 一种基于人工智能的直播数据快速分析方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170344876A1 (en) * | 2016-05-31 | 2017-11-30 | Samsung Electronics Co., Ltd. | Efficient sparse parallel winograd-based convolution scheme |
US10699438B2 (en) * | 2017-07-06 | 2020-06-30 | Siemens Healthcare Gmbh | Mobile device localization in complex, three-dimensional scenes |
CN107895191B (zh) | 2017-10-30 | 2022-02-22 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
KR102452953B1 (ko) * | 2017-10-30 | 2022-10-11 | 삼성전자주식회사 | 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치 |
WO2019190340A1 (en) | 2018-03-28 | 2019-10-03 | Intel Corporation | Channel pruning of a convolutional network based on gradient descent optimization |
US11488019B2 (en) | 2018-06-03 | 2022-11-01 | Kneron (Taiwan) Co., Ltd. | Lossless model compression by batch normalization layer pruning in deep neural networks |
CN110598731B (zh) | 2019-07-31 | 2021-08-20 | 浙江大学 | 一种基于结构化剪枝的高效图像分类方法 |
-
2020
- 2020-07-15 KR KR1020200087449A patent/KR20220009126A/ko active Search and Examination
- 2020-12-17 US US17/124,791 patent/US11836628B2/en active Active
-
2021
- 2021-02-04 CN CN202110156681.0A patent/CN113947703A/zh active Pending
- 2021-03-09 EP EP21161505.9A patent/EP3940600A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115311536A (zh) * | 2022-10-11 | 2022-11-08 | 绍兴埃瓦科技有限公司 | 图像处理中稀疏卷积处理方法及装置 |
WO2024078376A1 (zh) * | 2022-10-12 | 2024-04-18 | 华为技术有限公司 | 一种模型剪枝方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220019895A1 (en) | 2022-01-20 |
KR20220009126A (ko) | 2022-01-24 |
EP3940600A1 (en) | 2022-01-19 |
US11836628B2 (en) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109697510B (zh) | 具有神经网络的方法和装置 | |
CN108229655B (zh) | 卷积神经网络(cnn)处理方法和设备 | |
CN113947703A (zh) | 通过神经网络识别图像的方法和设备 | |
CN109871936B (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
US20200202199A1 (en) | Neural network processing method and apparatus based on nested bit representation | |
EP3979145A1 (en) | Method and apparatus for compressing artificial neural network | |
EP3839832A1 (en) | Method and apparatus with neural network convolution operation | |
US20210182670A1 (en) | Method and apparatus with training verification of neural network between different frameworks | |
CN112598120A (zh) | 数据处理的方法和设备 | |
EP3789928A2 (en) | Neural network method and apparatus | |
CN112668381A (zh) | 用于识别图像的方法和设备 | |
US20230162034A1 (en) | Method and apparatus with neural network data input and output control | |
CN116468900A (zh) | 用于对象识别的方法和设备 | |
CN114792387A (zh) | 图像恢复方法和设备 | |
EP3629248A1 (en) | Operating method and training method of neural network and neural network thereof | |
US20200074277A1 (en) | Fuzzy input for autoencoders | |
CN113408693A (zh) | 识别图像的方法和设备 | |
CN114254731A (zh) | 用于神经网络操作的方法和设备 | |
US20220188070A1 (en) | Method and apparatus with data processing | |
EP4202832A1 (en) | Method and apparatus with object tracking | |
CN116152083A (zh) | 用于图像处理的方法和设备 | |
CN114077886A (zh) | 电子设备、用于识别图像的方法和设备 | |
US20220108156A1 (en) | Hardware architecture for processing data in sparse neural network | |
EP4276759A1 (en) | Method and apparatus with object tracking | |
CN115861862A (zh) | 识别图像的方法和设备 |
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 |