CN112668689A - 进行多媒体数据处理的方法和设备 - Google Patents
进行多媒体数据处理的方法和设备 Download PDFInfo
- Publication number
- CN112668689A CN112668689A CN202010410622.7A CN202010410622A CN112668689A CN 112668689 A CN112668689 A CN 112668689A CN 202010410622 A CN202010410622 A CN 202010410622A CN 112668689 A CN112668689 A CN 112668689A
- Authority
- CN
- China
- Prior art keywords
- data
- compressed data
- information
- matrix
- compressed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 title claims abstract description 58
- 239000011159 matrix material Substances 0.000 claims abstract description 164
- 238000013528 artificial neural network Methods 0.000 claims abstract description 59
- 230000015654 memory Effects 0.000 claims description 61
- 238000005192 partition Methods 0.000 claims description 15
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 230000003190 augmentative effect Effects 0.000 claims description 3
- 210000002569 neuron Anatomy 0.000 description 42
- 239000013598 vector Substances 0.000 description 39
- 238000004364 calculation method Methods 0.000 description 22
- 230000004913 activation Effects 0.000 description 11
- 241001442055 Vipera berus Species 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- 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/048—Activation functions
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
一种进行多媒体数据处理的方法和设备。一种处理多媒体数据的方法包括:获得多媒体数据;以及使用神经网络从所述多媒体数据识别对象,其中,针对神经网络的至少一个层中的任意一层执行如下处理:基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据,其中,第一矩阵数据被用于对第二矩阵数据进行卷积运算,其中,第二矩阵数据对应于多媒体数据或者与所述多媒体数据相应的特征图数据;基于所述压缩数据提取第二矩阵数据中的元素值信息;并且基于所述压缩数据和提取出的第二矩阵数据中的元素值信息产生输出矩阵数据。
Description
本申请要求于2019年10月16日在韩国知识产权局提交的第10-2019-0128714号韩国专利申请的权益,该申请的公开通过引用全部合并于此。
技术领域
本公开涉及进行数据处理的方法和设备。更具体地,涉及多媒体数据处理的方法和设备。
背景技术
神经网络可指计算机科学计算架构。可在各种电子***中通过使用神经网络装置来分析多媒体数据并提取有效信息。
当对多媒体数据和权重矩阵执行算术计算以便提取多媒体数据中的有效信息时,由于权重矩阵中的无效信息的存在,利用典型神经网络的电子装置可能不会高效地处理所述计算。
发明内容
提供此发明内容是为了以简化形式介绍以下在具体实施方式中进一步描述的构思的选择。此发明内容不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定要求保护的主题的范围。
在一个总体方面,一种处理器实现的数据处理方法包括:基于包括在第一矩阵数据中的有效元素之间的距离的信息产生第一矩阵数据的压缩数据;基于所述压缩数据提取第二矩阵数据;并且基于所述压缩数据和第二矩阵数据产生输出矩阵数据。
包括在第一矩阵数据中的有效元素可以是具有非零值的元素。
产生所述压缩数据的步骤可包括:产生所述压缩数据使得包括在第一矩阵数据的同一行中的元素中的第一有效元素的信息被包括在所述压缩数据中;并且产生所述压缩数据使得包括在第一矩阵数据的所述同一行中的元素中的第二有效元素的信息被包括在所述压缩数据中。
第一有效元素可以是包括在所述同一行中的有效元素中的具有最小列地址的元素。
产生所述压缩数据使得第一有效元素的信息被包括在所述压缩数据中的步骤可包括:将第一有效元素的元素值信息和列地址信息分配给所述压缩数据,并且产生所述压缩数据使得第二有效元素的信息被包括在所述压缩数据中的步骤可包括:将第二有效元素的元素值信息和列距离信息分配给所述压缩数据,其中,所述列距离信息指示从第二有效元素到具有比第二有效元素的列地址小的列地址的有效元素的列距离。
第一有效元素可以是所述具有比第二有效元素小的列地址的有效元素。
产生所述压缩数据的步骤可包括:产生所述压缩数据使得第一有效元素的行地址被包括在所述压缩数据中。
产生所述压缩数据使得第一有效元素的行地址被包括在所述压缩数据中的步骤可包括:将第一有效元素的行地址信息和指示包括第一有效元素的行的末端的标识位分配给所述压缩数据。
所述方法可包括:存储产生的压缩数据使得第一矩阵数据的有效元素被配置为以行为单位被读取。
存储所述压缩数据的步骤可包括:将所述压缩数据分区成行;并且将多条分区的压缩数据分别存储在多个存储体的第一区域中。
存储所述压缩数据的步骤还可包括:拷贝存储在第一区域中的所述多条分区的压缩数据的部分压缩数据并且将所述部分压缩数据存储在所述多个存储体中的一个存储体的第二区域中。
提取第二矩阵数据的步骤可包括:从所述压缩数据获得有效元素的行地址信息和列地址信息;并且提取与获得的行地址和列地址相应的第二矩阵数据的元素值信息。
获得行地址信息和列地址信息的步骤可包括:获得存储在所述压缩数据中的第一有效元素的列地址信息,并且通过将存储在所述压缩数据中的列距离信息与具有比第二有效元素的列地址小的列地址的有效元素的列距离信息求和来获得第二有效元素的列地址信息。
产生所述压缩数据的步骤可包括:使用所述压缩数据和第二矩阵数据来执行乘法和累加MAC运算。
第一矩阵数据可与内核权重数据相应并且第二矩阵数据可与特征图数据相应。
在另一总体方面,一种处理多媒体数据的方法包括:获得所述多媒体数据;以及使用神经网络从所述多媒体数据识别对象,其中,针对神经网络的至少一个层中的任意一层执行如下处理:基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据;基于所述压缩数据提取第二矩阵数据中的元素值信息;并且基于所述压缩数据和提取出的第二矩阵数据中的元素值信息产生输出矩阵数据。
当所述任意一层是神经网络的第一层时,第二矩阵数据与所述多媒体数据相应,当所述任意一层是除了第一层之外的层时,第二矩阵数据与前一层输出的特征图数据相应。
一种非暂时性计算机可读存储介质可存储在被一个或更多个处理器执行时配置所述一个或更多个处理器执行所述方法的指令。
在另一总体方面,一种数据处理设备包括一个或更多个处理器,所述一个或更多个处理器被配置为:基于包括在第一矩阵数据中的有效元素之间的相对距离的信息产生第一矩阵数据的压缩数据;基于所述压缩数据提取输入向量;并且基于所述压缩数据和第二矩阵数据产生输出矩阵数据。
为了产生所述压缩数据,所述一个或更多个处理器可被配置为:产生所述压缩数据使得包括在第一矩阵数据的同一行中的元素中的第一有效元素的信息被包括在所述压缩数据中;产生所述压缩数据使得包括在第一矩阵数据的所述同一行中的元素中的第二有效元素的信息被包括在所述压缩数据中;以及产生所述压缩数据使得第一有效元素的行地址被包括在所述压缩数据中。
产生所述压缩数据使得第一有效元素的信息被包括在所述压缩数据中的操作可包括:将第一有效元素的元素值信息和列地址信息分配给所述压缩数据,产生所述压缩数据使得第二有效元素的信息被包括在所述压缩数据中的操作可包括:将第二有效元素的元素值信息和列距离信息分配给所述压缩数据,其中,所述列距离信息指示从第二有效元素到具有比第二有效元素的列地址小的列地址的有效元素的列距离,并且产生所述压缩数据使得第一有效元素的行地址被包括所述压缩数据中的操作可包括:将第一有效元素的行地址信息和指示包括第一有效元素的行的末端的标识位分配给所述压缩数据。
所述一个或更多个处理器可被配置为存储产生的压缩数据使得第一矩阵数据的有效元素可被配置为以行为单位被读取。
为了存储所述压缩数据,所述一个或更多个处理器可被配置为:将所述压缩数据分区成行单元;并且将多条分区的压缩数据分别存储在多个存储体的第一区域中。
为了存储所述压缩数据,所述一个或更多个处理器可被配置为:拷贝存储在第一区域中的所述多条分区的压缩数据的部分压缩数据并且将所述部分压缩数据存储在所述多个存储体中的一个存储体的第二区域中。
所述一个或更多个处理器可被配置为:从所述压缩数据获得有效元素的行地址信息和列地址信息;并且提取与获得的行地址和列地址相应的第二矩阵数据的元素值信息。
所述一个或更多个处理器可被配置为使用所述压缩数据和所述输入向量执行乘法和累加MAC运算。
所述设备可包括:存储器,存储指令,其中,所述指令在被一个或更多个处理器执行时配置所述一个或更多个处理器执行产生第一矩阵数据的压缩数据的操作、提取第二矩阵数据的操作并产生输出矩阵数据的操作。
所述设备可以是个人计算机PC、服务器装置、移动装置、智能电话、平板装置、增强现实(AR)装置、物联网(loT)装置、自动车辆、机器人装置和医疗装置中的任何一个,并且所述一个或更多个处理器可被配置为基于对所述数据的处理的结果执行语音识别、视觉识别和图像分类中的任何一个。
在另一总体方面,一种处理多媒体数据的设备,包括:一个或更多个处理器,被配置为:获得多媒体数据;以及使用神经网络从所述多媒体数据识别对象,其中,针对神经网络的至少一个层中的任意一层执行如下处理:基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据;基于所述压缩数据提取第二矩阵数据中的元素值信息;并且基于所述压缩数据和提取出的第二矩阵数据中的元素值信息产生输出矩阵数据。
当所述任意一层是神经网络的第一层时,第二矩阵数据与所述多媒体数据相应,当所述任意一层是除了第一层之外的层时,第二矩阵数据与前一层输出的特征图数据相应。
通过以下详细描述、附图和权利要求其他特征和方面将显而易见。
附图说明
从结合附图进行的以下描述,本公开的特定实施例的以上和其他方面、特征和优点将更加明显,其中:
图1示出根据一个或更多个实施例的神经网络;
图2示出根据一个或更多个实施例的数据处理设备;
图3示出根据一个或更多个实施例的处理数据的方法;
图4示出根据一个或更多个实施例的由处理器对数据进行压缩的方法;
图5示出根据一个或更多个实施例的由处理器存储压缩数据的方法;
图6示出根据一个或更多个实施例的由处理器划分并存储压缩数据的方法;
图7示出根据一个或更多个实施例的由处理器存储分区的压缩数据的方法;
图8示出根据一个或更多个实施例的由处理器通过使用压缩数据对输出数据进行计算的方法;以及
图9示出根据一个或更多个实施例的由处理器通过使用压缩数据对输出数据进行计算的方法。
具体实施方式
提供以下详细描述以帮助读者获得对在此描述的方法、设备和/或***的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或***的各种改变、修改和等同形式将是显而易见的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些操作的顺序,而且在理解本申请的公开之后,显而易见的是,除了必需以特定顺序发生的操作之外,在此描述的操作的顺序可被改变。此外,为了更加清楚和简明,可省略对本领域中已知的特征的描述。
现将详细参照实施例(其示例在附图中被示出),其中,相同的附图标记始终表示相同的元件。就此而言,一个或更多个实施例可具有不同的形式并且不应被解释为限于在此阐明的描述。因此,以下仅通过参照附图来描述实施例以解释各个方面。如这里所使用的,术语“和/或”包括相关联的所列项目中的一个或更多个的任何和所有组合。诸如“……中的至少一个”的表述在一列元素之后时修饰整列元素,而不修饰列表中的单个元素。
除非另有定义,否则在对本申请的公开的理解之后,在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在此明确定义,否则术语(诸如,常用词典中定义的术语)应被解释为具有与它们在现有技术和本申请的公开的上下文中的含义一致的含义,而不应在理想化或过于形式化的意义上被解释。
这里所使用的术语仅用于描述各种示例,并且不用于限制本公开。除非上下文另外清楚地指示,否则单数形式“一”、“一个”和“该(所述)”也旨在包括复数形式。术语“包含”、“包括”和“具有”指定存在所陈述的特征、数量、操作、构件、元件和/或特征、数量、操作、构件和元件的组合,但不排除存在或添加一个或更多个其他特征、数量、操作、构件、元件和/或其他特征、数量、操作、构件和元件的组合。此外,在说明书中,术语“单元”或“……模块”表示处理至少一个功能或操作的单元或模块,并且可通过硬件或硬件和软件的组合被实现。
尽管在此可使用诸如“第一”、“第二”和“第三”之类的术语来描述各种构件、组件、区域、层或部分,但这些构件、组件、区域、层或部分不受这些术语限制。相反地,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中提及的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
现将详细参照以下实施例(其示例在附图中被示出)。然而,实施例可以以许多不同的形式被实现并且不应被解释为限于以下描述。
图1示出根据一个或更多个实施例的神经网络(例如,神经网络10)。
因此,如图1中所示出的,神经网络10可具有包括输入层、隐藏层和输出层的结构。神经网络10可基于接收到的输入数据(例如,I1和I2)执行计算,并且可基于计算的结果产生输出数据(例如,O1和O2),其中,输入数据可以是多媒体数据,多媒体数据可包括文本、语音、图像和视频中的至少一个,输出数据可以是与多媒体数据相应的特征图数据。
神经网络10可以是包括两个或更多个隐藏层的深度神经网络(DNN)或n层神经网络。例如,如图1中所示出的,神经网络10可以是包括输入层(层1)、两个隐藏层(层2和层3)和输出层(层4)的DNN。DNN可包括全连接神经网络、卷积神经网络(CNN)、递归神经网络(RNN)、前馈神经网络(FNN)、深度置信网络、受限玻尔兹曼机等的任何组合,但不限于此。
作为非限制性示例,神经网络10可被配置为基于深度学习通过以非线性关系相互映射输入数据和输出数据来执行对象分类、对象识别、语音识别和图像识别。在本申请中,识别可被广义地理解。例如,识别可包括过滤、检测、辨识、拒绝、验证、分类或者其他这样的“解释的”操作或目标等中的一个或多个。作为非限制性示例,这样的深度学习指示处理器实现的用于解决问题(诸如,与来自大数据集的自动图像或语音识别相关的问题)的机器学习方案。可通过经过有监督或无监督的学习或训练映射输入数据和输出数据来实现深度学习,使得当被训练时,所得的机器学习模型、引擎或示例NN可以以期望的精度或可靠性直观地进一步将输入数据映射到输出数据。这里,要注意的是,针对示例或实施例使用术语“可以”(例如,关于示例或实施例可包括或实施的内容)意味着存在包括或实现这样的功能的至少一个示例或实施例,但所有示例和实施例不限于此。
神经网络10可包括更少或更多的层。此外,神经网络10可包括与图1中所示出的结构不同的各种结构的层。
包括在神经网络10中的每一层可包括“节点”、“处理元件(PE)”、“神经元”或被称为类似术语的多个人工神经元。尽管节点可被称为“神经元”或“人工神经元”,但这样的引用不旨在赋予关于神经网络结构如何计算映射或由此直观地识别信息以及人类神经元如何操作的任何关联性。即,术语“神经元”和“人工神经元”仅指神经网络的硬件实现的节点的技术术语。例如,如图1中所示出的,层1可包括两个神经元并且层2可以包括三个神经元。然而,这仅是示例,并且包括在神经网络10中的每一层可包括各种数量的神经元。
在包括在神经网络10中的不同层中包括的神经元可彼此连接或链接,并且因此可交换数据。例如,一层的神经元可从前一层的神经元接收数据并且对数据进行计算,并且可将计算结果输出到下一层的神经元。此外,在递归连接示例中,一层中的一个神经元可从它本身以及/或者从该层的另一神经元接收来自前一时间的数据。连接的数量可与包括在后一层中的神经元的数量相应。例如,在相邻的全连接层中,当前层的每个神经元可具有到后一层的每个神经元的各个连接,应注意的是,在一些示例中,这样的全连接后续在训练或优化期间可被删减或被最小化。
每个神经元的输出值可被称为激活或者由这样的相应的神经元的预定激活函数产生的值。由于相应连接具有下一层,所以激活可以是一个神经元的输出值和包括在所述下一层中的神经元的输入值。每个神经元可基于从包括在前一层中的神经元接收的结果的激活和权重来确定神经元自己的激活值。权重是用于计算每个神经元中的激活的参数,并且可以是被分配给神经元之间的连接关系的值。权重可被存储在连接神经元的突触处。例如,可通过前一层的神经元和下一层的神经元之间的加权连接将来自前一层的神经元的输出作为输入提供给下一层或后一层的神经元,其中,所述加权连接的权重在神经网络的训练期间被不同地调整直到神经网络被训练用于期望的对象。可能存在到下一层的神经元的另外连接,诸如,用于通过可加权或不可加权的连接来提供偏置连接值以及/或者用于提供可加权的上述示例递归连接。可在训练和实施期间选择性地实施、移除和改变这样的连接和连接权重,以产生或获得由此被训练和可针对训练的对象(诸如,针对以上示例识别对象中的任何一项)被相应实施的结果神经网络。
因此,返回至图1,每个神经元可以是通过(例如,经由这样的加权连接)接收输入来输出作为结果的激活的计算单元,并且可由此对输入-输出进行映射。计算单元可与用于节点的激活函数相应。作为非限制性示例,当σ是激活函数时,是从包括在第(i-1)层中的第k神经元到包括在第i层中的第j神经元的权重,是包括在第i层中的第j神经元的偏差,并且是第i层的第j神经元的激活,激活可遵循下面的等式1。
[等式1]
在典型神经网络中,大量数据集可在多个互连通道之间交换,并且多个计算过程可通过层被执行。然而,在试图减少用于处理复杂输入数据的计算量时,典型神经网络仅可考虑计算器的位置或类型,并且存在典型神经网络不可实施考虑权重矩阵的稀疏特性的计算方法的技术问题。然而,如将被描述的,一个或更多个实施例的神经网络可实施产生权重矩阵的压缩数据的方法以及考虑权重矩阵的稀疏特性对权重矩阵和输入数据进行计算的方法,从而通过有利地考虑权重矩阵的稀疏特性解决这样的技术问题并提供技术改进并且从而进一步减少用于通过典型神经网络处理输入数据的计算量。
图2示出根据一个或更多个实施例的数据处理设备200。
参照图2,数据处理设备200可包括存储器210和处理器220(例如,一个或更多个处理器)。在理解了本公开之后,本领域的普通技术人员将理解的是,除了在图2中示出的组件之外,其他通用组件还可被包括在数据处理设备200中。
数据处理设备200可以是实现神经网络(例如,图1的神经网络)的装置。例如,可将数据处理设备200实现为诸如个人计算机(PC)、服务器、移动装置、嵌入式装置等的各种装置,或者可利用诸如个人计算机(PC)、服务器、移动装置、嵌入式装置等的各种装置来实现数据处理设备200。作为特定示例,数据处理设备200可以是或者可被包括在通过使用在此论述的由节点卷积交互的多个层中的一个或更多个层组成的神经网络和/或神经网络层的任何一个或任何组合执行语音识别、图像识别、图像分类等的智能电话、平板装置、增强现实(AR)装置、物联网(IoT)装置、自动车辆、机器人、医疗装置等中,但不限于此。此外,数据处理设备200可以是安装在上述装置中的专用硬件加速器(HW加速器),并且可以是HW加速器(诸如,作为可用于驱动神经网络的专用模块的神经处理单元(NPU)、张量处理单元(TPU)和神经引擎等)。这里针对示例或实施例使用术语“可以”(例如,关于示例或实施例可以包括或实现的内容)意味着存在包括或实现这样的功能的至少一个示例或实施例,而不是所有示例局限于此。
存储器210可存储在数据处理设备200中处理的各种数据。例如,存储器210可存储由数据处理设备200处理的数据和将被处理的数据,例如,多媒体数据、与多媒体数据相应的特征图数据、或者内核数据等。此外,存储器210可存储将由数据处理设备200驱动的应用、驱动程序等。
例如,存储器210可包括随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、只读存储器(ROM)和电可擦除可编程只读存储器(EEPROM)、CD-ROM、蓝光或其他光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)或闪存。
处理器220可控制用于实现或驱动数据处理设备200中的神经网络的整体功能。例如,处理器220可通过执行存储在存储器210中的程序(或指令)来控制数据处理设备200。在实施例中,处理器220可被布置在存储器210中并且以存储计算一体化(PIM)的形式实现。
处理器220可从存储器210读取/写入数据(例如,图像数据、特征图数据、内核数据等)并且使用读取/写入的数据执行PIM运算。PIM运算可表示包括算术运算(诸如,加法、乘法、累加)和逻辑运算(诸如,与(AND)、或(OR)和异或(XOR))中的至少一个的计算运算。在示例中,当数据处理设备200用于实现递归神经网络(RNN)时,PIM运算可以是矩阵向量乘法(MV-Mul)运算。
处理器220可包括执行PIM运算的计算电路。计算电路可表示在存储器210中执行计算任务的硬件。每个计算电路可被实现为多个逻辑门的阵列,或者可被实现为逻辑门阵列和临时存储数据的缓冲器的组合。
根据实施例,数据处理设备200可包括多个存储器210,并且处理器220可被设置在所述多个存储器210中的每一个中。在这种情况下,存储器210可将数据存储在存储体中,并且与每个存储器210相应的处理器220可从存储体读取数据以执行计算。此外,处理器220可再次将计算的结果写入到相应存储体。
当典型处理器执行数据之间的乘法运算(例如,矩阵之间的乘法运算、矩阵与向量之间的乘法运算以及向量之间的乘法运算等)时,如果在将被计算的数据中包括无效信息,则计算可能是不必要的。例如,无效信息可被表示为“0”,并且当将被计算的数据中的任何一个数据为0时,数据之间的乘法计算被输出为0,并且这仅增加计算量。
为了解决这样的问题,典型处理器可通过在对DRAM管芯进行分区之后使用单指令多数据(SIMD)MAC单元处理分区后的区域的操作或者通过将MAC单元的累加运算布置为接近DRAM存储体来降低存储器的访问频率。然而,针对典型处理器,为了实现这样的MAC单元的类型改变和位置改变,存在可能需要这样的MAC单元的昂贵且耗时的设计/配置的技术问题。相反而言,根据一个或更多个实施例的数据处理设备200可在无需这样的MAC单元的昂贵且耗时的设计/配置的情况下通过显著降低计算量来解决这样的技术问题。
在一个示例中,数据处理设备200可获得多媒体数据,并且使用神经网络从所述多媒体数据识别对象。针对神经网络的至少一个层中的任意一层,数据处理设备200可基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据,其中,第一矩阵数据被用于对第二矩阵数据进行卷积运算,其中,第二矩阵数据对应于多媒体数据或者与所述多媒体数据相应的特征图数据;可基于所述压缩数据提取第二矩阵数据中的元素值信息;并且可基于所述压缩数据和提取出的第二矩阵数据中的元素值信息产生输出矩阵数据。在下文中,参照图3至图9,将描述由数据处理设备200考虑到数据的稀疏特性对数据进行压缩并基于压缩数据产生输出数据的示例。
图3示出根据一个或更多个实施例的处理数据的方法。
参照图3,处理数据的方法可包括由图2的数据处理设备200按时间序列处理的操作。因此,可以看出,针对在图2中描绘的数据处理设备200给出的描述,也可应用于图3的处理数据的方法。
在操作S310,处理器220可基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据。
第一矩阵数据可表示以矩阵形式表达将被用在数据之间的乘法运算中的元素值的数据。换句话说,第一矩阵数据被用于对数据进行卷积运算,其中,所述数据对应于多媒体数据或者与所述多媒体数据相应的特征图数据,其中,所述数据在下文中被称为第二矩阵数据。第一矩阵数据可包括至少一行。第一矩阵可包括向量矩阵。在实施例中,第一矩阵数据可以是权重矩阵,其中,在该权重矩阵中,作为内核(例如,将被用在卷积运算中的内核或滤波器)的元素值的权重以矩阵形式被表达。在下文中,为了便于说明,可将第一矩阵数据描述为权重矩阵,但不限于此。
权重可以以矩阵形式被存储在存储器210中作为用于计算每个神经元中的激活的参数。包括在权重矩阵中的元素可分别包括权重值信息和地址信息。
权重值可表示基于神经元之间的连接关系而分配的值。权重值越大,则相应的两个节点之间的连通性可能就越强,并且权重值越小,则相应两个节点之间的连通性可能就越弱。例如,权重值可具有0与10之间的值,但不限于此。
地址信息可包括行地址信息和列地址信息。地址信息可被用于提取输入向量并且可以是指示权重值在权重矩阵中的位置的信息。
在实施例中,有效元素可表示可被执行有意义的矩阵向量乘法(MV-Mul)运算的数据。“有意义的”MU-Mul运算可以是作为结果的输出向量不是“0”的MV-Mul运算。如果在权重矩阵中的任何权重值为“0”,则相应的输出向量的元素为零。因此,有效元素可表示具有除了“0”之外的权重值的元素。换句话说,对于矩阵向量乘法运算无意义的无效元素可表示具有权重值“0”的元素,并且因为相应输出的元素为零,所以是“无意义的”。
处理器220可产生压缩数据使得仅有效元素的信息被包括在压缩数据中(例如,通过产生压缩数据使得无效元素的信息在压缩数据中被排除)。在神经网络中,当权重矩阵具有高稀疏性特性,根据一个或更多个实施例的数据处理设备200具有可显著减少矩阵向量乘法运算的计算量的优点。
在本公开中,稀疏性可表示数据是否具有间隔或包含间隔的数据的状态。这里,术语“间隔”可指示值为“0”的元素沿权重矩阵的行或列方向被布置在具有非“0”的值的元素之间。如上所述,权重矩阵中的有效元素可以由作为除了“0”之外的数字的数据表示。因此,数据“0”表示无意义的信息,它也可被解释为相应数据是空白的(也就是说,没有数据)。
处理器220可基于有效元素的信息产生权重矩阵的压缩数据。具体地讲,处理器220可将第一有效元素的列地址信息输入到压缩数据中,并且可将表示第二有效元素与第一有效元素之间的相对距离的列距离信息输入到压缩数据中。相对距离可表示有效元素之间的列距离。例如,当第一有效元素的列地址是2并且第二有效元素的列地址是6时,第一有效元素与第二有效元素之间的相对距离可以是4。当第一有效元素被压缩时,处理器220可在第一有效元素的地址信息中输入2。当第二有效元素被压缩时,处理器220可在第二有效元素的地址信息中输入4,而不输入作为列地址的6。地址信息可由索引位表示。由于处理器220可将第二有效元素的列距离信息输入到压缩数据中,而不是将第二有效元素的列地址信息输入到压缩数据中,因此可显著减小压缩数据的总大小,从而与典型神经网络相比,通过减少用于处理输入数据的计算量解决示例中这样的技术问题。
处理器220可产生压缩数据使得有效元素的权重值以及从当前有效元素到前一有效元素的列距离信息被包括在压缩数据中。此外,处理器220可产生压缩数据使得有效元素的行地址和指示行的末端的标识位被包括在压缩数据中。下面将参照图4描述由处理器220产生压缩数据的示例。
在操作S310之后,所述方法还可包括存储产生的压缩数据使得可以以行为单位读取权重矩阵的有效元素。
处理器220可将压缩数据分区成行并且可将分区的压缩数据分别存储在多个存储体的第一区域中。由于根据一个或更多个实施例的数据处理设备200可以以PIM形式被实现,因此当多条压缩数据被单独存储在多个存储体中,并且每个处理器220单独计算矩阵向量乘法运算时,存在可执行快速矩阵向量乘法运算的优点。
另一方面,当在权重矩阵中包括的有效元素的分布不规则时,有效元素可被集中在任何一个存储体中。处理器220可通过拷贝压缩数据的一部分并将压缩数据的所述一部分存储在多个存储体中的任何一个存储体的第二区域中来获得负载平衡的效果。换句话说,可通过允许已经提前完成分配的有效元素的矩阵向量乘法运算的存储体(而不是未完成矩阵向量乘法运算的另一存储体)执行矩阵向量乘法运算来以平衡方式分布负载。下面将参照图5至图7描述由处理器220存储压缩数据的示例。
在操作S320,处理器220可基于压缩数据提取第二矩阵数据中的元素值信息。
第二矩阵数据可表示以矩阵形式表达在数据之间的乘法运算中使用的元素值的数据。第二矩阵可包括向量矩阵。在实施例中,第二矩阵数据可表示多媒体数据或者与多媒体数据相应的特征图数据(例如,将被用在卷积运算中的特征图数据),具体地讲,当当前层是神经网络的第一层时,第二矩阵数据与所述多媒体数据相应,当当前层是除了第一层之外的层时,第二矩阵数据与前一层输出的特征图数据相应,即,对应于基于所述前一层中的卷积运算的结果值而产生的所述前一层的特征图数据。在下文中,为了便于说明,可基于特征图数据描述第二矩阵数据,但不限于此。
特征图数据可以是输入的特征图数据或输出的特征图数据。换句话说,前一层中的输出的特征图数据可以是下一层中的输入的特征图数据。因此,操作S320的第二矩阵数据可以是输入的特征图数据或输出的特征图数据。第二矩阵数据可以以列向量或行向量的形式被表示。
处理器220可从压缩数据获得有效元素的行地址和列地址。在操作S310,当处理器220基于有效元素的信息产生第一矩阵数据的压缩数据时,如果当前有效元素是第一有效元素,则处理器220可直接从压缩数据获得当前有效元素的列地址,如果当前有效元素是第二有效元素,则处理器220可通过对当前有效元素的列距离信息与前一有效元素的列地址信息求和来获得当前有效元素的列地址。此外,处理器220可基于标识位获得当前有效元素的行地址。处理器220可提取与获得的行地址和列地址相应的第二矩阵数据。
在操作S330,处理器220可通过使用压缩数据和提取出的第二矩阵数据中的元素值信息计算输出数据。在示例中,输出数据可与相应于内核的第一矩阵数据与相应于特征图的第二矩阵数据之间的卷积运算的输出相应。
处理器220可通过对提取的第二矩阵数据中的元素值信息和有效元素执行MAC运算来计算输出数据。输出数据可以以向量形式被表示。每个输出向量可通过加法器树被求和并且被存储在存储器210中作为输出数据。下面将参照图8至图9描述由处理器220执行MAC运算的示例。
图4示出根据一个或更多个实施例的由处理器对数据进行压缩的方法。
图4示出了第一矩阵数据410和压缩数据420。尽管图4的第一矩阵数据410被示为具有8行和8列的矩阵,但第一矩阵数据410不限于此,并且第一矩阵数据410可具有任意数量的行和列。例如,第一矩阵数据410可由一行n列的行向量来表达。
参照图4,第一矩阵数据410可包括多个有效元素E1至E12。有效元素E1至E12中的每一个元素可具有除了“0”之外的元素值。
处理器220可产生压缩数据使得包括在第一矩阵数据410的同一行中的元素中的第一有效元素的信息根据第一规则被包括在压缩数据420中。
作为示例,第一有效元素可表示每一行的第一有效元素。在实施例中,第一有效元素可表示包括在同一行中的有效元素中的具有最小列地址的有效元素。例如,图4中的第一有效元素可以是E1、E3、E5、E6、E7、E9和E11。在另一实施例中,第一有效元素可表示包括在同一行中的有效元素中的具有最大列地址的有效元素。例如,图4中的第一有效元素可以是E2、E4、E5、E6、E10和E12。
第一规则可以是用于将第一有效元素的元素值信息和列地址信息分配给压缩数据的规则。例如,在图4中,处理器220可将W1(作为E1的元素值)和2(作为列地址信息)分配给压缩数据。处理器220可以以索引位的形式表达列地址信息,并且当索引位被设置为4位时,处理器220可因此将E1的列地址表达为0X2。
处理器220可产生压缩数据使得除了第一有效元素之外的至少一个第二有效元素的信息根据第二规则被包括在压缩数据中。
第二有效元素可表示每一行中除了第一有效元素之外的其余有效元素。例如,图4中的第二有效元素可以是E2、E4、E8、E10和E12。
作为示例,第二规则可以是用于将第二有效元素的元素值信息和从第二有效元素到第二有效元素之前的有效元素的列距离信息分配给压缩数据的规则。例如,在图4中,处理器220可将W2(作为E2的元素值)和4(作为关于从E2到E1的列距离D的信息)分配给压缩数据。当索引位被设置为4位时,处理器220可因此将E2的列地址表达为0X4。由于数据处理设备200表达作为第二有效元素的列距离信息的4而不表达作为第二有效元素的列地址信息的6,因此可通过典型神经网络的数据显著减小压缩数据的大小。
处理器220可产生压缩数据使得第一有效元素的行地址根据第三规则被包括在压缩数据中。
作为示例,第三规则可以是用于将第一有效元素的行地址信息和指示包括第一有效元素的行的末端的标识位分配给压缩数据的规则。例如,在图4中,处理器220可将0(作为E2的行地址)和0XF(作为标识位)分配给压缩数据。标识位0XF可被设置为索引位的最大值。换句话说,当对压缩数据进行解码时,处理器220可将最大值分配给索引位使得包括第一有效元素的行的终止被识别。
处理器220可产生压缩数据420,其中,仅有效元素的信息被包括在压缩数据420(例如,其中,无效元素的信息在压缩数据420中被排除)中。因此,第一矩阵数据410可被压缩成压缩数据420。
另一方面,当未以行为单位读取压缩数据420时,在对压缩数据420进行解码时,可能发生有效元素的列地址信息与行地址不能匹配的情况。因此,处理器220可存储压缩数据使得第一矩阵数据410的有效元素可以以行为单位被读取。下面将参照图5描述存储压缩数据的方法。
图5示出根据一个或更多个实施例的由处理器存储压缩数据的方法。
图5的第一矩阵数据510和压缩数据520可分别相应于图4的第一矩阵数据410和压缩数据420。
参照图5,处理器220可存储压缩数据520使得第一矩阵数据510的有效元素可以以行为单位被读取。
压缩数据520可以以预设组块为单位被存储在存储器210中。在分组块的存储布局的示例中,压缩数据520可被存储在预定义大小的大小相同的组块中。根据包括在行中的有效元素的数量,包括在多个行中的有效元素的信息可被存储为一个组块,或者包括在一行中的有效元素的信息可被单独存储为多个组块。
在实施例中,当任何一行的有效元素的信息ROW0被单独存储在第一数据组块521和第二数据组块522中时,处理器220可将附加行位分配给存储在第一数据组块521中的有效元素的信息中的具有最大列地址的有效元素的索引位。在另一实施例中,当任何一行的有效元素的信息ROW0被单独存储在第一数据组块521和第二数据组块522中时,处理器220可将附加行位分配给存储在第二数据组块522中的有效元素的信息中的具有最小列地址的有效元素的索引位。这是为了在对压缩数据进行解码时识别存储在第一数据组块521和第二数据组块522中的有效元素的信息是包括在同一行中的有效元素的信息。
第一数据组块521可表示包括在同一行中包括的有效元素中的具有最小列地址的有效元素的信息的数据组块。此外,第二数据组块522可表示包括除了存储在第一数据组块521中的有效元素的信息之外的其余有效元素的数据组块。
当对压缩数据进行解码时,处理器220可在读取第一数据组块521之后连续地读取第二数据组块522。因此,处理器220可获得有效元素的行地址和列地址。
另一方面,当数据处理设备200以PIM的形式实现时,上述以行为单位存储压缩数据的方法使得已经提前完成分配的有效元素的矩阵向量乘法运算的存储体(而不是未完成矩阵向量乘法运算的另一存储体)执行矩阵向量乘法运算,因此,能够获得负载平衡效果。在下文中,将参照图6和图7描述存储用于负载平衡的压缩数据的方法。
图6示出根据一个或更多个实施例的由处理器对压缩数据进行分区并存储的方法。
参照图6,在操作S610,处理器220可以以行为单位对压缩数据进行分区。将压缩数据分区成行可表示包括在一行中的所有有效元素的信息被包括在分区的压缩数据中。
在操作S620,处理器220可将分区的压缩数据分别存储在多个存储体的第一区域中。
在操作S630,处理器220可拷贝分区的压缩数据的一部分并将拷贝的压缩数据的所述一部分存储在多个存储体中的一个存储体的第二区域中。
当存储在第一区域中的压缩数据与第二矩阵数据的乘法运算完成时,处理器220可启动存储在第二区域中的压缩数据与第一矩阵数据的乘法运算。由于已经提前完成分配的有效元素的乘法运算的任何一个处理器220执行未完成乘法运算的另一处理器220的乘法运算,因此可平衡每个处理器220的负载。下面将参照图7进一步描述存储用于处理器220的负载平衡的压缩数据的方法。
图7示出根据一个或更多个实施例的由处理器存储分区的压缩数据的方法的示例的示图。
在图7中,尽管示出了四个存储体,但是在一些实施例中存储体的数量可能少于或多于四个。
参照图7,处理器220可以以行为单位对压缩数据进行分区。分区的压缩数据可包括在至少一行中包括的所有有效元素的信息。
处理器220可将分区的压缩数据存储在多个存储体中。例如,处理器220可将分区的第一压缩数据811存储在第一存储体810中,将分区的第二压缩数据821存储在第二存储体820中,将分区的第三压缩数据831存储在第三存储体830中,并且将分区的第四压缩数据841存储在第四存储体840中。分区的第一压缩数据811、分区的第二压缩数据821、分区的第三压缩数据831和分区的第四压缩数据841可被存储在第一存储体810、第二存储体820、第三存储体830和第四存储体840中的每一个存储体的第一区域910中。
处理器220可拷贝分区的压缩数据的一部分并且将拷贝的压缩数据存储在第一存储体810、第二存储体820、第三存储体830和第四存储体840中的一个存储体的第二区域中。例如,处理器220可拷贝分区的第二压缩数据821的一部分821a并且将拷贝的分区的第二压缩数据821的一部分821a存储在第一存储体810的第二区域920中。此外,处理器220可拷贝分区的第三压缩数据831的一部分831a和分区的第四压缩数据841的一部分841a并且可将拷贝的分区的第三压缩数据831的一部分831a和分区的第四压缩数据841的一部分841a存储在第一存储体810的第二区域920中。
存储在第二区域920中的压缩数据也可被存储使得有效元素的信息以行为单位被读取。如上参照图5所描述的,当压缩数据被分区并存储时,处理器220可通过将附加行位860分配给一个有效元素的索引位来通知多条分区的压缩数据被连接。
处理器220可通过使用存储在存储器210中的压缩数据和输入向量来计算输出向量。下面将参照图8和图9进一步描述由处理器220计算输出向量的方法。
图8示出根据一个或更多个实施例的由处理器通过使用压缩数据对输出数据进行计算的方法。
参照图8,在操作S910,处理器220可从压缩数据获得有效元素的行地址和列地址。
当第一有效元素根据参照图4描述的第一规则被压缩时,因此处理器220可获得存储在压缩数据中的列地址信息作为第一有效元素的列地址。
此外,由于第二有效元素根据参照图4描述的第二规则被压缩,因此处理器220可获得存储在压缩数据中的列距离信息与前一有效元素的列地址信息的和作为第二有效元素的列地址。例如,如果将被计算的任何有效元素的列距离信息是4并且前一有效元素的列地址信息是2,则处理器220可将2与4的和计算为6来作为有效元素的列地址。
此外,由于行地址根据参照图4描述的第三规则被压缩,因此处理器220可基于标识位获得有效元素的行地址。
在操作S920,处理器220可提取与获得的行地址和列地址相应的第二矩阵数据中的元素值信息。例如,当第二矩阵数据为列向量并且获取的行地址和列地址为(1,6)时,处理器220可提取与(6,1)相应的第二矩阵数据中的元素值信息。
在操作S930,处理器220可通过使用压缩数据和提取出的第二矩阵数据中的元素值信息执行乘法和累加运算。在操作S920,由于仅与有效元素相应的第二矩阵数据中的元素值信息被提取,因此可显著减少处理器220的计算量。
图9示出根据一个或更多个实施例的由处理器通过使用压缩数据对输出数据进行计算的方法的示例的流程图。
参照图9,全局输入/输出读出放大器(GIO SA)1010可用作用于临时存储从存储器210读取的数据620的缓冲器。根据实施例,GIO SA 1010可被配置为存储与至少一行相应的256位的数据,并且GIO SA 1010可从存储器210接收读取的256位的数据(256位RD数据)620。256位RD数据620可被传送到MAC运算器1040并被用作操作数。
另外,作为用于计算的另一操作数的第二矩阵数据可通过数据输入/输出(数据I/O)路径被输入。第二矩阵数据可被存储在输入向量静态随机存取存储器(SRAM)1030中并随后被传送到每个MAC运算器1040。
索引位可通过索引解码器1020并且可被传送到输入向量SRAM 1030。在第二有效元素的情况下,索引解码器1020可通过将存储在索引位中的列距离信息与前一有效元素的列地址信息求和来计算相应有效元素的列地址,并且可输出计算的列地址。
输入向量SRAM 1030可基于从索引解码器1020接收的行地址和列地址提取第二矩阵数据中的元素值信息,并且提取的第二矩阵数据中的元素值信息可被输入到MAC运算器1040。
每个MAC运算器1040可对压缩数据和从输入向量SRAM 1030发送的第二矩阵数据中的元素值信息执行计算并且可输出计算的结果。从每个MAC运算器1040输出的计算结果可通过加法器树1050被求和,并且与最终计算结果相应的输出向量可被存储在输出向量SRAM 1060中。存储在输出向量SRAM 1060中的输出向量可通过数据I/O被输出到外部,并且可通过输入向量SRAM 1030被重新用于计算。
数据处理设备、存储器、处理器、GIO SA、索引解码器、SRAM、MAC运算器、加法器树、数据处理设备200、存储器210、处理器220、GIO SA 1010、索引解码器1020、SRAM 1030、MAC运算器1040、加法器树1050、SRAM 1060以及在此参照图1至图9描述的其他设备、单元、模块、装置和其他组件由硬件组件实现或由硬件组件表示。在适当的情况下,可被用于执行本申请中描述的操作的硬件组件的示例包括控制器、传感器、产生器、驱动器、存储器、比较器、算术逻辑模块、加法器、乘法器、除法器、积分器以及任何其他被配置为执行本申请中描述的操作的电子组件。在其他示例中,执行本申请中描述的操作的硬件组件中的一个或更多个硬件组件由计算硬件(例如,由一个或更多个处理器或计算机)实现。处理器或计算机可由一个或更多个处理元件(诸如,逻辑门阵列、控制器与算术逻辑模块、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微型处理器或被配置为以定义的方式响应并执行指令以实现期望的结果的任何其他装置或者装置的组合)实现。在一个示例中,处理器或计算机包括或者连接到存储由处理器或计算机执行的指令或软件的一个或更多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作***(OS)和在OS上运行的一个或更多个软件应用)以执行在本申请中描述的操作。硬件组件也可响应于指令或软件的执行而访问、操纵、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可被用于描述在本申请中描述的示例,但在其他示例中,可使用多个处理器或计算机,或者处理器或计算机可包括多个处理元件或多个类型的处理元件或者可包括多个处理元件和多个类型的处理元件。例如,单个硬件组件或者两个或更多个硬件组件可由单个处理器、两个或更多个处理器或者处理器和控制器实现。一个或更多个硬件组件可由一个或更多个处理器或者处理器和控制器实现,并且一个或更多个其他硬件组件可由一个或更多个其他处理器或者另一处理器和另一控制器实现。一个或更多个处理器或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有任何一个或更多个不同的处理配置,硬件配置的示例包括单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多元处理、单指令多数据(SIMD)多元处理、多指令单数据(MISD)多元处理和多指令多数据(MIMD)多元处理。
通过如上所述执行指令或软件实现的计算硬件(例如,通过一个或更多个处理器或计算机)执行图1至图9中示出的执行本申请中描述的操作的方法以执行通过所述方法执行的本申请中描述的操作。例如,可通过单个处理器、或者两个或更多个处理器或者处理器和控制器执行单个操作或者两个或更多个操作。可通过一个或更多个处理器或者处理器和控制器执行一个或更多个操作,并且可通过一个或更多个其他处理器或者另一处理器和另一控制器执行一个或更多个其他操作。一个或更多个处理器或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或更多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或者计算机程序、代码段和指令的任何组合以单一地或共同地指示或配置一个或更多个处理器或计算机作为机器或专用计算机操作来执行由硬件组件执行的操作和如上所述的方法。在一个示例中,指令或软件包括由一个或更多个处理器或计算机直接执行的机器代码(诸如,由编译器生成的机器代码)。在另一示例中,指令或软件包括由一个或更多个处理器或计算机使用解释器执行的高级代码。指令或软件可基于附图中示出的框图和流程图以及在此使用的相应描述使用任何编程语言来编写,这些附图和相应描述公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。
用于控制计算硬件(例如,一个或更多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或更多个非暂时性计算机可读存储介质中。非暂时性计算机可读存储介质的示例包括只读存储器(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、DVD-ROM、BD-R、BDR LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡型存储器(诸如,多媒体卡微型或卡(例如,安全数字(SD)或极端数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其它装置,其中,所述任何其它装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件和任何相关联数据、数据文件和数据结构提供给一个或更多个处理器或计算机使得一个或更多个处理器或计算机可执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在网络耦合的计算机***上,使得指令和软件以及任何相关联的数据、数据文件和数据结构被一个或更多个处理器或计算机以分布式方式存储、访问和执行。
虽然本公开包括特定示例,但在理解本申请的公开之后将显而易见的是,在不脱离权利要求极其等同形式的精神和范围的情况下,可在这些示例中在形式和细节上进行各种改变。这里描述的示例仅在描述性意义上被考虑,而非出于限制的目的。每个示例中的特征或方面的描述将被认为适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,并且/或者如果描述的***、架构、装置或电路中的组件以不同的方式组合并且/或者由其他组件或它们的等同形式替换或补充,则可获得适当的结果。因此,本公开的范围不被详细描述限定,而是由权利要求及其等同形式限定,并且权利要求及其等同形式的范围内的所有变化将被解释为包括在本公开中。
Claims (28)
1.一种处理多媒体数据的方法,所述方法包括:
获得所述多媒体数据;以及
使用神经网络从所述多媒体数据识别对象,其中,针对神经网络的至少一个层中的任意一层执行如下处理:
基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据;
基于所述压缩数据提取第二矩阵数据中的元素值信息;并且
基于所述压缩数据和提取出的第二矩阵数据中的元素值信息产生输出矩阵数据。
2.如权利要求1所述的方法,其中,当所述任意一层是神经网络的第一层时,第二矩阵数据与所述多媒体数据相应,当所述任意一层是除了第一层之外的层时,第二矩阵数据与前一层输出的特征图数据相应。
3.如权利要求1所述的方法,其中,包括在第一矩阵数据中的有效元素为具有非零值的元素。
4.如权利要求1所述的方法,其中,产生所述压缩数据的步骤包括:
产生所述压缩数据使得包括在第一矩阵数据的同一行中的元素中的第一有效元素的信息被包括在所述压缩数据中,并且
产生所述压缩数据使得包括在第一矩阵数据的所述同一行中的元素中的第二有效元素的信息被包括在所述压缩数据中。
5.如权利要求4所述的方法,其中,第一有效元素为包括在所述同一行中的有效元素中的具有最小列地址的元素。
6.如权利要求4所述的方法,其中,
产生所述压缩数据使得第一有效元素的信息被包括在所述压缩数据中的步骤包括:将第一有效元素的元素值信息和列地址信息分配给所述压缩数据,并且
产生所述压缩数据使得第二有效元素的信息被包括在所述压缩数据中的步骤包括:将第二有效元素的元素值信息和列距离信息分配给所述压缩数据,其中,所述列距离信息指示从第二有效元素到具有比第二有效元素的列地址小的列地址的有效元素的列距离。
7.如权利要求6所述的方法,其中,第一有效元素是所述具有比第二有效元素的列地址小的列地址的有效元素。
8.如权利要求1所述的方法,其中,产生所述压缩数据的步骤包括:
产生所述压缩数据使得第一有效元素的行地址被包括在所述压缩数据中。
9.如权利要求8所述的方法,其中,产生所述压缩数据使得第一有效元素的行地址被包括在所述压缩数据中的步骤包括:将第一有效元素的行地址信息和指示包括第一有效元素的行的末端的标识位分配给所述压缩数据。
10.如权利要求1所述的方法,还包括:存储产生的压缩数据使得第一矩阵数据的有效元素被配置为以行为单位被读取。
11.如权利要求10所述的方法,其中,存储所述压缩数据的步骤包括:
将所述压缩数据分区成行;并且
将多条分区的压缩数据分别存储在多个存储体的第一区域中。
12.如权利要求11所述的方法,其中,存储所述压缩数据的步骤还包括:
拷贝存储在第一区域中的所述多条分区的压缩数据的部分压缩数据并且将所述部分压缩数据存储在所述多个存储体中的一个存储体的第二区域中。
13.如权利要求1所述的方法,其中,提取第二矩阵数据中的元素值信息的步骤包括:
从所述压缩数据获得有效元素的行地址信息和列地址信息;并且
提取与获得的行地址信息和列地址信息相应的第二矩阵数据的元素值信息。
14.如权利要求13所述的方法,其中,获得行地址信息和列地址信息的步骤包括:
获得存储在所述压缩数据中的第一有效元素的列地址信息,并且
通过将存储在所述压缩数据中的列距离信息与具有比第二有效元素的列地址小的列地址的有效元素的列地址信息求和来获得第二有效元素的列地址信息。
15.如权利要求1所述的方法,其中,产生所述压缩数据的步骤包括:
使用所述压缩数据和提取出的第二矩阵数据中的元素值信息来执行乘法和累加MAC运算。
16.如权利要求1所述的方法,其中,第一矩阵数据与内核权重数据相应。
17.一种存储指令的非暂时性计算机可读存储介质,其中,所述指令在被一个或更多个处理器执行时配置所述一个或更多个处理器执行权利要求1的方法。
18.一种处理多媒体数据的设备,包括:
一个或更多个处理器,被配置为:
获得多媒体数据;以及
使用神经网络从所述多媒体数据识别对象,其中,针对神经网络的至少一个层中的任意一层执行如下处理:
基于包括在第一矩阵数据中的有效元素的信息产生第一矩阵数据的压缩数据;
基于所述压缩数据提取第二矩阵数据中的元素值信息;并且
基于所述压缩数据和提取出的第二矩阵数据中的元素值信息产生输出矩阵数据。
19.如权利要求18所述的设备,其中,当所述任意一层是神经网络的第一层时,第二矩阵数据与所述多媒体数据相应,当所述任意一层是除了第一层之外的层时,第二矩阵数据与前一层输出的特征图数据相应。
20.如权利要求18所述的设备,其中,为了产生所述压缩数据,所述一个或更多个处理器被配置为:
产生所述压缩数据使得包括在第一矩阵数据的同一行中的元素中的第一有效元素的信息被包括在所述压缩数据中;
产生所述压缩数据使得包括在第一矩阵数据的所述同一行中的元素中的第二有效元素的信息被包括在所述压缩数据中;以及
产生所述压缩数据使得第一有效元素的行地址被包括在所述压缩数据中。
21.如权利要求20所述的设备,其中,
产生所述压缩数据使得第一有效元素的信息被包括在所述压缩数据中的操作包括:将第一有效元素的元素值信息和列地址信息分配给所述压缩数据,
产生所述压缩数据使得第二有效元素的信息被包括在所述压缩数据中的操作包括:将第二有效元素的元素值信息和列距离信息分配给所述压缩数据,其中,所述列距离信息指示从第二有效元素到具有比第二有效元素的列地址小的列地址的有效元素的列距离,并且
产生所述压缩数据使得第一有效元素的行地址被包括所述压缩数据中的操作包括:将第一有效元素的行地址信息和指示包括第一有效元素的行的末端的标识位分配给所述压缩数据。
22.如权利要求18所述的设备,其中,所述一个或更多个处理器被配置为存储产生的压缩数据使得第一矩阵数据的有效元素被配置为以行为单位被读取。
23.如权利要求22所述的设备,其中,为了存储所述压缩数据,所述一个或更多个处理器被配置为:
将所述压缩数据分区成行单元;并且
将多条分区的压缩数据分别存储在多个存储体的第一区域中。
24.如权利要求23所述的设备,其中,为了存储所述压缩数据,所述一个或更多个处理器被配置为:拷贝存储在第一区域中的所述多条分区的压缩数据的部分压缩数据并且将所述部分压缩数据存储在所述多个存储体中的一个存储体的第二区域中。
25.如权利要求18所述的设备,其中,所述一个或更多个处理器被配置为:
从所述压缩数据获得有效元素的行地址信息和列地址信息;并且
提取与获得的行地址信息和列地址信息相应的第二矩阵数据的元素值信息。
26.如权利要求18所述的设备,其中,所述一个或更多个处理器被配置为使用所述压缩数据和提取出的第二矩阵数据中的元素值信息执行乘法和累加MAC运算。
27.如权利要求18所述的设备,还包括:存储器,存储指令,其中,所述指令在被所述一个或更多个处理器执行时配置所述一个或更多个处理器执行产生第一矩阵数据的所述压缩数据的操作、提取第二矩阵数据中的元素值信息的操作和产生输出矩阵数据的操作。
28.如权利要求18所述的设备,其中,
所述数据处理设备是个人计算机PC、服务器装置、移动装置、智能电话、平板装置、增强现实AR装置、物联网loT装置、自动车辆、机器人装置和医疗装置中的任何一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190128714A KR20210045224A (ko) | 2019-10-16 | 2019-10-16 | 데이터를 처리하는 방법 및 장치 |
KR10-2019-0128714 | 2019-10-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112668689A true CN112668689A (zh) | 2021-04-16 |
Family
ID=75403131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010410622.7A Pending CN112668689A (zh) | 2019-10-16 | 2020-05-15 | 进行多媒体数据处理的方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11436477B2 (zh) |
KR (1) | KR20210045224A (zh) |
CN (1) | CN112668689A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114527930A (zh) * | 2021-05-27 | 2022-05-24 | 北京灵汐科技有限公司 | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 |
WO2022247908A1 (zh) * | 2021-05-27 | 2022-12-01 | 北京灵汐科技有限公司 | 权重矩阵的数据存储方法、数据获取方法及装置、设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11669443B2 (en) * | 2020-01-17 | 2023-06-06 | Alibaba Group Holding Limited | Data layout optimization on processing in memory architecture for executing neural network model |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307790B1 (en) * | 2000-08-30 | 2001-10-23 | Micron Technology, Inc. | Read compression in a memory |
US7457177B2 (en) * | 2005-12-21 | 2008-11-25 | Infineon Technologies Ag | Random access memory including circuit to compress comparison results |
US8078637B1 (en) * | 2006-07-28 | 2011-12-13 | Amencan Megatrends, Inc. | Memory efficient peim-to-peim interface database |
US8751556B2 (en) * | 2010-06-11 | 2014-06-10 | Massachusetts Institute Of Technology | Processor for large graph algorithm computations and matrix operations |
US9177245B2 (en) * | 2013-02-08 | 2015-11-03 | Qualcomm Technologies Inc. | Spiking network apparatus and method with bimodal spike-timing dependent plasticity |
US9286216B2 (en) | 2014-01-16 | 2016-03-15 | Carnegie Mellon University | 3DIC memory chips including computational logic-in-memory for performing accelerated data processing |
US9830302B1 (en) | 2014-04-16 | 2017-11-28 | Knowles Electronics, Llc | Sparse matrix vector multiplication |
US9972063B2 (en) * | 2015-07-30 | 2018-05-15 | International Business Machines Corporation | Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units |
US9843341B1 (en) | 2016-08-02 | 2017-12-12 | Multicom Technologies Inc. | Methods and devices for sparse data compression through dimension coding |
US10817587B2 (en) * | 2017-02-28 | 2020-10-27 | Texas Instruments Incorporated | Reconfigurable matrix multiplier system and method |
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US11501139B2 (en) | 2017-05-03 | 2022-11-15 | Intel Corporation | Scaling half-precision floating point tensors for training deep neural networks |
US10572568B2 (en) * | 2018-03-28 | 2020-02-25 | Intel Corporation | Accelerator for sparse-dense matrix multiplication |
-
2019
- 2019-10-16 KR KR1020190128714A patent/KR20210045224A/ko unknown
-
2020
- 2020-04-24 US US16/857,740 patent/US11436477B2/en active Active
- 2020-05-15 CN CN202010410622.7A patent/CN112668689A/zh active Pending
-
2022
- 2022-07-28 US US17/876,136 patent/US11886985B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114527930A (zh) * | 2021-05-27 | 2022-05-24 | 北京灵汐科技有限公司 | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 |
WO2022247908A1 (zh) * | 2021-05-27 | 2022-12-01 | 北京灵汐科技有限公司 | 权重矩阵的数据存储方法、数据获取方法及装置、设备 |
CN114527930B (zh) * | 2021-05-27 | 2024-01-30 | 北京灵汐科技有限公司 | 权重矩阵数据存储方法、数据获取方法和装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11436477B2 (en) | 2022-09-06 |
US11886985B2 (en) | 2024-01-30 |
KR20210045224A (ko) | 2021-04-26 |
US20210117761A1 (en) | 2021-04-22 |
US20220374693A1 (en) | 2022-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11663473B2 (en) | Method and apparatus with neural network performing deconvolution | |
US11880768B2 (en) | Method and apparatus with bit-serial data processing of a neural network | |
CN109871936B (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
US11586886B2 (en) | Neural network apparatus and method with bitwise operation | |
US11886985B2 (en) | Method and apparatus with data processing | |
EP3792840A1 (en) | Neural network method and apparatus | |
EP3528181B1 (en) | Processing method of neural network and apparatus using the processing method | |
US20210182670A1 (en) | Method and apparatus with training verification of neural network between different frameworks | |
EP3839832A1 (en) | Method and apparatus with neural network convolution operation | |
EP3979145A1 (en) | Method and apparatus for compressing artificial neural network | |
EP3805994A1 (en) | Method and apparatus with neural network data quantizing | |
CN112598120A (zh) | 数据处理的方法和设备 | |
US11580393B2 (en) | Method and apparatus with neural network data input and output control | |
CN112668691A (zh) | 具有数据处理的方法和装置 | |
CN113837350A (zh) | 神经形态设备和训练用于图像识别的神经网络的方法 | |
CN111507456A (zh) | 具有卷积神经网络处理的方法和装置 | |
CN114595811A (zh) | 用于执行深度学习操作的方法和设备 | |
US11301209B2 (en) | Method and apparatus with data processing | |
US12026617B2 (en) | Neural network method and apparatus | |
US20240144527A1 (en) | Method and apparatus with object tracking | |
CN110163240B (zh) | 对象识别方法及设备 | |
US20220383103A1 (en) | Hardware accelerator method and device | |
US20220283778A1 (en) | Method and device for encoding | |
US20230306262A1 (en) | Method and device with inference-based differential consideration | |
CN116663640A (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 |