CN109754064A - 执行解卷积的神经网络的方法和装置 - Google Patents
执行解卷积的神经网络的方法和装置 Download PDFInfo
- Publication number
- CN109754064A CN109754064A CN201811024492.2A CN201811024492A CN109754064A CN 109754064 A CN109754064 A CN 109754064A CN 201811024492 A CN201811024492 A CN 201811024492A CN 109754064 A CN109754064 A CN 109754064A
- Authority
- CN
- China
- Prior art keywords
- kernel
- sub
- neural network
- mapping
- convolution
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 180
- 238000000034 method Methods 0.000 title claims description 60
- 238000013507 mapping Methods 0.000 claims abstract description 171
- 239000013598 vector Substances 0.000 claims abstract description 75
- 230000015654 memory Effects 0.000 claims abstract description 60
- 239000011159 matrix material Substances 0.000 claims abstract description 57
- 238000003860 storage Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 29
- 238000003475 lamination Methods 0.000 claims description 24
- 230000017105 transposition Effects 0.000 claims description 16
- 238000005520 cutting process Methods 0.000 claims description 13
- 238000006073 displacement reaction Methods 0.000 claims description 10
- 210000005036 nerve Anatomy 0.000 claims description 6
- 238000012549 training Methods 0.000 description 25
- 238000013527 convolutional neural network Methods 0.000 description 19
- 230000006399 behavior Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000005070 sampling Methods 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000001052 transient effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000001537 neural effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000004218 nerve net Anatomy 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000011469 building brick Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
- 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/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
一种被配置为执行解卷积操作的神经网络装置,包括:存储器,被配置为存储第一内核;以及处理器,被配置为:从所述存储器获取所述第一内核;通过调整包括在所述第一内核中的矩阵元素的排列来计算第二内核;通过划分第二内核来生成子内核;使用卷积运算符来执行输入特征映射与子内核之间的卷积操作;并且通过合并卷积操作的结果来生成输出特征映射作为输入特征映射的解卷积。
Description
相关申请的交叉引用
本申请要求于2017年11月7日在韩国知识产权局提交的韩国专利申请No.10-2017-0147617的权益,该申请的公开内容通过引用全部并入本文中。
技术领域
本公开涉及具有执行解卷积的神经网络的方法和装置。
背景技术
特征提取、模式识别和/或分析的技术自动化(仅作为示例)已经通过处理器实现的神经网络模型实现为专业化计算架构,其在实质性训练之后可以提供计算上直观的特征提取或识别、输入模式与输出模式之间的映射、输入模式的模式识别或各种形式的分类。提取这种信息或识别、生成这样的映射、执行这样的模式识别或执行这样的分类的训练的能力可以称为神经网络的学习能力。这种训练的能力还可以使专业化计算架构能够将输入模式或对象、或输入模式或对象的部分例如分类为属于一个或多个预定组的成员。此外,由于专门的训练,例如这种特殊训练的神经网络因此可以具有生成关于输入模式的相对准确或可靠的输出的泛化能力,而这可能是神经网络尚未被训练的。然而,由于这些操作是通过这样的专业化计算架构执行的,并且采用与以非计算机实现或非自动化方法执行这些操作不同的自动化方式,因此这些操作也会引起问题或缺陷,这些问题或缺点仅因为其正在实施自动化和专业化计算架构方式而出现。
因此,被配置为处理这种神经网络的装置需要针对复杂的输入数据执行大量的操作,这可能需要大功率消耗并且需要长的处理时间。
发明内容
提供了本发明内容以介绍下面在具体实施方式中进一步描述的对简化形式的理念的选择。本发明内容不意在确认所请求保护的主题的关键特征或基本特征,也不意在用作帮助确定所请求保护的主题的范围。
在一个总体方面,提供了一种装置,该装置包括:存储器,被配置为存储第一内核;以及处理器,被配置为:从存储器获取第一内核;通过调整包括在第一内核中的矩阵元素的排列来计算第二内核;通过划分第二内核来生成子内核;使用卷积运算符来执行输入特征映射与子内核之间的卷积操作;并且通过合并卷积操作的结果来生成输出特征映射作为输入特征映射的解卷积。
处理器还可以被配置为:从存储器中获取步幅的信息,并且通过基于步幅的信息划分第二内核来生成子内核。
处理器可以进一步被配置为将第二内核划分为子内核,并且子内核的数目对应于通过将步幅的值平方而获得的值。
处理器还可以被配置为:通过执行转置操作来调整包括在第一内核中的矩阵元素的排列,并且通过执行分割操作来划分第二内核。
包括在每个相应的子内核中的矩阵元素对应于按步幅的值分开的包括在第二内核中的矩阵元素。
处理器可以被配置为使用卷积运算符在神经网络的解卷积层中执行卷积操作,其中,神经网络还可以包括卷积层和完全连接层,卷积层使用卷积运算符来执行对应的卷积操作。
处理器可以进一步被配置为使用卷积运算符来实施对应的卷积操作以用于生成输入特征映射。
处理器还可以被配置为:通过将子内核中的每一个相对于输入特征映射移位来执行子内核与输入特征映射之间的卷积操作,并行地处理子内核,并且通过合并子内核的并行处理的结果来生成输出特征映射。
在另一总体方面,提供了一种神经网络装置,该装置包括:存储器,被配置为存储子内核;以及处理器,被配置为:从存储器获取子内核;使用卷积运算符来执行输入特征映射与子内核之间的卷积操作,并且通过合并卷积操作的结果来生成输出特征映射作为输入特征映射的解卷积,其中,从存储器获得的子内核是通过调整包括在初始内核中的矩阵元素的排列并划分调整后的初始内核而生成的。
可以基于存储在存储器中的步幅值来确定从初始内核划分的子内核的数目。
子内核的数目对应于通过对步幅值平方而获得的值。
通过执行转置操作调整包括在初始内核中的矩阵元素的排列并通过执行分割操作划分调整后的初始内核,生成子内核。
包括在每个相应的子内核中的矩阵元素对应于按步幅的值分开的包括在初始内核中的矩阵元素。
处理器可以被配置为使用卷积运算符在神经网络的解卷积层中执行所述卷积操作,其中,神经网络还可以包括卷积层和完全连接层,卷积层使用卷积运算符来执行对应的卷积操作。
处理器还可以被配置为:通过将子内核中的每一个相对于输入特征映射移位来执行子内核与输入特征映射之间的卷积操作,并行地处理子内核,并且通过合并子内核的并行处理的结果来生成输出特征映射。
在另一总体方面,提供了一种处理器实现的神经网络方法,方法包括:从存储器获得第一内核;通过调整包括在第一内核中的矩阵元素的排列来计算第二内核;通过划分第二内核来生成子内核;使用卷积运算符来执行输入特征映射与子内核之间的卷积操作;以及通过合并卷积操作的结果来生成输出特征映射作为输入特征映射的解卷积。
生成子内核可以包括通过基于步幅的信息划分第二内核来生成子内核。
第二内核可以被划分为子内核,并且子内核的数目对应于通过将步幅的值平方而获得的值。
第二内核的计算可以包括通过执行转置操作来调整包含在第一内核中的矩阵元素的排列,并且子内核的生成可以包括通过执行分割操作来划分第二内核。
该方法可以还可以包括:使用卷积运算符在神经网络的解卷积层中执行卷积操作,其中,神经网络还可以包括卷积层和完全连接层,卷积层使用卷积运算符来执行对应的卷积操作。
输出特征映射的生成可以包括:通过将子内核中的每一个相对于输入特征映射移位来执行子内核与输入特征映射之间的卷积操作,以并行地处理子内核;以及通过合并子内核的并行处理的结果来生成输出特征映射。
一种存储指令的非暂态计算机可读存储介质,指令在由处理器执行时使处理器执行方法。
卷积运算符可以是乘法累加(MAC)运算符。
在另一总体方面,提供了一种处理器实现的神经网络方法,该方法包括:获得输入特征映射和第一内核;通过调整包括在第一内核中的矩阵元素的排列来生成第二内核;将第二内核划分为子内核;执行输入特征映射与子内核中的每一个之间的卷积操作;以及通过合并卷积操作的结果来生成输出特征映射作为输入特征映射的解卷积。
包括在每个相应的子内核中的矩阵元素对应于卷积操作的步幅的值分开的包括在第二内核中的矩阵元素。
与输入特征映射和所述子内核中的子内核之间的卷积操作的结果对应的输出特征映射的矩阵元素按卷积操作的步幅分开。
该方法还可以包括:获得输入图像映射;通过使用输入图像映射执行卷积操作来生成输入特征映射;基于所生成的输入特征映射来对输入图像映射的对象进行分类;以及基于输出特征映射来确定经分类对象的位置和边界中的任一个或两个。
附图说明
通过以下结合附图对实施例的描述,这些和/或其他方面将变得显而易见并且更容易理解,在附图中:
图1是用于描述根据实施例的神经网络的架构的图;
图2是用于描述根据实施例的神经网络中的输入特征映射和输出特征映射之间的关系的图;
图3是用于描述根据实施例的卷积网络和解卷积网络的架构的图;
图4是用于描述根据实施例的卷积操作和解卷积操作的图;
图5是用于描述根据实施例的使用卷积运算符执行解卷积操作的方法的图;
图6是用于描述根据实施例在解卷积层中执行的转置操作和分割操作的示例的图;
图7是用于描述根据实施例在解卷积层中执行卷积操作的示例的图;
图8是用于描述根据实施例针对解卷积层中的每个子核并行执行卷积操作的示例的图;
图9是根据实施例的神经网络装置的硬件组件的框图;
图10是根据实施例的经由神经网络装置执行解卷积操作的方法的流程图;以及
图11是示出了被配置为实现神经网络推理操作的电子系统或设备的示例的图。
具体实施方式
提供以下详细描述以帮助读者获得对本文描述的方法、装置和/或系统的全面理解。然而,在理解了本申请的公开之后,本文描述的方法、装置和/或系统的各种改变、修改和等同物将是显而易见的。例如,本文描述的操作顺序仅仅是示例,并且不限于本文阐述的操作顺序,而是可以在理解本申请的公开内容后明显改变,除了必须以特定顺序发生的操作之外。此外,为了更加清楚和简洁,可以省略已知特征的描述。
本文描述的特征可以不同的形式实施,并且不被解释为限于本文描述的示例。相反,提供本文描述的示例仅是为了说明实施本文描述的方法、装置和/或系统的许多可能方式中的一些,这在理解了本申请的公开内容后将会显而易见。
在本说明书的各个位置中描述的表述(诸如“在一些实施例中”或“根据实施例”)不一定指代同一实施例。
可以根据功能块组件和各种处理步骤来描述本公开的一些实施例。这些功能块的一部分或全部可以由配置为执行指定功能的任何数目的硬件和/或硬件组件来实现。例如,这样的功能块的一部分或全部可以由配置为执行存储在非暂态计算机可读介质上的指令的一个或多个处理器来实现。作为另一示例,本公开的功能块可以采用在一个或多个微处理器的控制下执行各种功能的各种集成电路组件。而且,例如,本公开的功能块可以用任何编程或脚本语言来实现。功能块可以被实现为在一个或多个处理器上执行的算法。此外,本公开可以采用用于电子配置、信号处理和/或控制、数据处理等的任何数目的技术。
所呈现的各种附图中示出的连接线或连接器意在表示各种元件之间的示例性功能关系和/或物理或逻辑耦接。应该注意的是,在实际装置中可以存在许多替代的或者附加的功能关系、物理连接或逻辑连接。
在下文中,将通过参照附图描述本公开。
图1是用于描述根据实施例的神经网络1的架构的图。
参照图1,神经网络1可以具有深度神经网络(DNN)的架构或者n层神经网络的架构。DNN或n层神经网络可以对应于卷积神经网络(CNN)、递归神经网络(RNN)、深度信念网络、受限的玻耳兹曼机等。例如,神经网络1可以被实现为CNN。然而,神经网络1不限于此。作为图1所示的神经网络1的示例的CNN除了卷积层之外还可以包括子采样层、池化(pooling)层、完全连接层等。
例如,在本公开中,装置可以被描述为实施CNN,例如基于使用先前训练的参数和/或卷积和/或解卷积的卷积和/或解卷积,或者基于先前训练的参数而选择性地执行以用于本文公开的这种卷积和/或解卷积的卷积操作,然而实施例不仅仅限于这种执行这种卷积/解卷积和/或选择性卷积/解卷积操作的装置,而是实施例还包括也被配置为如下所述训练CNN的这种装置以及/或者实施例在示例检测、识别、拒绝、验证、分类或CNN的各层或整体被训练执行的其他这样“解释性”操作或目标中使用训练的CNN和/或选择性实施的CNN。在本文中,还注意到,关于示例或实施例(例如,关于示例或实施例可以包括或实现什么)的术语“可以”的使用意味着存在至少一个示例或实施例,其中这样的特征是被包括或实现的,而所有示例和实施例不限于此。
参考图1,神经网络装置可以获取与包括在神经网络中的一个或多个层对应的训练参数,例如,本文讨论的可以被配置为执行解卷积或卷积和解卷积的CNN类型的神经网络,应注意,该实施例不限于此。例如,神经网络装置可以从存储器或通过外部请求或提供来获取参数,例如,在神经网络装置的神经网络训练期间由神经网络装置确定的参数。另外,神经网络装置可以从所提供的内核、内核元素和/或其它连接权重向量、矩阵或多个矩阵或其它格式内核、内核元素和/或表示训练神经网络的一些或全部训练内核和/或加权连接的其它连接权重来获取参数。作为对例如由其他处理装置或服务器训练神经网络的结果,神经网络装置还可以被提供或可用内核、内核元素和/或其它连接权重矢量、矩阵或多个矩阵或其他格式内核、内核元素和/或连接权重。神经网络装置代表一个或多个处理器以及一个或多个非暂态存储器例如用于存储这样的参数,以在神经网络的卷积/解卷积和/或选择性卷积/解卷积操作期间和之后使用,并且用于存储指令,所述指令例如在由一个或多个处理器执行时使得一个或多个处理器实现本文描述的一个或多个或全部操作。
神经网络包括多个层,并且每个层包括多个节点。例如,可以有输入层、至少一个隐藏层和输出层。取决于神经网络的架构,包括在相邻层中的节点可以根据例如可以被加权或不被加权的各连接而选择性连接。例如,神经网络可以由处理器(即,一个或多个处理器)来实现,处理器被配置为生成具有这样的多个层的神经网络结构/架构,每个层包括多个节点,并且被配置为:在神经网络结构的相邻层中的相邻节点之间应用这样的示例加权连接,以及/或者在层内应用这样的示例内核或加权连接,以解释应用于神经网络结构的输入数据。仅作为示例,此处输入数据的这种“解释”可以包括执行的检测、识别、验证或拒绝,诸如图像识别或验证、翻译或拒绝或输入数据二元(binary)或多类分类、聚类(clustering)、模式观察、变换和/或回归以及神经网络的任何其他训练目标。因此,作为非限制性示例,在不同的实施例中,神经网络可以被训练用于图像或对象检测、识别、标识、拒绝或区分。因此,基于训练数据和所需的解释目标,在训练期间可以改变架构、相邻节点和/或内核、内核元素之间的选择性连接或层内的其他连接,直到神经网络被训练到所需解释目标的期望的可接受性。例如,在神经网络被训练用于图像或对象检测、识别、验证或拒绝的示例中,神经网络可以包括卷积层或者代表CNN,并且因此例如用于改变通过特征内核的特征提取的各卷积内核元素可以被训练到图像或对象检测、识别、验证或拒绝操作的原始期望的可接受性。神经网络也可以是不同类型的神经网络,并且出于其他目的而仅包括一个或多个卷积和/或解卷积层,例如用于选择性特征提取。因此,在本文中,尽管可以从神经网络装置的角度来讨论实施例,但是这种对CNN的引用并非旨在限制为仅用于实现CNN的装置或甚至以实现CNN。返回到神经网络的训练,得到的训练神经网络的内核、内核元素和/或其他连接权重可以称为神经网络的参数,例如,被展示为CNN的卷积层和/或解卷积层或操作的至少经训练的内核元素。例如,可以基于标记的输入图像信息或期望的相应输出图像、分类或几何参数(例如通过反向传播算法)来训练神经网络。在训练中,例如,可以递归地调整不同隐藏层的节点之间的示例连接权重,直到相应的神经网络模型被训练为具有期望的准确率或低于最大错误率。类似地,在训练期间,可以在递归调整中调整各个层内的节点之间的示例内核、内核元素或连接权重。例如,分别训练的神经网络可以被存储在训练装置和/或识别装置的存储器中。在示例中,训练神经网络可以被存储在训练矢量、矩阵或多个矩阵或其他格式中,例如,其中矢量、矩阵或其他格式的元素表示或建议对应神经网络结构的相应训练参数,例如,训练的内核、内核元素和/或其他加权连接。存储的训练神经网络还可以包括:超参数信息,其可以定义示例存储的训练参数所对应的对应神经网络的特定结构或架构。超参数可以定义输入和输出层的架构或结构以及存在多少隐藏层和各隐藏层的功能和结构/架构,例如相应的排列,并且其仅作为示例是完全连接层、递归层、卷积层、解卷积层或池化层。超参数还可以包括关于神经网络中的任何偏置和/或上下文节点的配置和值、节点的相应激活函数(function)、节点的类型(诸如长短期存储器节点、门控线性单元节点或者仅仅被配置为执行用于输入的求和的单个激活函数的节点)的信息,并且超参数可以定义神经网络的任何或任何其他递归结构,该递归结构可以取决于所训练神经网络的实施例和解释目标而变化。
因此,如图所示,神经网络1可以实现为具有包括输入图像层、特征映射生成层和输出层的多个层的架构。在神经网络1中,执行输入图像与被称为内核的滤波器之间的卷积操作,并且作为卷积操作的结果,输出特征映射(或激活映射或经卷积的特征)。这里,输出的特征映射是输入特征映射,输出的特征映射和内核之间的卷积操作再次执行,结果输出新的特征映射。基于这种重复执行的卷积操作,最终可以输出经由神经网络1识别输入图像的特性的结果。
例如,当在图1的神经网络1中输入具有24×24个像素大小的图像时,输入图像可以经由输入图像与内核之间的卷积操作而输出为具有20×20大小的4个通道的特征映射。而且,可以经由子采样处理,通过仅使用具有20×20大小的4个通道的特征映射的一个或多个像素值,来输出具有10×10大小的4个通道的特征映射。用于子采样的方法可以包括最大池化、平均池化等。
接下来,可以经由特征映射与内核之间的重复卷积操作以及重复子采样操作,来减小具有10×10大小的特征映射的大小。因此,最终可以输出输入图像的全局特性。在神经网络1中,可以在多个层中重复地执行卷积操作和子采样(或池化或下采样),因此可以从图像滤波出可以表示总体图像的鲁棒特性并可以输出该鲁棒特性。而且,可以在完全连接层中输入该输出的全局特性,以便最终导出输入图像的识别结果。
图2是用于描述根据实施例的神经网络1中的输入特征映射和输出特征映射之间的关系的图。
参考图2,关于神经网络1中的层2,第一特征映射FM1可以对应于输入特征映射,并且第二特征映射FM2可以对应于输出特征映射。特征映射可以意指表示输入数据的各种特性的数据集。第一特征映射FM1和第二特征映射FM2可以具有二维矩阵的元素或三维矩阵的元素,并且可以在二维矩阵的元素和三维矩阵的元素的每个元素中定义像素值。第一特征映射FM1和第二特征映射FM2可以具有宽度W(也称为列)、高度H(也称为行)和深度D。这里,深度D可以对应于通道的数目。
因此,层2可以执行第一特征映射FM1与内核之间的卷积操作,结果,可以生成第二特征映射FM2。内核是在二维矩阵的元素或三维矩阵的元素中定义的权重,并且当执行第一特征映射FM1与内核之间的卷积操作时,第一特征映射FM1的特性可以被滤波。内核基于滑动窗口技术来将第一特征映射FM1移位,以在内核与第一特征映射FM1的窗口(也被称为瓦片(tile))之间执行卷积操作。在每次移位期间,包括在内核中的每个权重可以与第一特征映射FM1中彼此交叠的窗口的每个像素值相乘或相加。步幅可以对应于内核在移位之间滑动的像素的数目。当执行第一特征映射FM1与内核之间的卷积操作时,可以生成第二特征映射FM2的通道。图1示出了一个内核。然而,可以在多个内核中的每一个与第一特征映射FM1之间执行卷积操作,使得可以生成具有多个通道的第二特征映射。
因此,第二特征映射FM2也可以对应于神经网络1的下一层的输入特征映射。例如,第二特征映射FM2可以是池化层(或者子采样层)的输入特征映射。
为了便于解释,图1和图2仅示出了神经网络1的示意性架构。但是,应该理解的是,不同于图1和图2的图示,在变化的示例中,神经网络1可以实现为比图1和图2的图示具有更多或更少的层、特征映射、内核等,并且包括各种大小的层、特征映射、内核等,可以以各种方式修改。
图3是用于描述根据实施例的卷积网络31和解卷积网络32的架构的图。
与对图像中包括的有限数目的对象进行分类的技术或者图像中的对象被识别并且包括该对象的区域被指示为边界框以便检测对象的技术不同,语义分割或场景分割是用于精确地识别包括在图像中的特定对象的边界的技术。也就是说,语义分割试图将图像划分为语义上有意义的部分,并将这些部分分类为多个类。语义分割是不仅用于识别图像中的内容还用于精确地清晰化图像中的对象的位置的技术。
在卷积网络31中,在卷积层、子采样层和完全连接层的多个操作中执行操作,并且因此特征映射的大小逐渐减小。因此,通过这样的操作,在卷积网络31中生成的输出特征映射可能丢失包括在输入图像映射中的位置信息(或空间信息)。为了执行语义分割,通过将在卷积网络中生成的输出特征映射输入到解卷积网络32中,可以再次增大特征映射的大小,使得可以恢复诸如位置信息等的详细信息。
参照图3,神经网络可以包括卷积网络31和解卷积网络32,并且语义分割经由卷积网络31和解卷积网络32来执行。
可以在卷积网络31中输入具有1216×352个像素的大小的图像30a。在卷积网络31中输入的具有1216×352个像素的大小的图像30a可以从卷积网络31被输出为具有38×11个像素的大小的特征映射,图像30a通过卷积层、池化(或子采样)层和/或完全连接层的多个操作而减小32倍。输入图像30a的特性(例如包括在输入图像30a中的对象的形式和分类)可以通过使用最终在卷积网络31中输出的具有大小为38×11个像素的特征映射来提取。然而,由于输出特征映射的大小小于输入图像30a,所以在输入图像30a的映射中包括的位置信息等可能在输出特征映射中丢失。
卷积网络31的具有大小为38×11个像素的输出特征映射可以输入到解卷积网络32中。输入到解卷积网络32中的具有大小为38×11个像素的输入特征映射可以输出为具有大小为1216×352个像素的输出特征映射30b,该输入特征映射通过解卷积层、去池化(unpooling)层等的多个步骤增大32倍。最终在解卷积网络32中生成的输出特征映射30b可以具有与输入图像30a相同大小的像素,并且输出特征映射30b由此可以被导致为包括输入图像30a的位置信息。因此,可以通过使用输出特征映射30b来执行语义分割。
图4是用于描述根据实施例的卷积操作和解卷积操作的图。
参照图4,卷积操作执行如下。随着具有包括权重值的矩阵形式的内核(或滤波器)通过使用滑动窗口方法来将输入特征映射移位,执行内核(或滤波器)与输入特征映射的窗口之间的卷积操作。具体而言,在卷积操作中,执行输入特征映射和内核之间的逐元素乘法,然后执行逐元素级的结果之间的求和。作为执行输入特征映射和内核之间的卷积操作的结果,生成输出特征映射。
在解卷积操作中,执行输入特征映射和内核之间的标量-矩阵乘法,然后可以执行基于步幅距离而移位的标量-矩阵乘法的结果之间的元素大小的求和。作为执行输入特征映射和内核之间的卷积操作的结果,生成输出特征映射。
使用乘法器和累加器的乘法累加(MAC)操作主要考虑在包括卷积网络和解卷积网络的神经网络中执行的相应操作。而且,这种MAC操作的处理花费最大。在卷积网络中,在MAC操作中包括的卷积操作通过使用卷积运算符来执行。然而,卷积操作的模式和解卷积操作的模式彼此不同,因此,使用如在卷积网络中使用的卷积运算符,在解卷积网络中不能执行典型的操作。
当使用包括卷积网络和解卷积网络的神经网络来执行语义分割时,所有MAC操作中的一半可能出现在卷积网络中,而另一半可能出现在解卷积网络中。因此,为了降低操作成本,发现需要一种实现方法,其中不仅卷积操作还有解卷积操作都可以通过使用卷积运算符来执行。
根据这里公开的解卷积方法,处理内核使得解卷积操作的模式变得类似于卷积操作的模式。因此,可以使用卷积运算符来执行解卷积网络的操作。通过使用卷积运算符不仅执行卷积网络的操作还执行解卷积网络的操作,这里公开的解卷积方法提高了处理效率,提高了处理速度,并因此降低了操作成本,并且提高了可以实现有该方法的计算装置和/或处理器的效率。因此,本公开改进了其中卷积运算符执行卷积操作而不执行解卷积操作的现有计算装置和/或计算机功能。这种现有的计算机功能包括图像检测、识别和/或分类,例如机器视觉。
图5是用于描述根据实施例的使用卷积运算符执行解卷积操作的方法的图。
参考图5,神经网络装置可以获得输入特征映射510和第一内核520(或初始内核),其中,输入特征映射510和第一内核520将在神经网络的解卷积层中被处理。例如,输入特征映射510和第一内核520可以是具有4×4大小的矩阵形式的数据。
神经网络装置可以通过调整包括在第一内核520中的矩阵元素的排列来计算第二内核530。神经网络装置可以通过执行转置操作来调整包括在第一内核520中的矩阵元素的排列。根据一个实施例,神经网络装置可以通过执行转置操作将第一内核520以顺时针方向旋转180度来计算第二内核530。
神经网络装置可以通过划分第二内核530来生成子内核540。神经网络装置可以通过执行分割操作来划分第二内核530。神经网络装置可以通过基于步幅值划分第二内核530来生成子内核540。根据实施例,神经网络装置可以将第二内核530划分为子内核540,子内核540的数目对应于通过将步幅值(例如,2)进行平方而获得的值。
神经网络装置可以使用卷积运算符来执行输入特征映射510和子内核540之间的卷积操作。神经网络装置不仅可以使用卷积运算符执行在卷积层和完全连接层中的卷积操作,还可以执行解卷积层中的操作。
神经网络装置可以通过合并卷积操作的结果来生成输出特征映射。基于图5中描述的方法在解卷积层中生成的输出特征映射可以与基于图4中描述的解卷积操作生成的输出特征映射相同。
根据一个实施例,神经网络装置可以基于网络配置信息(诸如内核的大小、步幅值等)将填充和/或剪裁应用于输入特征映射和输出特征映射。填充是添加虚拟数据的方法,添加数量对应于在输入特征映射和输出特征映射中预先设置的参数值,其中“0(零)”可以被用作虚拟数据。另外,裁剪是填充的反向方法,其中输入特征映射和输出特征映射的特定区域被切割。
转置操作和分割操作可以在编译步骤中执行,并且神经网络装置可以从存储器获得子内核540的数据,其中,可以通过调整包括在每个初始内核中的矩阵元素的排列并划分调整后的初始内核来生成子内核540。
图6是用于描述根据实施例在解卷积层中执行的转置操作和分割操作的示例的图。
参考图6,神经网络装置可以从存储器获得要在解卷积层中处理的第一内核610(或初始内核)。神经网络装置可以处理第一内核610以便使用卷积运算符来执行解卷积操作。神经网络装置可以通过调整包括在第一内核610中的矩阵元素的排列来计算第二内核620。根据实施例,神经网络装置可以通过针对第一内核610执行转置操作来计算第二内核620。例如,这种计算的结果可以临时存储在存储器中,或存储在本地存储器中。这种转置操作也可以在更早的时间执行,并且仅与内核一起存储在存储器中。
例如,当第一内核610是具有4x4大小的矩阵[aa ab ac ad;ba bb bc bd;ca cbcc cd;da db dc dd]时,神经网络可以通过针对第一内核610执行转置操作来计算作为具有4x4大小的第二内核620的矩阵[dd dc db da;cd cc cb ca;bd bc bb ba;ad ac abaa]。也就是说,第二内核620可以是通过将第一内核610在顺时针方向上旋转180度而生成的矩阵。然而,计算第二内核620的方法不限于此。
而且,神经网络装置可以通过划分计算出的第二内核620来生成子内核631、632、633和634。根据一个实施例,神经网络装置可以通过执行分割操作划分第二内核620来生成子内核631、632、633和634。与以上类似,可以生成这样的子内核并将其存储在存储器或本地存储器中。例如,当针对每个子内核执行卷积操作时,可以从本地存储器中读取子内核连同对应输入特征映射的相关的和选定的元素,以生成结果输出特征映射到示例本地存储器中。
例如,当步幅值为2时,神经网络装置可以选择“ac”作为子内核631的元素,“ac”是在纵向方向上离开“aa”(参考)两个间隔的元素(4,2),其中,“aa”是第二内核620的元素(4,4)。基于相同的方法,神经网络装置可以选择“ca”和“cc”作为子内核631的元素,“ca”是在横向方向上与“aa”相距两个间隔的元素(2,4),“cc”是在对角线方向上与“aa”相距两个间隔的元素(2,2)。也就是说,子内核631可以变成矩阵[cc ca;ac aa]。之后,子内核632、633和634可以分别基于参考“ab”、“ba”和“bb”而依次生成,“ab”、“ba”和“bb”是在第二内核620中未被选择的元素(4,3),(3,4)和(3,3)。
不管内核的大小如何,神经网络装置可以基于步幅值来确定第二内核620将被划分为多少个子内核。根据实施例,神经网络装置可以将第二内核620划分为子内核,子内核的数目对应于通过将步幅值(例如,2)进行平方而获得的值。例如,如图6所示,当步幅值为2时,划分的子内核631、632、633和634的数目可以是4(=22)。
根据另一实施例,在基于步幅值将第二内核620划分为多个子内核的过程中,第二内核620的元素的数目可能不足。例如,当步幅值为3时,被划分的子内核的数目为9(=32),并且生成9个子内核所需的元素的数目为36(=4(矩阵元素的数目)×9(子内核的数目))。由于第二内核620的元素的数目为16,因此缺少生成9个子内核所需的20个元素。根据一个实施例,可以在缺少的20个元素中填充某个值。例如,可以在缺少的20个元素中填充“0”,以便最终生成9个子内核(36个元素)。
图7是用于说明根据实施例在解卷积层中执行卷积操作的示例的图。
参考图7,神经网络装置可以从存储器获得要在解卷积层中处理的第一内核和输入特征映射610。卷积操作的模式和解卷积操作的模式彼此不同,因此可能必须首先处理第一内核,以便在解卷积层中使用卷积运算符。特征映射可以在卷积操作期间被存储在存储器或本地存储器中。
神经网络装置可以通过针对第一内核执行转置操作来调整第一内核中包括的矩阵元素的排列,从而计算第二内核720。而且,神经网络装置可以通过针对第二内核720执行分割操作来将第二内核720划分为子内核721、722、723和724。
神经网络装置可以通过使用滑动窗口方法将子内核721、722、723和724移位,执行输入特征映射710和窗口之间的卷积操作。神经网络装置可以执行一个窗口与多个子内核721、722、723和724之间的卷积操作以及后续窗口与多个子内核721、722、723和724之间的卷积操作。然而,执行卷积操作的方法不限于此。
根据实施例,神经网络装置可以执行第一特征映射710的第一窗口711与第一子内核721之间的卷积操作。例如,当第一窗口711的元素是[AA AB;BA BB]并且第一子内核721的元素是[cc ca;ac aa]时,作为执行第一窗口711与第一子内核721之间的卷积操作的结果,计算“AA×cc+AB×ca+BA×ac+Bb×aa”的值。此外,神经网络装置可以执行第一窗口711和第二子内核722之间的卷积操作,并且作为执行第一窗口711和第二子内核722之间的卷积操作的结果,计算“AA×cd+AB×cb+BA×ad+Bb×ab”的值。神经网络装置可以使用该方法来执行剩余的子内核723和724与第一窗口711之间的卷积操作。
在针对第一窗口711执行卷积操作之后,神经网络装置可以通过使用滑动窗口方法来执行第二窗口712和子内核721、722、723和724之间的卷积操作。例如,作为执行第二窗口712与第一子内核721之间的卷积操作的结果,产生“AB×cc+AC×ca+BB×ac+BC×aa”的值。
神经网络装置可以通过合并作为执行输入特征映射710的窗口和子内核721、722、723和724之间的卷积操作的结果而生成的值来生成输出特征映射730。
神经网络装置可以通过将执行一个子内核和一个窗口之间的卷积操作的结果与输出特征映射730的一个矩阵元素配对,来合并卷积操作的结果。
根据实施例,通过执行第一子内核721至第四子内核724与一个窗口之间的卷积操作来计算4个值。神经网络装置可以使用计算出的4个值形成2×2矩阵,并且可以将形成的2×2矩阵与输出特征映射730的矩阵元素配对。
例如,输出特征映射730的元素(1,1)、(1,2)、(2,1)和(2,2)可以分别对应于第一窗口711与第一子内核721至第四子内核724之间的卷积操作的结果。例如,输出特征映射730的元素(1,3)、(1,4)、(2,3)和(2,4)可以分别对应于第二窗口712与第一子内核721至第四子内核724之间的卷积操作的结果。例如,输出特征映射730的元素(3,1)、(3,2)、(4,1)和(4,2)可以分别对应于第三窗口713与第一子内核721至第四子内核724之间的卷积操作的结果。然而,合并卷积操作的结果的方法不限于此。
根据实施例,所生成的输出特征映射730可以用作要在下一解卷积层中处理的输入特征映射。
图8是用于描述根据实施例针对解卷积层中的每个子内核并行执行卷积操作的示例的图。
参考图8,神经网络装置可以使用执行输入特征映射810的多个窗口与一个子内核之间的卷积操作的方法,而不是执行一个窗口和多个子内核之间的卷积操作的方法。也就是说,神经网络装置可以通过将子内核相对于输入特征映射810移位来执行子内核与输入特征映射810之间的卷积操作,以并行地处理卷积操作。
根据实施例,神经网络装置可以如下生成第一中间特征映射831:通过将第一子内核821相对于输入特征映射810移位,执行第一子内核821与输入特征映射810的多个窗口之间的卷积操作。基于相同方法,神经网络装置可以通过执行输入特征映射810的多个窗口与第二子内核822至第四子内核824之间的卷积操作,来生成第二中间特征映射832至第四中间特征映射834。
例如,执行输入特征映射810的第一窗口811与第一子内核821之间的卷积操作的结果可以对应于第一中间特征映射831的元素(1,1),并且执行第二窗口812和第一子内核821之间的卷积操作的结果可以对应于第一中间特征映射831的元素(1,2)。
而且,神经网络装置可以通过并行执行子内核与输入特征映射810之间的卷积操作来生成中间特征映射。神经网络装置可以通过合并所生成的多个中间特征映射来生成输出特征映射840。
根据实施例,神经网络装置可以基于输入特征映射810的矩阵的大小和中间特征映射的数目来合并中间特征映射。例如,神经网络装置可以将第一中间特征映射831的矩阵元素应用为输出特征映射840的元素(2a-1,2b-1)的值,可以将第二中间特征映射832的矩阵元素应用为输出特征映射840的元素(2a-1,2b)的值,可以将第三中间特征映射833的矩阵元素应用为输出特征映射840的元素(2a,2b-1)的值,并且可以将第四中间特征映射834的矩阵元素应用为输出特征映射840的元素(2a,2b)的值(这里,1≤a≤4(输入特征映射810的行数),1≤b≤4(输入特征映射810的列数))。也就是说,第一中间特征映射831到第四中间特征映射834的元素(1,1)可以对应于输出特征映射840的元素841,并且第一中间特征映射831到第四中间特征映射834的元素(1,2)可以对应于输出特征映射840的元素842。
然而,合并作为并行执行卷积操作的结果而生成的中间特征映射的方法不限于此。
图9是神经网络装置90的硬件组件的框图。
神经网络装置90可以被实现为各种类型的装置,诸如个人计算机(PC)、服务器、移动设备、嵌入式设备等。例如,神经网络装置90可以包括智能手机、平板设备、增强现实(AR)设备、物联网(IoT)设备、自主车辆、机器人设备、医疗设备等,其通过使用神经网络执行语音识别、图像识别、图像分类等,但不限于此。此外,神经网络装置90可以包括专门配备于上述装置中的硬件(HW)加速器、作为被配置为驱动神经网络的专用模块的神经处理单元(NPU)或张量处理单元(TPU),或HW加速器(例如,神经引擎),但不限于此。
参照图9,神经网络装置90可以包括处理器910和存储器920。图9示出了包括与本实施例相关的组件的神经网络装置90。因此,显而易见的是,除了图9所示的组件之外,神经网络装置90还可以包括其他组件。
处理器910可以控制用于执行神经网络装置90的一般功能。例如,处理器910通常可以通过执行存储在神经网络装置90中的存储器920中的程序来控制神经网络装置90。处理器910可以被实现为包括在神经网络装置90中的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)等,但是不限于此。
存储器920是存储在神经网络装置90中处理的各种数据的硬件。例如,存储器920可以存储在神经网络装置90中处理的或要处理的数据。而且,存储器920可以存储要由神经网络装置90驱动的应用程序、驱动器等。存储器920可以包括随机存取存储器(RAM)、例如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM,蓝光或其他光盘储存器、硬盘驱动器(HDD)、固态驱动器(SSD)或闪存。
处理器910可以从存储器920读取/向存储器920写入神经网络数据(例如,图像数据、特征映射数据、内核数据等),并且通过使用读取数据/写入数据来执行神经网络。当执行神经网络时,处理器910可以重复执行输入特征映射和内核之间的卷积操作,以便生成关于输出特征映射的数据。这里,可以取决于诸如输入特征映射的通道的数目、内核的通道的数目、输入特征映射的大小、内核的大小、值的精确度等各种因素来确定卷积操作的操作次数。与图1的神经网络1不同,在神经网络装置90中被实际驱动的神经网络可以实现为更复杂的架构。因此,处理器910以高达数十亿至数百亿或更大的操作量来执行卷积操作,并且为了卷积操作,处理器910访问存储器920的频率迅速增大。由于这种操作量负担,所以当使用卷积运算符执行典型的卷积操作并且使用解卷积运算符执行解卷积操作时,在诸如智能手机、平板设备、可穿戴装置等处理性能相对较低的移动装置中,可能无法平稳地执行实现典型的神经网络。
同时,神经网络中的内核可以具有浮点型权重或固定点型权重,或者可以对应于二元权重内核或三元权重内核。也就是说,神经网络中的内核可以通过考虑各种因素,诸如神经网络的使用目的、设备性能等,以各种方式来定义。
与典型的神经网络实现不同,处理器910可以使用卷积运算符来驱动卷积网络和解卷积网络。当使用包括卷积网络和解卷积网络的神经网络来执行语义分割时,所有MAC操作中的一半可能出现在卷积网络中,而另一半可能出现在解卷积网络中。例如,一种用于使用卷积运算符不仅执行卷积操作还执行解卷积操作的实现方法,带来比传统方法降低的操作成本,这是现已发现可获得且因此所期望的。
处理器910可以使用卷积运算符在卷积网络中执行卷积操作(或者MAC操作)。然而,卷积操作的模式和解卷积操作的模式彼此不同,因此必须要不同地处理将用于解卷积网络中的内核,以便使用该卷积运算符来执行解卷积网络中的操作。
处理器910可以从存储器920获得要在解卷积层中处理的图像数据、特征映射数据和第一内核(或初始内核)数据。
根据实施例,为了使用卷积运算符来执行操作,处理器910可以处理第一内核数据。处理器910可以通过调整包括在每个第一内核中的矩阵元素的排列来计算第二内核,然后可以通过划分每个第二内核来生成子内核。之后,处理器910可以使用卷积运算符来执行特征映射与子内核之间的卷积操作。而且,处理器910可以通过合并卷积操作的结果来生成输出特征映射。
根据另一实施例,可以在编译步骤中执行内核的处理。也就是说,处理器910可以从存储器920获得子内核的数据。可以通过调整包括在每个初始内核中的矩阵元素的排列并划分调整后的初始内核来生成子内核。
图10是根据实施例的经由神经网络装置执行解卷积操作的方法的流程图。图10中描述的经由神经网络装置执行解卷积操作的方法涉及在上述附图中描述的实施例。因此,即使在下文中没有描述,上述方面也可以应用于图10的方法。
参照图10,在操作S1010中,神经网络装置可以获得要在神经网络的解卷积层中处理的第一内核和特征映射。
在操作S1020中,神经网络装置可以通过调整包括在每个第一内核中的矩阵元素的排列来计算第二内核。神经网络装置可以通过执行转置操作来调整包括在每个第一内核中的矩阵元素的排列。
在操作S1030中,神经网络装置可以通过划分每个第二内核来生成子内核。神经网络装置可以通过执行分割操作来划分每个第二内核。
神经网络装置可以通过基于步幅值划分每个第二内核来生成子内核。根据实施例,神经网络装置可以将每个第二内核划分为子内核,子内核的数目对应于通过将步幅值进行平方而获得的值。
在操作S1040中,神经网络装置可以使用卷积运算符来执行输入特征映射和子内核之间的卷积操作。神经网络装置可以使用卷积运算符来在卷积层、完全连接层和解卷积层中执行卷积操作。
在操作S1050中,神经网络装置可以通过合并卷积操作的结果来生成输出特征映射。
根据实施例,神经网络装置可以基于如下方法来执行卷积操作:执行一个窗口与多个子内核之间的卷积操作并且执行后续窗口与多个子内核之间的卷积操作。神经网络装置可以通过合并作为执行输入特征映射的窗口和多个子内核之间的卷积操作的结果而生成的值来生成输出特征映射。
根据另一实施例,神经网络装置可以通过将每个子内核相对于输入特征映射移位来执行每个子内核与输入特征映射之间的卷积操作,以并行地处理子内核。神经网络装置可以通过合并并行执行的卷积操作的结果来生成输出特征映射。
同时,操作S1020和操作S1030可以在编译步骤中执行。神经网络装置可以从存储器获得子内核的数据。可以通过调整包括在每个初始内核中的矩阵元素的排列并划分调整后的初始内核来生成子内核。
图11是示出了被配置为实现神经网络推理操作的电子系统或设备的示例的图。
参考图11,电子系统或设备1100包括传感器1110、处理器1120、本地存储器1125、存储器1130、显示器1150和用户接口(UI)1160。传感器1110、处理器1120、存储器1130、显示器1150和UI 1160经由总线1140彼此通信。电子系统或设备1100可以对应于以上神经网络装置中的任何一个或多个或全部,并且实施上述神经网络处理或方法中的任何一个或多个或全部。作为非限制性示例,处理器1120可以对应于图9的处理器910,以及/或者存储器1130可以对应于图9的存储器920。本地存储器1125可以对应于上述临时或本地缓冲器/存储器中的任何一个,而存储器1130可以存储数据库,可以将来自该数据库的内核元素和/或图像元素从本地存储器1125加载或者加载到本地存储器1125中。在示例中,本地缓冲器/存储器可以是处理器1120的存储器或者直接连接到处理器1120的缓冲器/存储器,例如被配置用于快速向/从处理器1120和本地存储器1125传送数据,注意替代方案也是可用的。本地存储器1125还可以被分配以临时存储CNN的特定层或CNN的所有层的卷积输出结果,其最终输出结果可以被存储在存储器1130中和/或分别用于到下一层的输入。在示例中,除了输入到下一层的目的之外,每个层的卷积结果可以被丢弃,并且仅最后一个或多个层输出CNN的的结果,该结果被存储到存储器1130的或用于另一处理,例如,在与作为电子系统或设备1100的移动电话的解锁和相应的显示操作合作中。还应注意,作为非限制性示例,处理器1120可以表示作为被配置为上述神经网络装置、识别装置、拒绝装置和/或验证装置中的任何一个或任何组合的一个或多个处理器。
例如,传感器1110包括例如用于感测音频数据的麦克风和/或用于感测视频数据的图像传感器或摄像机,例如以识别、拒绝或验证对象。传感器1110使用已知方案(例如,将光学图像转换为电子信号的方案)来感测图像。传感器1110的输出被传送给处理器1120或存储器1130,并且传感器1110的输出也可以被直接传送给或操作为本文所讨论的任何CNN的输入层。
处理器1120可以被配置为执行参照图1至图10描述的一个或多个或全部处理。例如,为了执行对象检测、识别、拒绝和/或验证操作,处理器1120可以基于例如上面关于图1至图9描述的神经网络操作来检测、识别、拒绝和/或验证输入数据中的一个或多个对象。举例来说,处理器1120可以确定卷积操作的结果及解卷积操作的结果或其组合。在这样的示例中,卷积的结果可以是对对象的检测,并且解卷积的结果可以是检测到的对象的空间或位置指示。因此,可以通过显示器1150输出任何识别、拒绝或验证操作的结果。另外,电子设备1100的用户调整或选择性操作由UI 1160提供,UI 1160可以包括触摸屏或其他输入设备/系统。在示例中,处理器1120可以是图形处理单元(GPU)、中央处理单元(CPU)、可重配置处理器、应用处理器(AP)、神经处理单元(NPU)、张量处理单元(TPU)、HW加速器或其他神经形态芯片,或者具有任何其他类型的多处理器或单处理器配置。在示例中,处理器1120还代表多个处理器,例如,至少一个处理器被配置为实现这种专用神经网络的处理器,并且另一处理器被配置为执行电子装置的其他操作。例如,实现这种专用神经网络的处理器还可以被配置在安全区域中,相应的处理器1120和本地存储器1125与其他对应的处理器1120和存储器1130的其他操作安全地分离。
除了一个或多个神经网络装置的操作和/或图1至图9描述的操作之外,如上所述,存储器1130还可以存储指令,所述指令在由处理器1120执行时使处理器1120执行电子系统或设备1100的附加操作、功能和控制,诸如电子系统的用户接口。电子系统或设备1100可以经由电子系统的输入/输出设备连接到外部设备,例如个人计算机(PC)或网络,以与外部设备交换数据。电子系统或设备1100可以是各种电子设备,仅作为非限制性示例,移动设备(例如,移动电话、智能电话、个人数字助理(PDA)、平板电脑或膝上型计算机)、计算设备(例如,PC、平板电脑或上网本电脑)、电子产品(例如,电视(TV)、智能电视)或门禁控制的安全设备。
本公开的一个或多个实施例可以被实现为非暂态记录介质,例如,包括计算机可读命令的要在计算机中执行的程序指令。非暂态计算机存储介质可以包括可以由计算机访问的任何可用介质、易失性和非易失性介质以及可拆卸和不可拆卸介质。而且,非暂态计算机存储介质可以包括计算机存储介质和通信介质。非暂态计算机存储介质包括全部易失性和非易失性介质以及可拆卸和不可拆卸介质,其被设计为存储包括计算机可读命令、数据结构、程序模块或其他数据的信息。
此外,在本说明书中,术语“单元”表示诸如处理器或电路的硬件组件和/或进一步执行指令以实现本文描述的操作的硬件组件。
图1至图11中的执行本申请中描述的操作的神经网络装置90、处理器910、存储器920、电子系统或设备1100、总线1140、处理器1120、本地存储器1125、传感器1110、存储器1130、显示器1150和用户接口1160由被配置为执行本申请中描述的由硬件组件执行的操作的硬件组件来实现。在适当情况下可以用于执行本申请中描述的操作的硬件组件的示例包括控制器、传感器、发生器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行本申请中描述的操作的任何其他电子组件。在其他示例中,执行本申请中描述的操作的一个或多个硬件组件由计算硬件来实现,例如由一个或多个处理器或计算机来实现。处理器或计算机可以通过一个或多个处理元件来实现,诸如逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以定义的方式响应并执行指令以实现期望的结果的任何其他设备或设备的组合。在示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可以执行指令或软件(诸如操作系统(OS)和在OS上运行的一个或多个软件应用程序)以执行本申请中描述的操作。响应于指令或软件的执行,硬件组件还可以访问、操作、处理、创建和存储数据。为了简单起见,在本申请中描述的示例的描述中可以使用单数术语“处理器”或“计算机”,但是在其他示例中可以使用多个处理器或计算机,或者处理器或计算机可以包括多个处理元件或多种类型的处理元素或两者兼而有之。例如,单个硬件组件或者两个或更多个硬件组件可以由单个处理器或者两个或更多个处理器或者处理器和控制器来实现。一个或多个硬件组件可以由一个或多个处理器或处理器和控制器来实现,并且一个或多个其他硬件组件可以由一个或多个其他处理器或另一处理器和另一控制器来实现。一个或多个处理器或者处理器和控制器可以实现单个硬件组件或两个或更多个硬件组件。硬件组件可以具有任何一种或多种不同的处理配置,其示例包括单处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
图1至图10所示的执行本申请中描述的操作的方法是通过计算硬件来执行的,例如,由一个或多个处理器或计算机执行,如上所述实施为执行指令或软件以执行在本申请中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可以由单个处理器或者由两个或更多个处理器或者由处理器和控制器来实现。一个或多个操作可以由一个或多个处理器或由处理器和控制器来实现,并且一个或多个其他操作可以由一个或多个其他处理器或由另一处理器和另一控制器来实现。一个或多个处理器或者处理器和控制器可以执行单个操作或两个或更多个操作。
控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可以被编写为计算机程序、代码段、指令或其任何组合,以单独或集体指示或配置一个或多个处理器或计算机,以操作为机器或专用计算机来执行由硬件组件和如上所述的方法执行的操作。在示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码,例如由编译器产生的机器代码。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的更高级代码。可以使用基于附图中所示的框图和流程图以及说明书中的对应描述的任何编程语言来编写指令或软件,其中公开了用于执行由硬件组件和如上所述的方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关数据、数据文件和数据结构可以被记录,存储,或固定在一个或多个非暂态计算机可读存储介质中或其上。非暂态计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RWDVD-R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储设备、光学数据存储设备、硬盘、固态盘以及被配置为以非暂态方式存储指令或软件以及任何相关联的数据、数据文件和数据结构的任何其他设备,并且提供指令或软件以及任何关联的数据、数据文件和数据结构到一个或多个处理器或计算机,使得一个或多个处理器或计算机能够执行指令。在示例中,指令或软件以及任何关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何关联的数据、数据文件和数据结构由一个或多个处理器或计算机以分布式方式来存储、访问和执行。
虽然本公开包括具体示例,但在理解本申请的公开内容后将显而易见的是,在不脱离权利要求及其等同物的精神和范围的情况下,可以在这些示例中进行形式和细节上的各种改变。本文描述的示例仅被认为是描述性的,而不是为了限制的目的。每个示例中的特征或方面的描述被认为适用于其他示例中的类似特征或方面。如果所描述的技术以不同的次序执行和/或如果所描述的系统、架构、设备或电路中的组件以不同的方式组合和/或被其他组件或其等同物替换或补充,可以得到合适的结果。因此,本公开的范围不是由详细描述限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有变化都视为包括在本公开中。
Claims (21)
1.一种神经网络装置,所述装置包括:
存储器,被配置为存储第一内核;以及
处理器,被配置为:
从所述存储器获取所述第一内核;
通过调整包括在所述第一内核中的矩阵元素的排列来计算第二内核;
通过划分所述第二内核来生成子内核;
使用卷积运算符来执行输入特征映射与所述子内核之间的卷积操作;并且
通过合并所述卷积操作的结果来生成输出特征映射作为所述输入特征映射的解卷积。
2.根据权利要求1所述的装置,其中,所述处理器还被配置为:
从所述存储器获取步幅的信息,并且
通过基于所述步幅的信息划分所述第二内核来生成所述子内核。
3.根据权利要求2所述的装置,其中,
所述处理器还被配置为将所述第二内核划分为子内核,并且
所述子内核的数目对应于通过将所述步幅的值平方而获得的值。
4.根据权利要求1所述的装置,其中,所述处理器还被配置为:
通过执行转置操作来调整包括在所述第一内核中的矩阵元素的排列,并且
通过执行分割操作来划分所述第二内核。
5.根据权利要求1所述的装置,其中,包括在每个相应的子内核中的矩阵元素对应于按所述步幅的值分开的包括在所述第二内核中的矩阵元素。
6.根据权利要求1所述的装置,其中,所述处理器被配置为使用所述卷积运算符在神经网络的解卷积层中执行所述卷积操作,其中,所述神经网络还包括卷积层和完全连接层,所述卷积层使用所述卷积运算符来执行对应的卷积操作。
7.根据权利要求6所述的装置,其中,所述处理器还被配置为使用所述卷积运算符来实施所述对应的卷积操作以生成所述输入特征映射。
8.根据权利要求1所述的装置,其中,所述处理器还被配置为:
通过将所述子内核中的每一个相对于所述输入特征映射移位来执行所述子内核与所述输入特征映射之间的卷积操作,以并行地处理所述子内核,并且
通过合并所述子内核的并行处理的结果来生成所述输出特征映射。
9.一种神经网络装置,所述装置包括:
存储器,被配置为存储子内核;以及
处理器,被配置为:
从所述存储器获取所述子内核;
使用卷积运算符来执行输入特征映射与所述子内核之间的卷积操作,并且
通过合并所述卷积操作的结果来生成输出特征映射作为所述输入特征映射的解卷积,
其中,通过调整包括在初始内核中的矩阵元素的排列并划分调整后的初始内核,来生成从所述存储器获得的子内核。
10.根据权利要求9所述的装置,其中,基于存储在所述存储器中的步幅值来确定从所述初始内核划分的子内核的数目。
11.根据权利要求10所述的装置,其中,所述子内核的数目对应于通过对所述步幅值平方而获得的值。
12.根据权利要求10所述的装置,其中,通过执行转置操作调整包括在所述初始内核中的矩阵元素的排列并通过执行分割操作划分调整后的初始内核,生成所述子内核。
13.根据权利要求9所述的装置,其中,包括在每个相应的子内核中的矩阵元素对应于按所述步幅的值分开的包括在所述初始内核中的矩阵元素。
14.根据权利要求9所述的装置,其中,所述处理器被配置为使用所述卷积运算符在神经网络的解卷积层中执行所述卷积操作,其中,所述神经网络还包括卷积层和完全连接层,所述卷积层使用所述卷积运算符来执行对应的卷积操作。
15.根据权利要求9所述的装置,其中,所述处理器还被配置为:
通过将所述子内核中的每一个相对于所述输入特征映射移位来执行所述子内核与所述输入特征映射之间的卷积操作,并行地处理所述子内核,并且
通过合并所述子内核的并行处理的结果来生成所述输出特征映射。
16.一种处理器实现的神经网络方法,所述方法包括:
从存储器获得第一内核;
通过调整包括在所述第一内核中的矩阵元素的排列来计算第二内核;
通过划分所述第二内核来生成子内核;
使用卷积运算符来执行输入特征映射与所述子内核之间的卷积操作;以及
通过合并所述卷积操作的结果来生成输出特征映射作为所述输入特征映射的解卷积。
17.根据权利要求16所述的方法,其中,生成所述子内核包括通过基于步幅的信息划分所述第二内核来生成所述子内核。
18.根据权利要求17所述的方法,其中:
所述第二内核被划分为所述子内核,并且
所述子内核的数目对应于通过将所述步幅的值平方而获得的值。
19.根据权利要求16所述的方法,其中:
所述第二内核的计算包括通过执行转置操作来调整包含在所述第一内核中的矩阵元素的排列,并且
所述子内核的生成包括通过执行分割操作来划分所述第二内核。
20.根据权利要求16所述的方法,还包括:使用所述卷积运算符在神经网络的解卷积层中执行所述卷积操作,其中,所述神经网络还包括卷积层和完全连接层,所述卷积层使用所述卷积运算符来执行对应的卷积操作。
21.根据权利要求16所述的方法,其中,所述输出特征映射的生成包括:
通过将所述子内核中的每一个相对于所述输入特征映射移位来执行所述子内核与所述输入特征映射之间的卷积操作,以并行地处理所述子内核;以及
通过合并所述子内核的并行处理的结果来生成所述输出特征映射。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170147617A KR20190051697A (ko) | 2017-11-07 | 2017-11-07 | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 |
KR10-2017-0147617 | 2017-11-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109754064A true CN109754064A (zh) | 2019-05-14 |
CN109754064B CN109754064B (zh) | 2024-04-12 |
Family
ID=64051355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811024492.2A Active CN109754064B (zh) | 2017-11-07 | 2018-09-03 | 执行解卷积的神经网络的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10885433B2 (zh) |
EP (1) | EP3480740A1 (zh) |
JP (1) | JP7132824B2 (zh) |
KR (1) | KR20190051697A (zh) |
CN (1) | CN109754064B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340680A (zh) * | 2020-03-20 | 2020-06-26 | 光子算数(北京)科技有限责任公司 | 一种卷积计算方法及卷积运算电路 |
CN112396168A (zh) * | 2019-08-13 | 2021-02-23 | 三星电子株式会社 | 处理器芯片及其控制方法 |
WO2021082724A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算方法及相关产品 |
CN113011578A (zh) * | 2019-12-20 | 2021-06-22 | 辉达公司 | 使用神经网络选择计算内核变量 |
CN113424203A (zh) * | 2019-05-16 | 2021-09-21 | 三星电子株式会社 | 图像处理设备及其操作方法 |
CN113641952A (zh) * | 2021-10-14 | 2021-11-12 | 北京壁仞科技开发有限公司 | 卷积设备、卷积方法、矩阵拆聚装置以及矩阵拆聚方法 |
CN114611685A (zh) * | 2022-03-08 | 2022-06-10 | 安谋科技(中国)有限公司 | 神经网络模型中的特征处理方法、介质、设备和程序产品 |
WO2022151779A1 (zh) * | 2021-01-13 | 2022-07-21 | 华为技术有限公司 | 卷积运算的实现方法、数据处理方法及装置 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402527B2 (en) | 2017-01-04 | 2019-09-03 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
US10977854B2 (en) | 2018-02-27 | 2021-04-13 | Stmicroelectronics International N.V. | Data volume sculptor for deep learning acceleration |
US11586907B2 (en) | 2018-02-27 | 2023-02-21 | Stmicroelectronics S.R.L. | Arithmetic unit for deep learning acceleration |
US11687762B2 (en) | 2018-02-27 | 2023-06-27 | Stmicroelectronics S.R.L. | Acceleration unit for a deep learning engine |
US11049000B2 (en) * | 2018-03-27 | 2021-06-29 | International Business Machines Corporation | Distributed state via cascades of tensor decompositions and neuron activation binding on neuromorphic hardware |
US12099912B2 (en) | 2018-06-22 | 2024-09-24 | Samsung Electronics Co., Ltd. | Neural processor |
US11025907B2 (en) * | 2019-02-28 | 2021-06-01 | Google Llc | Receptive-field-conforming convolution models for video coding |
KR20200066952A (ko) | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | 확장 컨벌루션 연산을 수행하는 장치 및 방법 |
GB2582352B (en) * | 2019-03-20 | 2021-12-15 | Imagination Tech Ltd | Methods and systems for implementing a convolution transpose layer of a neural network |
US11880760B2 (en) | 2019-05-01 | 2024-01-23 | Samsung Electronics Co., Ltd. | Mixed-precision NPU tile with depth-wise convolution |
KR102178238B1 (ko) * | 2019-05-30 | 2020-11-12 | 한국생산기술연구원 | 회전 커널을 이용한 머신러닝 기반 결함 분류 장치 및 방법 |
CN112116083B (zh) * | 2019-06-20 | 2024-03-08 | 地平线(上海)人工智能技术有限公司 | 神经网络加速器及其检测方法和装置 |
KR102097294B1 (ko) * | 2019-07-19 | 2020-04-06 | (주)지와이네트웍스 | 화염 판단을 위한 신경망 모델의 학습 및 검출 방법, 및 이를 수행하는 장치 |
CN112306555A (zh) * | 2019-07-30 | 2021-02-02 | 北京百度网讯科技有限公司 | 并行提取多个卷积窗中的图像数据的方法、装置、设备以及计算机可读存储介质 |
US20210049474A1 (en) * | 2019-08-13 | 2021-02-18 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
CN112446474B (zh) | 2019-08-31 | 2022-11-22 | 安徽寒武纪信息科技有限公司 | 芯片和多芯片系统及电子设备和数据传输方法 |
CN112446464B (zh) * | 2019-08-31 | 2023-05-30 | 安徽寒武纪信息科技有限公司 | 一种神经网络卷积运算方法、装置以及相关产品 |
CN114450699A (zh) * | 2019-09-24 | 2022-05-06 | 阿里巴巴集团控股有限公司 | 由处理单元实现的方法、可读存储介质和处理单元 |
US11681902B2 (en) | 2019-09-27 | 2023-06-20 | Amazon Technologies, Inc. | Transposed convolution using systolic array |
KR20210071471A (ko) | 2019-12-06 | 2021-06-16 | 삼성전자주식회사 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
US12112141B2 (en) * | 2019-12-12 | 2024-10-08 | Samsung Electronics Co., Ltd. | Accelerating 2D convolutional layer mapping on a dot product architecture |
KR20210082970A (ko) | 2019-12-26 | 2021-07-06 | 삼성전자주식회사 | 컨볼루션 연산을 수행하는 방법 및 장치 |
CN113222136A (zh) * | 2020-01-21 | 2021-08-06 | 北京希姆计算科技有限公司 | 卷积运算方法及芯片 |
US11630991B2 (en) * | 2020-02-04 | 2023-04-18 | Apple Inc. | Broadcasting mode of planar engine for neural processor |
KR20210101903A (ko) | 2020-02-11 | 2021-08-19 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
TWI733334B (zh) * | 2020-02-15 | 2021-07-11 | 財團法人工業技術研究院 | 卷積神經網路運算裝置及其運算的方法 |
US11593609B2 (en) * | 2020-02-18 | 2023-02-28 | Stmicroelectronics S.R.L. | Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks |
US11507831B2 (en) | 2020-02-24 | 2022-11-22 | Stmicroelectronics International N.V. | Pooling unit for deep learning acceleration |
KR102428033B1 (ko) * | 2020-02-28 | 2022-08-02 | 오픈엣지테크놀로지 주식회사 | 트랜스포즈드 콘볼루션 하드웨어 가속장치 |
CN111428189B (zh) * | 2020-04-01 | 2023-09-22 | 南京大学 | 一种用于反卷积运算的数据预处理方法及装置 |
CN111475321B (zh) * | 2020-05-08 | 2024-04-26 | 中国人民解放军国防科技大学 | 一种基于迭代抽象分析的神经网络安全性质验证方法 |
DE102020208765A1 (de) | 2020-07-14 | 2022-01-20 | Robert Bosch Gesellschaft mit beschränkter Haftung | Bildklassifikator mit variablen rezeptiven Feldern in Faltungsschichten |
CN112200300B (zh) * | 2020-09-15 | 2024-03-01 | 星宸科技股份有限公司 | 卷积神经网络运算方法及装置 |
US11842273B2 (en) * | 2020-09-23 | 2023-12-12 | Arm Limited | Neural network processing |
US20220121953A1 (en) * | 2020-10-21 | 2022-04-21 | Nec Laboratories America, Inc. | Multi-task learning via gradient split for rich human analysis |
TWI768555B (zh) * | 2020-11-23 | 2022-06-21 | 威盛電子股份有限公司 | 調整神經網路輸入資料的系統及方法 |
CN112465133B (zh) * | 2020-11-25 | 2022-12-09 | 安徽寒武纪信息科技有限公司 | 控制流多核并行方法、计算机设备和存储介质 |
CN112614175B (zh) * | 2020-12-21 | 2024-09-06 | 滕州市东大矿业有限责任公司 | 基于特征去相关的用于封孔剂注射器的注射参数确定方法 |
CN112686377B (zh) * | 2021-03-18 | 2021-07-02 | 北京地平线机器人技术研发有限公司 | 利用卷积硬件对特征数据进行反卷积处理的方法和装置 |
KR20220132375A (ko) * | 2021-03-23 | 2022-09-30 | 현대모비스 주식회사 | 차량 영상의 화소를 분류하는 행렬 곱셈 가속기에 최적화된 임베디드 의미 분할 네트워크 장치 |
US11250061B1 (en) | 2021-03-29 | 2022-02-15 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—read-modify-write in backward pass |
US11263170B1 (en) | 2021-03-29 | 2022-03-01 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—padding before tiling, location-based tiling, and zeroing-out |
US11195080B1 (en) | 2021-03-29 | 2021-12-07 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—tiling configuration |
US11227207B1 (en) * | 2021-03-29 | 2022-01-18 | SambaNova Systems, Inc. | Lossless tiling in convolution networks—section boundaries |
US11854253B2 (en) * | 2021-06-26 | 2023-12-26 | Intel Corporation | Apparatus, method, and computer-readable medium for robust response to adversarial perturbations using hyperdimensional vectors |
EP4123526A1 (en) * | 2021-07-19 | 2023-01-25 | ALE International | Method and system for calculating and sharing a user occupancy status relative to use of multimedia applications |
US20230075264A1 (en) * | 2021-09-07 | 2023-03-09 | Kwai Inc. | Methods and devices for efficient general deconvolution implementation on hardware accelerator |
KR102395744B1 (ko) * | 2021-09-16 | 2022-05-09 | 오픈엣지테크놀로지 주식회사 | 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치 |
CN114625378A (zh) * | 2022-03-28 | 2022-06-14 | 北京地平线机器人技术研发有限公司 | 神经网络模型的编译方法、装置及计算机可读存储介质 |
WO2024010437A1 (ko) * | 2022-07-08 | 2024-01-11 | 주식회사 딥엑스 | 신경 프로세싱 유닛 및 이의 동작 방법 |
WO2024041407A1 (en) * | 2022-08-23 | 2024-02-29 | Mediatek Inc. | Neural network feature map translation for video coding |
US20230016455A1 (en) * | 2022-09-26 | 2023-01-19 | Alessandro Palla | Decomposing a deconvolution into multiple convolutions |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004056120A1 (en) * | 2002-12-17 | 2004-07-01 | Let It Wave | Processing or compressing n-dimensional signals with warped wavelet packets and bandelets |
CN101253493A (zh) * | 2005-08-31 | 2008-08-27 | 微软公司 | 在图形处理单元上训练卷积神经网络 |
CN102959945A (zh) * | 2010-06-29 | 2013-03-06 | 皇家飞利浦电子股份有限公司 | 根据通过图像捕捉设备的阵列获得的数据产生虚拟输出图像的方法和系统 |
WO2016054079A1 (en) * | 2014-09-29 | 2016-04-07 | Zyomed Corp. | Systems and methods for blood glucose and other analyte detection and measurement using collision computing |
US9547821B1 (en) * | 2016-02-04 | 2017-01-17 | International Business Machines Corporation | Deep learning for algorithm portfolios |
CN106650699A (zh) * | 2016-12-30 | 2017-05-10 | 中国科学院深圳先进技术研究院 | 一种基于卷积神经网络的人脸检测方法及装置 |
US20180032857A1 (en) * | 2015-10-07 | 2018-02-01 | Intel Corporation | Method and Apparatus for Performing Different Types of Convolution Operations with the Same Processing Elements |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160328645A1 (en) | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US10373050B2 (en) | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US10262259B2 (en) | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US10083395B2 (en) | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
US10019657B2 (en) | 2015-05-28 | 2018-07-10 | Adobe Systems Incorporated | Joint depth estimation and semantic segmentation from a single image |
US10417555B2 (en) | 2015-05-29 | 2019-09-17 | Samsung Electronics Co., Ltd. | Data-optimized neural network traversal |
US20160358069A1 (en) | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
US10540588B2 (en) | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US11580375B2 (en) | 2015-12-31 | 2023-02-14 | Kla-Tencor Corp. | Accelerated training of a machine learning based model for semiconductor applications |
US11170294B2 (en) | 2016-01-07 | 2021-11-09 | Intel Corporation | Hardware accelerated machine learning |
EP3330898A1 (en) | 2016-12-01 | 2018-06-06 | Altera Corporation | Method and apparatus for performing different types of convolution operations with the same processing elements |
CN106991651B (zh) | 2016-12-12 | 2019-10-29 | 南昌大学 | 基于合成分析反卷积网络的快速成像方法及系统 |
US10832135B2 (en) | 2017-02-10 | 2020-11-10 | Samsung Electronics Co., Ltd. | Automatic thresholds for neural network pruning and retraining |
US9953236B1 (en) * | 2017-03-10 | 2018-04-24 | TuSimple | System and method for semantic segmentation using dense upsampling convolution (DUC) |
US10671349B2 (en) * | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
EP3686307B1 (en) | 2017-09-20 | 2022-11-09 | Diamet Corporation | Sintered oil-retaining bearing |
US11709911B2 (en) * | 2018-10-03 | 2023-07-25 | Maxim Integrated Products, Inc. | Energy-efficient memory systems and methods |
-
2017
- 2017-11-07 KR KR1020170147617A patent/KR20190051697A/ko not_active Application Discontinuation
-
2018
- 2018-08-21 US US16/107,717 patent/US10885433B2/en active Active
- 2018-09-03 CN CN201811024492.2A patent/CN109754064B/zh active Active
- 2018-10-26 EP EP18202762.3A patent/EP3480740A1/en active Pending
- 2018-11-05 JP JP2018208043A patent/JP7132824B2/ja active Active
-
2020
- 2020-12-04 US US17/112,041 patent/US11663473B2/en active Active
-
2023
- 2023-04-21 US US18/304,574 patent/US11960999B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004056120A1 (en) * | 2002-12-17 | 2004-07-01 | Let It Wave | Processing or compressing n-dimensional signals with warped wavelet packets and bandelets |
CN101253493A (zh) * | 2005-08-31 | 2008-08-27 | 微软公司 | 在图形处理单元上训练卷积神经网络 |
CN102959945A (zh) * | 2010-06-29 | 2013-03-06 | 皇家飞利浦电子股份有限公司 | 根据通过图像捕捉设备的阵列获得的数据产生虚拟输出图像的方法和系统 |
WO2016054079A1 (en) * | 2014-09-29 | 2016-04-07 | Zyomed Corp. | Systems and methods for blood glucose and other analyte detection and measurement using collision computing |
US20180032857A1 (en) * | 2015-10-07 | 2018-02-01 | Intel Corporation | Method and Apparatus for Performing Different Types of Convolution Operations with the Same Processing Elements |
US9547821B1 (en) * | 2016-02-04 | 2017-01-17 | International Business Machines Corporation | Deep learning for algorithm portfolios |
CN106650699A (zh) * | 2016-12-30 | 2017-05-10 | 中国科学院深圳先进技术研究院 | 一种基于卷积神经网络的人脸检测方法及装置 |
Non-Patent Citations (3)
Title |
---|
JIAWEI ZHANG等: "Learning Fully Convolutional Networks for Iterative Non-blind Deconvolution", 《ARXIV》, pages 1 - 9 * |
WENZHE SHI等: "Is the deconvolution layer the same as a convolutional layer?", 《ARXIV》, pages 1 - 7 * |
王裕民: "多GPU环境下的卷积神经网络并行算法", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 01, pages 138 - 490 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113424203A (zh) * | 2019-05-16 | 2021-09-21 | 三星电子株式会社 | 图像处理设备及其操作方法 |
CN112396168A (zh) * | 2019-08-13 | 2021-02-23 | 三星电子株式会社 | 处理器芯片及其控制方法 |
WO2021082724A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算方法及相关产品 |
CN113011578A (zh) * | 2019-12-20 | 2021-06-22 | 辉达公司 | 使用神经网络选择计算内核变量 |
CN113011578B (zh) * | 2019-12-20 | 2024-09-13 | 辉达公司 | 使用神经网络选择计算内核变量 |
CN111340680A (zh) * | 2020-03-20 | 2020-06-26 | 光子算数(北京)科技有限责任公司 | 一种卷积计算方法及卷积运算电路 |
CN111340680B (zh) * | 2020-03-20 | 2023-06-02 | 光子算数(北京)科技有限责任公司 | 一种卷积计算方法及卷积运算电路 |
WO2022151779A1 (zh) * | 2021-01-13 | 2022-07-21 | 华为技术有限公司 | 卷积运算的实现方法、数据处理方法及装置 |
CN113641952A (zh) * | 2021-10-14 | 2021-11-12 | 北京壁仞科技开发有限公司 | 卷积设备、卷积方法、矩阵拆聚装置以及矩阵拆聚方法 |
CN114611685A (zh) * | 2022-03-08 | 2022-06-10 | 安谋科技(中国)有限公司 | 神经网络模型中的特征处理方法、介质、设备和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3480740A1 (en) | 2019-05-08 |
US20230252298A1 (en) | 2023-08-10 |
KR20190051697A (ko) | 2019-05-15 |
US11663473B2 (en) | 2023-05-30 |
JP2019087252A (ja) | 2019-06-06 |
US10885433B2 (en) | 2021-01-05 |
US20210117791A1 (en) | 2021-04-22 |
JP7132824B2 (ja) | 2022-09-07 |
US20190138898A1 (en) | 2019-05-09 |
US11960999B2 (en) | 2024-04-16 |
CN109754064B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754064A (zh) | 执行解卷积的神经网络的方法和装置 | |
US10452979B2 (en) | Convolution neural network training apparatus and method thereof | |
US11508146B2 (en) | Convolutional neural network processing method and apparatus | |
US20210248413A1 (en) | Method and apparatus with dilated convolution | |
US20160196672A1 (en) | Graph image representation from convolutional neural networks | |
US20190130250A1 (en) | Method and apparatus with neural network performing convolution | |
US20220156944A1 (en) | Apparatus and method with video processing | |
CN112215332B (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
CN109697510A (zh) | 具有神经网络的方法和装置 | |
JP6961640B2 (ja) | データ処理のシステムおよび方法 | |
CN103119471A (zh) | 用于生成地下构造的图像的系统和方法 | |
EP3839832A1 (en) | Method and apparatus with neural network convolution operation | |
EP3528181A1 (en) | Processing method of neural network and apparatus using the processing method | |
EP3965018A1 (en) | Accelerator, method of operating an accelerator, and electronic device including an accelerator | |
EP3789928A2 (en) | Neural network method and apparatus | |
US20210279568A1 (en) | Method and apparatus for processing convolution operation on layer in neural network | |
US20230289601A1 (en) | Integrated circuit that extracts data, neural network processor including the integrated circuit, and neural network | |
US12014505B2 (en) | Method and apparatus with convolution neural network processing using shared operand | |
CN111833363B (zh) | 图像边缘和显著性检测方法及装置 | |
US20220365891A1 (en) | Accelerator and electronic device including the same | |
EP4009240A1 (en) | Method and apparatus for performing deep learning operations | |
US11681915B2 (en) | Neural network method and apparatus | |
US20230306262A1 (en) | Method and device with inference-based differential consideration | |
CN113341461B (zh) | 地震速度预测方法、装置及服务器 | |
EP4002218A1 (en) | Device and method with neural network operation |
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 |