当前位置: 首页 > 专利查询>之江实验室专利>正文

神经网络模型推理所需最小内存占用量的估计方法和装置制造方法及图纸

技术编号:36912775 阅读:15 留言:0更新日期:2023-03-18 09:30
本发明专利技术公开了一种神经网络模型推理所需最小内存占用量的估计方法和装置,属于神经网络应用领域。该方法以图理论作为核心思想,将神经网络的计算逻辑用有向无环图来描述,把神经网络模型的推理过程映射成图的拓扑排序过程,再对搜索树进行剪枝以得到对最小内存占用量的估计以及对应的算子执行序列。边缘设备智能性的需求日益增大,本发明专利技术为神经网络模型在边缘设备上运行与设计提供了信息支撑,对边缘设备的智能性有着贡献。设备的智能性有着贡献。设备的智能性有着贡献。

【技术实现步骤摘要】
神经网络模型推理所需最小内存占用量的估计方法和装置


[0001]本专利技术属于神经网络应用
,尤其涉及一种神经网络模型推理所需最小内存占用量的估计方法和装置。

技术介绍

[0002]近些年来,神经网络领域飞速发展吸引了大量的关注,相关应用成果层出不穷。例如,人脸识别技术可应用在日常打卡,图像识别和语义分割技术可应用于人员安全监控。这些技术对我们的生活起到了至关重要的作用,然而,它们距离完美的落地应用仍然面临着一系列的挑战。
[0003]首先,目前成熟的神经网络应用中,待推理数据普遍为摄像头及传感设备采集的各类传感数据,这些数据通过网络途径传递给远端服务器,在服务器上对这些数据进行智能推理,推理结果再通过网络返回到边缘设备端,边缘设备再根据结果进行进一步的处理。这种方式的缺点在于整个推理流程的时间消耗较大,并且极易受到网络稳定性的影响。为了减小推理时间,可以将神经网络模型直接运行在边缘计算设备上。然而,边缘计算设备相较于服务器有着较大的不同,以工业界使用广泛的STM32F7这种微控制器为例,其最大片上RAM存储为512KB,这意味着神经网络模型在该类型的微控制器上推理过程中所需要的最小总内存占用量不得超过512KB。
[0004]不同的边缘设备有着不同的内存限制,不同的神经网络模型结构也各不相同,为了判断神经网络能否在某种边缘设备上运行,我们必须要估计出神经网络智能推理过程所需的最小内存占用量。进一步的,这个估计方法其实也是一种在边缘计算设备上进行推理的方法,因此也需要快速进行。
专利技术内容
[0005]本专利技术的目的在于如何能够高效地计算出神经网络模型推理过程中最小内存占有量,进而为神经网络模型在边缘设备上运行与设计提供了信息支撑,提供一种神经网络模型推理所需最小内存占用量的估计方法和装置。
[0006]本专利技术的目的是通过下述技术方案来实现的:一种神经网络模型推理所需最小内存占用量的估计方法,包括以下步骤:
[0007](1)通过神经网络模型的图来构建有向无环图;
[0008](2)将有向无环图扩充成有向无环图的标准形式;
[0009](3)基于步骤(2)得到的标准形式,通过贪心策略来获得初始的剪枝标准;
[0010](4)通过估计方法进行剪枝加速,具体为设起始点,按照算子执行序列搜索树的分支进行搜索,搜索结果的内存占用量为,通过内存占用量与初始的剪枝标准的比较来判断是否舍弃内存占用量或将内存占用量更新为最小内存占用量。
[0011]进一步地,所述步骤(1)中的有向无环图包含点集和边集,即,其中, ;
[0012]集合中每个元素为一个节点,代表一个算子;每个节点有一个属性值,表示节点的计算所需要内存占用量;边集的每个元素代表中的一条边,表示节点计算使用节点的计算结果,称为该边的源节点,称为该边的目标节点,边的值为,代表源节点输出结果的内存占用量。
[0013]进一步地,所述步骤(2)中的扩充为点扩充和边扩充。
[0014]进一步地,所述点扩充为通过在中添加一个起始点和终止点,这两个点的属性值都为0,得到有向无环图的标准形式的点集。
[0015]进一步地,所述边扩充为通过连接与中的起始节点和与中的终止节点,增加新的边,设置边的属性值为0,得到有向无环图的标准形式的边集,则。
[0016]进一步地,所述步骤(3)中的贪心策略,具体为从空序列开始,逐个添加在当前状态下内存占用变化量最小的算子,直至所有算子执行完成为止;得到了一个满足拓扑排序的算子执行序列,并且得到了该执行序列的内存占用量,初始的剪枝标准即为通过贪心策略得到的一个满足拓扑排序的算子执行序列的内存占用量。
[0017]进一步地,所述步骤(4)是通过以下子步骤来实现的:
[0018](4.1)构造算子执行序列搜索树:通过对标准形式进行图的深度优先搜索算法,对全部的算子进行遍历,遍历后进行回溯,即搜索所有拓扑排序的可能,整个遍历的执行过程构成算子序列搜索树;
[0019](4.2)剪枝:在根据算子执行序列搜索树的遍历过程中,如果当前路径的内存占用量,则停止往下遍历,进行回溯;
[0020](4.3)更新结果与剪枝值:当其中一条路径遍历全部算子后,如果内存占用量,则为该路径上的算子序列。
[0021]进一步地,所述有向无环图是通过使用深度学习框架tensorflow或pytorch将所设计的深度学习模型文件保存成tflite、pb或onnx格式即对应着神经网络模型的图描述。
[0022]一种神经网络模型推理所需最小内存占用量的估计装置,包括一个或多个处理器,用于实现上述的一种神经网络模型推理所需最小内存占用量的估计方法。
[0023]一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的一种神经网络模型推理所需最小内存占用量的估计方法。
[0024]本专利技术的有益效果是:本专利技术考虑到具体边缘设备运行神经网络模型时的迫切需求,通过使用神经网络图模型的特点,设计了一种神经网络模型推理所需最小内存占用量的估计方法。该方法能够高效地估计出具体神经网络模型推理过程中所需要的最小总内存占有量,并相应地提供了对应的推理过程,对边缘设备的智能性发展有着一定的意义。
附图说明
[0025]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026]图1为有向无环图扩充成标准形式;
[0027]图2为因算子计算次序的不同,计算状态下一状态可能变为或;
[0028]图3为附有具体数值的有向无环图;
[0029]图4为附有具体数值的有向无环图扩充成标准形式;
[0030]图5为本专利技术的一种硬件结构图。
具体实施方式
[0031]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。
[0032]在本专利技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0033]应当理解,尽管在本专利技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本专利技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络模型推理所需最小内存占用量的估计方法,其特征在于,包括以下步骤:(1)通过神经网络模型的图来构建有向无环图;(2)将有向无环图扩充成有向无环图的标准形式;(3)基于步骤(2)得到的标准形式,通过贪心策略来获得初始的剪枝标准;(4)通过估计方法进行剪枝加速,具体为设起始点,按照算子执行序列搜索树的分支进行搜索,搜索结果的内存占用量为,通过内存占用量与初始的剪枝标准的比较来判断是否舍弃内存占用量或将内存占用量更新为最小内存占用量。2.根据权利要求1所述的一种神经网络模型推理所需最小内存占用量的估计方法,其特征在于,所述步骤(1)中的有向无环图包含点集和边集,即,其中, ;集合中每个元素为一个节点,代表一个算子;每个节点有一个属性值,表示节点的计算所需要内存占用量;边集的每个元素代表中的一条边,表示节点计算使用节点的计算结果,称为该边的源节点,称为该边的目标节点,边的值为,代表源节点输出结果的内存占用量。3.根据权利要求1所述的一种神经网络模型推理所需最小内存占用量的估计方法,其特征在于,所述步骤(2)中的扩充为点扩充和边扩充。4.根据权利要求3所述的一种神经网络模型推理所需最小内存占用量的估计方法,其特征在于,所述点扩充为通过在中添加一个起始点和终止点,这两个点的属性值都为0,得到有向无环图的标准形式的点集。5.根据权利要求3所述的一种神经网络模型推理所需最小内存占用量的估计方法,其特征在于,所述边扩充为通过连接与中的起始节点和与中的终止节点,增加新的边,设置边的属性值为0,得到有向无环图的标准形式的边集,则。6.根据权利要求1所述的一种神经网络模型推理所需最小内存占用量的估计方法,其特征在于,所述步骤(3...

【专利技术属性】
技术研发人员:李超
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1