CN110058943B - 用于电子设备的内存优化方法和设备 - Google Patents
用于电子设备的内存优化方法和设备 Download PDFInfo
- Publication number
- CN110058943B CN110058943B CN201910293724.2A CN201910293724A CN110058943B CN 110058943 B CN110058943 B CN 110058943B CN 201910293724 A CN201910293724 A CN 201910293724A CN 110058943 B CN110058943 B CN 110058943B
- Authority
- CN
- China
- Prior art keywords
- group
- layer
- neural network
- network model
- grouping
- 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
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供一种用于电子设备的内存优化方法和设备,其中,所述方法包括:(A)将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组;(B)估计在每种分组结果下运行所述神经网络模型所需的运算资源;(C)从所述多种分组结果中筛选出使用运算资源最小的分组结果;(D)根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型。根据所述方法和设备,能够有效降低神经网络执行过程中对内存的消耗,从而提高了存储设备的利用率,增加了使用者的投入产出比。
Description
技术领域
本发明总体来说涉及计算机技术领域,更具体地讲,涉及一种用于电子设备的内存优化方法和设备。
背景技术
目前,人工智能技术正在飞速发展,机器学习也在影响着人们生活的方方面面,神经网络作为机器学习领域一个重要组成部分,已成为了工业界和学术界同时关注的热点。然而,神经网络计算中庞大的数据量使得神经网络计算时需要大量的临时空间,对于内存有限的电子设备来说,当分批处理输入的数量增大到一定程度或神经网络模型太大时,神经网络对内存的消耗就会急剧增加,在神经网络运行所需的内存超过电子设备的设备内存时,会导致神经网络模型无法正常运行,并且这类问题在神经网络的训练过程中更加突出。
目前,通常采用以下方式中的至少一个来解决上述问题:压缩神经网络模型;用1x1卷积降维,减少权重参数;卷积替换全连接;量化神经网络;对两个不交叉的变量重复使用同一内存。然而,通过上述方式进行改进后仍存在以下问题:当分批处理输入的数量增大时,内存不足的问题仍然存在;模型设计耗时耗力,需要很强的专业知识,调节参数非常耗时;神经网络的精确度降低。
发明内容
本发明的示例性实施例在于提供用于电子设备的内存优化方法和设备,以克服现有的由于内存不足导致神经网络模型无法正常运行的缺陷。
根据本发明的示例性实施例的一方面,提供一种用于电子设备的内存优化方法,包括:(A)将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组;(B)估计在每种分组结果下运行所述神经网络模型所需的运算资源;(C)从所述多种分组结果中筛选出使用运算资源最小的分组结果;(D)根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型。通过这种方式,能够有效降低神经网络执行过程中对内存的消耗,从而提高了存储设备的利用率,增加了使用者的投入的产出比。
可选地,所述方法还包括:在所述当前组被执行完成后,并且在所述当前组之后的下一组被加载完成后,执行所述当前组之后的下一组。通过这种方式,可以最大程度地减少对内存的消耗。
可选地,每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层相邻。
可选地,运行所述神经网络模型所需的运算资源包括:运行所述神经网络模型使用的总内存和执行总时间。
可选地,步骤(C)包括:从所述多种分组结果中筛选出使用的总内存小于等于预设内存的分组结果中执行总时间最短的分组结果,或者,从所述多种分组结果中筛选出执行总时间小于等于预设时间的分组结果中的使用的总内存最小的分组结果。通过这种设定所述神经网络模型的可用最大内存的筛选方式,可使得所述神经网络模型的运行性能最大化;通过这种设定所述神经网络模型可用的最长执行总时间的筛选方式,可以在保证所述神经网络模型在可接受性能损失的情况下,占用最小的内存。
可选地,步骤(B)包括:(B1)估计所述神经网络模型的各个层的运行数据;(B2)利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
可选地,步骤(B1)包括:(B11)获取电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数;(B12)基于获取的硬件设备信息和模型参数估计所述神经网络模型的各个层的运行数据。
可选地,所述神经网络模型的各个层的运行数据包括:每一层的执行时间、每一层的内存消耗、每一层的参数加载和/或存储时间。
可选地,步骤(B2)包括:(B21)基于每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗和预设缓存区数目确定每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗;(B22)基于每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
可选地,在步骤(B21)中,利用下面的等式来确定任意一种分组结果所包括的任意一个组的参数加载和/或存储时间:其中,j表示任意一种分组结果所包括的第j个组,GTL[j]表示第j组的参数加载和/或存储时间,LN[j]表示第j组所包括的神经网络模型的层的数量,第i层表示每个组的起始层,tl[id]表示神经网络模型的第id层的参数加载和/或存储时间,其中,其中,α表示电子设备的实际存储带宽SB和理论存储带宽SB'的比率,P[id]表示神经网络模型的第id层的模型参数所占的内存大小。
可选地,在步骤(B21)中,利用下面的等式来确定任意一种分组结果所包括的任意一个组的执行时间:其中,j表示任意一种分组结果所包括的第j个组,GTE[j]表示第j组的执行时间,LN[j]表示第j组所包括的神经网络模型的层的数量,第i层表示每个组的起始层,te[id]表示神经网络模型的第id层的执行时间。
可选地,在步骤(B21)中,利用下面的等式来确定任意一种分组结果所包括的任意一个组的时间消耗:其中,j表示任意一种分组结果所包括的第j个组,GTL[j]表示第j组的参数加载和/或存储时间,GTE[j]表示第j组的执行时间,GN表示任意一种分组结果所划分出的组的数目,T(G[j])表示第j组的时间消耗。
可选地,在步骤(B21)中,利用下面的等式来确定任意一种分组结果所包括的任意一个组的内存消耗:其中,j表示任意一种分组结果所包括的第j个组,G[j]表示第j组,P[id]表示神经网络模型的第id层的模型参数所占的内存大小,LN[j]表示第j组所包括的神经网络模型的层的数量,M(G[j])表示第j组的内存消耗,第i层表示每个组的起始层。
可选地,在步骤(B22)中,利用下面的等式来确定任意一种分组结果所包括的所有组使用的总内存:m=BC×max(M(G[j]),j∈(0...(GN-1)),其中,j表示任意一种分组结果所包括的第j个组,BC表示电子设备的预设缓存区数目,M(G[j])表示组G[j]的内存消耗,GN表示任意一种分组结果所划分出的组的数目。
根据本发明的示例性实施例的另一方面,提供一种用于电子设备的内存优化设备,包括:分组单元,将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组;估计单元,估计在每种分组结果下运行所述神经网络模型所需的运算资源;筛选单元,从所述多种分组结果中筛选出使用运算资源最小的分组结果;运行单元,根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型,通过这种方式,能够有效降低神经网络执行过程中对内存的消耗,从而提高了存储设备的利用率,增加了使用者的投入的产出比。
可选地,运行单元还在所述当前组被执行完成后,并且在所述当前组之后的下一组被加载完成后,执行所述当前组之后的下一组。通过这种方式,可以最大程度地减少对内存的消耗。
可选地,每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层相邻。
可选地,运行所述神经网络模型所需的运算资源包括:运行所述神经网络模型使用的总内存和执行总时间。
可选地,筛选单元从所述多种分组结果中筛选出使用的总内存小于等于预设内存的分组结果中的执行总时间最短的分组结果,或者,从所述多种分组结果中筛选出执行总时间小于等于预设时间的分组结果中的使用的总内存最小的分组结果。通过这种设定所述神经网络模型的可用最大内存的筛选方式,可以得所述神经网络模型的运行性能最大化;通过这种设定所述神经网络模型可用的最长执行总时间的筛选方式,可以在保证所述神经网络模型在可接受性能损失的情况下,占用最小的内存。
可选地,估计单元包括:第一估计子单元,估计所述神经网络模型的各个层的运行数据;第二估计子单元,利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
可选地,第一估计子单元包括:模型参数获取单元,获取电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数;运行数据估计单元,基于获取的硬件设备信息和模型参数估计所述神经网络模型的各个层的运行数据。
可选地,所述神经网络模型的各个层的运行数据包括:每一层的执行时间、每一层的内存消耗、每一层的参数加载和/或存储时间。
可选地,第二估计子单元包括:确定单元,基于每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗和预设缓存区数目确定每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗;运算资源估计单元,基于每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
可选地,确定单元利用下面的等式来确定任意一种分组结果所包括的任意一个组的参数加载和/或存储时间:其中,j表示任意一种分组结果所包括的第j个组,GTL[j]表示第j组的参数加载和/或存储时间,LN[j]表示第j组所包括的神经网络模型的层的数量,第i层表示每个组的起始层,tl[id]表示神经网络模型的第id层的参数加载和/或存储时间,其中,其中,α表示电子设备的实际存储带宽SB和理论存储带宽SB'的比率,P[id]表示神经网络模型的第id层的模型参数所占的内存大小。
可选地,确定单元利用下面的等式来确定任意一种分组结果所包括的任意一个组的执行时间:其中,j表示任意一种分组结果所包括的第j个组,GTE[j]表示第j组的执行时间,LN[j]表示第j组所包括的神经网络模型的层的数量,第i层表示每个组的起始层,te[id]表示神经网络模型的第id层的执行时间。
可选地,确定单元利用下面的等式来确定任意一种分组结果所包括的任意一个组的时间消耗:其中,j表示任意一种分组结果所包括的第j个组,GTL[j]表示第j组的参数加载和/或存储时间,GTE[j]表示第j组的执行时间,GN表示任意一种分组结果所划分出的组的数目,T(G[j])表示第j组的时间消耗。
可选地,确定单元利用下面的等式来确定任意一种分组结果所包括的任意一个组的内存消耗:其中,j表示任意一种分组结果所包括的第j个组,G[j]表示第j组,P[id]表示神经网络模型的第id层的模型参数所占的内存大小,LN[j]表示第j组所包括的神经网络模型的层的数量,M(G[j])表示第j组的内存消耗,第i层表示每个组的起始层。
可选地,运算资源估计单元利用下面的等式来确定任意一种分组结果所包括的所有组使用的总内存:m=BC×max(M(G[j]),j∈(0...(GN-1)),其中,j表示任意一种分组结果所包括的第j个组,BC表示电子设备的预设缓存区数目,M(G[j])表示组G[j]的内存消耗,GN表示任意一种分组结果所划分出的组的数目。
根据本发明的示例性实施例的另一方面,提供一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如上所述的用于电子设备的内存优化方法。
根据本发明的示例性实施例的另一方面,提供一种电子设备,包括:处理器;存储器,用于存储当被处理器执行使得处理器执行如上所述的用于电子设备的内存优化方法的计算机程序。
在根据本发明示例性实施例的用于电子设备的内存优化方法和设备中,能够有效降低神经网络执行过程中对内存的消耗,从而提高了存储设备的利用率,增加了使用者的投入产出比。
将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。
附图说明
通过下面结合示例性地示出实施例的附图进行的详细描述,本发明示例性实施例的上述和其他目的将会变得更加清楚,其中:
图1示出根据本发明示例性实施例的用于电子设备的内存优化方法的流程图;
图2示出根据本发明示例性实施例的估计在每种分组结果下运行所述神经网络模型所需的运算资源的步骤的流程图;
图3示出根据本发明示例性实施例的估计所述神经网络模型的各个层的运行数据的步骤的流程图;
图4示出根据本发明示例性实施例的利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间的步骤的流程图;
图5示出基于筛选出的分组结果为所述神经网络模型的层分配预设缓存区并运行所述神经网络模型的示例;
图6示出根据本发明示例性实施例的用于电子设备的内存优化设备的框图;
图7示出根据本发明示例性实施例的估计单元的框图;
图8示出根据本发明示例性实施例的第一估计子单元的框图;
图9示出根据本发明示例性实施例的第二估计子单元的框图。
具体实施方式
现将详细参照本发明的示例性实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。
图1示出根据本发明示例性实施例的用于电子设备的内存优化方法的流程图。这里,所述电子设备可以是智能手机、平板电脑、个人计算机等具有机器学习功能的电子设备,此外,所述方法可由电子设备中的用于机器学习的设备来执行,也可完全通过计算机程序来实现,例如,所述方法可通过电子设备的操作***中实现的功能程序来执行。
参照图1,在步骤S100,将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组。
这里,可在保持所述神经网络模型的层的执行顺序的情况下,将所述神经网络模型的层以多种组合方式进行分组,在这种分组方式下,每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层相邻。此外,所述分组结果中的每个组中所包括的各个层按照层的执行顺序排列。这里应注意,所述任意一个组为分组结果中除了最后一个组之外的其他任意一个组。
在一个实施例中,假设神经网络模型包括4层,分别是第一层(Layer 0),第二层(Layer 1),第三层(Layer 2),第四层(Layer 3),则按照上述分组方式可以得到以下7种分组结果:
第一种分组结果:将神经网络模型分为四组,其中,神经网络模型的每一层均为一组;
第二种分组结果:将神经网络模型分为三组,其中,神经网络模型的Layer0和Layer 1为第一组,Layer 2为第二组,Layer 3为第三组;
第三种分组结果:将神经网络模型分为三组,其中,神经网络模型的Layer0为第一组,Layer 1和Layer 2为第二组,Layer 3为第三组;
第四种分组结果:将神经网络模型分为三组,其中,神经网络模型的Layer0为第一组,Layer 1为第二组,Layer 2和Layer 3为第三组;
第五种分组结果:将神经网络模型分为两组,其中,神经网络模型的Layer0为第一组,Layer 1、Layer 2和Layer 3为第二组;
第六种分组结果:将神经网络模型分为两组,其中,神经网络模型的Layer0和Layer 1为第一组,Layer 2和Layer 3为第二组;
第七种分组结果:将神经网络模型分为两组,神经网络模型的Layer 0、Layer 1和Layer 2为第一组,Layer 3为第二组。
在步骤S200,估计在每种分组结果下运行所述神经网络模型所需的运算资源。作为示例,运行所述神经网络模型所需的运算资源可包括运行所述神经网络模型使用的总内存和执行总时间。下面,将结合图2来描述根据本发明示例性实施例的估计在每种分组结果下运行所述神经网络模型所需的运算资源的步骤。
如图2所示,在步骤S210,估计所述神经网络模型的各个层的运行数据。作为示例,所述神经网络模型的各个层的运行数据可包括:每一层的执行时间、每一层的内存消耗、每一层的参数加载和/或存储时间。下面,将结合图3来描述根据本发明示例性实施例的估计所述神经网络模型的各个层的运行数据的步骤。
如图3所示,在步骤S211,可获取电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数。这里,作为示例,电子设备的硬件设备信息可包括以下项中的至少一项:电子设备的硬件计算能力的实际可用率、电子设备的内存带宽的实际可用率、电子设备的计算能力、电子设备的实际存储带宽和理论存储带宽的比率以及电子设备的内存带宽;所述神经网络模型的每一层的模型参数可包括以下项中的至少一项:神经网络模型的每一层的模型参数的计算量和神经网络模型的每一层的模型参数所占的内存大小。
应当理解,电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数还可以是除了上述举例之外的其他硬件设备信息或模型参数,本发明对此不作任何限定。
在步骤S212,基于获取的硬件设备信息和模型参数估计所述神经网络模型的各个层的运行数据。
作为示例,可通过下面的等式1来确定所述神经网络模型的第id层的参数加载和/或存储时间tl[id]:
其中,α表示电子设备的实际存储带宽SB和理论存储带宽SB'的比率,P[id]表示神经网络模型的第id层的模型参数所占的内存大小。
此外,作为示例,可通过下面的等式2来确定所述神经网络模型的第id层的执行时间te[id]
其中,f(·)表示电子设备的内存性能和计算能力的约束函数,β1表示电子设备的硬件计算能力的实际可用率,β2表示电子设备的内存带宽的实际可用率,G表示电子设备的计算能力,OP[id]表示神经网络模型的第id层的模型参数的计算量,P[id]表示神经网络模型的第id层的模型参数所占的内存大小,MB表示电子设备的内存带宽。
此外,还可通过任何方式来估计所述神经网络模型的每一层的内存消耗。
例如,假设卷积层的配置如下:输入大小为3×32×128×128,输出大小为3×64×128×128,模型参数为64×32×3×3,如果以浮点数占用32位来计算,则该卷积层所需内存大小=4×(3×32×128×128+3×64×128×128+64×32×3×3),因此,该卷积层的内存消耗为12M。
假设全连接层的配置如下:输入大小为3×1024,输出大小为3×2048,模型参数为2048×1024,如果以浮点数占用32位来计算,则该全连接层所需内存大小=4×(3×1024+3×2048+2048×1024),因此,该全连接层的内存消耗为8M。
应该理解,上述获取所述神经网络模型的各个层的参数加载和/或存储时间、执行时间和内存消耗的方式仅是示例性的,本领域技术人员也可通过其他任何方式来获取所述神经网络模型的各个层的参数加载和/或存储时间、执行时间和内存消耗,本发明在此不做任何限定。
在一个实施例中,假设神经网络模型包括4层,分别是第一层(Layer 0),第二层(Layer 1),第三层(Layer 2),第四层(Layer 3),每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗通过上述等式进行估计可以获取所述神经网络模型的运行数据如表1所示:
表1
返回参照图2,在步骤S220,利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。下面,将结合图4来描述根据本发明示例性实施例的利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间的步骤。
如图4所示,在步骤S221,基于每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗和预设缓存区数目确定每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗。
作为示例,可利用下面的等式3来确定任意一种分组结果所包括的任意一个组的参数加载和/或存储时间:
其中,j表示任意一种分组结果所包括的第j个组,GTL[j]表示第j组的参数加载和/或存储时间,LN[j]表示第j组所包括的神经网络模型的层的数量,第i层表示每个组的起始层,tl[id]表示神经网络模型的第id层的参数加载和/或存储时间。
此外,作为示例,可利用下面的等式4来确定任意一种分组结果所包括的任意一个组的执行时间:
其中,j表示任意一种分组结果所包括的第j个组,GTE[j]表示第j组的执行时间,LN[j]表示第j组所包括的神经网络模型的层的数量,第i层表示每个组的起始层,te[id]表示神经网络模型的第id层的执行时间。
此外,作为示例,可利用下面的等式5来确定任意一种分组结果所包括的任意一个组的时间消耗:
其中,j表示任意一种分组结果所包括的第j个组,GTL[j]表示第j组的参数加载和/或存储时间,GTE[j]表示第j组的执行时间,GN表示任意一种分组结果所划分出的组的数目,T(G[j])表示第j组的时间消耗。
此外,作为示例,利用下面的等式6来确定任意一种分组结果所包括的任意一个组的内存消耗:
其中,j表示任意一种分组结果所包括的第j个组,G[j]表示第j组,P[id]表示神经网络模型的第id层的模型参数所占的内存大小,LN[j]表示第j组所包括的神经网络模型的层的数量,M(G[j])表示第j组的内存消耗,第i层表示每个组的起始层。
在步骤S222,基于每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
作为示例,可利用下面的等式7来确定任意一种分组结果所包括的所有组使用的总内存:
m=BC×max(M(G[j]),j∈(0...(GN-1)), 等式7
其中,j表示任意一种分组结果所包括的第j个组,BC表示电子设备的预设缓存区数目,M(G[j])表示组G[j]的内存消耗,GN表示任意一种分组结果所划分出的组的数目。
此外,可将每组分组结果所包括的每一组的时间消耗进行累加,以得到在每组分组结果下运行所述神经网络模型的执行总时间。
返回参照图1,在步骤S300,从所述多种分组结果中筛选出使用运算资源最小的分组结果。
具体说来,可采用两种筛选方式对所述多种分组结果进行筛选。
第一种筛选方式,在设定所述神经网络模型可用的最大内存(即,预设内存)时,可以从所述多种分组结果中筛选出使用的总内存小于等于预设内存的分组结果中的执行总时间最短的分组结果。这种筛选方式可以使得所述神经网络模型的运行性能最大化。这里,预设缓存区平均分配预设内存。
第二种筛选方式,在设定所述神经网络模型可用的最长执行总时间(即,预设时间)时,可以从所述多种分组结果中筛选出执行总时间小于等于预设时间的分组结果中的使用的总内存最小的分组结果。这种筛选方式可以在保证所述神经网络模型在可接受性能损失的情况下,占用最小的内存。这里,预设缓存区平均分配使用的总内存。
下面,将结合具体的示例性实施例来具体描述如何筛选出运算资源最小的分组结果。
接上文示例,假设神经网络模型包括4层,分别是第一层(Layer 0),第二层(Layer1),第三层(Layer 2),第四层(Layer 3),其中,每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗如表1所示,则按照上述分组方式可以得到7种分组结果。假设预设缓存区数目为2,预设内存为10M,此时,预设缓存区的大小为使用的总内存的一半,即5M,最长执行总时间为23ms,则按照上文的描述,上述7种分组结果的运算资源相关情况如下表2-表8所示:
表2
表3
表4
表5
表6
表7
表8
通过表2-表8可以看出,在所述第一种筛选方式下,假设预设内存为10M,则从上述7种分组结果中筛选出使用的总内存小于等于预设内存10M的分组结果,即表2和表5所对应的分组结果,这时,需要从满足使用的总内存小于等于预设内存10M的分组结果中筛选出执行总时间最短的分组结果,即,表5所对应的分组结果。
此外,在所述第二种筛选方式下,假设预设时间为23ms,则从上述7种分组结果中筛选出执行总时间小于等于预设执行总时间23ms的分组结果,即表5、表7和表8所对应的分组结果均满足,这时,需要从满足执行总时间小于等于预设时间23ms的分组结果中筛选出使用的总内存最小的分组结果,即,表5所对应的分组结果。
可以看出,如表1所示,按照传统方式,所有模型参数在初始化阶段加载进内存,所需使用的总内存为15M,执行总时间为(5+9+3+6)=23ms,而按照本发明的内存优化方法,运行所述神经网络模型所需使用的总内存为10M,执行的总时间为23ms。由此可见,根据上述方式,可以在保证神经网络模型执行时间基本一致的情况下,极大程度地减少了内存的消耗。
接下来,在筛选出使用运算资源最小的分组结果后,在步骤S400,根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型。
具体说来,由于所述分组结果所包括的是在保持所述神经网络模型的层的执行顺序的情况下所划分出的组,因此,每一组的执行顺序已定,相应地,可以按照每个组的执行顺序将每个组加载到相应的预设缓存区中,并执行每个组。
例如,所述电子设备可包括多个预设缓存区,可通过下述方式运行所述神经网络模型:在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,和/或,在所述当前组被执行完成后,并且在所述当前组之后的下一组被加载完成后,执行所述神经网络模型的所述当前组之后的下一组。
下面,将结合具体的示例性实施例来具体描述基于筛选出的分组结果为所述神经网络模型的层分配预设缓存区并运行所述神经网络模型的过程。
接上文示例,在所述第一种筛选方式下,筛选出的使用运算资源最小的分组结果为表5所对应的分组结果,其中,表5所对应的分组结果包括3个组,假设预设缓存区数目为2,预设缓存区分别为buffer1(即,第一缓存区)和buffer2(即,第二缓存区)。这里,应理解,预设缓存区数目为2仅是示例性的,预设缓存区数目也可以是大于2的其他数目,本发明在此不做任何限定。
图5示出基于筛选出的分组结果为所述神经网络模型的层分配预设缓存区并运行所述神经网络模型的示例。
其中,运行所述神经网络模型的过程为:
将表5所对应的分组结果所包括的3个组中的Group1(即,第一组)加载到buffer1中,在Group1全部被加载完成后,执行Group1;
在Group1在buffer1中被执行时,在buffer2中加载Group2(即,第二组),当Group1在buffer1中被执行完成后,并且在Group2全部加载到buffer2中后,在buffer2中执行Group2;
在Group2在buffer2中被执行时,在buffer1中加载Group3(即,第三组),当Group2在buffer2中被执行完成后,并且在Group3全部加载到buffer1中后,在buffer1中执行Group3,直至Group3执行完成。
表9
上表9为采用现有技术的方式和本发明采用的方案来进行分批处理所使用的总内存和执行总时间的对比表格。从表9可以看出,本发明可以得到以下效果:(1)在保证神经网络模型执行时间基本一致的情况下,极大程度地减少了内存的消耗;(2)在分批处理输入的数量较大的情况下,也能维持比较小的内存消耗;(3)采用本发明的方案可以在内存受限的情况下增大分批处理输入的数量。
由此可见,在根据本发明示例性实施例的用于电子设备的内存优化方法中,能够有效降低神经网络执行过程中对内存的消耗,从而提高了存储设备的利用率,增加了使用者的投入产出比。
图6示出根据本发明示例性实施例的用于电子设备的内存优化设备的框图。这里,作为示例,所述电子设备可以是智能手机、平板电脑、个人计算机等具有机器学习功能的电子设备。
如图6所示,根据本发明示例性实施例的用于电子设备的内存优化设备包括:分组单元100、估计单元200、筛选单元300和运行单元400。作为示例,所述单元可由数字信号处理器、现场可编程门阵列等通用硬件处理器来实现,也可通过专用芯片等专用硬件处理器来实现,还可完全通过计算机程序来以软件方式实现,例如,被实现为安装在电子设备中的内存优化应用中的模块。
分组单元100将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组。
具体说来,分组单元100可在保持所述神经网络模型的层的执行顺序的情况下,将所述神经网络模型的层以多种组合方式进行分组,在这种分组方式下,每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层相邻。此外,所述分组结果中的每个组中所包括的各个层按照层的执行顺序排列。这里应注意,所述任意一个组为分组结果中除了最后一个组之外的其他任意一个组。
估计单元200估计在每种分组结果下运行所述神经网络模型所需的运算资源。作为示例,所述神经网络模型所需的运算资源可包括运行所述神经网络模型使用的总内存和执行总时间。下面,将结合图7来描述根据本发明示例性实施例的估计单元200的示例性结构。
具体说来,如图7所示,估计单元200包括第一估计子单元210和第二估计子单元220。第一估计子单元210估计所述神经网络模型的各个层的运行数据。作为示例,所述神经网络模型的各个层的运行数据可包括:每一层的执行时间、每一层的内存消耗、每一层的参数加载和/或存储时间。下面,将结合图8来描述根据本发明示例性实施例的第一估计子单元210的示例性结构。
具体说来,如图8所示,第一估计子单元210包括模型参数获取单元211和运行数据估计单元212。模型参数获取单元211可获取电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数。这里,作为示例,电子设备的硬件设备信息可包括以下项中的至少一项:电子设备的硬件计算能力的实际可用率、电子设备的内存带宽的实际可用率、电子设备的计算能力、电子设备的实际存储带宽和理论存储带宽的比率以及电子设备的内存带宽;所述神经网络模型的每一层的模型参数可包括以下项中的至少一项:神经网络模型的每一层的模型参数的计算量和神经网络模型的每一层的模型参数所占的内存大小。
应当理解,电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数还可以是除了上述举例之外的其他硬件设备信息或模型参数,本发明对此不作任何限定。
运行数据估计单元212基于获取的硬件设备信息和模型参数估计所述神经网络模型的各个层的运行数据。
返回参照图7,第二估计子单元220利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。下面,将结合图9来描述根据本发明示例性实施例的第二估计子单元220的示例性结构。
如图9所示,第二估计子单元220包括确定单元221和运算资源估计单元222。
具体说来,确定单元221基于每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗和预设缓存区数目确定每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗。
运算资源估计单元222基于每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
这里,确定单元221和运算资源估计单元222获取相关数据的方式已在上文中记载,在此将不再赘述。
返回参照图6,筛选单元300从所述多种分组结果中筛选出使用运算资源最小的分组结果。
具体说来,筛选单元300可采用两种筛选方式对所述多种分组结果进行筛选。
第一种筛选方式,在设定所述神经网络模型可用的最大内存(即,预设内存)时,筛选单元300可以从所述多种分组结果中筛选出使用的总内存小于等于预设内存中的执行总时间最短的分组结果。这种筛选方式可以使得所述神经网络模型的运行性能最大化。这里,预设缓存区平均分配预设内存。
第二种筛选方式,在设定所述神经网络模型可用的最长执行总时间(即,预设时间)时,筛选单元300可以从所述多种分组结果中筛选出执行总时间小于等于预设时间中的使用的总内存最小的分组结果。这种筛选方式可以在保证所述神经网络模型在可接受性能损失的情况下,占用最小的内存。这里,预设缓存区平均分配使用的总内存。
在筛选单元300筛选出使用运算资源最小的分组结果后,运行单元400根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型。
具体说来,由于所述分组结果所包括的是在保持所述神经网络模型的层的执行顺序的情况下所划分出的组,因此,每一组的执行顺序已定,相应地,运行单元400可以按照每个组的执行顺序将每个组加载到相应的预设缓存区中,并执行每个组。
例如,所述电子设备可包括多个预设缓存区,运行单元400可通过下述方式运行所述神经网络模型:在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,和/或,在所述当前组被执行完成后,并且在所述当前组之后的下一组被加载完成后,执行所述当前组之后的下一组。
通过上述方式可以达到以下技术效果:(1)在保证神经网络模型执行时间基本一致的情况下,极大程度到底减少了内存的消耗;(2)在分批处理输入的数量较大的情况下,也能维持比较小的内存消耗;(3)采用本发明的方案可以在内存受限的情况下增大分批处理输入的数量。
综上所述,根据本发明示例性实施例的用于电子设备的内存优化方法和设备,能够有效降低神经网络执行过程中对内存的消耗,从而提高了存储设备的利用率,增加了使用者的投入产出比。
根据本发明的实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时实现如上所述的用于电子设备的内存优化方法。
根据本发明的实施例还提供一种电子设备。该电子设备包括处理器和存储器。存储器用于存储当被处理器执行使得处理器执行如上所述的用于电子设备的内存优化方法的计算机程序。
此外,应该理解,根据本发明示例性实施例的用于电子设备的内存优化设备中的各个单元可被实现硬件组件和/或软件组件。本领域技术人员根据限定的各个单元所执行的处理,可以例如使用现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现各个单元。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
Claims (30)
1.一种用于电子设备的内存优化方法,包括:
(A)将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组,且所述每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层执行顺序上相邻,所述分组结果中的每个组中所包括的各个层按照层的执行顺序排列;
(B)估计在每种分组结果下运行所述神经网络模型所需的运算资源;
(C)从所述多种分组结果中筛选出使用运算资源最小的分组结果;
(D)根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型。
2.如权利要求1所述的方法,其中,所述方法还包括:
在所述当前组被执行完成后,并且在所述当前组之后的下一组被加载完成后,执行所述当前组之后的下一组。
3.如权利要求1所述的方法,其中,每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层相邻。
4.如权利要求1所述的方法,其中,运行所述神经网络模型所需的运算资源包括:运行所述神经网络模型使用的总内存和执行总时间。
5.如权利要求4所述的方法,其中,步骤(C)包括:
从所述多种分组结果中筛选出使用的总内存小于等于预设内存的分组结果中执行总时间最短的分组结果,
或者,
从所述多种分组结果中筛选出执行总时间小于等于预设时间的分组结果中使用的总内存最小的分组结果。
6.如权利要求4所述的方法,其中,步骤(B)包括:
(B1)估计所述神经网络模型的各个层的运行数据;
(B2)利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
7.如权利要求6所述的方法,其中,步骤(B1)包括:
(B11)获取电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数;
(B12)基于获取的硬件设备信息和模型参数估计所述神经网络模型的各个层的运行数据。
8.如权利要求6所述的方法,其中,所述神经网络模型的各个层的运行数据包括:每一层的执行时间、每一层的内存消耗、每一层的参数加载和/或存储时间。
9.如权利要求6所述的方法,其中,步骤(B2)包括:
(B21)基于每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗和预设缓存区数目确定每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗;
(B22)基于每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
14.如权利要求13所述的方法,其中,在步骤(B22)中,利用下面的等式来确定任意一种分组结果所包括的所有组使用的总内存:
m=BC×max(M(G[j]),j∈(0...(GN-1)),
其中,j表示任意一种分组结果所包括的第j个组,BC表示电子设备的预设缓存区数目,M(G[j])表示组G[j]的内存消耗,GN表示任意一种分组结果所划分出的组的数目。
15.一种用于电子设备的内存优化设备,包括:
分组单元,将神经网络模型的层以多种组合方式进行分组,以得到多种分组结果,其中,每种分组结果包括至少两个组,且所述每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层执行顺序上相邻,所述分组结果中的每个组中所包括的各个层按照层的执行顺序排列;
估计单元,估计在每种分组结果下运行所述神经网络模型所需的运算资源;
筛选单元,从所述多种分组结果中筛选出使用运算资源最小的分组结果;
运行单元,根据筛选出的分组结果所包括的每个组的执行顺序,在当前组的执行过程中加载所述当前组之后的下一组到相应的预设缓存区,以运行所述神经网络模型。
16.如权利要求15所述的设备,其中,运行单元还在所述当前组被执行完成后,并且在所述当前组之后的下一组被加载完成后,执行所述当前组之后的下一组。
17.如权利要求15所述的设备,其中,每个分组结果所包括的任意一个组中的最后的层与所述任意一个组的后一组的起始层相邻。
18.如权利要求15所述的设备,其中,运行所述神经网络模型所需的运算资源包括:运行所述神经网络模型使用的总内存和执行总时间。
19.如权利要求18所述的设备,其中,筛选单元从所述多种分组结果中筛选出使用的总内存小于等于预设内存的分组结果中的执行总时间最短的分组结果,或者,从所述多种分组结果中筛选出执行总时间小于等于预设时间的分组结果中的使用的总内存最小的分组结果。
20.如权利要求18所述的设备,其中,估计单元包括:
第一估计子单元,估计所述神经网络模型的各个层的运行数据;
第二估计子单元,利用所述各个层的运行数据估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
21.如权利要求20所述的设备,其中,第一估计子单元包括:
模型参数获取单元,获取电子设备的硬件设备信息和所述神经网络模型的每一层的模型参数;
运行数据估计单元,基于获取的硬件设备信息和模型参数估计所述神经网络模型的各个层的运行数据。
22.如权利要求20所述的设备,其中,所述神经网络模型的各个层的运行数据包括:每一层的执行时间、每一层的内存消耗、每一层的参数加载和/或存储时间。
23.如权利要求20所述的设备,其中,第二估计子单元包括:
确定单元,基于每一层的参数加载和/或存储时间、每一层的执行时间、每一层的内存消耗和预设缓存区数目确定每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗;
运算资源估计单元,基于每种分组结果所包括的每一组的内存消耗、每一组的参数加载和/或存储时间、每一组的执行时间和每一组的时间消耗估计在每种分组结果下运行所述神经网络模型使用的总内存和执行总时间。
28.如权利要求27所述的设备,其中,运算资源估计单元利用下面的等式来确定任意一种分组结果所包括的所有组使用的总内存:
m=BC×max(M(G[j]),j∈(0...(GN-1)),
其中,j表示任意一种分组结果所包括的第j个组,BC表示电子设备的预设缓存区数目,M(G[j])表示组G[j]的内存消耗,GN表示任意一种分组结果所划分出的组的数目。
29.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如权利要求1至14中的任意一项所述的用于电子设备的内存优化方法。
30.一种电子设备,包括:
处理器;
存储器,用于存储当被处理器执行使得处理器执行如权利要求1至14中任意一项所述的用于电子设备的内存优化方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910293724.2A CN110058943B (zh) | 2019-04-12 | 2019-04-12 | 用于电子设备的内存优化方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910293724.2A CN110058943B (zh) | 2019-04-12 | 2019-04-12 | 用于电子设备的内存优化方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110058943A CN110058943A (zh) | 2019-07-26 |
CN110058943B true CN110058943B (zh) | 2021-09-21 |
Family
ID=67318934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910293724.2A Active CN110058943B (zh) | 2019-04-12 | 2019-04-12 | 用于电子设备的内存优化方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110058943B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990421B (zh) * | 2019-12-02 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 优化深度学习网络的运行过程的方法、装置及存储介质 |
CN111240606A (zh) * | 2020-04-24 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 一种基于安全内存的存储优化方法及*** |
WO2021237755A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 神经网络调度方法及装置 |
CN111915017B (zh) * | 2020-07-29 | 2023-11-24 | 北京灵汐科技有限公司 | 一种校准方法、装置、终端设备及存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978601A (zh) * | 2015-06-26 | 2015-10-14 | 深圳市腾讯计算机***有限公司 | 神经网络模型训练***和方法 |
CN106326886A (zh) * | 2016-11-07 | 2017-01-11 | 重庆工商大学 | 基于卷积神经网络的手指静脉图像质量评估方法及评估*** |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作*** |
CN106909971A (zh) * | 2017-02-10 | 2017-06-30 | 华南理工大学 | 一种面向多核计算环境的bp神经网络并行化方法 |
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN107886167A (zh) * | 2016-09-29 | 2018-04-06 | 北京中科寒武纪科技有限公司 | 神经网络运算装置及方法 |
CN108009594A (zh) * | 2017-12-25 | 2018-05-08 | 北京航空航天大学 | 一种基于变分组卷积的图像识别方法 |
CN108304265A (zh) * | 2018-01-23 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置及存储介质 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN108959728A (zh) * | 2018-06-12 | 2018-12-07 | 杭州法动科技有限公司 | 基于深度学习的射频器件参数优化方法 |
CN109063824A (zh) * | 2018-07-25 | 2018-12-21 | 深圳市中悦科技有限公司 | 深层三维卷积神经网络的创建方法、装置、存储介质及处理器 |
CN109086865A (zh) * | 2018-06-11 | 2018-12-25 | 上海交通大学 | 一种基于切分循环神经网络的序列模型建立方法 |
CN109347668A (zh) * | 2018-10-17 | 2019-02-15 | 网宿科技股份有限公司 | 一种服务质量评估模型的训练方法及装置 |
CN109426553A (zh) * | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1690207B1 (en) * | 2003-12-05 | 2010-09-29 | Council of Scientific and Industrial Research | A computer based versatile method for identifying protein coding dna sequences useful as drug targets |
US9659249B1 (en) * | 2016-09-27 | 2017-05-23 | International Business Machines Corporation | Pre-programmed resistive cross-point array for neural network |
-
2019
- 2019-04-12 CN CN201910293724.2A patent/CN110058943B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978601A (zh) * | 2015-06-26 | 2015-10-14 | 深圳市腾讯计算机***有限公司 | 神经网络模型训练***和方法 |
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作*** |
CN107886167A (zh) * | 2016-09-29 | 2018-04-06 | 北京中科寒武纪科技有限公司 | 神经网络运算装置及方法 |
CN106326886A (zh) * | 2016-11-07 | 2017-01-11 | 重庆工商大学 | 基于卷积神经网络的手指静脉图像质量评估方法及评估*** |
CN106909971A (zh) * | 2017-02-10 | 2017-06-30 | 华南理工大学 | 一种面向多核计算环境的bp神经网络并行化方法 |
CN109426553A (zh) * | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN108009594A (zh) * | 2017-12-25 | 2018-05-08 | 北京航空航天大学 | 一种基于变分组卷积的图像识别方法 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN108304265A (zh) * | 2018-01-23 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置及存储介质 |
CN109086865A (zh) * | 2018-06-11 | 2018-12-25 | 上海交通大学 | 一种基于切分循环神经网络的序列模型建立方法 |
CN108959728A (zh) * | 2018-06-12 | 2018-12-07 | 杭州法动科技有限公司 | 基于深度学习的射频器件参数优化方法 |
CN109063824A (zh) * | 2018-07-25 | 2018-12-21 | 深圳市中悦科技有限公司 | 深层三维卷积神经网络的创建方法、装置、存储介质及处理器 |
CN109347668A (zh) * | 2018-10-17 | 2019-02-15 | 网宿科技股份有限公司 | 一种服务质量评估模型的训练方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110058943A (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058943B (zh) | 用于电子设备的内存优化方法和设备 | |
JP7348971B2 (ja) | 畳み込みニューラルネットワークハードウエア構成 | |
CN113326126B (zh) | 任务处理方法、任务调度方法、装置及计算机设备 | |
CN110956202B (zh) | 基于分布式学习的图像训练方法、***、介质及智能设备 | |
US11580369B2 (en) | Inference apparatus, convolution operation execution method, and program | |
CN116089051A (zh) | 一种任务分配方法、装置及*** | |
CN116167463A (zh) | 一种模型训练的方法、装置、存储介质及电子设备 | |
CN114168318A (zh) | 存储释放模型的训练方法、存储释放方法及设备 | |
CN113886092A (zh) | 一种计算图执行方法、装置及相关设备 | |
CN113687949B (zh) | 服务器部署方法、装置、部署设备及存储介质 | |
CN111813535A (zh) | 一种资源配置确定方法、装置及电子设备 | |
US11500767B2 (en) | Method and device for determining a global memory size of a global memory size for a neural network | |
CN111683296A (zh) | 视频切分方法、装置、电子设备及存储介质 | |
CN116304212A (zh) | 一种数据处理***、方法、设备及存储介质 | |
CN115525394A (zh) | 容器数量的调整方法及装置 | |
EP3893165A1 (en) | Information processing apparatus and information processing method | |
CN111971692A (zh) | 卷积神经网络 | |
CN113902088A (zh) | 神经网络结构搜索的方法、装置与*** | |
CN109344119B (zh) | 文件合并处理方法、装置、计算设备及计算机存储介质 | |
CN111324793B (zh) | 对存储感兴趣区域的数据的操作进行控制的方法和装置 | |
CN112613594B (zh) | 算法编排方法、装置、计算机设备及存储介质 | |
CN111626916A (zh) | 信息处理方法、装置及设备 | |
CN113407192B (zh) | 模型部署方法和设备 | |
US11762376B2 (en) | Quick dispatching rule screening method and apparatus | |
CN113434206B (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 |