张量分配方法、介质、电子设备和程序产品组成比例

技术编号:35699680 阅读:15 留言:0更新日期:2022-11-23 14:52
本申请涉及神经网络技术领域,公开了一种张量分配方法、介质、电子设备和程序产品。本申请的张量分配方法包括:确定神经网络中的当前待分配张量;获取当前待分配张量的生命周期;当当前待分配张量的生命周期与电子设备中内存地图中已分配内存的张量的生命周期无重叠时,将当前待分配张量分配至内存地图的第一位置,第一位置是内存地图中的第一预设位置。上述张量分配方法能够实现使生命周期无重叠的张量重复使用同一内存,最大化内存重复使用率。率。率。

【技术实现步骤摘要】
张量分配方法、介质、电子设备和程序产品


[0001]本申请涉及神经网络
,特别涉及一种张量分配方法、介质、电子设备和程序产品。

技术介绍

[0002]随着深度学习技术的发展,以及数据隐私保护的需要,越来越多通过人工智能(Artificial Intelligence,AI)计算实现的边缘AI计算任务都转移到了移动端设备上。例如,一般会在移动终端设备上部署神经网络,以实现对应边缘AI计算任务。
[0003]对于神经网络,特别是用于图像处理和对象识别的卷积神经网络,包括大量的张量数据,其中,张量数据为用来表示一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系包括内积、外积、线性映射以及笛卡尔积。而大量的张量数据将会占用移动端设备较大内存。

技术实现思路

[0004]本申请实施例中提供一种张量分配方法、介质、电子设备和程序产品。
[0005]第一方面,本申请实施例提供一种张量分配方法,应用于电子设备,包括:确定神经网络中的当前待分配张量;获取当前待分配张量的生命周期;当当前待分配张量的生命周期与电子设备中内存地图中已分配内存的张量的生命周期无重叠时,将当前待分配张量分配至内存地图的第一位置,第一位置是内存地图中的第一预设位置。
[0006]可以理解,张量为用来表示一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系包括内积、外积、线性映射以及笛卡尔积。电子设备的内存可以看作内存轴,内存轴上的张量及内存轴构成内存地图。内存地图用于记录张量的内存分配策略,也就是记录张量在内存轴的偏移位置。第一位置包括靠近内存地图左侧的任意位置。
[0007]在本申请实施例中,对于生命周期没有重叠的不同张量,均可以使用同一存放位置(即重复使用内存地图中的第一位置);实现了使生命周期无重叠的张量重复使用同一内存,最大化内存重复使用率,减少了神经网络在移动端设备上的内存占用,提高了神经网络在移动端设备的内存占用利用率。
[0008]在一种可能的实现中,第一预设位置包括内存地图中最靠左的位置。
[0009]在一种可能的实现中,当当前待分配张量的生命周期与电子设备中内存地图中已分配内存的张量的生命周期有重叠时,确定在内存地图中当前待分配张量对应的存储空隙;将当前待分配张量分配至存储空隙。
[0010]可以理解,将当前待分配张量分配至存储空隙实现了有效利用内存地图中的存储空隙,增加了内存地图中的内存利用率。
[0011]在一种可能的实现中,确定在内存地图中当前待分配张量对应的存储空隙包括:删除内存地图中与当前待分配张量的生命周期有重叠的张量占用的内存块;确定当前内存地图的所有空隙中,大于当前待分配张量的尺寸的最小空隙,作为当前待分配张量对应的
存储空隙。
[0012]可以理解,在确定存储空隙时,优先选取大于当前待分配张量的尺寸的最小空隙,为更大尺寸的待分配张量预留存储空隙。
[0013]在一种可能的实现中,对应于内存地图中不存在存储空隙的情况下,将当前待分配张量分配至第二位置;其中,第二位置是删除内存地图中与当前待分配张量的生命周期有重叠的张量占用的内存块后,内存地图中的第二预设位置。
[0014]可以理解,第二位置包括删除内存地图中与当前待分配张量的生命周期有重叠的张量占用的内存块后,靠近内存地图右侧的任意位置。
[0015]在一种可能的实现中,第二预设位置包括内存地图中与当前待分配张量的生命周期有重叠的张量占用内存块的最靠右的位置。
[0016]在一种可能的实现中,确定神经网络中的当前待分配张量包括:获取神经网络的张量生命周期记录表;将张量生命周期记录表中当前所有未分配张量中,尺寸最大的张量作为当前待分配张量。
[0017]可以理解,在对张量生命周期记录表中待分配的张量进行分配的过程中,首先先对张量尺寸较大的张量进行排序,避免尺寸较小的张量预先占用了零散的内存,导致尺寸较大的张量无处安放的情况发生,提高了电子设备的内存重复使用率。
[0018]在一种可能的实现中,将当前待分配张量分配至所述内存地图的第一位置后包括:将当前待分配张量从张量生命周期记录表中删除。
[0019]在一种可能的实现中,张量生命周期记录表包括神经网络中待分配张量的尺寸、生命周期和名称。
[0020]第二方面,本申请实施例提供了一种可读介质,可读介质上存储有指令,指令在电子设备上执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种张量分配方法。
[0021]第三方面,本申请实施例提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是电子设备的一个或多个处理器之一,用于实现上述第一方面及上述第一方面的各种可能实现提供的任一种张量分配方法。
[0022]第四方面,本申请实施例提供了一种计算机程序产品,其特征在于,包括:执行指令,执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取执行指令,至少一个处理器执行执行指令使得电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种张量分配方法。
附图说明
[0023]图1根据本申请实施例,示出了神经网络中张量的生命周期的示意图;
[0024]图2根据本申请实施例,示出了一种内存地图中已分配张量的位置的示意图;
[0025]图3根据本申请实施例,示出了一种张量分配方法的流程示意图;
[0026]图4根据本申请实施例,示出了另一种张量分配方法的流程示意图;
[0027]图5根据本申请实施例,示出了一种电子设备的结构示意图。
具体实施方式
[0028]本申请的说明性实施例包括但不限于一种张量分配方法、介质、电子设备和程序产品。
[0029]可以理解,本申请的技术方案适用于任意能够运行神经网络的电子设备,例如,包括但不限于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra

mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)或专门的照相机(例如单反相机、卡片式相机)等,本专利技术实施例对电子设备的具体类型不作任何限制。
[0030]为了解决
技术介绍
中的技术问题,即为了降低神经网络占用的移动端设备的内存,本申请提出一种可以张量分配方法,应用于电子设备,该方法包括:
[0031]获取神经网络的张量生命周期记录表,基于张量生命周期记录表中各张量的生命周期与电子设备的内存地图中已分配内存的张量的生命周期的重叠关系,确定张量生命周期记录表中各张量的存放位置,并将张量生命周期记录表中各张量分配至对应存放位置。
[0032]其中,上述基于张量生命周期记录表中各张本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种张量分配方法,应用于电子设备,其特征在于,包括:确定神经网络中的当前待分配张量;获取所述当前待分配张量的生命周期;当所述当前待分配张量的生命周期与所述电子设备中内存地图中已分配内存的张量的生命周期无重叠时,将所述当前待分配张量分配至所述内存地图的第一位置,所述第一位置是所述内存地图中的第一预设位置。2.根据权利要求1所述的张量分配方法,其特征在于,所述第一预设位置包括所述内存地图中最靠左的位置。3.根据权利要求1所述的张量分配方法,其特征在于,当所述当前待分配张量的生命周期与所述电子设备中内存地图中已分配内存的张量的生命周期有重叠时,确定在所述内存地图中所述当前待分配张量对应的存储空隙;将所述当前待分配张量分配至所述存储空隙。4.根据权利要求3所述的张量分配方法,其特征在于,所述确定在所述内存地图中所述当前待分配张量对应的存储空隙包括:删除所述内存地图中与所述当前待分配张量的生命周期有重叠的张量占用的内存块;确定当前所述内存地图的所有空隙中,大于所述当前待分配张量的尺寸的最小空隙,作为所述当前待分配张量对应的存储空隙。5.根据权利要求4所述的张量分配方法,其特征在于,对应于所述内存地图中不存在所述存储空隙的情况下,将所述当前待分配张量分配至第二位置;其中,所述第二位置是删除所述内存地图中与所述当前待分配张量的生命周期有重叠的张量占用的内存块后,所述内存地图中的第二预设位置。6.根据权利要求5所述的张量分配方...

【专利技术属性】
技术研发人员:吕春莹
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1