CN109375952A - 用于存储数据的方法和装置 - Google Patents

用于存储数据的方法和装置 Download PDF

Info

Publication number
CN109375952A
CN109375952A CN201811149864.4A CN201811149864A CN109375952A CN 109375952 A CN109375952 A CN 109375952A CN 201811149864 A CN201811149864 A CN 201811149864A CN 109375952 A CN109375952 A CN 109375952A
Authority
CN
China
Prior art keywords
matrix
preset quantity
extracted
weight matrix
subcharacter
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
Application number
CN201811149864.4A
Other languages
English (en)
Other versions
CN109375952B (zh
Inventor
胡耀全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Douyin Vision Co Ltd
Douyin Vision Beijing Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN201811149864.4A priority Critical patent/CN109375952B/zh
Publication of CN109375952A publication Critical patent/CN109375952A/zh
Application granted granted Critical
Publication of CN109375952B publication Critical patent/CN109375952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例公开了用于存储数据的方法和装置。该方法的一具体实施方式包括:从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;从目标特征矩阵中确定子特征矩阵;执行如下存储步骤:对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;响应于确定预设数量个目标权重矩阵和所确定的子特征矩阵中存在未提取过的数据,继续执行存储步骤。该实施方式有助于提高卷积神经网络的运算效率。

Description

用于存储数据的方法和装置
技术领域
本申请实施例涉及计算机技术领域,具体涉及用于存储数据的方法和装置。
背景技术
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。CNN包括卷积层(convolutional layer)、池化层(pooling layer)等。在对这些层中的数据进行卷积运算时,通常需要将其中的特征矩阵(即矩阵形式的特征图(feature map))包括的特征数据与权重矩阵(即矩阵形式的卷积核(又称为滤波器))包括的权重数据相乘。
发明内容
本申请实施例提出了用于存储数据的方法和装置。
第一方面,本申请实施例提供了一种用于存储数据的方法,该方法包括:从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵;执行如下存储步骤:对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据;响应于确定存在,继续执行存储步骤。
在一些实施例中,存储步骤还包括:对于存储在第一目标寄存器中的各个权重数据中的权重数据,将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积;存储所得到的乘积。
在一些实施例中,卷积神经网络中的特征矩阵包括的特征数据和权重矩阵包括的权重数据是预设位数的定点数。
在一些实施例中,预设数量个目标特征矩阵和预设数量个目标权重矩阵预先存储在预设缓存中。
在一些实施例中,预设数量个目标特征矩阵包含于卷积神经网络中的目标层包括的特征矩阵集合,特征矩阵集合预先被分割为至少一个子集合,其中,子集合包括预设数量个特征矩阵;以及从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵,包括:从至少一个子集合中选择子集合,将所选择的子集合包括的特征矩阵确定为目标特征矩阵;对于所确定的预设数量个目标特征矩阵中的目标特征矩阵,确定与该目标特征矩阵对应的、用于进行卷积运算的权重矩阵作为目标权重矩阵。
在一些实施例中,预设数量是预设的单指令多数据流SIMD指令单次提取的数据的位数与卷积神经网络中的特征矩阵包括的特征数据的位数的商。
在一些实施例中,对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中,包括:基于SIMD指令从预设数量个目标权重矩阵中分别提取未提取过的权重数据及存储到第一目标寄存器中。
在一些实施例中,对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中,包括:基于SIMD指令从所确定的子特征矩阵中分别提取未提取过的特征数据及存储到第二目标寄存器中。
第二方面,本申请实施例提供了一种用于存储数据的装置,该装置包括:第一确定单元,被配置成从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;第二确定单元,被配置成对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵;存储单元,被配置成执行如下存储步骤:对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据;第三确定单元,被配置成响应于确定存在,继续执行存储步骤。
在一些实施例中,存储单元包括:计算模块,被配置成对于存储在第一目标寄存器中的各个权重数据中的权重数据,将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积;存储模块,被配置成存储所得到的乘积。
在一些实施例中,卷积神经网络中的特征矩阵包括的特征数据和权重矩阵包括的权重数据是预设位数的定点数。
在一些实施例中,预设数量个目标特征矩阵和预设数量个目标权重矩阵预先存储在预设缓存中。
在一些实施例中,预设数量个目标特征矩阵包含于卷积神经网络中的目标层包括的特征矩阵集合,特征矩阵集合预先被分割为至少一个子集合,其中,子集合包括预设数量个特征矩阵;以及第一确定单元包括:选择模块,被配置成从至少一个子集合中选择子集合,将所选择的子集合包括的特征矩阵确定为目标特征矩阵;确定模块,被配置成对于所确定的预设数量个目标特征矩阵中的目标特征矩阵,确定与该目标特征矩阵对应的、用于进行卷积运算的权重矩阵作为目标权重矩阵。
在一些实施例中,预设数量是预设的单指令多数据流SIMD指令单次提取的数据的位数与卷积神经网络中的特征矩阵包括的特征数据的位数的商。
在一些实施例中,存储单元进一步被配置成:基于SIMD指令从预设数量个目标权重矩阵中分别提取未提取过的权重数据及存储到第一目标寄存器中。
在一些实施例中,存储单元进一步被配置成:基于SIMD指令从所确定的子特征矩阵中分别提取未提取过的特征数据及存储到第二目标寄存器中。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器,其中,处理器包括寄存器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的用于存储数据的方法和装置,通过首先从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。然后对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。最后反复地从预设数量个目标权重矩阵中,分别提取未提取过的权重数据及存储到第一目标寄存器中;从所确定的子特征矩阵中,分别提取未提取过的特征数据及存储到第二目标寄存器中。从而可以分批次地将预设数量个目标特征矩阵和预设数量个目标权重矩阵全部存储到寄存器中,有助于利用寄存器的存取速度快的特点,提高卷积神经网络的运算效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请的一个实施例可以应用于其中的示例性***架构图;
图2是根据本申请实施例的用于存储数据的方法的一个实施例的流程图;
图3是根据本申请实施例的用于存储数据的方法的一个应用场景的示意图;
图4是根据本申请实施例的用于存储数据的方法的又一个实施例的流程图;
图5是根据本申请实施例的用于存储数据的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的用于存储数据的方法或用于存储数据的装置的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如图像处理类应用、视频播放类应用、网页浏览器应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上传的图像等数据进行处理的后台数据处理服务器。后台数据处理服务器可以利用卷积神经网络对图像等数据进行处理,以及提取处理过程中所用到的权重数据及存储到第一目标寄存器中,提取处理过程中所用到的特征数据及存储到第二目标寄存器中。
需要说明的是,本申请实施例所提供的用于存储数据的方法可以由服务器105执行,也可以由终端设备101、102、103执行,相应地,用于存储数据的装置可以设置于服务器105中,也可以设置于终端设备101、102、103中。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在利用卷积神经网络进行处理的数据不需要从远程获取的情况下,上述***架构可以不包括网络,而只需终端设备或服务器。
继续参考图2,示出了根据本申请的用于存储数据的方法的一个实施例的流程200。该用于存储数据的方法,包括以下步骤:
步骤201,从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。
在本实施例中,用于存储数据的方法的执行主体(例如图1所示的服务器或电子设备)可以从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。其中,目标特征矩阵包括特征数据,目标权重矩阵包括权重数据。上述卷积神经网络可以预先设置在上述执行主体中,用于对原始数据(例如图片、词向量等)进行处理。通常,对原始数据进行处理的卷积神经网络可以包括卷积层,卷积层又包括特征矩阵(即矩阵形式的特征图(feature map))和权重矩阵(即卷积核,又称滤波器)。特征矩阵包括的特征数据可以是从原始数据中提取的数据(例如像素的R(红,Red)G(绿,Green)B(蓝,Blue)值),也可以是处理上述原始数据的卷积神经网络中的某个层(例如卷积层、池化层等)输出的数据。权重矩阵包括权重数据是对卷积神经网络进行训练所确定的数据。通常,特征矩阵与权重矩阵经过卷积运算后,可以得到新的特征数据。
在本实施例中,上述执行主体可以按照各种方式从卷积神经网络中的特征矩阵中,确定预设数量个目标特征矩阵。其中,目标特征矩阵可以是待对其与对应的目标权重矩阵进行卷积运算的特征矩阵。作为示例,上述执行主体可以从各个特征矩阵中,随机提取预设数量个特征矩阵作为目标特征矩阵。
在本实施例的一些可选的实现方式中,预设数量个目标特征矩阵包含于卷积神经网络中的目标层包括的特征矩阵集合,特征矩阵集合预先被分割为至少一个子集合,子集合包括预设数量个特征矩阵。其中,目标层可以是待对其包括的特征矩阵集合进行卷积运算的层,例如卷积层。上述执行主体可以按照如下步骤,从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵:
首先,从上述至少一个子集合中选择子集合,将所选择的子集合包括的特征矩阵确定为目标特征矩阵。作为示例,上述执行主体可以从上述至少一个子集合中随机选择子集合。或者,卷积神经网络中的特征矩阵可以具有对应的通道编号,上述执行主体可以按照特征矩阵对应的通道编号的顺序,从上述至少一个子集合中选择待进行卷积运算的子集合。通常,卷积神经网络中的某一层(例如卷积层、池化层等)可以包括多个通道,每个通道可以对应一种特征(例如图片的形状特征、颜色特征等)。
作为示例,假设特征矩阵集合包括的特征矩阵的通道编号依次为:1、2、…、8,该特征矩阵集合预先被分割为两个子集合A和B,其中,子集合A包括的特征矩阵的通道编号为1、2、3、4,子集合B包括的特征矩阵的通道编号为5、6、7、8。上述执行主体可以首先将子集合A包括的特征矩阵确定为目标特征矩阵。
然后,对于所确定的预设数量个目标特征矩阵中的目标特征矩阵,确定与该目标特征矩阵对应的、用于进行卷积运算的权重矩阵作为目标权重矩阵。其中,目标特征矩阵和目标权重矩阵的对应关系是预先设置的。
在本实施例的一些可选的实现方式中,预设数量个目标特征矩阵和预设数量个目标权重矩阵预先存储在预设缓存中。其中,预设缓存可以是上述执行主体的CPU(CentralProcessing Unit,中央处理器)包括的缓存(例如一级(L1)缓存、二级(L2)缓存等)。由于电子设备在进行数据运算时,从缓存读取数据比从其他诸如内存、硬盘等存储设备中提取数据的效率更高,因此,上述执行主体可以预先将卷积神经网络中的特征矩阵加载到上述预设缓存中,从而可以提高数据存取的效率。
在本实施例的一些可选的实现方式中,上述预设数量是预设的单指令多数据流SIMD指令单次提取的数据的位数与卷积神经网络中的特征矩阵包括的特征数据的位数的商。作为示例,假设SIMD指令为64位指令,即单次提取的数据的位数为64位,上述卷积神经网络中的特征矩阵包括的特征数据的位数为16位,则预设数量为64/16=4。
可选的,上述SIMD指令可以为NEON指令,其中,NEON指令是适用于嵌入式微处理器的一种SIMD的指令,它采用专门设计,简化了软件在不同平台之间的移植,能够提升数据处理的速度,降低硬件功耗。应当理解,除上述NEON指令外,上述执行主体还可以采用其他SIMD指令,例如SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令等。
步骤202,对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。
在本实施例中,对于上述预设数量个目标特征矩阵中的目标特征矩阵,上述执行主体可以从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。
通常,在卷积神经网络进行卷积运算时,需要从目标特征矩阵中提取与对应的目标权重矩阵的行数和列数均相等的子特征矩阵,将在子特征矩阵和目标权重矩阵中处于相同位置的数据相乘。其中,目标特征矩阵和目标权重矩阵的对应关系是预先设置的。通过执行本步骤,可以得到预设数量个子特征矩阵。需要说明的是,由于卷积神经网络是目前广泛研究和应用的公知技术,关于确定与权重矩阵进行卷积运算的子特征矩阵的方法,这里不再赘述。
在本实施例的一些可选的实现方式中,卷积神经网络中的特征矩阵包括的特征数据和权重矩阵包括的权重数据是预设位数的定点数。由于电子设备对定点数的运算相比于对浮点数的运算效率更高,因此,在对卷积神经网络的处理结果的精度要求不高的场合下(例如在手机、平板电脑等终端设备运行卷积神经网络),卷积神经网络中的特征数据和权重数据可以设置为定点数,从而提高运算效率。将特征数据和权重数据的位数设置为预设位数,可以有助于充分利用寄存器所能够存储的数据的位数,从而提高寄存器的存取效率。
步骤203,执行如下存储步骤:对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据。
在本实施例中,上述执行主体可以执行如下存储步骤:
步骤2031,对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中。
具体地,上述执行主体可以按照目标权重矩阵包括的权重数据的位置的排列顺序,从目标权重矩阵中提取权重数据,将所提取的权重数据存储到第一目标寄存器中。作为示例,权重数据可以具有对应的、用于表征在目标权重矩阵中的位置的行号和列号,上述执行主体可以从每个目标权重矩阵所包括的、未提取过的权重数据中,提取最小行号(或最小列号)对应的一行(或一列)权重数据中,最小列号(或最小行号)对应的权重数据。
上述第一目标寄存器可以是预先设置的用于存储权重数据的寄存器。上述第一目标寄存器可以是上述执行主体预先分配的至少一个寄存器中的寄存器。上述至少一个寄存器可以是上述执行主体的CPU中包含的寄存器。上述执行主体可以从上述至少一个寄存器中,按照各种方式(例如按照寄存器的编号的顺序,或者按照预先配置的、提取的权重数据与寄存器的对应关系)选择寄存器作为第一目标寄存器。
在本实施例的一些可选的实现方式中,上述执行主体可以基于上述SIMD指令从预设数量个目标权重矩阵中分别提取未提取过的权重数据及存储到第一目标寄存器中。作为示例,假设上述预设数量为4,SIMD指令一次可以提取4个数据,则上述执行主体可以从4个目标权重矩阵中,分别提取一个权重数据。其中,提取的每个权重数据在所属的目标权重矩阵中的位置相同。对于现有的SISD(Single Instruction Single Data stream,单指令流单数据流),每个指令只能提取一个数据。而对于SIMD,一个指令可以提取多个数据。因为多个数据的处理是并行的,因此从时间来说,一个指令执行的时间,SISD和SIMD是差不多的。由于SIMD一次可以处理N(N为正整数)个数据,所以它的处理的时间也就缩短到SISD的处理的时间的1/N。上述执行主体使用SIMD指令,可以提高提取权重数据的效率。
步骤2032,对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中。
具体地,上述执行主体可以按照子特征矩阵包括的特征数据的位置的排列顺序,从子特征矩阵中提取特征数据,将所提取的特征数据存储到第二目标寄存器中。作为示例,特征数据可以具有对应的、表征在子特征矩阵中的位置的行号和列号,上述执行主体可以从每个子特征矩阵中的、未提取过的特征数据中,提取最小行号(或最小列号)对应的一行(或一列)特征数据中,最小列号(或最小行号)对应的特征数据。
上述第二目标寄存器可以是预先设置的、用于存储权重数据的寄存器。上述第二目标寄存器可以是上述执行主体预先分配的至少一个寄存器中的寄存器。上述至少一个寄存器可以是上述执行主体的CPU中包含的寄存器。上述执行主体可以从上述至少一个寄存器中,按照各种方式(例如按照寄存器的编号的顺序,或者按照预先配置的、提取的特征数据与寄存器的对应关系)选择寄存器作为第二目标寄存器。
在本实施例的一些可选的实现方式中,上述执行主体可以基于上述SIMD指令从所确定的子特征矩阵中分别提取未提取过的特征数据及存储到第二目标寄存器中。作为示例,假设上述预设数量为4,SIMD指令一次可以提取4个数据,则上述执行主体可以从4个子特征矩阵中,分别提取一个特征数据并存储到第二目标寄存器中。其中,提取的每个特征数据在所属的子特征矩阵中的位置相同。
步骤2033,确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据。
具体地,上述执行主体可以确定预设数量个目标权重矩阵中是否存在未提取过的权重数据,以及确定所确定的子特征矩阵中是否存在未提取过的特征数据。如果确定预设数量个目标权重矩阵中存在未提取过的权重数据,并且所确定的子特征矩阵中存在未提取过的特征数据,则确定预设数量个目标权重矩阵和所确定的子特征矩阵中存在未提取过的数据。
步骤204,响应于确定存在,继续执行存储步骤。
在本实施例中,上述执行主体可以响应于确定预设数量个目标权重矩阵和所确定的子特征矩阵中存在未提取过的数据,继续执行上述存储步骤。
继续参见图3,图3是根据本实施例的用于存储数据的方法的应用场景的一个示意图。在图3的应用场景中,终端设备301上设置有卷积神经网络302,卷积神经网络302用于对输入的图像进行处理,处理过程中,生成卷积神经网络包括的特征矩阵。终端设备301首先从卷积神经网络302中的、待进行卷积运算的层包括的特征矩阵中,选择四个(即预设数量个)目标特征矩阵303、304、305、306和对应的四个目标权重矩阵307、308、309、310。然后,终端设备301确定每个目标特征矩阵包括的、待与目标权重矩阵进行卷积运算的子特征矩阵3031、3041、3051、3061。接着,终端设备301执行如下存储步骤:从每个目标权重矩阵中提取一个未提取过的权重数据及存储到第一目标寄存器中,从每个子特征矩阵中提取一个未提取过的特征数据及存储到第二目标寄存器中;确定四个目标权重矩阵和四个子特征矩阵中是否存在未提取过的数据,如果存在,继续执行上述存储步骤。通过反复地执行上述存储步骤,上述终端设备301将四个目标权重矩阵中的权重数据和四个子特征矩阵中的特征数据全部存储到寄存器中。例如,在第一次执行存储步骤时,终端设备301从目标权重矩阵307、308、309、310中分别提取出位置处于第一行第一列的权重数据3071、3081、3091、3101,并存储到第一目标寄存器D1;从子特征矩阵3031、3041、3051、3061中分别提取出位置处于第一行第一列的特征数据30311、30411、30511、30611,并存储到第二目标寄存器D2。
本申请的上述实施例提供的方法,通过首先从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。然后对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。最后反复地从预设数量个目标权重矩阵中,分别提取未提取过的权重数据及存储到第一目标寄存器中;从所确定的子特征矩阵中,分别提取未提取过的特征数据及存储到第二目标寄存器中。从而可以分批次地将预设数量个目标特征矩阵和预设数量个目标权重矩阵全部存储到寄存器中,有助于利用寄存器的存取速度快的特点,提高卷积神经网络的运算效率。
进一步参考图4,其示出了用于存储数据的方法的又一个实施例的流程400。该用于存储数据的方法的流程400,包括以下步骤:
步骤401,从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。
在本实施例中,步骤401与图2对应实施例中的步骤201基本一致,这里不再赘述。
步骤402,对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。
在本实施例中,步骤402与图2对应实施例中的步骤202基本一致,这里不再赘述。
在本实施例中,上述执行主体在执行完步骤401后,可以继续执行如下存储步骤,即步骤403-步骤407:
步骤403,对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中。
在本实施例中,步骤403与图2对应实施例中的步骤2031基本一致,这里不再赘述。
步骤404,对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中。
在本实施例中,步骤404与图2对应实施例中的步骤2032基本一致,这里不再赘述。
步骤405,对于存储在第一目标寄存器中的各个权重数据中的权重数据,将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积。
在本实施例中,对于存储在第一目标寄存器中的各个权重数据中的权重数据,用于存储数据的方法的执行主体(例如图1所示的服务器或终端设备)可以将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积。
具体地,作为示例,假设第一目标寄存器中存储的数据包括:A、B、C、D,第二目标寄存器中存储的数据包括:E、F、G、H,其中,A、B、C、D在权重矩阵中的位置分别与E、F、G、H在子特征矩阵中的位置相同,即A、B、C、D分别对应于E、F、G、H,则得到的乘积包括:A×E、B×F、C×G、D×H。
步骤406,将所得到的乘积存储到预设的存储区域中。
在本实施例中,上述执行主体可以将所得到的乘积存储到预设的存储区域中。其中,预设的存储区域可以是存取数据的速度较快的存储区域,例如上述执行主体的CPU包括的缓存(例如一级缓存、二级缓存等),或者上述执行主体的CPU包括的寄存器(与存储特征数据和权值数据的寄存器不同的寄存器)。由于上述预设的存储区域具有存取数据较快的特点,因此将所得到的乘积存储到预设的存储区域中,可以有助于在卷积神经网络进行后续的计算时,进一步提高运算效率。
步骤407,确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据。
在本实施例中,步骤407与图2对应实施例中的步骤2033基本一致,这里不再赘述。
步骤408,响应于确定存在,继续执行上述存储步骤。
在本实施例中,步骤408与图2对应实施例中的步骤204基本一致,这里不再赘述。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于存储数据的方法的流程400突出了对第一目标寄存器中的各个权重数据和第二目标寄存器中的特征数据相乘并存储的步骤。由此,本实施例描述的方案利用将所得到的乘积存储到预设的存储区域中,可以有助于在卷积神经网络进行后续的计算时,进一步提高运算效率。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于存储数据的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于存储数据的装置500包括:第一确定单元501,被配置成从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;第二确定单元502,被配置成对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵;存储单元503,被配置成执行如下存储步骤:对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据;第三确定单元504,被配置成响应于确定存在,继续执行存储步骤。
在本实施例中,第一确定单元501可以从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。其中,目标特征矩阵包括特征数据,目标权重矩阵包括权重数据。上述卷积神经网络可以预先设置在上述装置500中,用于对原始数据(例如图片、词向量等)进行处理。通常,对原始数据进行处理的卷积神经网络可以包括卷积层,卷积层又包括特征矩阵(即矩阵形式的特征图(feature map))和权重矩阵(即卷积核,又称滤波器)。特征矩阵包括的特征数据可以是从原始数据中提取的数据(例如像素的R(红,Red)G(绿,Green)B(蓝,Blue)值),也可以是处理上述原始数据的卷积神经网络中的某个层(例如卷积层、池化层等)输出的数据。权重矩阵包括权重数据是对卷积神经网络进行训练所确定的数据。通常,特征矩阵与权重矩阵经过卷积运算后,可以得到新的特征数据。
在本实施例中,上述第一确定单元501可以按照各种方式从卷积神经网络中的特征矩阵中,确定预设数量个目标特征矩阵。其中,目标特征矩阵可以是待对其与对应的目标权重矩阵进行卷积运算的特征矩阵。作为示例,上述执行主体可以从各个特征矩阵中,随机提取预设数量个特征矩阵作为目标特征矩阵。
在本实施例中,对于上述预设数量个目标特征矩阵中的目标特征矩阵,上述第二确定单元502可以从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。
通常,在卷积神经网络进行卷积运算时,需要从目标特征矩阵中提取与对应的目标权重矩阵的行数和列数均相等的子特征矩阵,将在子特征矩阵和目标权重矩阵中处于相同位置的数据相乘。其中,目标特征矩阵和目标权重矩阵的对应关系是预先设置的。通过执行本步骤,可以得到预设数量个子特征矩阵。需要说明的是,由于卷积神经网络是目前广泛研究和应用的公知技术,关于确定与权重矩阵进行卷积运算的子特征矩阵的方法,这里不再赘述。
在本实施例中,存储单元503可以执行如下存储步骤:
步骤5031,对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中。
具体地,上述存储单元503可以按照目标权重矩阵包括的权重数据的位置的排列顺序,从目标权重矩阵中提取权重数据,将所提取的权重数据存储到第一目标寄存器中。作为示例,权重数据可以具有对应的、用于表征在目标权重矩阵中的位置的行号和列号,上述执行主体可以从每个目标权重矩阵所包括的、未提取过的权重数据中,提取最小行号(或最小列号)对应的一行(或一列)权重数据中,最小列号(或最小行号)对应的权重数据。
上述第一目标寄存器可以是预先设置的用于存储权重数据的寄存器。上述第一目标寄存器可以是上述装置500预先分配的至少一个寄存器中的寄存器。上述至少一个寄存器可以是上述装置500的CPU中包含的寄存器。上述装置500可以从上述至少一个寄存器中,按照各种方式(例如按照寄存器的编号的顺序,或者按照预先配置的、提取的权重数据与寄存器的对应关系)选择寄存器作为第一目标寄存器。
步骤5032,对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中。
具体地,上述存储单元503可以按照子特征矩阵包括的特征数据的位置的排列顺序,从子特征矩阵中提取特征数据,将所提取的特征数据存储到第二目标寄存器中。作为示例,特征数据可以具有对应的、表征在子特征矩阵中的位置的行号和列号,上述执行主体可以从每个子特征矩阵中的、未提取过的特征数据中,提取最小行号(或最小列号)对应的一行(或一列)特征数据中,最小列号(或最小行号)对应的特征数据。
上述第二目标寄存器可以是预先设置的用于存储权重数据的寄存器。上述第二目标寄存器可以是上述装置500预先分配的至少一个寄存器中的寄存器。上述至少一个寄存器可以是上述执行主体的CPU中包含的寄存器。上述装置500可以从上述至少一个寄存器中,按照各种方式(例如按照寄存器的编号的顺序,或者按照预先配置的、提取的特征数据与寄存器的对应关系)选择寄存器作为第二目标寄存器。
步骤5033,确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据。
具体地,上述存储单元503可以确定预设数量个目标权重矩阵中是否存在未提取过的权重数据,以及确定所确定的子特征矩阵中是否存在未提取过的特征数据。如果确定预设数量个目标权重矩阵中存在未提取过的权重数据,并且所确定的子特征矩阵中存在未提取过的特征数据,则确定预设数量个目标权重矩阵和所确定的子特征矩阵中存在未提取过的数据。
在本实施例中,第三确定单元504可以响应于确定预设数量个目标权重矩阵和所确定的子特征矩阵中存在未提取过的数据,继续执行上述存储步骤。
在本实施例的一些可选的实现方式中,存储单元503可以包括:计算模块(图中未示出),被配置成对于存储在第一目标寄存器中的各个权重数据中的权重数据,将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积;存储模块(图中未示出),被配置成存储所得到的乘积。
在本实施例的一些可选的实现方式中,卷积神经网络中的特征矩阵包括的特征数据和权重矩阵包括的权重数据是预设位数的定点数。
在本实施例的一些可选的实现方式中,上述预设数量个目标特征矩阵和预设数量个目标权重矩阵预先存储在预设缓存中。
在本实施例的一些可选的实现方式中,上述预设数量个目标特征矩阵包含于卷积神经网络中的目标层包括的特征矩阵集合,特征矩阵集合预先被分割为至少一个子集合,其中,子集合包括预设数量个特征矩阵;以及第一确定单元501可以包括:选择模块(图中未示出),被配置成从至少一个子集合中选择子集合,将所选择的子集合包括的特征矩阵确定为目标特征矩阵;确定模块(图中未示出),被配置成对于所确定的预设数量个目标特征矩阵中的目标特征矩阵,确定与该目标特征矩阵对应的、用于进行卷积运算的权重矩阵作为目标权重矩阵。
在本实施例的一些可选的实现方式中,预设数量是预设的单指令多数据流SIMD指令单次提取的数据的位数与卷积神经网络中的特征矩阵包括的特征数据的位数的商。
在本实施例的一些可选的实现方式中,存储单元503开头进一步被配置成:基于SIMD指令从预设数量个目标权重矩阵中分别提取未提取过的权重数据及存储到第一目标寄存器中。
在本实施例的一些可选的实现方式中,存储单元503可以进一步被配置成:基于SIMD指令从所确定的子特征矩阵中分别提取未提取过的特征数据及存储到第二目标寄存器中。
本申请的上述实施例提供的装置,通过首先从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵。然后对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵。最后反复地从预设数量个目标权重矩阵中,分别提取未提取过的权重数据及存储到第一目标寄存器中;从所确定的子特征矩阵中,分别提取未提取过的特征数据及存储到第二目标寄存器中。从而可以分批次地将预设数量个目标特征矩阵和预设数量个目标权重矩阵全部存储到寄存器中,有助于利用寄存器的存取速度快的特点,提高卷积神经网络的运算效率。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备(例如图1所示的服务器或终端设备)的计算机***600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、存储单元和第三确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一确定单元还可以被描述为“从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;对于预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵;执行如下存储步骤:对于预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据;响应于确定存在,继续执行存储步骤。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (18)

1.一种用于存储数据的方法,包括:
从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;
对于所述预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵;
执行如下存储步骤:对于所述预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定所述预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据;
响应于确定存在,继续执行所述存储步骤。
2.根据权利要求1所述的方法,其中,所述存储步骤还包括:
对于存储在第一目标寄存器中的各个权重数据中的权重数据,将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积;
存储所得到的乘积。
3.根据权利要求1所述的方法,其中,所述卷积神经网络中的特征矩阵包括的特征数据和权重矩阵包括的权重数据是预设位数的定点数。
4.根据权利要求1所述的方法,其中,所述预设数量个目标特征矩阵和所述预设数量个目标权重矩阵预先存储在预设缓存中。
5.根据权利要求1所述的方法,其中,所述预设数量个目标特征矩阵包含于所述卷积神经网络中的目标层包括的特征矩阵集合,所述特征矩阵集合预先被分割为至少一个子集合,其中,子集合包括预设数量个特征矩阵;以及
所述从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵,包括:
从所述至少一个子集合中选择子集合,将所选择的子集合包括的特征矩阵确定为目标特征矩阵;
对于所确定的预设数量个目标特征矩阵中的目标特征矩阵,确定与该目标特征矩阵对应的、用于进行卷积运算的权重矩阵作为目标权重矩阵。
6.根据权利要求1-5之一所述的方法,其中,所述预设数量是预设的单指令多数据流SIMD指令单次提取的数据的位数与所述卷积神经网络中的特征矩阵包括的特征数据的位数的商。
7.根据权利要求6所述的方法,其中,所述对于所述预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中,包括:
基于所述SIMD指令从所述预设数量个目标权重矩阵中分别提取未提取过的权重数据及存储到第一目标寄存器中。
8.根据权利要求6所述的方法,其中,所述对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中,包括:
基于所述SIMD指令从所确定的子特征矩阵中分别提取未提取过的特征数据及存储到第二目标寄存器中。
9.一种用于存储数据的装置,包括:
第一确定单元,被配置成从预设的卷积神经网络中,确定预设数量个目标特征矩阵和预设数量个目标权重矩阵;
第二确定单元,被配置成对于所述预设数量个目标特征矩阵中的目标特征矩阵,从该目标特征矩阵中,确定待与该目标特征矩阵对应的目标权重矩阵进行卷积运算的子特征矩阵;
存储单元,被配置成执行如下存储步骤:对于所述预设数量个目标权重矩阵中的目标权重矩阵,从该目标权重矩阵中提取未提取过的权重数据及存储到第一目标寄存器中;对于所确定的子特征矩阵中的子特征矩阵,从该子特征矩阵中提取未提取过的特征数据及存储到第二目标寄存器中;确定所述预设数量个目标权重矩阵和所确定的子特征矩阵中是否存在未提取过的数据;
第三确定单元,被配置成响应于确定存在,继续执行所述存储步骤。
10.根据权利要求9所述的装置,其中,所述存储单元包括:
计算模块,被配置成对于存储在第一目标寄存器中的各个权重数据中的权重数据,将该权重数据乘以对应的、存储在第二目标寄存器中的特征数据,得到乘积;
存储模块,被配置成存储所得到的乘积。
11.根据权利要求9所述的装置,其中,所述卷积神经网络中的特征矩阵包括的特征数据和权重矩阵包括的权重数据是预设位数的定点数。
12.根据权利要求9所述的装置,其中,所述预设数量个目标特征矩阵和所述预设数量个目标权重矩阵预先存储在预设缓存中。
13.根据权利要求9所述的装置,其中,所述预设数量个目标特征矩阵包含于所述卷积神经网络中的目标层包括的特征矩阵集合,所述特征矩阵集合预先被分割为至少一个子集合,其中,子集合包括预设数量个特征矩阵;以及
所述第一确定单元包括:
选择模块,被配置成从所述至少一个子集合中选择子集合,将所选择的子集合包括的特征矩阵确定为目标特征矩阵;
确定模块,被配置成对于所确定的预设数量个目标特征矩阵中的目标特征矩阵,确定与该目标特征矩阵对应的、用于进行卷积运算的权重矩阵作为目标权重矩阵。
14.根据权利要求9-13之一所述的装置,其中,所述预设数量是预设的单指令多数据流SIMD指令单次提取的数据的位数与所述卷积神经网络中的特征矩阵包括的特征数据的位数的商。
15.根据权利要求14所述的装置,其中,所述存储单元进一步被配置成:
基于所述SIMD指令从所述预设数量个目标权重矩阵中分别提取未提取过的权重数据及存储到第一目标寄存器中。
16.根据权利要求14所述的装置,其中,所述存储单元进一步被配置成:
基于所述SIMD指令从所确定的子特征矩阵中分别提取未提取过的特征数据及存储到第二目标寄存器中。
17.一种电子设备,包括:
一个或多个处理器,其中,处理器包括寄存器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN201811149864.4A 2018-09-29 2018-09-29 用于存储数据的方法和装置 Active CN109375952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811149864.4A CN109375952B (zh) 2018-09-29 2018-09-29 用于存储数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811149864.4A CN109375952B (zh) 2018-09-29 2018-09-29 用于存储数据的方法和装置

Publications (2)

Publication Number Publication Date
CN109375952A true CN109375952A (zh) 2019-02-22
CN109375952B CN109375952B (zh) 2021-01-26

Family

ID=65403084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811149864.4A Active CN109375952B (zh) 2018-09-29 2018-09-29 用于存储数据的方法和装置

Country Status (1)

Country Link
CN (1) CN109375952B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111598892A (zh) * 2020-04-16 2020-08-28 浙江工业大学 一种基于Res2-UNeXt网络结构的细胞图像分割方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的***
CN107742150A (zh) * 2016-10-31 2018-02-27 腾讯科技(深圳)有限公司 一种卷积神经网络的数据处理方法和装置
CN108416434A (zh) * 2018-02-07 2018-08-17 复旦大学 针对神经网络的卷积层与全连接层进行加速的电路结构
CN108595211A (zh) * 2018-01-05 2018-09-28 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250103A (zh) * 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的***
CN107742150A (zh) * 2016-10-31 2018-02-27 腾讯科技(深圳)有限公司 一种卷积神经网络的数据处理方法和装置
CN108595211A (zh) * 2018-01-05 2018-09-28 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置
CN108416434A (zh) * 2018-02-07 2018-08-17 复旦大学 针对神经网络的卷积层与全连接层进行加速的电路结构

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111598892A (zh) * 2020-04-16 2020-08-28 浙江工业大学 一种基于Res2-UNeXt网络结构的细胞图像分割方法
CN111598892B (zh) * 2020-04-16 2023-06-30 浙江工业大学 一种基于Res2-UNeXt网络结构的细胞图像分割方法

Also Published As

Publication number Publication date
CN109375952B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
CN109800732A (zh) 用于生成漫画头像生成模型的方法和装置
CN110263909A (zh) 图像识别方法及装置
JP2021505993A (ja) 深層学習アプリケーションのための堅牢な勾配重み圧縮方式
CN109767000A (zh) 基于Winograd算法的神经网络卷积方法及装置
CN109829432A (zh) 用于生成信息的方法和装置
CN108933822B (zh) 用于处理信息的方法和装置
CN108629823A (zh) 多视角图像的生成方法和装置
CN106537330A (zh) 通过向量处理器使用向量寄存器堆中的数据索引化累加器使标量操作并行化,以及相关电路、方法和计算机可读媒体
CN108182472A (zh) 用于生成信息的方法和装置
CN110222726A (zh) 图像处理方法、装置及电子设备
WO2021158267A1 (en) Computational graph optimization
CN108170640A (zh) 神经网络运算装置及应用其进行运算的方法
CN108829518A (zh) 用于推送信息的方法和装置
CN108595211A (zh) 用于输出数据的方法和装置
CN108334944A (zh) 一种人工神经网络运算的装置及方法
CN109165723A (zh) 用于处理数据的方法和装置
CN112800276A (zh) 视频封面确定方法、装置、介质及设备
CN109816037A (zh) 提取图像的特征图的方法和装置
CN108648226A (zh) 用于生成信息的方法和装置
CN110489955A (zh) 应用于电子设备的图像处理、装置、计算设备、介质
CN107305486B (zh) 一种神经网络maxout层计算装置
CN108052290A (zh) 用于存储数据的方法和装置
CN109375952A (zh) 用于存储数据的方法和装置
CN109510943A (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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: Tiktok vision (Beijing) Co.,Ltd.

CP01 Change in the name or title of a patent holder