CN112926731A - 执行神经网络的矩阵乘法运算的装置和方法 - Google Patents
执行神经网络的矩阵乘法运算的装置和方法 Download PDFInfo
- Publication number
- CN112926731A CN112926731A CN202010637961.9A CN202010637961A CN112926731A CN 112926731 A CN112926731 A CN 112926731A CN 202010637961 A CN202010637961 A CN 202010637961A CN 112926731 A CN112926731 A CN 112926731A
- Authority
- CN
- China
- Prior art keywords
- feature map
- weights
- initial
- matrix multiplication
- dividing
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 74
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims description 55
- 238000005192 partition Methods 0.000 claims abstract description 7
- 239000010410 layer Substances 0.000 description 56
- 238000010586 diagram Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 17
- 230000004913 activation Effects 0.000 description 12
- 238000001994 activation Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 239000013598 vector Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000017105 transposition 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/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/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
一种用于执行矩阵乘法运算的神经网络装置,包括:存储器,具有存储在其中的至少一个程序;以及处理器,通过执行所述至少一个程序来执行一个或多个运算。所述处理器可以根据重塑运算和转置运算是在矩阵乘法运算之前还是之后执行来确定是否在列方向和行方向之一上划分初始权重,并且通过在所确定的方向上将初始权重除以头计数来生成划分权重。此外,所述处理器可以通过在输入特征图与划分权重之间执行矩阵乘法运算来生成中间特征图,并且基于中间特征图来生成最终特征图。
Description
相关申请的交叉引用
本申请要求于2019年12月6日在韩国知识产权局提交的韩国专利申请No.10-2019-0161676的优先权,其全部公开内容通过引用并入本文中以用于所有目的。
技术领域
以下描述涉及执行神经网络的矩阵乘法运算的装置和方法。
背景技术
神经网络是指对生物大脑进行建模的计算架构。随着神经网络技术的发展,神经网络被用于各种类型的电子***中,以分析输入数据并提取有效信息。
已积极地进行了硬件加速器的研究,从而以低功率有效地使用深度神经网络(DNN)。神经网络处理装置需要对复杂的输入数据进行大量运算。
特别地,在实现的具有低功率和低性能的设备中,需要一种能够有效地处理对神经网络的运算的技术,以通过使用神经网络实时地分析大量输入数据来提取期望的信息。
发明内容
提供本发明内容以用简化形式介绍对下面在具体实施方式中进一步描述的构思的选择。本发明内容不意在标识所请求保护的主题的关键特征或基本特征,也不意在帮助确定所请求保护的主题的范围。
执行神经网络的矩阵乘法运算的装置和方法。存储程序的计算机可读记录介质,所述程序在由计算机执行时执行这些方法。
在一个总体方面中,一种神经网络装置包括:存储器,具有存储在其中的至少一个程序;以及处理器,通过执行所述至少一个程序来执行一个或多个运算,其中所述处理器从存储器获取输入特征图和初始权重;根据重塑运算和转置运算是在矩阵乘法运算之前还是之后执行来确定是在列方向还是行方向上划分初始权重;通过在所确定的列方向或行方向上将初始权重除以头计数来生成划分权重;通过在输入特征图与划分权重之间执行矩阵乘法运算来生成中间特征图;并且基于中间特征图来生成最终特征图。
当重塑运算和转置运算在矩阵乘法运算之后执行时,所述处理器可以通过在初始权重的列方向上将初始权重除以头计数来生成划分权重,并且通过将中间特征图进行级联来生成最终特征图。
当重塑运算和转置运算在矩阵乘法运算之前执行时,所述处理器可以通过在初始权重的行方向上将初始权重除以头计数来生成划分权重,并且通过对中间特征图进行逐元素求和来生成最终特征图。
在输入特征图与多个划分权重之间的矩阵乘法运算可以是一维卷积运算和二维卷积运算之一。
所述处理器可以包括权重划分器,并且所述权重划分器可以在列方向和行方向之一上将初始权重除以头计数。
在另一个总体方面中,一种方法包括:从存储器获取输入特征图和初始权重;根据重塑运算和转置运算是在矩阵乘法运算之前还是之后执行来确定是否在列方向或行方向之一上划分初始权重;通过在所确定的列方向或行方向上将初始权重除以头计数来生成划分权重;通过在输入特征图与划分权重之间执行矩阵乘法运算来生成中间特征图;以及基于中间特征图来生成最终特征图。
在另一个总体方面中,一种方法包括:接收初始特征图和初始权重;将初始权重划分为划分权重;在输入特征图与每个划分权重之间执行矩阵乘法运算以生成中间特征图;以及操纵中间特征图以生成输出特征图。
所述方法可以包括:确定是否对输入特征图进行了重塑运算和转置运算。
在已对输入特征图进行了重塑运算和转置运算的情况下,可以在行方向上基于初始权重的头计数将初始权重划分为划分权重。
所述方法可以包括:通过对中间特征图进行逐元素求和来生成输出特征图。
在未对输入特征图进行重塑运算和转置运算的情况下,可以在列方向上基于初始权重的头计数将初始权重划分为划分权重。
所述方法可以包括:通过将中间特征图进行级联来生成输出特征图。
在另一个总体方面中,一种计算机可读记录介质存储程序,所述程序在由计算机执行时执行所述方法中的一种或多种。
其他特征和方面将通过以下详细描述、附图和权利要求变得清楚明白。
附图说明
图1是示出了根据示例的在深度神经网络(DNN)中执行的运算的示意图。
图2是用于描述根据示例的神经网络中的输入特征图与输出特征图之间的关系的示意图。
图3A和图3B是用于描述根据示例的重塑运算和转置运算的示意图。
图4A是用于描述根据示例的自注意力的示意图。
图4B是用于描述根据示例的多头自注意力的示意图。
图5A是用于描述根据示例的在执行重塑运算和转置运算的情况下访问存储器的次数的示意图。
图5B是用于描述根据示例的在不执行重塑运算和转置运算的情况下访问存储器的次数的示意图。
图6是用于描述根据示例的通过使用权重划分器来执行矩阵乘法的过程的示意图。
图7是示出了根据示例的在权重在列方向上被划分的情况下执行矩阵乘法的结果的示意图。
图8是示出了根据示例的在权重在行方向上被划分的情况下执行矩阵乘法的结果的示意图。
图9是示出了根据示例的神经网络装置的硬件配置的框图。
图10是根据示例的在神经网络装置中执行矩阵乘法运算的方法的流程图。
在整个附图和具体实施方式中,除非另有描述或提供,否则相同的附图标记将被理解为指代相同的元素、特征和结构。附图可以不按比例绘制,并且为了清楚、说明和方便,可以夸大附图中元素的相对尺寸、比例和描绘。
具体实施方式
提供以下详细描述有助于读者获得对本文中所描述的方法、装置和/或***的全面理解。然而,在理解了本申请的公开内容之后,对本文中所描述的方法、装置和/或***的各种改变、修改和等同物将是显而易见的。例如,本文中所描述的操作顺序仅仅是示例,并且不限于本文中所阐述的那些操作顺序,而是可以在理解本申请的公开内容之后明显改变,除了必须以一定顺序进行的操作之外。另外,为了更加清楚和简洁,可以省略在理解本申请的公开内容之后对已知的特征的描述。
本文中所描述的特征可以以不同形式来实施,并且不应被解读为限于本文中所描述的示例。相反,提供本文中所描述的示例仅仅是为了说明实现本文中所描述的方法、装置和/或***的许多可行方式中的一些,在理解本申请的公开内容之后,这些方式将显而易见。
在整个说明书中,当组件被描述为“连接到”或“耦接到”另一组件时,它可以直接“连接到”或“耦接到”该另一组件,或者可以存在介于它们之间的一个或多个其他组件。相反,当元素被描述为“直接连接到”或“直接耦接到”另一元素时,可以不存在介于它们之间的其他元素。同样地,也应以相同的方式解读类似表述,例如“在…之间”和“直接在…之间”以及“与…相邻”和“与…紧邻”。如本文中所使用的,术语“和/或”包括关联列出的项目中的任何一个和任何两个或更多个的任何组合。
虽然本文中可以使用诸如“第一”、“第二”和“第三”之类的术语来描述各种构件、组件、区域、层或部,但是这些构件、组件、区域、层或部不应被这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部与另一构件、组件、区域、层或部加以区分。因此,在不脱离示例的教导的情况下,在本文中描述的示例中提及的第一构件、组件、区域、层或部也可以被称为第二构件、组件、区域、层或部。
本文中所使用的术语仅用于描述各种示例,而非用于限制本公开。除非上下文另外明确指示,否则冠词“一”、“一个”和“该”也意在包括复数形式。术语“包括”、“包含”和“具有”指定存在所阐述的特征、数目、操作、构件、元素和/或其组合,但并不排除存在或添加一个或多个其他特征、数目、操作、构件、元素和/或其组合。
除非另有定义,否则本文中所使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常所理解的含义相同并基于对本申请的公开内容的理解的含义。诸如在常用词典中定义的术语应被解释为其含义与其在相关技术的上下文和本申请的公开内容中的含义一致,而不应将其解释为理想的或过于形式化的意义,除非本文明确如此定义。在本文中,关于示例或实施例(例如,关于示例或实施例可以包括或实现什么)的术语“可以”的使用意味着存在至少一个包括或实现这样的特征的示例或实施例,而所有示例不限于此。
可以根据功能块组件和各种处理操作来表示一些示例。这些功能块中的一些或全部可以由执行特定功能的任意数量的硬件和/或软件组件实现。例如,功能块可以由一个或多个微处理器实现,或者可以由用于特定功能的电路组件实现。此外,例如,可以用各种编程或脚本语言实现功能块。可以通过在一个或多个处理器中执行的算法来实现功能块。可以广义地使用诸如“机制”、“元素”、“单元”和“配置”的术语,并且不限于机械和物理配置。
此外,附图中所示出的元素之间的连接构件或连接线仅表示功能连接和/或物理或逻辑连接的示例。在实际的装置中,元素之间的连接可以通过各种备选或附加的功能连接、物理连接或逻辑连接来表示。
在下文中,将参考附图来详细描述示例。
图1是示出了根据示例的在深度神经网络(DNN)中执行的运算的示意图。
参考图1,DNN 100可以具有包括输入层、隐藏层和输出层的结构,并且可以基于接收到的输入数据(例如,I1和I2)来执行运算以及基于运算执行结果来生成输出数据(例如,O1和O2)。
例如,如图1中所示,DNN 100可以包括输入层(层1)、两个隐藏层(层2和层3)和输出层(层4)。因为DNN 100可以包括能够处理有效信息的更多的层,所以DNN 100可以相比于具有单个层的神经网络处理更复杂的数据集。尽管DNN 100被示为包括四个层,但这只是示例,并且DNN 100可以包括更少或更多的层或可以包括更少或更多的通道。也就是说,DNN100可以包括与图1中所示的结构不同的各种结构的层。
包括在DNN 100中的每一个层可以包括多个通道。通道可以对应于被称为神经元、处理元件(PE)、单元或类似术语的多个人工节点。例如,如图1中所示,层1可以包括两个通道(节点),并且层2和层3中的每一个可以包括三个通道。然而,这只是示例,并且包括在DNN100中的每一个层可以包括各种数量的通道(节点)。
包括在神经DNN 100的每一个层中的通道可以彼此连接以处理数据。例如,一个通道可以接收和操作来自其他通道的数据,并且将操作结果输出到其他通道。
每个通道的输入和输出可以分别被称为输入激活和输出激活。也就是说,激活可以是一个通道的输出和与包括在下一层中的通道的输入相对应的参数。此外,每个通道可以基于从包括在前一层中的通道接收的激活和权重来确定其自己的激活。权重可以是用于计算每个通道中的输出激活的参数,并且可以是分配给通道之间的连接关系的值。
每个通道可以由接收输入并将输出激活进行输出的计算单元或PE处理,并且可以映射每个通道的输入-输出。例如,当σ是激活函数,是从包括在第(i-1)层中的第k通道到包括在第i层中的第j通道的权重,是包括在第i层中的第j通道的偏置,并且是第(i-1)层的第k通道的激活时,可以通过使用下面的等式1来计算第i层的第j通道的激活
[等式1]
如图1中所示,第二层(层2)的第一通道(CH 1)的激活可以被表示为而且,根据等式1,可以具有的值。然而,等式1仅是用于描述在DNN100中为处理数据所使用的激活和权重的示例,并且示例不限于此。激活可以是如下值,所述值是通过经由整流线性单元(ReLU)传递将激活函数应用于从前一层接收到的激活之和所获得的值而获得的。
在示例中,DNN100可以通过基于描述符和属性值进行学习来确定定义描述符与属性之间的关系的因子。也就是说,在构成DNN 100的第1层至第4层之中,描述符可以是作为输入层的第1层,属性值可以是作为输出层的第4层,并且因子可以是至少一个隐藏层(第2层和/或第3层)。
DNN 100可以通过使用描述符作为输入层中的输入数据来执行运算,并且可以基于运算执行结果来生成属性值作为输出数据。
图2是用于描述根据示例的神经网络中的输入特征图与输出特征图之间的关系的示意图。
参考图2,在神经网络的层200中,第一特征图FM1可以对应于输入特征图,且第二特征图FM2可以对应于输出特征图。特征图可以指代表示输入数据的各种特征的数据集。特征图FM1和FM2可以具有二维矩阵的元素或三维矩阵的元素,并且可以在每个元素中定义像素值。特征图FM1和FM2可以具有宽度W(或者,列)、高度H(或者,行)和深度D。在这种情况下,深度D可以对应于通道的数量。
可以对第一特征图FM1和权重WM执行卷积运算,结果,可以生成第二特征图FM2。权重可以是在每个元素中定义的权重,并且可以通过执行与第一特征图FM1的卷积运算来过滤第一特征图FM1的特征。权重可以在以滑动窗口方式移动第一特征图FM1的同时执行与第一特征图FM1的窗口(或者,区块)的卷积运算。在每次移动期间,可以将包括在每个元素中的权重与第一特征图FM1中的重叠窗口的每个像素值相乘并相加。当对第一特征图FM1和权重一起进行卷积时,可以生成第二特征图FM2的一个通道。尽管在图2中示出了一个权重,但是多个权重均可以与第一特征图FM1进行卷积以生成具有多个通道的第二特征图FM2。
此外,第二特征图FM2可以对应于下一层的输入特征图。例如,第二特征图FM2可以是池化(或者,子采样)层的输入特征图。
在图2中,为了便于描述,仅示出了神经网络的示意性架构。然而,本领域普通技术人员可以理解的是,与图示不同,神经网络可以由更多或更少的层、特征图、权重等实现,并且其大小也可以以各种方式进行修改。
图3A和图3B是用于描述根据示例的重塑运算和转置运算的示例图。
图3A示出了重塑运算过程。重塑运算可以是改变特定数据的结构的过程。在对特定数据进行重塑时,其数据结构可以改变,但是其数据顺序可以不改变。
例如,假定一维数据311[1,2,3,4,5,6,7,8]包括八个元素。当一维数据311被重塑为(2,4)的数据结构时,一维数据311的结构可以被改变为二维数据312[[1,2,3,4],[5,6,7,8]]。
备选地,当一维数据311被重塑为(2,2,2)的数据结构时,一维数据311的结构可以被改变为三维数据313[[[1,2],[3,4]],[[5,6],[7,8]]]。
图3B示出了转置运算过程。转置运算可以是通过彼此交换行和列值而获得新矩阵的过程。当对特定数据进行转置时,取决于特定数据的初始结构,可以仅改变其数据顺序,或者可以改变其数据顺序及数据结构。
例如,当对二维数据321[[1,2],[3,4]]进行转置时,其可以被改变为二维数据322[[1,3],[2,4]]。在这种情况下,可以改变数据顺序,但是数据结构可以与之前相同。
备选地,当对二维数据323[[1,2],[3,4],[5,6]]进行转置时,其可以被改变为二维数据324[[1,3,5],[2,4,6]]。在这种情况下,不仅可以改变其数据顺序,而且可以改变其数据结构。也就是说,可以将(3,2)结构的二维数据323改变为(2,3)结构的二维数据324。
图4A是用于描述根据示例的自注意力的示例图。
自注意力(self-attention)可以用于测量句子中的单词之间的关系。在这种情况下,可以计算每个单词与其他单词的关系值。该值可以被称为注意力分数。高度相关的单词之间的注意力分数可能很高。注意力分数表可以被称为注意力图。
在变换器模型中,可以通过在单词向量之间执行点乘运算来获得注意力分数。在获得特定单词相对于其他单词的注意力分数之后,可以将softmax函数应用于收集注意力分数的注意力图。结果是,在注意力图中,可以以概率的形式呈现特定单词相对于另一单词的相关值。
每个现有单词向量和注意力图的概率值可以被称为加权和。加权和可以是将每个概率值和每个单词向量进行相乘然后相加的运算。加权和结果可以用作特定单词的向量值。
图4B是用于描述根据示例的多头自注意力的示例图。
多头自注意力(multihead self-attention)可以是通过生成多个注意力图来识别关于各种特征值的注意力的方法。可以在变换器模型、自动语音识别(ASR)模型等中使用多头自注意力,但不限于此。
多头自注意力可以具有其中规模化的点乘注意力结构重叠的形式。点乘注意力(dot-product attention)的输入可以包括查询、键(key)和/或值。例如,在英语词典中找到特定单词的含义的情况下,该特定单词可以对应于查询,在词典中注册的单词可以对应于键,并且键词的含义可以对应于值。
为了获得多头自注意力,可以将值V、键K和查询Q的特征值中的每一个除以头计数h,然后通过第一线性层410和点乘注意力进行级联。之后,当最终通过第二线性层420输出级联值时,可以获得多头自注意力。
在示例中,可以在第一线性层410和第二线性层420中执行矩阵乘法运算、重塑运算和转置运算。特别地,在第一线性层410中,可以在矩阵乘法运算之后执行重塑运算和转置运算,而在第二线性层420中,可以在矩阵乘法运算之前执行重塑运算和转置运算。
在下文中,将描述在不在第一线性层410和第二线性层420中执行重塑运算和转置运算的情况下通过使用矩阵乘法运算来获得多头自注意力的方法。
图5A是用于描述根据示例的在执行重塑运算和转置运算的情况下访问存储器的次数的示意图。
图5A可以对应于获得多头自注意力的过程的一部分,并且可以对应于在图4B的第一线性层410中执行的过程。
参考图5A,输入特征图可以具有(B,L,H)结构。在(B,L,H)结构中,B表示批量大小,L表示输入特征图的行,并且H表示输入特征图的列。
可以在(B,L,H)结构的输入特征图与(H,H)结构的权重之间执行矩阵乘法运算。权重可以是具有H行和H列的结构。作为执行矩阵乘法运算的结果,可以生成(B,L,H)结构的第一中间特征图。可以对第一中间特征图执行重塑运算以生成(B,L,S,H/S)结构的第二中间特征图。可以对第二中间特征图执行转置运算以生成(B,S,L,,H/S)结构的输出特征图。
在图5A的根据(B,L,H)结构的输入特征图生成(B,S,L,H/S)结构的输出特征图的过程中,可能需要在存储器(例如,SRAM或DRAM)上总共进行四个读/写过程。
图5B是用于描述根据示例的在不执行重塑运算和转置运算的情况下访问存储器的次数的示意图。
图5B也可以对应于获得多头自注意力的过程的一部分,并且可以对应于在图4B的第一线性层410中执行的过程。
参考图5B,输入特征图可以具有(B,L,H)结构。在(B,L,H)结构中,B表示批量大小,L表示输入特征图的行,并且H表示输入特征图的列。
在图5B中,代替在(B,L,H)结构的输入特征图与(H,H)结构的初始权重之间执行矩阵乘法运算,可以将(H,H)结构的初始权重划分为具有(H,H/S)结构的S个划分权重。
可以在(B,L,H)结构的输入特征图与(H,H/S)结构的S个划分权重之间执行矩阵乘法运算。作为执行矩阵乘法运算的结果,可以生成(B,L,H/S)结构的S个中间特征图。可以对(B,L,H/S)结构的S个中间特征图进行级联以最终生成(B,S,L,H/S)结构的输出特征图。
在图5B的根据(B,L,H)结构的输入特征图生成(B,S,L,H/S)结构的输出特征图的过程中,可能需要在存储器(例如,SRAM或DRAM)上总共进行两个读/写过程。
图5A的输入特征图和输出特征图的结构可以与图5B的输入特征图和输出特征图的结构相同。至于图5A和图5B的存储器访问计数之间的比较,由于在图5B中未执行转置运算,所以与图5A相比,图5B中的存储器访问计数可以减少。在图5B中,存储器访问计数相较于5A可以减少两倍,相应地,读/写数据可以减少2*BLH(=B*L*S*H/S)。此外,随着批量大小的增加,与图5A相比,在根据图5B的方法中减少存储器访问计数的效果可能更大。
图6是用于描述根据示例的通过使用权重划分器来执行矩阵乘法的过程的示例图。
参考图6,初始权重和输入特征图可以存储在存储器610中。在下文中,假定初始权重是具有512行和512列的(512,512)结构,并且输入特征图是具有T行(T为自然数)和512列的(T,512)结构。
可以将存储在存储器610中的(512,512)结构的初始权重输入到权重划分器620。权重划分器620可以将初始权重划分为多个划分权重。权重划分器620可以在列方向和行方向中的任何一个上划分初始权重。
特别地,权重划分器620可以根据重塑运算和转置运算是在矩阵乘法运算之后还是之前执行来确定是否在列方向和行方向中的任何一个上划分(512,512)结构的初始权重。
例如,当重塑运算和转置运算在矩阵乘法运算之后执行时,权重划分器620可以在列方向上划分(512,512)结构的初始权重以生成多个划分权重。备选地,当重塑运算和转置运算在矩阵乘法运算之前执行时,权重划分器620可以在行方向上划分(512,512)结构的初始权重以生成多个划分权重。
而且,权重划分器620可以在所确定的方向上将(512,512)结构的初始权重除以头计数。例如,当头计数为16时,可以取决于初始权重的划分方向而生成具有(512,32)结构(列方向划分)的16个划分权重或具有(32,512)结构(行方向划分)的16个划分权重。
可以将权重划分器620所生成的每个划分权重发送给PE。PE可以对从权重划分器620接收的划分权重和从存储器610接收的输入特征图执行矩阵乘法运算。作为执行矩阵乘法运算的结果,可以从PE输出中间特征图。
例如,当权重划分器620在列方向上划分(512,512)结构的初始权重时,权重划分器620可以将具有(512,32)结构的第一划分权重至第十六划分权重分别发送给第一PE至第十六PE 6301、6302、...、6316。而且,第一PE 6301至第十六PE 6316可以从存储器610接收输入特征图。
第一PE 6301可以在(512,32)结构的第一划分权重与(T,512)结构的输入特征图之间执行矩阵乘法运算,并且输出(T,32)结构的第一中间特征图。以相同的方式,第二PE6302至第十六PE 6316可以分别输出(T,32)结构的第二中间特征图至第十六中间特征图。
尽管图6示出了权重划分器620在列方向上划分初始权重的情况,但是上面的描述也可以应用于权重划分器620在行方向上划分初始权重的情况。
当在列方向上划分初始权重时,可以将从第一PE 6301至第十六PE 6316输出的(T,32)结构的第一中间特征图至第十六中间特征图进行级联以生成最终特征图。最终特征图可以具有(16,T,32)结构。在示例中,第一中间特征图至第十六中间特征图可以顺序地存储在存储器610的连续位置处,因此可以将第一中间特征图至第十六中间特征图进行级联。
当在行方向上划分初始权重时,可以通过对从第一PE6301至第十六PE 6316输出的第一中间特征图至第十六中间特征图进行逐元素求和来生成最终特征图。可以在PE中执行逐元素求和。
尽管图6示出了假定头计数为16而使用了16个PE,但是取决于头计数,所使用的PE的数量可以更少或更多。而且,当对一个输入特征图执行矩阵乘法运算时,至少一个PE可以被使用若干次。
图7是示出了根据示例的在权重在列方向上被划分的情况下执行矩阵乘法的结果的示例图。
图7是示出了在矩阵乘法运算之后执行重塑运算和转置运算的情况的示意图。
参考图7,输入特征图710可以具有(1,4,6)结构。也就是说,输入特征图710可以具有批量大小为1、行为4个且列为6个的结构。初始权重720可以具有(1,6,6)结构。也就是说,初始权重720可以具有批量大小为1、行为6个且列为6个的结构。
可以对(1,4,6)结构的输入特征图710和(1,6,6)结构的初始权重720执行矩阵乘法运算,然后可以对运算结果执行重塑运算和转置运算。结果是,可以生成(1,3,4,2)结构的最终特征图740。也就是说,输出特征图740可以具有批量大小为1、通道为3个、行为4个且列为2个的结构。
此外,可以在列方向上划分初始权重720以生成多个划分权重。在这种情况下,可以根据头计数来确定所生成的划分权重的数量。图7是如下情况的示例:头计数为3,且(1,6,6)结构的初始权重720可以被划分为(1,6,2)结构的第一划分权重731、第二划分权重732和第三划分权重733。
可以在(1,4,6)结构的输入特征图710与(1,6,2)结构的第一划分权重731至第三划分权重733之间执行矩阵乘法运算,并且可以将运算结果进行级联以生成(1,3,4,2)结构的最终特征图740。
在示例中,当重塑运算和转置运算在矩阵乘法运算之后执行时,可以在列方向上划分初始权重720以生成第一划分权重731至第三划分权重733,并且可以在输入特征图710与第一划分权重731至第三划分权重733之间执行矩阵乘法运算,以生成与已执行重塑运算和转置运算的情况相同的最终特征图740。
图8是示出了根据示例的在权重在行方向上被划分的情况下执行矩阵乘法的结果的示例图。
参考图8,输入特征图810可以具有(1,3,4,2)结构。也就是说,输入特征图810可以具有批量大小为1、通道为3个、行为4个且列为2个的结构。当对输入特征图810执行重塑运算和转置运算时,输入特征图811可以具有(1,4,6)结构。也就是说,输入特征图811可以具有批量大小为1、行为4个且列为6个的结构。初始权重820可以具有(1,6,6)结构。也就是说,初始权重820可以具有批量大小为1、行为6个且列为6个的结构。
当对(1,4,6)结构的输入特征图811和(1,6,6)结构的初始权重820执行矩阵乘法运算时,作为其结果,可以生成(1,4,6)结构的最终特征图850。也就是说,最终特征图850可以具有批量大小为1、行为4个且列为6个的结构。
此外,可以在列方向上划分初始权重820以生成多个划分权重。在这种情况下,可以根据头计数来确定所生成的划分权重的数量。图8是如下情况的示例:头计数为3,且(1,6,6)结构的初始权重820可以被划分为(1,2,6)结构的第一划分权重831、第二划分权重832和第三划分权重833。
可以在(1,3,4,2)结构的输入特征图810与(1,2,6)结构的第一划分权重831至第三划分权重833之间执行矩阵乘法运算,并且作为其结果,可以生成(1,4,6)结构的第一中间特征图841、第二中间特征图842和第三中间特征图843。可以通过对第一中间特征图841至第三中间特征图843进行逐元素求和来生成(1,4,6)结构的最终特征图850。
在示例中,当重塑运算和转置运算在矩阵乘法运算之前执行时,可以在行方向上划分初始权重820以生成第一划分权重831至第三划分权重833,并且可以在输入特征图810与第一划分权重831至第三划分权重833之间执行矩阵乘法运算,以生成与已执行重塑运算和转置运算的情况相同的最终特征图850。
图9是示出了根据示例的神经网络装置的硬件配置的框图。
神经网络装置900可以由各种类型的设备实现,诸如个人计算机(PC)、服务器设备、移动设备或嵌入式设备,并且作为特定示例,神经网络装置900可以对应于通过使用神经网络来执行语音识别、图像识别,图像分类等的智能电话、平板设备、增强现实(AR)设备、物联网(IoT)设备、自动驾驶汽车、机器人、医疗装置等,但不限于此。另外,神经网络装置900可以对应于安装在上述设备上的专用硬件(HW)加速器,并且神经网络装置900可以是诸如神经处理单元(NPU)、张量处理单元(TPU)或神经引擎(其是用于神经网络驱动的专用模块)的硬件加速器,但不限于此。
参考图9,神经网络装置900可以包括处理器910和存储器920。在图9中所示的神经网络装置900中,仅示出了与各个示例有关的组件。因此,本领域的普通技术人员将清楚的是,除了图9中所示的组件之外,神经网络装置900还可以包括其他通用组件。
处理器910可以控制用于执行神经网络装置900的总体功能。例如,处理器910通常可以通过执行在神经网络装置900中的存储器920中存储的程序来控制神经网络装置900。处理器910可以由设置在神经网络装置900中的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)等实现,但不限于此。
存储器920可以是用于存储在神经网络装置900中进行处理的各种数据的硬件,例如,存储器920可以存储在神经网络装置900中已进行处理或将要进行处理的数据。此外,存储器920可以存储将由神经网络装置900驱动的应用、驱动器等。存储器920可以包括随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM))、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM、蓝光、其他光盘储存器、硬盘驱动器(HDD)、固态驱动器(SSD)或闪存。
处理器910可以从/向存储器920读取/写入神经网络数据,例如图像数据、特征图数据、权重数据等,并且通过使用读取/写入的数据来执行神经网络。当执行神经网络时,处理器910可以重复地执行输入特征图与权重之间的卷积运算,以生成关于输出特征图的数据。在这种情况下,可以取决于各种因素(例如,输入特征图的通道数、权重的通道数、输入特征图的大小、权重的大小和值的精度)来确定卷积运算的量。与图1中所示的DNN 100不同,可以以更复杂的架构实现在神经网络装置900中驱动的***经网络。因此,处理器910可能执行非常大量的运算(运算计数),范围从数亿到数百亿,并且处理器910访问存储器920以进行运算的频率也可能激增。由于该运算负荷,在具有相对较低的处理性能的移动设备(诸如,智能电话、平板设备或可穿戴设备、嵌入式设备等)中可能无法顺利地处理神经网络。
处理器910可以执行矩阵乘法运算、重塑运算和转置运算。在示例中,处理器910可以执行矩阵乘法运算、重塑运算和转置运算以获得多头自注意力。在获得多头自注意力的过程中,重塑运算和转置运算可以在矩阵乘法运算之后或之前执行。
处理器910甚至可以在不执行重塑运算和转置运算的情况下执行获得多头自注意力的过程的一部分。处理器910可以根据重塑运算和转置运算是在矩阵乘法运算之后还是之前执行来确定是否在列方向和行方向中的任何一个上划分初始权重,并且通过在所确定的方向上将初始权重除以头计数来生成多个划分权重。处理器910可以通过在输入特征图与多个划分权重之间执行矩阵乘法运算来生成多个中间特征图,并且基于多个中间特征图来生成最终特征图。以上述方式,即使在不执行重塑运算和转置运算的情况下,处理器910也可以通过执行获得多头自注意力的过程的一部分来减少访问存储器920的次数。
图10是根据示例的在神经网络装置中执行矩阵乘法运算的方法的流程图。因为图10中所示的在神经网络装置中执行矩阵乘法运算的方法与上面参考以上附图进行描述的示例有关,所以即使下面省略,上面参考以上附图给出的描述也可以应用于图10的方法。
参考图10,在操作1010中,神经网络装置可以从存储器获得输入特征图和初始权重。
在操作1020中,神经网络装置可以根据重塑运算和转置运算是在矩阵乘法运算之后还是之前执行来确定是否在列方向和行方向中的任何一个上划分初始权重。
当重塑运算和转置运算在矩阵乘法运算之后执行时,神经网络装置可以在初始权重的列方向上划分初始权重。备选地,当重塑运算和转置运算在矩阵乘法运算之前执行时,神经网络装置可以在初始权重的行方向上划分初始权重。
在操作1030中,神经网络装置可以通过在操作1020中确定的方向上将初始权重除以头计数来生成多个划分权重。
例如,当初始权重的结构为(512,512)且头计数为16时,可以取决于初始权重的划分方向而生成具有(512,32)结构(列方向划分)的16个划分权重或具有(32,512)结构(行方向划分)的16个划分权重。
在操作1040中,神经网络装置可以通过在输入特征图与多个划分权重之间执行矩阵乘法运算来生成多个中间特征图。
输入特征图与多个划分权重之间的矩阵乘法运算可以是一维卷积运算和二维卷积运算中的任何一个。
在操作1050中,神经网络装置可以基于多个中间特征图来生成最终特征图。
当在操作1020中,在列方向上划分初始权重时,神经网络装置可以通过将多个中间特征图进行级联来生成最终特征图。
当在操作1020中,在行方向上划分初始权重时,神经网络装置可以通过对多个中间特征图进行逐元素求和来生成最终特征图。
各个示例还可以以计算机可读记录介质的形式实现,计算机可读记录介质包括可由计算机执行的指令,诸如由计算机执行的程序模块。计算机可读记录介质可以是计算机可访问的任何可用介质,并且可以包括所有的易失性或非易失性介质以及可移除或不可移除介质。而且,计算机可读记录介质可以包括所有的计算机存储介质和通信介质。计算机存储介质可以包括通过任何方法或技术实现以存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的所有的易失性或非易失性介质以及可移除或不可移除介质。例如,通信介质可以包括任何信息传输介质,并且可以包括其他传输机制或调制数据信号的其他数据,诸如计算机可读指令、数据结构或程序模块。
此外,在本文中,“单元”可以包括诸如处理器或电路的硬件组件和/或由诸如处理器的硬件组件执行的软件组件。
前述内容是各个示例的说明,并且本领域普通技术人员将容易理解的是,可以在实质上不脱离各个示例的精神或特征的情况下在其中进行各种修改。因此,应理解的是,上述示例应仅在描述性意义上进行考虑,而非出于限制目的。例如,被描述为被组合的元素也可以以分布的方式实现,并且被描述为被分布的元素也可以以组合的方式实现。
各个示例的范围不是由上面的具体实施方式限定的,而是由所附的权利要求书限定的,并且在权利要求的范围内的所有修改或区别都应被解读为包括在各个示例中。
根据各个示例,可以通过在不执行重塑运算和转置运算的情况下若干次地重复矩阵乘法运算来获得相同的结果,因此可以减少存储器访问计数,从而可以减少存储器功率量。
尽管本公开包括特定示例,但是在理解了本申请的公开内容之后将显而易见的是,在不脱离权利要求及其等同物的精神和范围的情况下,可以对这些示例进行形式和细节上的各种改变。本文中所描述的示例应仅被认为是描述性的,而非出于限制的目的。对每个示例中的特征或方面的描述应被认为适用于其他示例中的类似特征或方面。如果所描述的技术以不同的顺序执行和/或如果所描述的***、架构、设备或电路中的组件以不同的方式组合和/或被其他组件或其等同物替换或补充,则可以实现合适的结果。因此,本公开的范围不是由详细描述来限定,而是由权利要求及其等同物来限定,并且在权利要求及其等同物的范围内的所有变化都应被解释为包括在本公开中。
Claims (15)
1.一种神经网络装置,包括:
存储器,所述存储器中存储有至少一个程序;以及
处理器,被配置为通过执行所述至少一个程序来执行一个或多个运算,其中所述处理器被配置为:
从所述存储器获取输入特征图和初始权重,
根据重塑运算和转置运算是在矩阵乘法运算之前还是之后执行来确定是在列方向还是行方向上划分所述初始权重,
通过在所确定的列方向或行方向上将所述初始权重除以头计数来生成划分权重,
通过在所述输入特征图与所述划分权重之间执行矩阵乘法运算来生成中间特征图,以及
基于所述中间特征图来生成最终特征图。
2.根据权利要求1所述的神经网络装置,其中所述处理器被配置为:
当重塑运算和转置运算在矩阵乘法运算之后执行时,通过在所述初始权重的列方向上将所述初始权重除以所述头计数来生成所述划分权重;以及
通过将所述中间特征图进行级联来生成所述最终特征图。
3.根据权利要求1所述的神经网络装置,其中所述处理器被配置为:
当重塑运算和转置运算在矩阵乘法运算之前执行时,通过在所述初始权重的行方向上将所述初始权重除以头计数来生成所述划分权重;以及
通过对所述中间特征图进行逐元素求和来生成所述最终特征图。
4.根据权利要求1所述的神经网络装置,其中在所述输入特征图与所述划分权重之间的矩阵乘法运算是一维卷积运算和二维卷积运算之一。
5.根据权利要求1所述的神经网络装置,其中所述处理器包括权重划分器,以及
所述权重划分器被配置为在所述列方向和所述行方向上将所述初始权重除以所述头计数。
6.一种神经网络装置中的方法,所述方法包括:
从存储器获取输入特征图和初始权重;
根据重塑运算和转置运算是在矩阵乘法运算之前还是之后执行来确定是在列方向还是行方向上划分所述初始权重;
通过在所确定的列方向或行方向上将所述初始权重除以头计数来生成划分权重;
通过在所述输入特征图与所述划分权重之间执行矩阵乘法运算来生成中间特征图;以及
基于所述中间特征图来生成最终特征图。
7.根据权利要求6所述的方法,还包括:
当重塑运算和转置运算在矩阵乘法运算之后执行时,通过在所述初始权重的列方向上将所述初始权重除以所述头计数来生成所述划分权重;以及
通过将所述中间特征图进行级联来生成所述最终特征图。
8.根据权利要求6所述的方法,还包括:
当重塑运算和转置运算在矩阵乘法运算之前执行时,通过在所述初始权重的行方向上将所述初始权重除以头计数来生成所述划分权重;以及
通过对所述中间特征图进行逐元素求和来生成所述最终特征图。
9.根据权利要求6所述的方法,其中在所述输入特征图与所述划分权重之间的矩阵乘法运算是一维卷积运算和二维卷积运算之一。
10.根据权利要求6所述的方法,其中生成所述划分权重包括:
将所述初始权重输入到权重划分器;以及
从所述权重划分器获取在所述初始权重的列方向和行方向之一上将所述初始权重除以所述头计数所得的所述划分权重。
11.一种非暂时性计算机可读记录介质,所述非暂时性计算机可读记录介质存储有程序,所述程序在由计算机执行时执行权利要求6所述的方法。
12.一种方法,包括:
接收初始特征图和初始权重;
将所述初始权重划分为划分权重;
在所述输入特征图与每个划分权重之间执行矩阵乘法运算以生成中间特征图;以及
操纵所述中间特征图以生成输出特征图。
13.根据权利要求12所述的方法,其中在已对所述输入特征图进行了重塑运算和转置运算的情况下,在行方向上基于所述初始权重的头计数将所述初始权重划分为所述划分权重,并且
所述方法还包括:通过对所述中间特征图进行逐元素求和来生成所述输出特征图。
14.根据权利要求12所述的方法,其中在未对所述输入特征图进行重塑运算和转置运算的情况下,在列方向上基于所述初始权重的头计数将所述初始权重划分为所述划分权重,并且
所述方法还包括:通过将所述中间特征图进行级联来生成所述输出特征图。
15.一种非暂时性计算机可读记录介质,所述非暂时性计算机可读记录介质存储有程序,所述程序在由计算机执行时执行权利要求12所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190161676A KR20210071471A (ko) | 2019-12-06 | 2019-12-06 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
KR10-2019-0161676 | 2019-12-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112926731A true CN112926731A (zh) | 2021-06-08 |
Family
ID=71143529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010637961.9A Pending CN112926731A (zh) | 2019-12-06 | 2020-07-03 | 执行神经网络的矩阵乘法运算的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11899744B2 (zh) |
EP (1) | EP3832498A1 (zh) |
KR (1) | KR20210071471A (zh) |
CN (1) | CN112926731A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705323A (zh) * | 2021-06-15 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、设备以及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210071471A (ko) * | 2019-12-06 | 2021-06-16 | 삼성전자주식회사 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
CN113434813B (zh) * | 2021-06-26 | 2024-05-14 | 上海寒武纪信息科技有限公司 | 一种基于神经网络的矩阵乘运算方法及相关装置 |
KR102473941B1 (ko) * | 2021-11-30 | 2022-12-06 | 주식회사 튜닙 | 딥러닝 모델 병렬 처리 장치 및 방법 |
WO2024136128A1 (ko) * | 2022-12-22 | 2024-06-27 | 오픈엣지테크놀로지 주식회사 | 효율적인 연산 분할을 위한 텐서 변형 방법, 메모리 액세스 방법, 및 이를 위한 뉴럴 프로세싱 유닛 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301576B2 (en) | 2005-10-27 | 2012-10-30 | Ca, Inc. | Weighted pattern learning for neural networks |
US20140149480A1 (en) | 2012-11-28 | 2014-05-29 | Nvidia Corporation | System, method, and computer program product for transposing a matrix |
US10262259B2 (en) | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US20170193361A1 (en) | 2015-12-31 | 2017-07-06 | Microsoft Technology Licensing, Llc | Neural network training performance optimization framework |
IL281321B (en) | 2016-10-04 | 2022-07-01 | Magic Leap Inc | Efficient data layouts for convolutional neural networks |
US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
US10096134B2 (en) | 2017-02-01 | 2018-10-09 | Nvidia Corporation | Data compaction and memory bandwidth reduction for sparse neural networks |
US10860760B2 (en) | 2017-04-21 | 2020-12-08 | Intel Corporation | Systems and methods for implementing learned parameter systems on a programmable integrated circuit |
KR102486348B1 (ko) * | 2017-05-23 | 2023-01-09 | 구글 엘엘씨 | 어텐션-기반의 시퀀스 변환 신경망 |
TWI680409B (zh) * | 2017-07-08 | 2019-12-21 | 英屬開曼群島商意騰科技股份有限公司 | 適用於人工神經網路之矩陣及向量相乘的方法 |
EP3605402B1 (en) * | 2017-08-31 | 2022-08-31 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Chip device and related product |
CN118194921A (zh) * | 2017-10-27 | 2024-06-14 | 谷歌有限责任公司 | 基于关注的图像生成神经网络 |
KR20190051697A (ko) | 2017-11-07 | 2019-05-15 | 삼성전자주식회사 | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 |
US20190205761A1 (en) * | 2017-12-28 | 2019-07-04 | Adeptmind Inc. | System and method for dynamic online search result generation |
US11238843B2 (en) * | 2018-02-09 | 2022-02-01 | Baidu Usa Llc | Systems and methods for neural voice cloning with a few samples |
US11501076B2 (en) * | 2018-02-09 | 2022-11-15 | Salesforce.Com, Inc. | Multitask learning as question answering |
WO2019195660A1 (en) * | 2018-04-05 | 2019-10-10 | Rain Neuromorphics Inc. | Systems and methods for efficient matrix multiplication |
US10740693B2 (en) * | 2018-05-15 | 2020-08-11 | Lightmatter, Inc. | Systems and methods for training matrix-based differentiable programs |
WO2019219964A1 (en) * | 2018-05-18 | 2019-11-21 | Deepmind Technologies Limited | Reinforcement learning systems comprising a relational network for generating data encoding relationships between entities in an environment |
CN111727444A (zh) * | 2018-05-18 | 2020-09-29 | 谷歌有限责任公司 | 通用变换器 |
US10853725B2 (en) * | 2018-05-18 | 2020-12-01 | Deepmind Technologies Limited | Neural networks with relational memory |
US10692570B2 (en) * | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
US11562046B2 (en) * | 2018-11-26 | 2023-01-24 | Samsung Electronics Co., Ltd. | Neural network processor using dyadic weight matrix and operation method thereof |
US11423436B2 (en) * | 2019-02-19 | 2022-08-23 | Nec Corporation | Interpretable click-through rate prediction through hierarchical attention |
US11393487B2 (en) * | 2019-03-28 | 2022-07-19 | Samsung Electronics Co., Ltd. | System and method for acoustic echo cancelation using deep multitask recurrent neural networks |
US11164085B2 (en) * | 2019-04-25 | 2021-11-02 | Booz Allen Hamilton Inc. | System and method for training a neural network system |
US11404044B2 (en) * | 2019-05-14 | 2022-08-02 | Samsung Electronics Co., Ltd. | Method, apparatus, electronic device, and computer readable storage medium for voice translation |
EP3888084A4 (en) * | 2019-05-16 | 2022-01-05 | Samsung Electronics Co., Ltd. | METHOD AND DEVICE FOR PROVIDING A VOICE RECOGNITION SERVICE |
JP7062617B2 (ja) * | 2019-06-26 | 2022-05-06 | 株式会社東芝 | 演算装置および演算方法 |
US11568238B2 (en) * | 2019-06-28 | 2023-01-31 | Amazon Technologies, Inc. | Dynamic processing element array expansion |
US20210081672A1 (en) * | 2019-09-13 | 2021-03-18 | Nec Laboratories America, Inc | Spatio-temporal interactions for video understanding |
KR20210071471A (ko) * | 2019-12-06 | 2021-06-16 | 삼성전자주식회사 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
-
2019
- 2019-12-06 KR KR1020190161676A patent/KR20210071471A/ko not_active Application Discontinuation
-
2020
- 2020-04-17 US US16/851,361 patent/US11899744B2/en active Active
- 2020-06-24 EP EP20181975.2A patent/EP3832498A1/en active Pending
- 2020-07-03 CN CN202010637961.9A patent/CN112926731A/zh active Pending
-
2023
- 2023-12-27 US US18/397,716 patent/US20240126833A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705323A (zh) * | 2021-06-15 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20210071471A (ko) | 2021-06-16 |
US20240126833A1 (en) | 2024-04-18 |
US11899744B2 (en) | 2024-02-13 |
US20210173895A1 (en) | 2021-06-10 |
EP3832498A1 (en) | 2021-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210173895A1 (en) | Apparatus and method of performing matrix multiplication operation of neural network | |
US11138385B2 (en) | Method and apparatus for determining semantic matching degree | |
US11886998B2 (en) | Attention-based decoder-only sequence transduction neural networks | |
KR101880901B1 (ko) | 기계 학습 방법 및 장치 | |
CN110969250B (zh) | 一种神经网络训练方法及装置 | |
WO2019228122A1 (zh) | 模型的训练方法、存储介质及计算机设备 | |
CN111191457B (zh) | 自然语言语义识别方法、装置、计算机设备和存储介质 | |
CN111782826A (zh) | 知识图谱的信息处理方法、装置、设备及存储介质 | |
CN111370084A (zh) | 基于BiLSTM的电子健康记录表示学习方法及*** | |
CN109543029B (zh) | 基于卷积神经网络的文本分类方法、装置、介质和设备 | |
EP4040339A1 (en) | Sparse attention neural networks | |
KR102470027B1 (ko) | 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체 | |
WO2020211611A1 (zh) | 用于语言处理的循环神经网络中隐状态的生成方法和装置 | |
CN109145107B (zh) | 基于卷积神经网络的主题提取方法、装置、介质和设备 | |
US20210004534A1 (en) | Vectorization device and language processing method | |
CN114329148A (zh) | 内容信息识别方法、装置、计算机设备和存储介质 | |
WO2023122896A1 (zh) | 一种数据处理方法和装置 | |
CN115439848A (zh) | 一种场景识别方法、装置、设备和存储介质 | |
US11631002B2 (en) | Information processing device and information processing method | |
CN114496068A (zh) | 蛋白质二级结构预测方法、装置、设备及存储介质 | |
CN113496228A (zh) | 一种基于Res2Net、TransUNet和协同注意力的人体语义分割方法 | |
CN112905954A (zh) | 一种利用fpga bram的cnn模型卷积运算加速计算方法 | |
CN111242299A (zh) | 基于ds结构的cnn模型压缩方法、装置及存储介质 | |
EP3832551A1 (en) | Method and apparatus for processing data | |
Damasceno et al. | Independent vector analysis with sparse inverse covariance estimation: An application to misinformation detection |
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 |