CN110766133B - 嵌入式设备中的数据处理方法、装置、设备和存储介质 - Google Patents
嵌入式设备中的数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110766133B CN110766133B CN201910879118.9A CN201910879118A CN110766133B CN 110766133 B CN110766133 B CN 110766133B CN 201910879118 A CN201910879118 A CN 201910879118A CN 110766133 B CN110766133 B CN 110766133B
- Authority
- CN
- China
- Prior art keywords
- matrix
- data processing
- block
- input
- blocks
- 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.)
- Active
Links
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种嵌入式设备中的数据处理方法、装置、设备和存储介质,所述数据处理方法包括获取输入数据对应的输入矩阵;将输入矩阵输入至深度学习模型的第一个中间网络层;获取多个分块矩阵;获取权值矩阵和偏移量矩阵;获取当前中间网络层的第一输出矩阵;将第一输出矩阵作为下一个中间网络层的输入矩阵,并执行分块操作,直至获取最后一个中间网络层输出的目标输出矩阵;获取目标输出数据。本发明中加快了嵌入式设备的数据处理速度,提高了数据处理效率;实现了每次数据处理时占用内存较少,即对嵌入式设备的内存配置要求不高;数据处理过程中避免了片内内存和片外内存之间的数据交互,从而降低了嵌入式设备的运行功耗。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种嵌入式设备中的数据处理方法、装置、电子设备和存储介质。
背景技术
目前,深度学习模型(如卷积神经网络)在嵌入式设备(包括物联网设备等)中已经开始广泛应用。
考虑到功耗和效率,嵌入式设备主要通过在芯片片内封装SRAM(静态随机存取存储器),用作高速缓存,在片外使用DRAM(动态随机存取存储器)来保证数据处理过程的运行。另外,还可以通过在嵌入式设备中搭载DLA(一种深度学习加速芯片)来实现嵌入式设备的正常运行。
但是,由于深度学习模型的参数非常庞大,而嵌入式设备上的内存配置非常有限,使得很多深度学习模型都无法在嵌入式设备上运行,无法实现合理地利用嵌入式设备的片内内存,因此数据处理过程中需要片内内存和片外内存之间进行数据交换,从而存在内存配置要求较高、功耗较大等缺陷。
发明内容
本发明要解决的技术问题是为了克服现有技术中嵌入式设备存在内存配置要求较高,功耗较大等缺陷,提供一种嵌入式设备中的数据处理方法、装置、电子设备和存储介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种嵌入式设备中的数据处理方法,所述数据处理方法包括:
S1.在采用深度学习模型对嵌入式设备中的输入数据进行处理时,获取所述输入数据对应的输入矩阵;
S2.将所述输入矩阵输入至所述深度学习模型的第一个中间网络层;
S3.对所述输入矩阵进行分块处理,获取多个分块矩阵;
S4.获取当前中间网络层对应的偏移量矩阵、基矩阵和系数矩阵;
其中,所述基矩阵和所述系数矩阵为将当前中间网络层对应的权值矩阵进行非负矩阵分解得到的矩阵;
S5.根据所述分块矩阵、所述偏移量矩阵、所述基矩阵和所述系数矩阵获取当前中间网络层的第一输出矩阵;
S6.将所述第一输出矩阵作为下一个所述中间网络层的所述输入矩阵,并执行步骤S3,直至获取最后一个所述中间网络层输出的目标输出矩阵;
S7.根据所述目标输出矩阵获取与所述输入数据对应的目标输出数据。
较佳地,当所述深度学习模型包括卷积神经网络模型时,所述中间网络层包括卷积层或全连接层。
较佳地,步骤S3包括:
S31.采用im2col算法(一种用于优化卷积运算的算法)对所述输入矩阵进行排列处理,获取第一矩阵;
S32.对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
较佳地,步骤S32包括:
S321.获取所述嵌入式设备的内存大小;
S322.根据所述内存大小确定所述输入矩阵对应的分块数量;
S323.根据所述分块数量对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
较佳地,当所述第一矩阵的行数能够整除所述分块数量时,步骤S323还包括:
计算得到所述第一矩阵的行数与所述分块数量之间的第一比值;
根据所述第一比值将所述第一矩阵划分为多个所述分块矩阵;或,
当所述第一矩阵的行数不能够整除所述分块数量时,步骤S323还包括:
根据所述第一矩阵的行数与所述分块数量获取第二比值;
获取所述第一矩阵的行数对所述第二比值取模得到的取模结果;
根据所述第二比值和所述取模结果将所述第一矩阵划分为多个所述分块矩阵。
较佳地,当所述第一矩阵的行数能够整除所述分块数量时,步骤S323对应的计算公式如下:
m1=m/p
当所述第一矩阵的行数不能够整除所述分块数量时,步骤S323对应的计算公式如下:
n=m mod m2
其中,m表示所述第一矩阵的行数,p所述分块数量,p>1,m1表示所述第一比值,m2表示所述第二比值,n表示所述取模结果。
较佳地,步骤S5包括:
根据所述分块矩阵、所述基矩阵和所述系数矩阵获取第一中间矩阵;
根据所述中间矩阵获取所述偏移量矩阵对应的第二中间矩阵;
根据所述第一中间矩阵和所述第二中间矩阵获取第三中间矩阵;
将所述第三中间矩阵拼合成当前中间网络层对应的所述第一输出矩阵。
较佳地,步骤S5对应的计算公式如下:
Oj=Ij*U*V
O′j=Oj+Bj
其中,j=1,2…,p,Ij为所述分块矩阵,U表示所述基矩阵,V表示所述系数矩阵,Oj表示所述第一中间矩阵,Bj表示所述第二中间矩阵,O′j表示所述第三中间矩阵;
所述分块矩阵为M′*K阶矩阵,所述基矩阵为K*R阶矩阵,所述系数矩阵为R*N阶矩阵,所述第一中间矩阵、所述第二中间矩阵和所述第三中间矩阵均为M′*N阶矩阵,所述第一输出矩阵、所述输入矩阵和所述偏移量矩阵均为M*N阶矩阵,其中M′<M。
较佳地,步骤S1之前还包括:
判断所述嵌入式设备是否设有片内内存,若设有,则将所述输入数据存储至片内内存;否则,将所述输入数据存储至所述嵌入式设备的片外内存;
步骤S3之后还包括:
在所述嵌入式设备设有片内内存时,则将多个所述分块矩阵存储至所述嵌入式设备的片内内存中;
在所述嵌入式设备未设有片内内存时,将多个所述分块矩阵存储至所述嵌入式设备的片外内存中。
本发明还提供一种嵌入式设备中的数据处理装置,所述数据处理装置包括第一获取模块、输入模块、分块模块、第二获取模块、第一输出矩阵获取模块、目标输出矩阵获取模块和目标输出数据获取模块;
所述第一获取模块用于在采用深度学习模型对嵌入式设备中的输入数据进行处理时,获取所述输入数据对应的输入矩阵;
所述输入模块用于将所述输入矩阵输入至所述深度学习模型的第一个中间网络层;
所述分块模块用于对所述输入矩阵进行分块处理,获取多个分块矩阵;
所述第二获取模块用于获取当前中间网络层对应的偏移量矩阵、基矩阵和系数矩阵;
其中,所述基矩阵和所述系数矩阵为将当前中间网络层对应的权值矩阵进行非负矩阵分解得到的矩阵;
所述第一输出矩阵获取模块用于根据所述分块矩阵、所述偏移量矩阵、所述基矩阵和所述系数矩阵获取当前中间网络层的第一输出矩阵;
所述目标输出矩阵获取模块用于将所述第一输出矩阵作为下一个所述中间网络层的所述输入矩阵,并调用所述分块模块,直至获取最后一个所述中间网络层输出的目标输出矩阵;
所述目标输出数据获取模块用于根据所述目标输出矩阵获取与所述输入数据对应的目标输出数据。
较佳地,当所述深度学习模型包括卷积神经网络模型时,所述中间网络层包括卷积层或全连接层。
较佳地,所述分块模块包括第一矩阵获取单元和分块单元;
所述第一矩阵获取单元用于采用im2col算法对所述输入矩阵进行排列处理,获取第一矩阵;
所述分块单元用于对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
较佳地,所述分块单元包括内存获取子单元、分块数量确定子单元和分块子单元;
所述内存获取子单元用于获取所述嵌入式设备的内存大小;
所述分块数量确定子单元用于根据所述内存大小确定所述输入矩阵对应的分块数量;
所述分块子单元用于根据所述分块数量对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
较佳地,当所述第一矩阵的行数能够整除所述分块数量时,所述分块子单元用于计算得到所述第一矩阵的行数与所述分块数量之间的第一比值;
所述分块子单元还用于根据所述第一比值将所述第一矩阵划分为多个所述分块矩阵;或,
当所述第一矩阵的行数不能够整除所述分块数量时,所述分块子单元用于根据所述第一矩阵的行数与所述分块数量获取第二比值;
所述分块子单元还用于获取所述第一矩阵的行数对所述第二比值取模得到的取模结果;
所述分块子单元还用于根据所述第二比值和所述取模结果将所述第一矩阵划分为多个所述分块矩阵。
较佳地,所述第一矩阵的行数能够整除所述分块数量时,所述分块子单元中对应的计算公式如下:
m1=m/p
当所述第一矩阵的行数不能够整除所述分块数量时,所述分块子单元中对应的计算公式如下:
n=m mod m2
其中,m表示所述第一矩阵的行数,p所述分块数量,p>1,m1表示所述第一比值,m2表示所述第二比值,n表示所述取模结果。
较佳地,所述第一输出矩阵获取模块包括第一中间矩阵获取单元、第二中间矩阵获取单元、第三中间矩阵获取单元和第一输出矩阵获取单元;
所述第一中间矩阵获取单元用于根据所述分块矩阵、所述基矩阵和所述系数矩阵获取第一中间矩阵;
所述第二中间矩阵获取单元用于根据所述中间矩阵获取所述偏移量矩阵对应的第二中间矩阵;
所述第三中间矩阵获取单元用于根据所述第一中间矩阵和所述第二中间矩阵获取第三中间矩阵;
第一输出矩阵获取单元用于将所述第三中间矩阵拼合成当前中间网络层对应的所述第一输出矩阵。
较佳地,所述第一输出矩阵获取模块中对应的计算公式如下:
Oj=Ij*U*V
O′j=Oj+Bj
其中,j=1,2…,p,Ij为所述分块矩阵,U表示所述基矩阵,V表示所述系数矩阵,Oj表示所述第一中间矩阵,Bj表示所述第二中间矩阵,O′j表示所述第三中间矩阵;
所述分块矩阵为M′*K阶矩阵,所述基矩阵为K*R阶矩阵,所述系数矩阵为R*N阶矩阵,所述第一中间矩阵、所述第二中间矩阵和所述第三中间矩阵均为M′*N阶矩阵,所述第一输出矩阵、所述输入矩阵和所述偏移量矩阵均为M*N阶矩阵,其中M′<M。
较佳地,所述数据处理装置还包括判断模块和存储模块;
所述判断模块用于判断所述嵌入式设备是否设有片内内存,若设有,则调用所述存储模块将所述输入数据存储至片内内存;否则,调用所述存储模块将所述输入数据存储至所述嵌入式设备的片外内存;
所述存储模块还用于在所述嵌入式设备设有片内内存时,则将多个所述分块矩阵存储至所述嵌入式设备的片内内存中;
所述存储模块还用于在所述嵌入式设备未设有片内内存时,将多个所述分块矩阵存储至所述嵌入式设备的片外内存中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时实现上述的嵌入式设备中的数据处理方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的嵌入式设备中的数据处理方法的步骤。
本发明的积极进步效果在于:
本发明中,对于深度学习模型每一卷积层或全连接层的输入矩阵,对该输入矩阵进行排列并分块处理,进而结合当前层对应的权值矩阵和偏移量矩阵获取当前层的输出矩阵,最终获取与输入数据对应的目标输出数据,从而加快了嵌入式设备的数据处理速度,提高了数据处理效率;且使得每次数据处理占用内存较少,即对嵌入式设备的内存配置要求不高,克服现有的对内存配置要求较高的缺陷,使得既适用于高内存配置的嵌入式设备,也适用于低内存配置的嵌入式设备;另外,数据处理过程中数据均存储在嵌入式设备的片内内存,避免了片内内存和片外内存之间的数据交互,从而降低了嵌入式设备的运行功耗,提升了嵌入式设备的运行性能。
附图说明
图1为本发明实施例1的嵌入式设备中的数据处理方法的流程图。
图2为本发明实施例2的嵌入式设备中的数据处理方法的第一流程图。
图3为本发明实施例2的嵌入式设备中的数据处理方法的第二流程图。
图4为本发明实施例3的嵌入式设备中的数据处理装置的模块示意图。
图5为本发明实施例4的嵌入式设备中的数据处理装置的模块示意图。
图6为本发明实施例5中的实现嵌入式设备中的数据处理方法的电子设备的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例的嵌入式设备中的数据处理方法包括:
S101、在采用深度学习模型对嵌入式设备中的输入数据进行处理时,获取输入数据对应的输入矩阵;
其中,事先判断嵌入式设备或嵌入式设备中的深度学习加速芯片DLA中是否设有片内内存,若设有,则将输入数据存储至片内内存;否则,将输入数据存储至嵌入式设备的片外内存。
S102、将输入矩阵输入至深度学习模型的第一个中间网络层;
其中,当深度学习模型为卷积神经网络模型时,中间网络层包括卷积层或全连接层。
S103、对输入矩阵进行分块处理,获取多个分块矩阵;
S104、获取当前中间网络层对应的偏移量矩阵、基矩阵和系数矩阵;
其中,基矩阵和系数矩阵为将当前中间网络层对应的权值矩阵进行非负矩阵分解得到的矩阵,基矩阵和系数矩阵均为非负矩阵;优选地,对权值矩阵进行非负矩阵分解的操作在深度学习模型训练时完成,因此本实施例中无需对权值矩阵进行分解操作,直接获取分解后的基矩阵和系数矩阵即可,从而进一步地降低了本实施例中数据处理的复杂度。
在将权值矩阵分解得到基矩阵和系数矩阵过程中,可以通过设置迭代次数或阈值等方式对参数进行微调训练,从而保证深度学习模型的识别正确率。另外,采用非负矩阵分解对矩阵进行降维处理属于本领域的成熟技术,因此此处就不再赘述。
S105、根据分块矩阵、偏移量矩阵、基矩阵和系数矩阵获取当前中间网络层的第一输出矩阵;
S106、将第一输出矩阵作为下一个中间网络层的输入矩阵,并执行步骤S103;
S107、获取最后一个中间网络层输出的目标输出矩阵;
S108、根据目标输出矩阵获取与输入数据对应的目标输出数据。
本实施例中,通过将每一中间网络层的输入矩阵划分为若干个分块矩阵进行分别计算处理,从而加快了嵌入式设备的数据处理速度,提高了数据处理效率;且使得每次运算处理过程对嵌入式设备的片内内存的占用空间较少,即对嵌入式设备的内存配置要求不高,克服现有的对内存配置要求较高的缺陷,适用于低内存配置的嵌入式设备,从而保证深度学习模型能够在嵌入式设备上正常运行,保证嵌入式设备上深度学习推理的实现;另外,不需要片内内存和片外内存之间进行数据交互,进而降低了嵌入式设备的运行功耗,提升了嵌入式设备的运行性能。
实施例2
如图2所示,本实施例的嵌入式设备中的数据处理方法是对实施例1的进一步改进,具体地:
步骤S103之后还包括:
在嵌入式设备设有片内内存时,则将多个分块矩阵存储至嵌入式设备的片内内存中;在嵌入式设备未设有片内内存时,将多个分块矩阵存储至嵌入式设备的片外内存中。
对于设有片内内存的情况,优选地,将数据处理过程中的数据及对应矩阵等直接存储至嵌入式设备或嵌入式设备中的深度学习加速芯片DLA的片内内存中,从而保证数据处理过程中占用内存少,且减少片内内存和片外内存之间进行数据交互,进而降低嵌入式设备的整体运行功耗。
步骤S103包括:
S1031、采用im2col算法对输入矩阵进行排列处理,获取第一矩阵;
其中,im2col算法对矩阵进行排列处理属于本领域的成熟技术,因此在此就不再赘述。
S1032、对第一矩阵进行分块处理,获取多个分块矩阵。
具体地,如图3所示,步骤S1032包括:
S10321、获取嵌入式设备的内存大小;
S10322、根据内存大小确定输入矩阵对应的分块数量;
另外,还可以将内存大小结合实际经验等其他因素共同确定分块数量。
S10323、根据分块数量对第一矩阵进行分块处理,获取多个分块矩阵。
当第一矩阵的行数能够整除分块数量时,步骤S10323还包括:
计算得到第一矩阵的行数与分块数量之间的第一比值;
根据第一比值将第一矩阵划分为多个分块矩阵;
当第一矩阵的行数不能够整除分块数量时,步骤S10323还包括:
根据第一矩阵的行数与分块数量获取第二比值;
获取第一矩阵的行数对第二比值取模得到的取模结果;
根据第二比值和取模结果将第一矩阵划分为多个分块矩阵。
具体地,当第一矩阵的行数能够整除分块数量时,步骤S323对应的计算公式如下:
m1=m/p
当第一矩阵的行数不能够整除分块数量时,步骤S323对应的计算公式如下:
n=m mod m2
其中,m表示第一矩阵的行数,p分块数量,p>1,m1表示第一比值,m2表示第二比值,即对(m+p-1)和p的比值取整,n表示取模结果。
例如:当第一矩阵的行数为6,确定的分块数量p为2,则m1=6/2=3,则按照每3行对第一矩阵进行划分,得到2个分块矩阵。
当第一矩阵的行数为10,确定的分块数量p为3,则m2=[(10+3-1)/3=4,n=10mod4=2,则按照4行、4行和2行对第一矩阵进行划分,得到3个分块矩阵。
当第一矩阵的行数为10,确定的分块数量p为4,则m2=[(10+4-1)/4]=3,n=10mod 3=1,则按照3行、3行、3行和1行对第一矩阵进行划分,得到4个分块矩阵。
另外,可以根据实际需求,对输入矩阵按照列进行分块处理,进而获取每一中间网络层对应的输出矩阵,具体运算过程与上述对输入矩阵按照行进行分块处理的过程类似,因此此处就不再赘述。
步骤S105包括:
S1051、根据分块矩阵、基矩阵和系数矩阵获取第一中间矩阵;
S1052、根据中间矩阵获取偏移量矩阵对应的第二中间矩阵;
S1053、根据第一中间矩阵和第二中间矩阵获取第三中间矩阵;
S1054、将第三中间矩阵拼合成当前中间网络层对应的第一输出矩阵。
其中,对于设有片内内存的情况,将运算过程中产生的第一中间矩阵、第二中间矩阵、第三中间矩阵和第一输出矩阵均存储至片内内存。
具体地,上述步骤对应的计算公式如下:
Oj=Ij*U*V
O′j=Oj+Bj
其中,j=1,2…,p,Ij为分块矩阵,U表示基矩阵,V表示系数矩阵,Oj表示第一中间矩阵,Bj表示第二中间矩阵,O′j表示第三中间矩阵;
分块矩阵为M′*K阶矩阵,基矩阵为K*R阶矩阵,系数矩阵为R*N阶矩阵,第一中间矩阵、第二中间矩阵和第三中间矩阵均为M′*N阶矩阵,第一输出矩阵、输入矩阵和偏移量矩阵均为M*N阶矩阵,其中M′<M,R为远小于K和N的值。
M表示每一中间网络层输出的宽和高的乘积,K表示输入的通道数和卷积核的宽和高的乘积,N表示输出的通道数。
本实施例中,通过将每一中间网络层的输入矩阵划分为若干个分块矩阵进行分别计算处理,从而加快了嵌入式设备的数据处理速度,提高了数据处理效率;且使得每次运算处理过程对嵌入式设备的片内内存的占用空间较少,即对嵌入式设备的内存配置要求不高,克服现有的对内存配置要求较高的缺陷,适用于低内存配置的嵌入式设备,从而保证深度学习模型能够在嵌入式设备上正常运行;另外,不需要片内内存和片外内存之间进行数据交互,进而降低了嵌入式设备的运行功耗,提升了嵌入式设备的运行性能。
实施例3
如图4所示,本实施例的嵌入式设备中的数据处理装置包括第一获取模块1、输入模块2、分块模块3、第二获取模块4、第一输出矩阵获取模块5、目标输出矩阵获取模块6和目标输出数据获取模块7。
第一获取模块1用于在采用深度学习模型对嵌入式设备中的输入数据进行处理时,获取输入数据对应的输入矩阵;
输入模块2用于将输入矩阵输入至深度学习模型的第一个中间网络层;
其中,当深度学习模型包括卷积神经网络模型时,中间网络层包括卷积层或全连接层。
分块模块3用于对输入矩阵进行分块处理,获取多个分块矩阵;
第二获取模块4用于获取当前中间网络层对应的偏移量矩阵、基矩阵和系数矩阵;
其中,基矩阵和系数矩阵为将当前中间网络层对应的权值矩阵进行非负矩阵分解得到的矩阵,基矩阵和系数矩阵均为非负矩阵;优选地,对权值矩阵进行非负矩阵分解的操作在深度学习模型训练时完成,因此本实施例中无需对权值矩阵进行分解操作,直接获取分解后的基矩阵和系数矩阵即可,从而进一步地降低了本实施例中数据处理的复杂度。
在将权值矩阵分解得到基矩阵和系数矩阵过程中,可以通过设置迭代次数或阈值等方式对参数进行微调训练,从而保证深度学习模型的识别正确率。另外,采用非负矩阵分解对矩阵进行降维处理属于本领域的成熟技术,因此此处就不再赘述。
第一输出矩阵获取模块5用于根据所述分块矩阵、偏移量矩阵、基矩阵和系数矩阵获取当前中间网络层的第一输出矩阵;
目标输出矩阵获取模块6用于将第一输出矩阵作为下一个中间网络层的输入矩阵,并调用分块模块,直至获取最后一个中间网络层输出的目标输出矩阵;
目标输出数据获取模7用于根据目标输出矩阵获取与输入数据对应的目标输出数据。
本实施例中,通过将每一中间网络层的输入矩阵划分为若干个分块矩阵进行分别计算处理,从而加快了嵌入式设备的数据处理速度,提高了数据处理效率;且使得每次运算处理过程对嵌入式设备的片内内存的占用空间较少,即对嵌入式设备的内存配置要求不高,克服现有的对内存配置要求较高的缺陷,适用于低内存配置的嵌入式设备,从而保证深度学习模型能够在嵌入式设备上正常运行;另外,不需要片内内存和片外内存之间进行数据交互,进而降低了嵌入式设备的运行功耗,提升了嵌入式设备的运行性能。
实施例4
如图5所示,本实施例的嵌入式设备中的数据处理装置是对实施例3的进一步改进,具体地:
数据处理装置还包括判断模块8和存储模块9;
判断模块8用于判断嵌入式设备是否设有片内内存,若设有,则调用存储模块9将输入数据存储至片内内存;否则,调用存储模块9将输入数据存储至嵌入式设备的片外内存;
存储模块9还用于在嵌入式设备设有片内内存时,则将多个分块矩阵存储至嵌入式设备的片内内存中;存储模块9还用于在嵌入式设备未设有片内内存时,将多个分块矩阵存储至嵌入式设备的片外内存中。
对于设有片内内存的情况,优选地,将数据处理过程中的数据及对应矩阵等直接存储至嵌入式设备或嵌入式设备中的深度学习加速芯片DLA的片内内存中,从而保证数据处理过程中占用内存少,且减少片内内存和片外内存之间进行数据交互,进而降低嵌入式设备的整体运行功耗。
分块模块3包括第一矩阵获取单元10和分块单元11;
第一矩阵获取单元10用于采用im2col算法对输入矩阵进行排列处理,获取第一矩阵;
分块单元11用于对第一矩阵进行分块处理,获取多个分块矩阵。
分块单元11包括内存获取子单元、分块数量确定子单元和分块子单元;
内存获取子单元用于获取嵌入式设备的内存大小;
分块数量确定子单元用于根据内存大小确定输入矩阵对应的分块数量;
另外,还可以将内存大小结合实际经验等其他因素共同确定分块数量。
分块子单元用于根据分块数量对第一矩阵进行分块处理,获取多个分块矩阵。
当第一矩阵的行数能够整除分块数量时,分块子单元用于计算得到第一矩阵的行数与分块数量之间的第一比值;
分块子单元还用于根据第一比值将第一矩阵划分为多个分块矩阵;或,当第一矩阵的行数不能够整除分块数量时,分块子单元用于根据第一矩阵的行数与分块数量获取第二比值;
分块子单元还用于获取第一矩阵的行数对第二比值取模得到的取模结果;
分块子单元还用于根据第二比值和取模结果将第一矩阵划第一矩阵的行数能够整除分块数量时,分块子单元中对应的计算公式如下:
m1=m/p
当第一矩阵的行数不能够整除分块数量时,分块子单元中对应的计算公式如下:
n=m mod m2
其中,m表示第一矩阵的行数,p分块数量,p>1,m1表示第一比值,m2表示第二比值,即对(m+p-1)和p的比值取整,n表示取模结果。
例如:当第一矩阵的行数为6,确定的分块数量p为2,则m1=6/2=3,则按照每3行对第一矩阵进行划分,得到2个分块矩阵。
当第一矩阵的行数为10,确定的分块数量p为3,则m2=[(10+3-1)/3=4,n=10mod4=2,则按照4行、4行和2行对第一矩阵进行划分,得到3个分块矩阵。
当第一矩阵的行数为10,确定的分块数量p为4,则m2=[(10+4-1)/4]=3,n=10mod 3=1,则按照3行、3行、3行和1行对第一矩阵进行划分,得到4个分块矩阵。
另外,可以根据实际需求,对输入矩阵按照列进行分块处理,进而获取每一中间网络层对应的输出矩阵,具体运算过程与上述对输入矩阵按照行进行分块处理的过程类似,因此此处就不再赘述。
第一输出矩阵获取模块5包括第一中间矩阵获取单元12、第二中间矩阵获取单元13、第三中间矩阵获取单元14和第一输出矩阵获取单元15。
第一中间矩阵获取单元12用于根据分块矩阵、基矩阵和系数矩阵获取第一中间矩阵;
第二中间矩阵获取单元13用于根据中间矩阵获取偏移量矩阵对应的第二中间矩阵;
第三中间矩阵获取单元14用于根据第一中间矩阵和第二中间矩阵获取第三中间矩阵;
第一输出矩阵获取单元15用于将第三中间矩阵拼合成当前中间网络层对应的第一输出矩阵。
其中,对于设有片内内存的情况,将运算过程中产生的第一中间矩阵、第二中间矩阵、第三中间矩阵和第一输出矩阵均存储至片内内存。
第一输出矩阵获取模块中对应的计算公式如下:
Oj=Ij*U*V
O′j=Oj+Bj
其中,j=1,2…,p,Ij为分块矩阵,U表示基矩阵,V表示系数矩阵,Oj表示第一中间矩阵,Bj表示第二中间矩阵,O′j表示第三中间矩阵;
分块矩阵为M′*K阶矩阵,基矩阵为K*R阶矩阵,系数矩阵为R*N阶矩阵,第一中间矩阵、第二中间矩阵和第三中间矩阵均为M′*N阶矩阵,第一输出矩阵、输入矩阵和偏移量矩阵均为M*N阶矩阵,其中M′<M,R为远小于K和N的值。
M表示每一中间网络层输出的宽和高的乘积,K表示输入的通道数和卷积核的宽和高的乘积,N表示输出的通道数。
本实施例中,通过将每一中间网络层的输入矩阵划分为若干个分块矩阵进行分别计算处理,从而使得每次运算处理过程对嵌入式设备的片内内存的占用空间较少,即对嵌入式设备的内存配置要求不高,克服现有的对内存配置要求较高的缺陷,适用于低内存配置的嵌入式设备,从而保证深度学习模型能够在嵌入式设备上正常运行;另外,不需要片内内存和片外内存之间进行数据交互,进而降低了嵌入式设备的运行功耗,提升了嵌入式设备的运行性能。
实施例5
图6为本发明实施例5提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1或2中任意一实施例中的嵌入式设备中的数据处理方法。图6显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1或2中任意一实施例中的嵌入式设备中的数据处理方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例6
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1或2中任意一实施例中的嵌入式设备中的数据处理方法中的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1或2中任意一实施例中的嵌入式设备中的数据处理方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (18)
1.一种嵌入式设备中的数据处理方法,其特征在于,所述数据处理方法包括:
S1.在采用深度学习模型对嵌入式设备中的输入数据进行处理时,获取所述输入数据对应的输入矩阵;
S2.将所述输入矩阵输入至所述深度学习模型的第一个中间网络层;
S3.对所述输入矩阵进行分块处理,获取多个分块矩阵;
S4.获取当前中间网络层对应的偏移量矩阵、基矩阵和系数矩阵;
其中,所述基矩阵和所述系数矩阵为将当前中间网络层对应的权值矩阵进行非负矩阵分解得到的矩阵;
S5.根据所述分块矩阵、所述偏移量矩阵、所述基矩阵和所述系数矩阵获取当前中间网络层的第一输出矩阵;
S6.将所述第一输出矩阵作为下一个所述中间网络层的所述输入矩阵,并执行步骤S3,直至获取最后一个所述中间网络层输出的目标输出矩阵;
S7.根据所述目标输出矩阵获取与所述输入数据对应的目标输出数据;
步骤S1之前还包括:
判断所述嵌入式设备是否设有片内内存,若设有,则将所述输入数据存储至片内内存;否则,将所述输入数据存储至所述嵌入式设备的片外内存;
步骤S3之后还包括:
在所述嵌入式设备设有片内内存时,则将多个所述分块矩阵存储至所述嵌入式设备的片内内存中;
在所述嵌入式设备未设有片内内存时,将多个所述分块矩阵存储至所述嵌入式设备的片外内存中。
2.如权利要求1所述的嵌入式设备中的数据处理方法,其特征在于,当所述深度学习模型包括卷积神经网络模型时,所述中间网络层包括卷积层或全连接层。
3.如权利要求1所述的嵌入式设备中的数据处理方法,其特征在于,步骤S3包括:
S31.采用im2col算法对所述输入矩阵进行排列处理,获取第一矩阵;
S32.对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
4.如权利要求3所述的嵌入式设备中的数据处理方法,其特征在于,步骤S32包括:
S321.获取所述嵌入式设备的内存大小;
S322.根据所述内存大小确定所述输入矩阵对应的分块数量;
S323.根据所述分块数量对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
5.如权利要求4所述的嵌入式设备中的数据处理方法,其特征在于,当所述第一矩阵的行数能够整除所述分块数量时,步骤S323还包括:
计算得到所述第一矩阵的行数与所述分块数量之间的第一比值;
根据所述第一比值将所述第一矩阵划分为多个所述分块矩阵;或,
当所述第一矩阵的行数不能够整除所述分块数量时,步骤S323还包括:
根据所述第一矩阵的行数与所述分块数量获取第二比值;
获取所述第一矩阵的行数对所述第二比值取模得到的取模结果;
根据所述第二比值和所述取模结果将所述第一矩阵划分为多个所述分块矩阵。
7.如权利要求6所述的嵌入式设备中的数据处理方法,其特征在于,步骤S5包括:
根据所述分块矩阵、所述基矩阵和所述系数矩阵获取第一中间矩阵;
根据所述中间矩阵获取所述偏移量矩阵对应的第二中间矩阵;
根据所述第一中间矩阵和所述第二中间矩阵获取第三中间矩阵;
将所述第三中间矩阵拼合成当前中间网络层对应的所述第一输出矩阵。
8.如权利要求7所述的嵌入式设备中的数据处理方法,其特征在于,步骤S5对应的计算公式如下:
Oj=Ij*U*V
O′j=Oj+Bj
其中,j=1,2…,p,Ij为所述分块矩阵,U表示所述基矩阵,V表示所述系数矩阵,Oj表示所述第一中间矩阵,Bj表示所述第二中间矩阵,O′j表示所述第三中间矩阵;
所述分块矩阵为M′*K阶矩阵,所述基矩阵为K*R阶矩阵,所述系数矩阵为R*N阶矩阵,所述第一中间矩阵、所述第二中间矩阵和所述第三中间矩阵均为M′*N阶矩阵,所述第一输出矩阵、所述输入矩阵和所述偏移量矩阵均为M*N阶矩阵,其中M′<M。
9.一种嵌入式设备中的数据处理装置,其特征在于,所述数据处理装置包括第一获取模块、输入模块、分块模块、第二获取模块、第一输出矩阵获取模块、目标输出矩阵获取模块和目标输出数据获取模块;
所述第一获取模块用于在采用深度学习模型对嵌入式设备中的输入数据进行处理时,获取所述输入数据对应的输入矩阵;
所述输入模块用于将所述输入矩阵输入至所述深度学习模型的第一个中间网络层;
所述分块模块用于对所述输入矩阵进行分块处理,获取多个分块矩阵;
所述第二获取模块用于获取当前中间网络层对应的偏移量矩阵、基矩阵和系数矩阵;
其中,所述基矩阵和所述系数矩阵为将当前中间网络层对应的权值矩阵进行非负矩阵分解得到的矩阵;
所述第一输出矩阵获取模块用于根据所述分块矩阵、所述偏移量矩阵、所述基矩阵和所述系数矩阵获取当前中间网络层的第一输出矩阵;
所述目标输出矩阵获取模块用于将所述第一输出矩阵作为下一个所述中间网络层的所述输入矩阵,并调用所述分块模块,直至获取最后一个所述中间网络层输出的目标输出矩阵;
所述目标输出数据获取模块用于根据所述目标输出矩阵获取与所述输入数据对应的目标输出数据;
所述数据处理装置还包括判断模块和存储模块;
所述判断模块用于判断所述嵌入式设备是否设有片内内存,若设有,则调用所述存储模块将所述输入数据存储至片内内存;否则,调用所述存储模块将所述输入数据存储至所述嵌入式设备的片外内存;
所述存储模块还用于在所述嵌入式设备设有片内内存时,则将多个所述分块矩阵存储至所述嵌入式设备的片内内存中;
所述存储模块还用于在所述嵌入式设备未设有片内内存时,将多个所述分块矩阵存储至所述嵌入式设备的片外内存中。
10.如权利要求9所述的嵌入式设备中的数据处理装置,其特征在于,当所述深度学习模型包括卷积神经网络模型时,所述中间网络层包括卷积层或全连接层。
11.如权利要求9所述的嵌入式设备中的数据处理装置,其特征在于,所述分块模块包括第一矩阵获取单元和分块单元;
所述第一矩阵获取单元用于采用im2col算法对所述输入矩阵进行排列处理,获取第一矩阵;
所述分块单元用于对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
12.如权利要求11所述的嵌入式设备中的数据处理装置,其特征在于,所述分块单元包括内存获取子单元、分块数量确定子单元和分块子单元;
所述内存获取子单元用于获取所述嵌入式设备的内存大小;
所述分块数量确定子单元用于根据所述内存大小确定所述输入矩阵对应的分块数量;
所述分块子单元用于根据所述分块数量对所述第一矩阵进行分块处理,获取多个所述分块矩阵。
13.如权利要求12所述的嵌入式设备中的数据处理装置,其特征在于,当所述第一矩阵的行数能够整除所述分块数量时,所述分块子单元用于计算得到所述第一矩阵的行数与所述分块数量之间的第一比值;
所述分块子单元还用于根据所述第一比值将所述第一矩阵划分为多个所述分块矩阵;或,
当所述第一矩阵的行数不能够整除所述分块数量时,所述分块子单元用于根据所述第一矩阵的行数与所述分块数量获取第二比值;
所述分块子单元还用于获取所述第一矩阵的行数对所述第二比值取模得到的取模结果;
所述分块子单元还用于根据所述第二比值和所述取模结果将所述第一矩阵划分为多个所述分块矩阵。
15.如权利要求14所述的嵌入式设备中的数据处理装置,其特征在于,所述第一输出矩阵获取模块包括第一中间矩阵获取单元、第二中间矩阵获取单元、第三中间矩阵获取单元和第一输出矩阵获取单元;
所述第一中间矩阵获取单元用于根据所述分块矩阵、所述基矩阵和所述系数矩阵获取第一中间矩阵;
所述第二中间矩阵获取单元用于根据所述中间矩阵获取所述偏移量矩阵对应的第二中间矩阵;
所述第三中间矩阵获取单元用于根据所述第一中间矩阵和所述第二中间矩阵获取第三中间矩阵;
第一输出矩阵获取单元用于将所述第三中间矩阵拼合成当前中间网络层对应的所述第一输出矩阵。
16.如权利要求15所述的嵌入式设备中的数据处理装置,其特征在于,所述第一输出矩阵获取模块中对应的计算公式如下:
Oj=Ij*U*V
O′j=Oj+Bj
其中,j=1,2…,p,Ij为所述分块矩阵,U表示所述基矩阵,V表示所述系数矩阵,Oj表示所述第一中间矩阵,Bj表示所述第二中间矩阵,O′j表示所述第三中间矩阵;
所述分块矩阵为M′*K阶矩阵,所述基矩阵为K*R阶矩阵,所述系数矩阵为R*N阶矩阵,所述第一中间矩阵、所述第二中间矩阵和所述第三中间矩阵均为M′*N阶矩阵,所述第一输出矩阵、所述输入矩阵和所述偏移量矩阵均为M*N阶矩阵,其中M′<M。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行计算机程序时实现权利要求1-8中任一项所述的嵌入式设备中的数据处理方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的嵌入式设备中的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910879118.9A CN110766133B (zh) | 2019-09-18 | 2019-09-18 | 嵌入式设备中的数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910879118.9A CN110766133B (zh) | 2019-09-18 | 2019-09-18 | 嵌入式设备中的数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110766133A CN110766133A (zh) | 2020-02-07 |
CN110766133B true CN110766133B (zh) | 2020-12-25 |
Family
ID=69330352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910879118.9A Active CN110766133B (zh) | 2019-09-18 | 2019-09-18 | 嵌入式设备中的数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110766133B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507178B (zh) * | 2020-03-03 | 2024-05-14 | 平安科技(深圳)有限公司 | 数据处理的优化方法及装置、存储介质、计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503921A (zh) * | 2014-12-31 | 2015-04-08 | 中国科学院重庆绿色智能技术研究院 | 一种嵌入式高性能rtk算法内存空间定量优化分配方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN108229645A (zh) * | 2017-04-28 | 2018-06-29 | 北京市商汤科技开发有限公司 | 卷积加速和计算处理方法、装置、电子设备及存储介质 |
CN108491863A (zh) * | 2018-02-27 | 2018-09-04 | 南京信息工程大学 | 基于非负矩阵分解和卷积神经网络的彩色图像处理方法 |
US10331967B1 (en) * | 2018-12-05 | 2019-06-25 | Gyrfalcon Technology Inc. | Machine learning via a two-dimensional symbol |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10242313B2 (en) * | 2014-07-18 | 2019-03-26 | James LaRue | Joint proximity association template for neural networks |
-
2019
- 2019-09-18 CN CN201910879118.9A patent/CN110766133B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503921A (zh) * | 2014-12-31 | 2015-04-08 | 中国科学院重庆绿色智能技术研究院 | 一种嵌入式高性能rtk算法内存空间定量优化分配方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN108229645A (zh) * | 2017-04-28 | 2018-06-29 | 北京市商汤科技开发有限公司 | 卷积加速和计算处理方法、装置、电子设备及存储介质 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN108491863A (zh) * | 2018-02-27 | 2018-09-04 | 南京信息工程大学 | 基于非负矩阵分解和卷积神经网络的彩色图像处理方法 |
US10331967B1 (en) * | 2018-12-05 | 2019-06-25 | Gyrfalcon Technology Inc. | Machine learning via a two-dimensional symbol |
Also Published As
Publication number | Publication date |
---|---|
CN110766133A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109919311B (zh) | 生成指令序列的方法、执行神经网络运算的方法和装置 | |
CN107844828B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
US20180137414A1 (en) | Convolution operation device and convolution operation method | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN109840585B (zh) | 一种面向稀疏二维卷积的运算方法和系统 | |
CN113673701A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
US20230196113A1 (en) | Neural network training under memory restraint | |
JP2023531070A (ja) | 膨張畳み込み加速演算方法及び装置 | |
CN110766133B (zh) | 嵌入式设备中的数据处理方法、装置、设备和存储介质 | |
CN117155791B (zh) | 基于集群拓扑结构的模型部署方法、系统、设备及介质 | |
CN113254391B (zh) | 一种神经网络加速器卷积计算和数据载入并行方法及装置 | |
KR20210024751A (ko) | 이종 메모리 장치를 포함하는 그래프 처리 시스템 및 그래프 처리 시스템의 동작방법 | |
CN111722923A (zh) | 一种异构资源的调用方法、装置和计算机可读存储介质 | |
CN112200310A (zh) | 智能处理器、数据处理方法及存储介质 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
CN111783984A (zh) | 一种神经网络运算方法、装置、设备及存储介质 | |
CN111858388B (zh) | 数据存储、内存访问控制的方法、系统、设备和存储介质 | |
CN113888390A (zh) | 特征图处理方法、装置、电子设备和计算机可读介质 | |
CN112905954A (zh) | 一种利用fpga bram的cnn模型卷积运算加速计算方法 | |
KR20210060022A (ko) | 인공 지능 기능이 탑재된 스토리지 장치 및 이를 포함하는 스토리지 시스템 | |
KR20240087527A (ko) | 입력 행렬의 밀도에 기반하여 선택적 희소 행렬 곱셈을 위한 장치 및 방법 | |
CN110738310B (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 |