内存管理方法、装置及存储介质制造方法及图纸

技术编号:18496801 阅读:26 留言:0更新日期:2018-07-21 20:02
本发明专利技术实施例公开了一种内存管理方法、装置及存储介质,属于计算机技术领域。方法包括:根据神经网络中的特征单元连接关系,确定神经网络的至少一个分支;对于每个分支,根据分支上每个特征单元需要的输出内存的尺寸,为分支分配第一内存和第二内存,第一内存尺寸不小于第二内存尺寸,第一内存尺寸和第二内存尺寸均不小于分支需要的其他内存尺寸;将第一内存和第二内存轮流作为分支上特征单元的输入内存和输出内存。本发明专利技术实施例针对神经网络中的每个分支仅分配两个内存,轮流作为特征单元的输入内存和输出内存,既可以保证计算的正常进行,而且实现了内存复用,节省了占用的内存,降低了内存需求,保证在终端上能够正常实现神经网络。

Memory management methods, devices and storage media

The embodiment of the invention discloses a memory management method, a device and a storage medium, belonging to the computer technology field. The method includes: at least one branch of the neural network is determined according to the connection of the feature unit in the neural network; for each branch, the first memory and second memory are allocated for the branch according to the size of the output memory required by each characteristic unit on the branch. The first memory size is not less than second memory size, first inside. The memory size and the second memory size are not less than the other memory sizes required by the branch; the first memory and the second memory rotation are used as the input memory and output memory of the characteristic unit on the branch. The embodiment of the invention has only two memory allocated to each branch of the neural network, which takes rotation as the input memory and output memory of the feature unit. It can not only ensure the normal operation of the calculation, but also realize memory reuse, save the occupied memory, reduce the memory demand, and ensure the normal realization of the nerve on the terminal. Network.

【技术实现步骤摘要】
内存管理方法、装置及存储介质
本专利技术实施例涉及计算机
,特别涉及一种内存管理方法、装置及存储介质。
技术介绍
近年来,深度学习在语音识别和计算机视觉等领域得到了广泛的应用,并且随着深度学习的快速发展,驱动着AI(ArtificialIntelligence,人工智能)算法不断涌现,并迅速地改变了技术的发展方向和人们的生活。深度学习离不开神经网络的实现,传统的神经网络通常在服务器端实现,然而,随着AI算法的不断发展,在服务器端实现神经网络的方式已不能满足人们日益增长的业务需求,亟需提出在终端实现神经网络的方式。但是,神经网络中包括多个网络层,每个网络层又包括多个特征单元,每个特征单元计算完成输出数据时均需要占用一块内存,导致实现神经网络时需要占用大量的内存。而与服务器端相比,终端的内存有限,无法满足神经网络的内存需求,导致在终端实现神经网络的方式难以实现。
技术实现思路
本专利技术实施例提供了一种内存管理方法、装置及存储介质,可以解决相关技术的问题。所述技术方案如下:第一方面,提供了一种内存管理方法,应用于终端中,所述方法包括:根据神经网络中的特征单元连接关系,确定所述神经网络的至少一个分支,所述神经网络包括按照顺序排列的多个网络层,每个网络层包括至少一个特征单元,每个分支由位于不同网络层的多个特征单元连接构成;对于每个分支,根据所述分支上每个特征单元需要的输出内存的尺寸,为所述分支分配第一内存和第二内存,第一内存尺寸不小于第二内存尺寸,所述第一内存尺寸和所述第二内存尺寸均不小于所述分支需要的其他内存尺寸;将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存。第二方面,提供了一种内存管理装置,应用于终端中,所述装置包括:确定模块,用于根据神经网络中的特征单元连接关系,确定所述神经网络的至少一个分支,所述神经网络包括按照顺序排列的多个网络层,每个网络层包括至少一个特征单元,每个分支由位于不同网络层的多个特征单元连接构成;分配模块,用于对于每个分支,根据所述分支上每个特征单元需要的输出内存的尺寸,为所述分支分配第一内存和第二内存,第一内存尺寸不小于第二内存尺寸,所述第一内存尺寸和所述第二内存尺寸均不小于所述分支需要的其他内存尺寸;所述分配模块,还用于将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存。第三方面,提供了一种内存管理装置,所述内存管理装置包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如第一方面所述的内存管理方法中所执行的操作。第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如第一方面所述的内存管理方法中所执行的操作。本专利技术实施例提供的技术方案带来的有益效果是:本专利技术实施例提供的方法、装置及存储介质,通过根据神经网络中的特征单元连接关系,确定神经网络的至少一个分支,对于每个分支,根据分支上每个特征单元需要的输出内存的尺寸,为分支分配第一内存和第二内存,第一内存尺寸和第二内存尺寸均不小于分支需要的其他内存尺寸;将第一内存和第二内存轮流作为分支上特征单元的输入内存和输出内存。本专利技术实施例针对神经网络中的每个分支仅分配两个内存,轮流作为特征单元的输入内存和输出内存,既可以保证计算的正常进行,而且实现了内存复用,节省了占用的内存,降低了内存需求,保证终端的内存可以满足神经网络的内存需求,在终端上能够正常实现神经网络,从而扩展了终端的功能。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种神经网络的结构示意图;图2是本专利技术实施例提供的一种内存管理方法的流程图;图3是本专利技术实施例提供的一种计算流程的示意图;图4是本专利技术实施例提供的一种内存管理装置的结构示意图;图5是本专利技术实施例提供的一种终端的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在对本专利技术实施例进行详细说明之前,首先对本专利技术实施例涉及的神经网络进行如下说明:图1是本专利技术实施例提供的一种神经网络的结构示意图,参见图1,神经网络包括多个网络层,每个网络层包括至少一个特征单元,相邻的两个网络层中的特征单元可以相互连接,从而构成一个网络。实现神经网络的过程中,前一个网络层中的特征单元会进行计算,将输出的数据输入给其连接的、位于下一个网络层中的特征单元,由下一个特征单元进行计算,以此类推,直至位于最后一个网络层的特征单元输出计算结果。实际应用中,该神经网络可以为CNN(ConvolutionalNeuralNetwork,卷积神经网络)、RNN(RecurrentNeuralNetwork,循环神经网络)或者DNN(DeepNeuralNetwork,深度神经网络)等多种类型的神经网络,针对不同类型的神经网络,其所包括的网络层类型不同,网络层中的特征单元类型也不同。例如,CNN包括输入层、卷积层、采样层和输出层等多个网络层,每个网络层中包括特征图,特征图中包括神经元,则本专利技术实施例中的特征单元可以指特征图或者神经元。本专利技术实施例提供的神经网络可以应用于多种场景下,例如人脸识别、垃圾邮件筛选、信息推荐等,如在人脸识别的场景下,将采集到的图像输入到神经网络中进行计算,以判别该图像中是否包含人脸,或者在信息推荐的场景下,将多种信息输入到神经网络中进行计算,筛选出用户可能感兴趣的信息,推荐给用户。图2是本专利技术实施例提供的一种内存管理方法的流程图,该内存管理方法的执行主体为终端,参见图2,该方法包括:201、终端获取神经网络,根据神经网络中的特征单元连接关系,确定神经网络的至少一个分支。其中,神经网络包括按照顺序排列的多个网络层,每个网络层包括至少一个特征单元,相邻的两个网络层中的特征单元可以相互连接,从而构成一个网络。对于位于某一网络层的某一特征单元来说,该特征单元可以与所在网络层的上一个网络层中的一个或多个特征单元连接,也可以与所在网络层的下一个网络层中的一个或多个特征单元连接。因此,在神经网络中存在着很多分支,可以根据多个特征单元的连接关系将神经网络划分为至少一个分支,每个分支由位于不同网络层的特征单元连接构成。例如,参见图1,可以将神经网络划分为“11-21-31-41”、“12-22-32-41”,“13-23-32-41”等分支。202、对于每个分支,对分支上每个特征单元需要输出的数据量进行统计,得到分支上每个特征单元需要的输出内存的尺寸。对于每个分支来说,在基于该分支进行计算的过程中需要占用内存。针对该分支中相邻的两个本文档来自技高网...

【技术保护点】
1.一种内存管理方法,其特征在于,应用于终端中,所述方法包括:根据神经网络中的特征单元连接关系,确定所述神经网络的至少一个分支,所述神经网络包括按照顺序排列的多个网络层,每个网络层包括至少一个特征单元,每个分支由位于不同网络层的多个特征单元连接构成;对于每个分支,根据所述分支上每个特征单元需要的输出内存的尺寸,为所述分支分配第一内存和第二内存,第一内存尺寸不小于第二内存尺寸,所述第一内存尺寸和所述第二内存尺寸均不小于所述分支需要的其他内存尺寸;将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存。

【技术特征摘要】
1.一种内存管理方法,其特征在于,应用于终端中,所述方法包括:根据神经网络中的特征单元连接关系,确定所述神经网络的至少一个分支,所述神经网络包括按照顺序排列的多个网络层,每个网络层包括至少一个特征单元,每个分支由位于不同网络层的多个特征单元连接构成;对于每个分支,根据所述分支上每个特征单元需要的输出内存的尺寸,为所述分支分配第一内存和第二内存,第一内存尺寸不小于第二内存尺寸,所述第一内存尺寸和所述第二内存尺寸均不小于所述分支需要的其他内存尺寸;将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存。2.根据权利要求1所述的方法,其特征在于,所述根据所述分支上每个特征单元需要的输出内存的尺寸,为所述分支分配第一内存和第二内存之前,所述方法还包括:对所述分支上每个特征单元需要输出的数据量进行统计,得到所述分支上每个特征单元需要的输出内存的尺寸。3.根据权利要求1所述的方法,其特征在于,所述根据所述分支上每个特征单元需要的输出内存的尺寸,为所述分支分配第一内存和第二内存,包括:按照从大到小的顺序,对所述分支上每个特征单元需要的输出内存的尺寸进行排序;将排在第一位的尺寸作为第一内存尺寸,将排在第二位的尺寸作为第二内存尺寸;为所述分支分配与所述第一内存尺寸匹配的第一内存和与所述第二内存尺寸匹配的第二内存。4.根据权利要求1所述的方法,其特征在于,所述将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存,包括:当所述第一内存尺寸与所述第二内存尺寸相等时,将所述第一内存作为所述分支上第一特征单元的输出内存,且作为第二特征单元的输入内存,将所述第二内存作为所述第二特征单元的输出内存;其中,所述第一特征单元为所述分支上的任一特征单元,所述第二特征单元为所述分支上所述第一特征单元的下一个特征单元。5.根据权利要求1所述的方法,其特征在于,所述将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存,包括:当所述第一内存尺寸大于所述第二内存尺寸时,确定所述分支上需要的输出内存的尺寸为所述第一内存尺寸的指定特征单元;将所述第一内存作为所述指定特征单元的输出内存;按照所述分支上每个特征单元与所述指定特征单元之间的位置关系,将所述第一内存和所述第二内存作为所述分支上除所述指定特征单元以外的每个特征单元的输入内存或输出内存,以使所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存。6.根据权利要求1-5任一项所述的方法,其特征在于,所述将所述第一内存和所述第二内存轮流作为所述分支上特征单元的输入内存和输出内存之后,所述方法还包括:在基于所述分支进行计算的过程中,将第一特征单元输出的数据存储于所述第一特征单元的输出内存中;从所述第一特征单元的输出内存中提取所述第一特征单元输出的数据,通过第二特征单元对提取的数据进行计算,将所述第二特征单元输出的数据存储于所述第二特征单元的输出内存中;其中,所述第一特征单元为所述分支上的任一特征单元,所述第二特征单元为所述分支上所述第一特征单元的下一个特征单元,所述第一特征单元的输出内存与所述第二特征单元的输入内存相同。7.一种内存管理装置,其特征在于,应用于终端中,所述装置包括:确定模块,用于根据神经网络中的特征单元连接关系,确定所述神经网络的至少一个分支,所述神经网...

【专利技术属性】
技术研发人员:黄凯宁朱晓龙梅利健黄生辉王一同罗镜民
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1