CN110737473A - 数据处理方法及装置、终端、存储介质 - Google Patents

数据处理方法及装置、终端、存储介质 Download PDF

Info

Publication number
CN110737473A
CN110737473A CN201910907142.9A CN201910907142A CN110737473A CN 110737473 A CN110737473 A CN 110737473A CN 201910907142 A CN201910907142 A CN 201910907142A CN 110737473 A CN110737473 A CN 110737473A
Authority
CN
China
Prior art keywords
convolution
matrix
feature
columns
data
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
Application number
CN201910907142.9A
Other languages
English (en)
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201910907142.9A priority Critical patent/CN110737473A/zh
Publication of CN110737473A publication Critical patent/CN110737473A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands

Landscapes

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

Abstract

本公开是关于一种数据处理方法及装置、终端、存储介质,所述方法包括:将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,第一特征矩阵包括:1行和N*M列,第二特征矩阵包括:N行和M列;将神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,第一卷积矩阵包括:1行和O*M列;第二卷积矩阵包括:O行和M列;基于第二特征矩阵和第二卷积矩阵进行卷积运算,得到第三特征矩阵。通过该方法,在不增加内存的同时提升了卷积运算的效率。

Description

数据处理方法及装置、终端、存储介质
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据处理方法及装置、终端、存储介质。
背景技术
神经网络目前已经被广泛的应用,伴随着手机等终端的处理器变得越来越强大,也有越来越多的厂商将卷积神经网络部署到移动端。而该场景对于性能有极致的要求,众所周知,图形处理器(Graphics Processing Unit,GPU)并行计算是非常适合加速神经网络的运算,移动端的GPU也不例外,其相对于中央处理器(central processing unit,CPU)来说有更高的性能优势,所以一般会用GPU来做移动端的计算加速。
神经网络的主要计算量(一般在80%)集中在卷积运算上,所以卷积操作的优化至关重要。
发明内容
本公开提供一种数据处理方法及装置、终端、存储介质。
根据本公开实施例的第一方面,提供一种数据处理方法,包括:
将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,所述第一特征矩阵包括:1行和N*M列;第n个所述输入数据的M个通道的特征值,位于所述第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;所述第二特征矩阵包括:N行和M列,其中,所述第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
将所述神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;所述神经网络的第o个卷积层的M个卷积核,位于所述第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;所述第二卷积矩阵包括:O行和M列,其中,所述第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
基于所述第二特征矩阵和所述第二卷积矩阵进行卷积运算,得到第三特征矩阵。
在一些实施例中,在所述第一特征矩阵中一个通道的特征值携带有H1*W1个特征数据;在所述第二特征矩阵中的一个通道的特征值携带有H1*W1个特征数据,所述第二特征矩阵中包括(H1*N)*(W1*M)个特征数据;
所述方法还包括:
当所述W1*M的乘积不是P的倍数时,在所述第二特征矩阵的W1*M列的末尾插0补齐,以使所述第二特征矩阵中W1*M的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在一些实施例中,所述第一卷积矩阵中的一个所述卷积核携带有H2*W2个权重数据,所述将所述神经网络的第一卷积矩阵转化为第二卷积矩阵,包括:
当所述W2不等于1时,将所述第一卷积矩阵中的卷积核转换为(H2*W2)*1的卷积核,得到携带有(H2*W2*O)*M个权重数据的所述第二卷积矩阵。
在一些实施例中,所述方法还包括:
当所述H2*W2*O的乘积不是P的倍数时,在所述第二卷积矩阵的H2*W2*O行的末尾插0补齐,以使所述第二卷积矩阵中(H2*W2*O)的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在一些实施例中,所述方法还包括:
所述第二特征矩阵中的特征值分组存储;其中,所述特征值分组存储包括:
将所述M个通道的特征值等分成r等分,形成M/r个所述特征值组合;
分组存储后的所述第二特征矩阵中的一个特征值携带有H1*(W1*(M/r))个特征数据,所述第二特征矩阵共包括(H1*N)*(W1*(M/r)*r)个特征数据;其中,一个所述特征值组合内所述特征值的通道相邻,r大于0;
在进行所述卷积运算之前,以所述特征值组合为读取单位,读取存储的所述第二特征矩阵。
在一些实施例中,所述方法还包括:
所述第二卷积矩阵中的卷积核分组存储;其中,所述卷积核分组存储包括:
将O个所述卷积层等分成s等分,形成O/s个所述卷积层的卷积核组合;
分组存储后的所述第二卷积矩阵中的一个卷积核携带有((O/s)*H2*W2)*1个权重数据,所述第二卷积矩阵共包括((O/s)*H2*W2*s)*M个权重数据;其中,一个所述卷积核组合内所述卷积核所属的卷积层的层次相邻,s大于0;
在进行所述卷积运算之前,以所述卷积核组合为读取单位,读取存储的所述第二卷积矩阵。
在一些实施例中,所述方法还包括:
对所述卷积后的第三特征矩阵转换为第四特征矩阵;其中,所述第三特征矩阵包括:N行和Q列,第n个所述输入数据的卷积后的Q个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第Q列,Q为正整数;所述第四特征矩阵包括:1行和N*Q列,第n个所述输入数据的卷积后的Q个特征值,位于所述第四特征矩阵的第(n-1)*Q+1列至第n*Q列。
根据本公开实施例的第二方面,提供一种数据处理装置,包括:
第一转换模块,配置为将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,所述第一特征矩阵包括:1行和N*M列;第n个所述输入数据的M个通道的特征值,位于所述第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;所述第二特征矩阵包括:N行和M列,其中,所述第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
第二转换模块,配置为将所述神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;所述神经网络的第o个卷积层的M个卷积核,位于所述第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;所述第二卷积矩阵包括:O行和M列,其中,所述第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
卷积模块,配置为基于所述第二特征矩阵和所述第二卷积矩阵进行卷积运算,得到第三特征矩阵。
在一些实施例中,在所述第一特征矩阵中一个通道的特征值携带有H1*W1个特征数据;在所述第二特征矩阵中的一个通道的特征值携带有H1*W1个特征数据,所述第二特征矩阵中包括(H1*N)*(W1*M)个特征数据,所述装置还包括:
第一插入模块,配置为当所述W1*M的乘积不是P的倍数时,在所述第二特征矩阵的W1*M列的末尾插0补齐,以使所述第二特征矩阵中W1*M的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在一些实施例中,所述第一卷积矩阵中的一个所述卷积核携带有H2*W2个权重数据,
所述第二转换模块,具体配置为当所述W2不等于1时,将所述第一卷积矩阵中的卷积核转换为(H2*W2)*1的卷积核,得到携带有(H2*W2*O)*M个权重数据的所述第二卷积矩阵。
在一些实施例中,所述装置还包括:
第二插入模块,配置为当所述H2*W2*O的乘积不是P的倍数时,在所述第二卷积矩阵的H2*W2*O行的末尾插0补齐,以使所述第二卷积矩阵中(H2*W2*O)的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在一些实施例中,所述装置还包括:
第一存储模块,配置为将所述第二特征矩阵中的特征值分组存储,其中,所述特征值分组存储包括:将所述M个通道的特征值等分成r等分,形成M/r个所述特征值组合;分组存储后的所述第二特征矩阵中的一个特征值携带有H1*(W1*(M/r))个特征数据,所述第二特征矩阵共包括(H1*N)*(W1*(M/r)*r)个特征数据;其中,一个所述特征值组合内所述特征值的通道相邻,r大于0;
第一读取模块,配置为在进行所述卷积运算之前,以所述特征值组合为读取单位,读取存储的所述第二特征矩阵。
在一些实施例中,所述装置还包括:
第二存储模块,配置为将所述第二卷积矩阵中的卷积核分组存储;其中,所述卷积核分组存储包括:将O个所述卷积层等分成s等分,形成O/s个所述卷积层的卷积核组合;分组存储后的所述第二卷积矩阵中的一个卷积核携带有((O/s)*H2*W2)*1个权重数据,所述第二卷积矩阵共包括((O/s)*H2*W2*s)*M个权重数据;其中,一个所述卷积核组合内所述卷积核所属的卷积层的层次相邻,s大于0;
第二读取模块,配置为在进行所述卷积运算之前,以所述卷积核组合为读取单位,读取存储的所述第二卷积矩阵。
在一些实施例中,所述装置还包括:
第三转换模块,配置为对所述卷积后的第三特征矩阵转换为第四特征矩阵;其中,所述第三特征矩阵包括:N行和Q列,第n个所述输入数据的卷积后的Q个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第Q列,Q为正整数;所述第四特征矩阵包括:1行和N*Q列,第n个所述输入数据的卷积后的Q个特征值,位于所述第四特征矩阵的第(n-1)*Q+1列至第n*Q列。
根据本公开实施例的第三方面,提供一种终端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行如上述第一方面中所述的数据处理方法。
根据本公开实施例的第四方面,提供一种存储介质,包括:
当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行如上述第一方面中所述的数据处理方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
在本公开实施例中,终端在对神经网络中的数据进行卷积运算之前,将包括1行和N*M列特征值的第一特征矩阵进行转换,转换成二维的N行和M列的第二特征矩阵,其中将特征值当成一个整体,作为第一特征矩阵或第二特征矩阵中的一个元素;同理,对包括1行和O*M列卷积核的第一卷积矩阵进行转换,获得二维的O行和M列的第二卷积矩阵,其中将卷积核当成一个整体,作为第一卷积矩阵或第二卷积矩阵中的一个元素。一方面,在上述转换中,仅涉及矩阵的重新排列,不需要增加额外的内存存储中间结果或临时辅助变量,因此不会增加额外的存储空间;另一方面,以特征值和卷积核为元素转换形成二维的第二特征矩阵和第二卷积矩阵,能够以行为单位进行并行的运算方式,因此能提升卷积运算的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例示出的一种数据处理方法。
图2为本公开实施例中的输入数据和参数数据的卷积过程示例图。
图3是一种卷积运算方法示例图。
图4为本公开实施例中一种示例性的对待卷积的输入数据进行格式转换的示例图。
图5为本公开实施例中一种示例性的对参数数据进行格式转换的示例图。
图6是本公开实施例示出的一种数据处理方法示例图。
图7是根据一示例性实施例示出的一种数据处理装置图。
图8是根据一示例性实施例示出的一种终端装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是本公开实施例示出的一种数据处理方法,如图1所示,应用于终端中的数据处理方法包括以下步骤:
S11、将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,第一特征矩阵包括:1行和N*M列;第n个输入数据的M个通道的特征值,位于第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;第二特征矩阵包括:N行和M列,其中,第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
S12、将神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;神经网络的第o个卷积层的M个卷积核,位于第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;第二卷积矩阵包括:O行和M列,其中,第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
S13、基于第二特征矩阵和第二卷积矩阵进行卷积运算,得到第三特征矩阵。
在本公开的实施例中,终端设备包括移动设备和固定设备;所述移动设备包括:手机、平板电脑或可穿戴式设备等。所述固定设备包括但不限于个人电脑(PersonalComputer,PC)。
本公开的步骤S11中,在神经网络的卷积运算之前,对N个输入数据输出的第一特征矩阵转换为第二特征矩阵,其中,N个输入数据可包括不同类别的输入数据。例如,输入数据A和数据输入B,代表不同的类别,其中N等于2。N个输入数据输出的第一特征矩阵中共包括N*M个特征值,其中一个输入数据对应M个通道的特征值,在首次卷积过程时,特征值可理解为输入的原始图像数据,而在后续的卷积过程中,特征值也可以是神经网络运算过程中的中间数据,在神经网络的卷积运算中,特征值也称为特征图,携带的是特征数据。
示例性的,以输入数据是属于苹果的彩色图像数据为例,苹果就是一个输入数据,彩色图像中R通道、G通道、B通道对应的图像数据即为不同的特征值,特征值的个数为3。
在第一特征矩阵中,N*M个特征值以1行和N*M列的形式存储,而经过转换后,N*M个特征值以N行和M列的形式存储,其中,一个特征值可以理解为第一特征矩阵或第二特征矩阵中的一个元素,因此第一特征矩阵可以理解为以一维,即1行多列形式存储的格式,第二特征矩阵可以理解为以二维,即多行多列形式存储的格式。
本公开的步骤S12中,在神经网络的卷积运算之前,还对O个卷积层的共O*M个卷积核的卷积矩阵的存储格式进行转换,其中,一个卷积层包括M个卷积核。具体的,将以1行和O*M列的一维形式存储的第一卷积矩阵转换为以O行和M列的二维形式存储的第二卷积矩阵,其中,一个卷积核为第一卷积矩阵或第二卷积矩阵中的一个元素。
需要说明的是,在神经网络中,一个卷积层可包括M个卷积核,与一个输入数据的M个通道的特征值是一一对应的来执行卷积运算的。
在本公开的步骤S13中,将经过转换后第二特征矩阵和第二卷积矩阵进行卷积运算,即可得到第三特征矩阵。
其中,第三特征矩阵也是二维的格式,在一种实施例中,在神经网络中,为便于卷积运算过程之后的计算处理,需要将卷积后的第三特征矩阵还原成一维形式存储的矩阵,因此,在一种实施例中,数据处理方法还包括:
对卷积后的第三特征矩阵转换为第四特征矩阵;其中,第三特征矩阵包括:N行和Q列,第n个输入数据的卷积后的Q个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第Q列,Q为正整数;第四特征矩阵包括:1行和N*Q列,第n个输入数据的卷积后的Q个特征值,位于第四特征矩阵的第(n-1)*Q+1列至第n*Q列。
可以理解的是,第三特征矩阵转换为第四特征矩阵的方式与第一特征矩阵转换成第二特征矩阵的方式相反。
图2为本公开实施例中的输入数据和参数数据的卷积过程示例图,图2所示,先将原始的缓存格式转换为二维图像格式,具体包括:对输入数据的缓存格式即第一特征矩阵,进行格式转换,得到输入数据的二维图像格式,即第二特征矩阵。对参数数据的缓存格式即第一卷积矩阵进行格式转换,得到参数数据的二维图像格式,即第二卷积矩阵。将格式转换后的第二特征矩阵和第二卷积矩阵进行卷积操作获得二维图像格式的卷积结果,该二维图像格式的卷积结果即为第三特征矩阵;再将卷积结果的二维图像格式转换为原始的缓存格式,获得原始缓存格式的卷积结果,其中,转换后的原始缓存格式的卷积结果即为第四特征矩阵。
需要说明的是,在本公开的实施例中,经过转换后的第二特征矩阵和第二卷积矩阵的卷积运算过程还是卷积核和特征值的局部区域做点积的过程。本公开实施例中,因将卷积核看做一个整体,理解为第二卷积矩阵中的一个元素,将特征值看做一个整体,理解为第二特征矩阵中的一个元素,所述转换后的第二卷积矩阵和第二特征矩阵均可以理解成二维的矩阵格式,因此,能方便卷积运算过程中使用并行计算的方式。例如,当终端支持GPU并行时,利用GPU并行计算的特点,对第二特征矩阵和第二卷积矩阵做卷积运算。
图3是一种卷积运算方法示例图,如图3所示,卷积计算是指对输入数据和参数数据进行点积运算获得输出结果。如图3所示,输入数据的格式是:高度*宽度*通道数,其中,通道数是指一个输入数据所包括的特征值的个数,高度和宽度是指一个特征值,即特征图的行数和列数,特征值中携带的是特征数据。参数数据的格式是:输出通道数*输入通道数*高度*宽度。其中,输出通道数是指卷积层的层数,输入通道数是指一个卷积层包括的卷积核的个数,同输入数据中的通道数,一个卷积核的行数和列数即对应参数数据中的高度和宽度,卷积核中携带的是权重数据。
如图3所示的,输入数据的个数为1,一个输入数据包括3个通道的特征值:in[:,:,0]、in[:,:,1]、in[:,:,2];参数数据中,卷积层的层数为1,一个卷积层包括3个卷积核:w[:,:,0]、[:,:,1]、w[:,:,2],特征值的高度和宽度均为3,卷积核的高度和宽度也为3。基于卷积运算的原理,分别将in[:,:,0]和w[:,:,0]点积、in[:,:,1]和w[:,:,1]点积、in[:,:,2]和w[:,:,2]点积,并将点积后的值相加即得到输出矩阵,输出矩阵的通道数由参数数据的输出通道数,即卷积层的层数决定,因此,图2所示的输出矩阵的大小为1*1,通道数为1。
在本公开的实施例中,一个特征值为第一特征矩阵或第二特征矩阵中的一个元素,特征值携带的是特征数据,若第一特征矩阵中一个通道的特征值携带有H1*W1个特征数据;第二特征矩阵中的一个通道的特征值携带有H1*W1个特征数据,第二特征矩阵中包括(H1*N)*(W1*M)个特征数据;在一种实施例中,本公开的数据处理方法还包括:
当W1*M的乘积不是P的倍数时,在第二特征矩阵的W1*M列的末尾插0补齐,以使第二特征矩阵中W1*M的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在本公开的实施例中,以32位的处理器为例,处理器在读取和处理数据块时以4字节为单位,因此,为保证在后续卷积运算过程中第二特征矩阵中特征数据读取的正确性,需要确保W1*M的值是4的倍数。
在本公开的实施例中,一个卷积核为第一卷积矩阵或第二卷积矩阵中的一个元素,卷积核中携带权重数据,若第一卷积矩阵中的一个卷积核携带有H2*W2个权重数据,步骤S12包括:
当W2不等于1时,将第一卷积矩阵中的卷积核转换为(H2*W2)*1的卷积核,得到携带有(H2*W2*O)*M个权重数据的第二卷积矩阵。
在该实施例中,在对第一卷积矩阵进行转换的过程中,还对每个卷积核进行矩阵变化,将一个卷积核变成多行一列的矩阵后再映射到第二卷积矩阵中,以和第二特征矩阵中的特征数据的存储方式相适应,以确保卷积运算的正确性。
与对第二特征矩阵中W1*M列特征数据执行数据补齐操作相同的原理,在本公开的实施例中,当H2*W2*O的乘积不是P的倍数时,在第二卷积矩阵的H2*W2*O行的末尾插0补齐,以使第二卷积矩阵中(H2*W2*O)的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在本公开的一种实施例中,为提升数据读取的效率,第二特征矩阵中的特征值分组存储,所述特征值分组存储包括:
将M个通道的特征值等分成r等分,形成M/r个特征值组合;
分组存储后的第二特征矩阵中的一个特征值携带有H1*(W1*(M/r))个特征数据,第二特征矩阵共包括(H1*N)*(W1*(M/r)*r)个特征数据;其中,一个特征值组合内特征值的通道相邻,r大于0;在进行卷积运算之前,以特征值组合为读取单位,读取存储的第二特征矩阵。
在该实施例中,将M/r个特征值组合存储,那么组合后的不同特征值中相对应坐标上的特征数据也为M/r个特征数据的组合,因此在进行卷积运算之前,以特征值组合为读取单位,在获得某一个坐标上的特征数据时,一次性能读取M/r个特征数据。可以理解的是,采用该种分组存储的方式,能减少遍历的次数,实现快速访问。
在一种实施例中,为充分利用处理器读取数据长度的特性,以进一步提升数据处理的效率,可根据处理器一次运算所涉及的字节数目P来设置特征值的组合,即将P个特征值组合,即M/r的值等于P。
示例性的,仍以32位的处理器为例,处理器在读取和处理数据块时以4字节为单位,那么第二特征矩阵中,以4个特征值为一组进行存储。
图4为本公开实施例中一种示例性的对待卷积的输入数据进行格式转换的示例图,如图4所示,其中A1部分为输入数据的原始缓存(Buffer)格式,如图4所示,不同输入数据的不同特征值按顺序依次排列,输入数据的原始Buffer格式为:NH1W1M,Buffer格式携带的数据量是:N1*H1*W1*M,其中,N是批数量,代表输入数据的个数,H1是特征值的输入高度,W1是特征值的输入宽度,M是通道数,代表1个输入样本对应的特征值的个数。需要说明的是,在本公开的实施例中,将特征值作为一个整体,那么图4中的原始Buffer包括:1行和N*M列,对应本公开实施例的第一特征矩阵。
如图4所示,其中B1部分为输入数据转换后的二维图像(Image2D)格式,输入数据的Image2D格式即对应本公开实施例的第二特征矩阵,如图4所示,以相邻的4个通道为一组,图中B12部分即为一个特征值组合,该特征值组合的高为H1,宽为W1,共携带有H1*(W1*4)个特征数据。其中,B13所示的一个元素即为特征值组合中,属于不同特征值的相对应坐标下的4个特征数据组合,分别来自不同的4个通道。如图3所示,转换后的Image2D格式的高度为N*H1,宽为W1*[(M+3)/4],其中W1*[(M+3)/4]的作用在于4字节对齐。
在本公开的一种实施例中,与第二特征矩阵相同的存储原理,第二卷积矩阵中的卷积核分组存储;其中,所述卷积核分组存储包括:
将O个卷积层等分成s等分,形成O/s个卷积层的卷积核组合;
分组存储后的第二卷积矩阵中的一个卷积核携带有((O/s)*H2*W2)*1个权重数据,第二卷积矩阵共包括((O/s)*H2*W2*s)*M个权重数据;其中,一个卷积核组合内所述卷积核所属的卷积层的层次相邻,s大于0;在进行卷积运算之前,以卷积核组合为读取单位,读取存储的第二卷积矩阵。
在一种更优的实施例中,为充分利用处理器读取数据长度的特性,以进一步提升数据处理的效率,可根据处理器一次运算所涉及的字节数目P来设置卷积核的组合,即将P个卷积核组合,即O/s的值等于P。
图5为本公开实施例中一种示例性的对参数数据进行格式转换的示例图,如图5所示,其中A2部分为参数数据的原始缓存(Buffer)格式,参数数据即指多个卷积层的多个卷积核数据,如图4所示,不同卷积层的不同卷积核按顺序依次排列,不同卷积层中卷积核的原始Buffer格式为:OMH2W2,Buffer格式携带的数据量是:O*H2*W2*M,其中,O是输出通道数,代表卷积层的层数,H2是一个卷积核的高度,W2是卷积核的宽度,M是输入通道数,代表1个卷积层对应的卷积核的个数。需要说明的是,在本公开的实施例中,将卷积核作为一个整体,那么图5中的原始Buffer包括:1行和O*M列,对应本公开实施例的第一卷积矩阵。
如图5所示,其中B2部分为参数数据转换后的Image2D格式,参数数据的Image2D格式即对应本公开实施例的第二卷积矩阵,如图5所示,以相邻的4个卷积层为一组,图中B22部分即为一个卷积核组合,该卷积核组合的高为H2*W2,宽为1,为分别对卷积核进行行列转换后,再将来自4个卷积层的转换后的卷积核组合后形成,一个卷积核组合共携带有(4*H2*W2)*1个权重数据。其中,B23所指向的元素即为卷积核组合中,属于不同卷积核的相对应坐标下的4个权重数据组合,分别来自不同的4个卷积层。如图5所示,转换后的Image2D格式的高度为H2*W2*[(O+3)/4],宽度为M,其中H2*W2*[(O+3)/4]的作用在于4字节对齐。
可以理解的是,在本公开的实施例中,将第一特征矩阵转化为第二特征矩阵,以及将第一卷积矩阵转化为第二卷积矩阵的方式,相对于im2col方式中按列滑动模板,再对窗口内的数据做行列转换时,会产生额外的内存存储中间结果或临时辅助变量,本公开实施例的数据转换方式,因仅涉及矩阵的重组,不会增加额外的存储空间;且转换后的第二特征矩阵和第二卷积矩阵,能方便并行的运算方式,因此能提升卷积运算的效率。
下面以应用于手机中的神经网络卷积运算为例,图6是本公开实施例示出的一种数据处理方法示例图,如图6所示,应用于手机中的数据处理方法包括以下步骤:
S21、手机将第一格式的输入数据转化为第二格式,其中,第一格式为一维的存储格式,第二格式为二维的存储格式。
在该实施例中,第一格式即Buffer格式,第二格式即Image2D格式。第一格式的输入数据即为本公开中的第一特征矩阵,第二格式的输入数据即为第二特征矩阵。
S22、手机将第一格式的参数数据转化为第二格式。
在该实施例中,第一格式的参数数据即为本公开中的第一卷积矩阵,第二格式的参数数据即为第二卷积矩阵。
S23、手机利用GPU对转换后的第二格式的输入数据和参数数据进行卷积操作,获得第二格式的卷积结果。
在该实施例中,第二格式的卷积结果即为本公开中的第三特征矩阵。
示例性的,利用GPU并行计算的特点,在卷积运算过程中,设置一个线程束并行4个线程读取第二特征矩阵中的特征数据和第二卷积矩阵中的权重数据,并输出4个卷积结果。
S24、手机将第二格式的卷积结果转化为第一格式,并输出至CPU。
在该实施例中,转化后的第一格式的卷积结果即为本公开实施例的第四特征矩阵。
可以理解的是,在本公开的实施例中,利用手机支持GPU并行计算的特点,在手机中进行神经网络的卷积运算时,通过将原始CPU中的输入数据和参数数据转换为同二维图像格式的矩阵后,利用GPU并行执行卷积运算,一方面不会增加额外的存储空间,另一方面,提升了卷积运算的效率。
图7是根据一示例性实施例示出的一种数据处理装置图。参照图7,该数据处理装置包括:
第一转换模块101,配置为将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,所述第一特征矩阵包括:1行和N*M列;第n个所述输入数据的M个通道的特征值,位于所述第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;所述第二特征矩阵包括:N行和M列,其中,所述第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
第二转换模块102,配置为将所述神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;所述神经网络的第o个卷积层的M个卷积核,位于所述第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;所述第二卷积矩阵包括:O行和M列,其中,所述第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
卷积模块103,配置为基于所述第二特征矩阵和所述第二卷积矩阵进行卷积运算,得到第三特征矩阵。
在一种实施例中,在所述第一特征矩阵中一个通道的特征值携带有H1*W1个特征数据;在所述第二特征矩阵中的一个通道的特征值携带有H1*W1个特征数据,所述第二特征矩阵中包括(H1*N)*(W1*M)个特征数据,所述装置还包括:
第一插入模块104,配置为当所述W1*M的乘积不是P的倍数时,在所述第二特征矩阵的W1*M列的末尾插0补齐,以使所述第二特征矩阵中W1*M的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在一种实施例中,所述第一卷积矩阵中的一个所述卷积核携带有H2*W2个权重数据,所述第二转换模块102,具体配置为当所述W2不等于1时,将所述第一卷积矩阵中的卷积核转换为(H2*W2)*1的卷积核,得到携带有(H2*W2*O)*M个权重数据的所述第二卷积矩阵。
在一种实施例中,所述装置还包括:
第二插入模块105,配置为当所述H2*W2*O的乘积不是P的倍数时,在所述第二卷积矩阵的H2*W2*O行的末尾插0补齐,以使所述第二卷积矩阵中(H2*W2*O)的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
在一种实施例中,所述装置还包括:
第一存储模块106,配置为将所述第二特征矩阵中的特征值分组存储,其中,所述特征值分组存储包括:将所述M个通道的特征值等分成r等分,形成M/r个所述特征值组合;分组存储后的所述第二特征矩阵中的一个特征值携带有H1*(W1*(M/r))个特征数据,所述第二特征矩阵共包括(H1*N)*(W1*(M/r)*r)个特征数据;其中,一个所述特征值组合内所述特征值的通道相邻,r大于0;
第一读取模块107,配置为在进行所述卷积运算之前,以所述特征值组合为读取单位,读取存储的所述第二特征矩阵。
在一种实施例中,所述装置还包括:
第二存储模块108,配置为将所述第二卷积矩阵中的卷积核分组存储;其中,所述卷积核分组存储包括:将O个所述卷积层等分成s等分,形成O/s个所述卷积层的卷积核组合;分组存储后的所述第二卷积矩阵中的一个卷积核携带有((O/s)*H2*W2)*1个权重数据,所述第二卷积矩阵共包括((O/s)*H2*W2*s)*M个权重数据;其中,一个所述卷积核组合内所述卷积核所属的卷积层的层次相邻,s大于0;
第二读取模块109,配置为在进行所述卷积运算之前,以所述卷积核组合为读取单位,读取存储的所述第二卷积矩阵。
在一种实施例中,所述装置还包括:
第三转换模块110,配置为对所述卷积后的第三特征矩阵转换为第四特征矩阵;其中,所述第三特征矩阵包括:N行和Q列,第n个所述输入数据的卷积后的Q个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第Q列,Q为正整数;所述第四特征矩阵包括:1行和N*Q列,第n个所述输入数据的卷积后的Q个特征值,位于所述第四特征矩阵的第(n-1)*Q+1列至第n*Q列。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种终端装置的框图。例如,装置800可以是移动电话,移动电脑等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如Wi-Fi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行控制方法,所述方法包括:
将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,所述第一特征矩阵包括:1行和N*M列;第n个所述输入数据的M个通道的特征值,位于所述第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;所述第二特征矩阵包括:N行和M列,其中,所述第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
将所述神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;所述神经网络的第o个卷积层的M个卷积核,位于所述第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;所述第二卷积矩阵包括:O行和M列,其中,所述第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
基于所述第二特征矩阵和所述第二卷积矩阵进行卷积运算,得到第三特征矩阵。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (16)

1.一种数据处理方法,其特征在于,所述方法包括:
将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,所述第一特征矩阵包括:1行和N*M列;第n个所述输入数据的M个通道的特征值,位于所述第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;所述第二特征矩阵包括:N行和M列,其中,所述第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
将所述神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;所述神经网络的第o个卷积层的M个卷积核,位于所述第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;所述第二卷积矩阵包括:O行和M列,其中,所述第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
基于所述第二特征矩阵和所述第二卷积矩阵进行卷积运算,得到第三特征矩阵。
2.根据权利要求1所述的方法,其特征在于,在所述第一特征矩阵中一个通道的特征值携带有H1*W1个特征数据;在所述第二特征矩阵中的一个通道的特征值携带有H1*W1个特征数据,所述第二特征矩阵中包括(H1*N)*(W1*M)个特征数据;
所述方法还包括:
当所述W1*M的乘积不是P的倍数时,在所述第二特征矩阵的W1*M列的末尾插0补齐,以使所述第二特征矩阵中W1*M的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
3.根据权利要求2所述的方法,其特征在于,所述第一卷积矩阵中的一个所述卷积核携带有H2*W2个权重数据,所述将所述神经网络的第一卷积矩阵转化为第二卷积矩阵,包括:
当所述W2不等于1时,将所述第一卷积矩阵中的卷积核转换为(H2*W2)*1的卷积核,得到携带有(H2*W2*O)*M个权重数据的所述第二卷积矩阵。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述H2*W2*O的乘积不是P的倍数时,在所述第二卷积矩阵的H2*W2*O行的末尾插0补齐,以使所述第二卷积矩阵中(H2*W2*O)的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二特征矩阵中的特征值分组存储;其中,所述特征值分组存储包括:
将所述M个通道的特征值等分成r等分,形成M/r个所述特征值组合;
分组存储后的所述第二特征矩阵中的一个特征值携带有H1*(W1*(M/r))个特征数据,所述第二特征矩阵共包括(H1*N)*(W1*(M/r)*r)个特征数据;其中,一个所述特征值组合内所述特征值的通道相邻,r大于0;
在进行所述卷积运算之前,以所述特征值组合为读取单位,读取存储的所述第二特征矩阵。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第二卷积矩阵中的卷积核分组存储;其中,所述卷积核分组存储包括:
将O个所述卷积层等分成s等分,形成O/s个所述卷积层的卷积核组合;
分组存储后的所述第二卷积矩阵中的一个卷积核携带有((O/s)*H2*W2)*1个权重数据,所述第二卷积矩阵共包括((O/s)*H2*W2*s)*M个权重数据;其中,一个所述卷积核组合内所述卷积核所属的卷积层的层次相邻,s大于0;
在进行所述卷积运算之前,以所述卷积核组合为读取单位,读取存储的所述第二卷积矩阵。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述卷积后的第三特征矩阵转换为第四特征矩阵;其中,所述第三特征矩阵包括:N行和Q列,第n个所述输入数据的卷积后的Q个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第Q列,Q为正整数;所述第四特征矩阵包括:1行和N*Q列,第n个所述输入数据的卷积后的Q个特征值,位于所述第四特征矩阵的第(n-1)*Q+1列至第n*Q列。
8.一种数据处理装置,其特征在于,所述装置包括:
第一转换模块,配置为将神经网络基于N个输入数据输出的第一特征矩阵转换为第二特征矩阵;其中,所述第一特征矩阵包括:1行和N*M列;第n个所述输入数据的M个通道的特征值,位于所述第一特征矩阵的第(n-1)*M+1列至第n*M列;n为小于或等于N的正整数,M为正整数,不同通道的特征值是指基于不同特征提取方法获得的特征值;所述第二特征矩阵包括:N行和M列,其中,所述第n个输入数据的M个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第M列;
第二转换模块,配置为将所述神经网络的第一卷积矩阵转化为第二卷积矩阵;其中,所述第一卷积矩阵包括:1行和O*M列;所述神经网络的第o个卷积层的M个卷积核,位于所述第一卷积矩阵的第(o-1)*M+1列至第o*M列;o为小于或等于O的正整数;所述第二卷积矩阵包括:O行和M列,其中,所述第o个卷积层的M个卷积核,位于第(o-1)*O+1行至第o*O行,及第1至第M列;
卷积模块,配置为基于所述第二特征矩阵和所述第二卷积矩阵进行卷积运算,得到第三特征矩阵。
9.根据权利要求8所述的装置,其特征在于,在所述第一特征矩阵中一个通道的特征值携带有H1*W1个特征数据;在所述第二特征矩阵中的一个通道的特征值携带有H1*W1个特征数据,所述第二特征矩阵中包括(H1*N)*(W1*M)个特征数据,所述装置还包括:
第一插入模块,配置为当所述W1*M的乘积不是P的倍数时,在所述第二特征矩阵的W1*M列的末尾插0补齐,以使所述第二特征矩阵中W1*M的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
10.根据权利要求9所述的装置,其特征在于,所述第一卷积矩阵中的一个所述卷积核携带有H2*W2个权重数据,
所述第二转换模块,具体配置为当所述W2不等于1时,将所述第一卷积矩阵中的卷积核转换为(H2*W2)*1的卷积核,得到携带有(H2*W2*O)*M个权重数据的所述第二卷积矩阵。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二插入模块,配置为当所述H2*W2*O的乘积不是P的倍数时,在所述第二卷积矩阵的H2*W2*O行的末尾插0补齐,以使所述第二卷积矩阵中(H2*W2*O)的值是P的倍数,其中,P为进行一次运算所涉及的字节数目。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一存储模块,配置为将所述第二特征矩阵中的特征值分组存储,其中,所述特征值分组存储包括:将所述M个通道的特征值等分成r等分,形成M/r个所述特征值组合;分组存储后的所述第二特征矩阵中的一个特征值携带有H1*(W1*(M/r))个特征数据,所述第二特征矩阵共包括(H1*N)*(W1*(M/r)*r)个特征数据;其中,一个所述特征值组合内所述特征值的通道相邻,r大于0;
第一读取模块,配置为在进行所述卷积运算之前,以所述特征值组合为读取单位,读取存储的所述第二特征矩阵。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二存储模块,配置为将所述第二卷积矩阵中的卷积核分组存储;其中,所述卷积核分组存储包括:将O个所述卷积层等分成s等分,形成O/s个所述卷积层的卷积核组合;分组存储后的所述第二卷积矩阵中的一个卷积核携带有((O/s)*H2*W2)*1个权重数据,所述第二卷积矩阵共包括((O/s)*H2*W2*s)*M个权重数据;其中,一个所述卷积核组合内所述卷积核所属的卷积层的层次相邻,s大于0;
第二读取模块,配置为在进行所述卷积运算之前,以所述卷积核组合为读取单位,读取存储的所述第二卷积矩阵。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三转换模块,配置为对所述卷积后的第三特征矩阵转换为第四特征矩阵;其中,所述第三特征矩阵包括:N行和Q列,第n个所述输入数据的卷积后的Q个特征值,位于第(n-1)*N+1行至第n*N行,及第1至第Q列,Q为正整数;所述第四特征矩阵包括:1行和N*Q列,第n个所述输入数据的卷积后的Q个特征值,位于所述第四特征矩阵的第(n-1)*Q+1列至第n*Q列。
15.一种终端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至7中任一项所述的数据处理方法。
16.一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行如权利要求1至7中任一项所述的数据处理方法。
CN201910907142.9A 2019-09-24 2019-09-24 数据处理方法及装置、终端、存储介质 Pending CN110737473A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910907142.9A CN110737473A (zh) 2019-09-24 2019-09-24 数据处理方法及装置、终端、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910907142.9A CN110737473A (zh) 2019-09-24 2019-09-24 数据处理方法及装置、终端、存储介质

Publications (1)

Publication Number Publication Date
CN110737473A true CN110737473A (zh) 2020-01-31

Family

ID=69269470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910907142.9A Pending CN110737473A (zh) 2019-09-24 2019-09-24 数据处理方法及装置、终端、存储介质

Country Status (1)

Country Link
CN (1) CN110737473A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111861862A (zh) * 2020-06-28 2020-10-30 浙江大华技术股份有限公司 图像处理网络的位图数据处理方法、装置和计算机设备
CN113469350A (zh) * 2021-07-07 2021-10-01 武汉魅瞳科技有限公司 一种适于npu的深度卷积神经网络加速方法和系统
CN114692073A (zh) * 2021-05-19 2022-07-01 神盾股份有限公司 基于卷积运算的数据处理方法及电路
CN111861862B (zh) * 2020-06-28 2024-07-26 浙江大华技术股份有限公司 图像处理网络的位图数据处理方法、装置和计算机设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170236053A1 (en) * 2015-12-29 2017-08-17 Synopsys, Inc. Configurable and Programmable Multi-Core Architecture with a Specialized Instruction Set for Embedded Application Based on Neural Networks
CN109117455A (zh) * 2017-06-26 2019-01-01 上海寒武纪信息科技有限公司 计算装置及方法
CN109117187A (zh) * 2018-08-27 2019-01-01 郑州云海信息技术有限公司 卷积神经网络加速方法及相关设备
US20190122111A1 (en) * 2017-10-24 2019-04-25 Nec Laboratories America, Inc. Adaptive Convolutional Neural Knowledge Graph Learning System Leveraging Entity Descriptions
US20190130250A1 (en) * 2017-10-30 2019-05-02 Samsung Electronics Co., Ltd. Method and apparatus with neural network performing convolution
CN109740732A (zh) * 2018-12-27 2019-05-10 深圳云天励飞技术有限公司 神经网络处理器、卷积神经网络数据复用方法及相关设备
CN110007961A (zh) * 2019-02-01 2019-07-12 中山大学 一种基于risc-v的边缘计算硬件架构
CN110020678A (zh) * 2019-03-25 2019-07-16 联想(北京)有限公司 一种数据处理方法、电子设备及计算机存储介质
CN110097505A (zh) * 2019-05-16 2019-08-06 中国人民解放军海军工程大学 一种数字高程模型数据处理方法及装置
CN110110844A (zh) * 2019-04-24 2019-08-09 西安电子科技大学 基于OpenCL的卷积神经网络并行处理方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170236053A1 (en) * 2015-12-29 2017-08-17 Synopsys, Inc. Configurable and Programmable Multi-Core Architecture with a Specialized Instruction Set for Embedded Application Based on Neural Networks
CN109117455A (zh) * 2017-06-26 2019-01-01 上海寒武纪信息科技有限公司 计算装置及方法
US20190122111A1 (en) * 2017-10-24 2019-04-25 Nec Laboratories America, Inc. Adaptive Convolutional Neural Knowledge Graph Learning System Leveraging Entity Descriptions
US20190130250A1 (en) * 2017-10-30 2019-05-02 Samsung Electronics Co., Ltd. Method and apparatus with neural network performing convolution
CN109117187A (zh) * 2018-08-27 2019-01-01 郑州云海信息技术有限公司 卷积神经网络加速方法及相关设备
CN109740732A (zh) * 2018-12-27 2019-05-10 深圳云天励飞技术有限公司 神经网络处理器、卷积神经网络数据复用方法及相关设备
CN110007961A (zh) * 2019-02-01 2019-07-12 中山大学 一种基于risc-v的边缘计算硬件架构
CN110020678A (zh) * 2019-03-25 2019-07-16 联想(北京)有限公司 一种数据处理方法、电子设备及计算机存储介质
CN110110844A (zh) * 2019-04-24 2019-08-09 西安电子科技大学 基于OpenCL的卷积神经网络并行处理方法
CN110097505A (zh) * 2019-05-16 2019-08-06 中国人民解放军海军工程大学 一种数字高程模型数据处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨锡慧: "基于融合卷积神经网络的协同过滤模型", 《软件导刊》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111861862A (zh) * 2020-06-28 2020-10-30 浙江大华技术股份有限公司 图像处理网络的位图数据处理方法、装置和计算机设备
CN111861862B (zh) * 2020-06-28 2024-07-26 浙江大华技术股份有限公司 图像处理网络的位图数据处理方法、装置和计算机设备
CN114692073A (zh) * 2021-05-19 2022-07-01 神盾股份有限公司 基于卷积运算的数据处理方法及电路
CN113469350A (zh) * 2021-07-07 2021-10-01 武汉魅瞳科技有限公司 一种适于npu的深度卷积神经网络加速方法和系统
CN113469350B (zh) * 2021-07-07 2023-03-24 武汉魅瞳科技有限公司 一种适于npu的深度卷积神经网络加速方法和系统

Similar Documents

Publication Publication Date Title
US20200320369A1 (en) Image recognition method, apparatus, electronic device and storage medium
CN112199707B (zh) 一种同态加密中的数据处理方法、装置以及设备
CN106056530B (zh) 应用中图片内容的显示方法及装置
CN109120862A (zh) 高动态范围图像获取方法、装置及移动终端
CN108804188A (zh) 界面换肤方法及装置
KR102295655B1 (ko) 통합된 통화 및 계산 기능을 지원하는 전자 장치 및 그 방법
CN111859035B (zh) 数据处理方法及装置
US11581903B2 (en) Data compression method and apparatus, computer-readable storage medium, and electronic device
CN106547580A (zh) 挂钩函数的方法和装置
CN110737473A (zh) 数据处理方法及装置、终端、存储介质
AU2022203591B2 (en) Method and apparatus for switching display interface, and electronic device
US11562734B2 (en) Systems and methods for automatic speech recognition based on graphics processing units
CN111597029A (zh) 数据处理方法及装置、电子设备和存储介质
CN107608714B (zh) 字节对齐方法、装置及计算机可读存储介质
CN110365806B (zh) 网址转换方法及装置
CN110647508B (zh) 数据压缩方法、数据解压缩方法、装置及电子设备
CN111582432B (zh) 一种网络参数处理方法及装置
CN110764905B (zh) 网络模型生成方法、装置、计算机设备以及存储介质
CN108345434B (zh) 数据写入方法、装置、计算机设备及可读存储介质
CN107193530B (zh) 一种生成随机数的方法和装置
US20230133305A1 (en) Methods and devices for accelerating a transformer with a sparse attention pattern
CN108734556A (zh) 推荐应用的方法及装置
CN115576513A (zh) 目标图像的显示方法、显示装置、电子设备和存储介质
US20230010981A1 (en) Methods and apparatuses for high performance and accuracy fixed-point scale implementation
CN111061518B (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