神经网络计算方法、装置、移动终端及存储介质制造方法及图纸

技术编号:21400304 阅读:19 留言:0更新日期:2019-06-19 07:21
本申请实施例公开了一种神经网络计算方法、装置、移动终端及存储介质,该方法包括:获取M个待执行算子,计算M个待执行算子之间的依赖关系,N为大于或等于2的整数;依据M个待执行算子之间的依赖关系对M个待执行算子进行切割,得到N个算子集合,N个算子集合中的每个算子集合至少包括1个算子,N为大于或等于2的整数;若N个算子集合为相互独立的算子集合,启用N个线程分别对N个算子集合中的算子进行计算。本申请实施例可以降低神经网络的推理时间。

【技术实现步骤摘要】
神经网络计算方法、装置、移动终端及存储介质
本申请涉及通信
,具体涉及一种神经网络计算方法、装置、移动终端及存储介质。
技术介绍
目前的神经网络算法框架(比如,TensorflowLite)中,在进行神经网络计算时,将所有需要执行的算子加入到一个待执行的队列中,然后处理器依次调用执行这些算子,也就是在一个线程中顺序执行完这些算子。随着神经网络越来越复杂,算子数量越来越多,也会导致神经网络的推理时间变长。
技术实现思路
本申请实施例提供了一种神经网络计算方法、装置、移动终端及存储介质,可以降低神经网络的推理时间。第一方面,本申请实施例提供一种基于神经网络算法框架的神经网络计算方法,包括:获取M个待执行算子,计算所述M个待执行算子之间的依赖关系,N为大于或等于2的整数;依据所述M个待执行算子之间的依赖关系对所述M个待执行算子进行切割,得到N个算子集合,所述N个算子集合中的每个算子集合至少包括1个算子,N为大于或等于2的整数;若所述N个算子集合为相互独立的算子集合,启用N个线程分别对所述N个算子集合中的算子进行计算。第二方面,本申请实施例提供了一种神经网络计算装置,所述神经网络计算装置包括通信单元和处理单元,其中:所述通信单元,用于获取M个待执行算子;所述处理单元,用于计算所述M个待执行算子之间的依赖关系,N为大于或等于2的整数;以及用于依据所述M个待执行算子之间的依赖关系对所述M个待执行算子进行切割,得到N个算子集合,所述N个算子集合中的每个算子集合至少包括1个算子,N为大于或等于2的整数;以及用于在所述N个算子集合为相互独立的算子集合的情况下,启用N个线程分别对所述N个算子集合中的算子进行计算。第三方面,本申请实施例提供一种移动终端,包括处理器、存储器,所述存储器用于存储一个或多个程序,所述一个或多个程序被配置成由所述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。可以看出,本申请实施例中所描述的基于神经网络算法框架的神经网络计算方法,在进行神经网络计算时,获取M个待执行算子,计算M个待执行算子之间的依赖关系,N为大于或等于2的整数;依据M个待执行算子之间的依赖关系对M个待执行算子进行切割,得到N个算子集合,N个算子集合中的每个算子集合至少包括1个算子,N为大于或等于2的整数;若N个算子集合为相互独立的算子集合,启用N个线程分别对N个算子集合中的算子进行计算。本申请实施例可以对待执行的算子进行切割,当切割得到的N个算子集合是相互独立的算子集合,启用N个线程分别对N个算子集合中的算子进行计算,可以启用N个线程同时对N个算子集合中的算子分别进行计算,可以提高神经网络计算的速度,从而降低神经网络的推理时间。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例公开的一种基于神经网络算法框架的神经网络计算方法的流程示意图;图2是本申请实施例公开的一种算子之间的依赖关系示意图;图3是本申请实施例公开的另一种基于神经网络算法框架的神经网络计算方法的流程示意图;图4是本申请实施例公开的一种神经网络计算装置的结构示意图;图5是本申请实施例公开的一种移动终端的结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本专利技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。本申请实施例所涉及到的移动终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(UserEquipment,UE),移动台(MobileStation,MS),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为移动终端。下面对本申请实施例进行详细介绍。请参阅图1,图1是本申请实施例公开的一种基于神经网络算法框架的神经网络计算方法的流程示意图,如图1所示,该基于神经网络算法框架的神经网络计算方法包括如下步骤。101,移动终端获取M个待执行算子,计算M个待执行算子之间的依赖关系,N为大于或等于2的整数。本申请实施例中,神经网络算法框架可以为TensorFlow或TensorFlowLite。其中,TensorFlow是一个在个人计算机(personalcomputer,PC)端运行的用于训练以及运行神经网络模型的框架。TensorFlowLite是一个在移动端运行的用于训练以及运行神经网络模型的框架,该移动端可以运行IOS系统或安卓(Android)系统。神经网络算法框架可以包括控制器单元、运算单元和存储单元。控制器单元用于存储指令与处理指令。运算单元用于对算子进行计算,存储单元用于存储神经元、权值等。算子,是operator的缩写,在神经网络模型中,一个operator代表一种计算,比如加减乘除,就是4个operator。在神经网络模型中,进行神经网络推理时,需要对多个算子进行计算,目前的所有的算子都是串行执行的,导致神经网络的推理时间较长。本申请实施例中,进行神经网络推理时,需要对多个算子进行计算。控制器单元获取M个待执行算子后,计算M个待执行算子之间的依赖关系。M个待执行算子可以是整个神经网络推理过程中需要执行的算子,也可以是某一层神经网络计算过程中需要执行的算子,也可以是某一层神经网络计算过程中部分需要执行的算子。本申请实施例中的算子可以包括Conv2D算子、FusedBatchNorm算子、Relu本文档来自技高网
...

【技术保护点】
1.一种基于神经网络算法框架的神经网络计算方法,其特征在于,包括:获取M个待执行算子,计算所述M个待执行算子之间的依赖关系,N为大于或等于2的整数;依据所述M个待执行算子之间的依赖关系对所述M个待执行算子进行切割,得到N个算子集合,所述N个算子集合中的每个算子集合至少包括1个算子,N为大于或等于2的整数;若所述N个算子集合为相互独立的算子集合,启用N个线程分别对所述N个算子集合中的算子进行计算。

【技术特征摘要】
1.一种基于神经网络算法框架的神经网络计算方法,其特征在于,包括:获取M个待执行算子,计算所述M个待执行算子之间的依赖关系,N为大于或等于2的整数;依据所述M个待执行算子之间的依赖关系对所述M个待执行算子进行切割,得到N个算子集合,所述N个算子集合中的每个算子集合至少包括1个算子,N为大于或等于2的整数;若所述N个算子集合为相互独立的算子集合,启用N个线程分别对所述N个算子集合中的算子进行计算。2.根据权利要求1所述的方法,其特征在于,所述依据所述M个待执行算子之间的依赖关系对所述M个待执行算子进行切割,得到N个算子集合,包括:依据所述M个待执行算子之间的依赖关系,采用图剖分算法对所述M个待执行算子进行切割,得到N个算子集合。3.根据权利要求2所述的方法,其特征在于,所述计算所述M个待执行算子之间的依赖关系之后,所述方法还包括:依据所述M个待执行算子之间的依赖关系得到所述M个待执行算子之间的有向图;所述依据所述M个待执行算子之间的依赖关系,采用图剖分算法对所述M个待执行算子进行切割,得到N个算子集合包括:依据所述M个待执行算子之间的依赖关系,采用图剖分算法对所述M个待执行算子之间的有向图进行切割,得到N个有向子图;其中,每个有向子图对应一个算子集合。4.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:若所述N个算子集合不是相互独立的算子集合,根据所述N个算子集合之间的依赖关系,采用顺逆交替迭代调度算法确定所述N个算子集合中需要并行执行算子和需要串行执行算子;确定所述需要并行执行算子与所述需要串行执行算子的执行顺序,调度所述N个算子集合中所述需要并行执行算子和所述需要串行执行算子进行计算。5.根据权利要求4所述的方法,其特征在于,所述调度所述N个算子集合中所述需要并行执行算子和所述需要串行执行算子进行计算,包括:确定...

【专利技术属性】
技术研发人员:刘耀勇陈岩
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:广东,44

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

1