基于神经网络的指令推送方法、系统、设备及存储介质技术方案

技术编号:24572775 阅读:18 留言:0更新日期:2020-06-20 23:57
本发明专利技术实施例公开了一种基于神经网络的指令推送方法、系统、设备及存储介质。该指令推送方法包括:解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;解析所述结构数据得到驱动层可识别的指令数据;发送所述参数数据和指令数据至所述驱动层根据所述指令数据和参数数据进行初始化;发送所述输入计算图至所述驱动层并通知所述驱动层,以使驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。本发明专利技术实施例实现了提高神经网络的指令执行效率。

Instruction push method, system, equipment and storage medium based on Neural Network

【技术实现步骤摘要】
基于神经网络的指令推送方法、系统、设备及存储介质
本专利技术实施例涉及神经网络技术,尤其涉及一种基于神经网络的指令推送方法、系统、设备及存储介质。
技术介绍
随着深度学习技术的逐渐成熟,基于神经网络的行业落地应用越来越多,包括安全防卫、工业监控、自动驾驶等。神经网络由多个重复性计算层(也称为算子)组成,其计算方式具有高并行度、高计算量的特点。神经网络中,采用指令集的方式实现硬件层和软件层的交互,十分灵活。但是硬件层和软件层的指令集交互是串行执行的,即硬件层接收到一条来自软件层的指令后才执行,无法确定下一条指令,在神经网络执行计算时,其计算是循环的,指令是静态的,而指令集交互方式仍然会使用动态指令的方式去兼容,导致硬件效率无法最大化,过多的软件层和硬件层的指令交互次数造成时间和资源的浪费,指令的执行效率大大降低。
技术实现思路
本专利技术实施例提供一种基于神经网络的指令推送方法、系统、设备及存储介质,以实现提高神经网络的指令执行效率。本专利技术实施例提供了一种基于神经网络的指令推送方法,该方法包括:解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;解析所述结构数据得到驱动层可识别的指令数据;发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化;发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。一方面,本专利技术实施例还提供了一种基于神经网络的指令推送系统,该指令推送系统包括:模型解析模块,用于解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;指令生成模块,用于解析所述结构数据得到驱动层可识别的指令数据;指令执行模块,用于发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,还用于发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。另一方面,本专利技术实施例还提供了一种基于神经网络的指令推送设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任一实施例提供的方法。又一方面,本专利技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如本专利技术任一实施例提供的方法。本专利技术实施例通过解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;解析所述结构数据得到驱动层可识别的指令数据;发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,发送所述输入计算图至所述驱动层并通知所述驱动层,根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图,将所有指令预先全部打包推送给驱动层以减少交互次数,解决过多的软件层和硬件层的指令交互次数造成时间和资源的浪费的问题,实现提高神经网络的指令执行效率的效果。附图说明图1是本专利技术实施例提供的一种基于神经网络的指令推送方法的流程示意图;图2是本专利技术实施例提供的另一种基于神经网络的指令推送方法的流程示意图;图3是本专利技术实施例提供的一种基于神经网络的指令推送系统的结构示意图;图4为本专利技术实施例提供的一种基于神经网络的指令推送设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术进行说明。此处所描述的实施例用于解释本专利技术,而非对本专利技术的限定。附图中仅示出了与本专利技术相关的部分而非全部结构。一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将多个步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,多个步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。此外,术语“第一”、“第二”等可在本文中用于描述多种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本专利技术实施例的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确限定。实施例一如图1所示,本专利技术实施例一提供了一种基于神经网络的指令推送方法,该指令推送方法包括:S110、解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图。在一实施例中,神经网络是由大量的、简单的处理单元广泛地互相连接而形成的复杂网络系统,这些简单的处理单元也被称为算子,即神经网络模型由大量的算子广泛地互相连接而成。在实际运算中,神经网络中完成某种功能的一层或多层通常称为一个计算节点,计算图是神经网络进行实际运算时的一种表达形式,包括多个计算节点及计算节点之间的连接关系,计算图中的一个计算节点可以对应神经网络中的一层或多层,输入计算图则是神经网络计算时的第一层的计算节点。计算节点与算子可以是相同大小,也可以是不同大小,不同的神经网络模型中,计算节点和算子之间的大小关系不同。例如,神经网络模型中包含的算子种类为A1、A2、A3、A4四种,神经网络计算图的计算节点可以是第一计算节点A1+A2和第二计算节点A3+A4两种,计算节点之间的连接关系可以是先运行第一计算节点A1+A2和第二计算节点A3+A4,再运行第一计算节点A1+A2和第二计算节点A3+A4的和A1+A2+A3+A4。本实施例中,预设神经网络模型可以是用户预先通过软件层的编写生成的,可以通过解析该预设神经网络模型得到结构数据和参数数据,结构数据即为用户编写的自定义的神经网络的结构,参数数据即为用户提供的与该结构数据对应的权重数据。预处理输入计算图可以为软件层对该输入计算图需要的硬件层中的计算空间进行分配,并请求构建驱动层和硬件层之间的数据传输管道,软件层通过控制该数据传输管道内的数据传输,实现控制硬件层进行计算。在一实施例中,用户可以通过软件层的端到端自动编译工具链编译器(RainBuilderCompiler,RbCompiler)解析预设神经网络模型的pb文件,生成结构数据的pbtxt文件和参数数据的coeff文件,用户添加预处理代码后,按照使用流程调用软件层的端到端自动编译工具链运行时(RainBuilderRuntime,RbRuntime),将预处理过的输入计算图、pbtxt文件以及coeff文件传输给RbRuntime。S120、解析所述结构数据得到驱动层可识别的指令数据。本实施例中,软件层的RbRuntime得到预处理过本文档来自技高网...

【技术保护点】
1.一种基于神经网络的指令推送方法,其特征在于,包括:/n解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;/n解析所述结构数据得到驱动层可识别的指令数据;/n发送所述参数数据和所述指令数据至所述驱动层,使所述驱动层根据所述指令数据和所述参数数据进行初始化;/n发送所述输入计算图至所述驱动层并通知所述驱动层根据所述指令数据驱动硬件层计算所述输入计算图和所述参数数据以得到输出计算图。/n

【技术特征摘要】
1.一种基于神经网络的指令推送方法,其特征在于,包括:
解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
解析所述结构数据得到驱动层可识别的指令数据;
发送所述参数数据和所述指令数据至所述驱动层,使所述驱动层根据所述指令数据和所述参数数据进行初始化;
发送所述输入计算图至所述驱动层并通知所述驱动层根据所述指令数据驱动硬件层计算所述输入计算图和所述参数数据以得到输出计算图。


2.根据权利要求1所述的指令推送方法,其特征在于,在所述解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图之前,还包括:
接收用户的编写和训练指令生成所述预设神经网络模型。


3.根据权利要求1所述的指令推送方法,其特征在于,在所述发送所述输入计算图至所述驱动层并通知所述驱动层根据所述指令数据驱动硬件层计算所述输入计算图和所述参数数据以得到输出计算图之后,包括:
读取所述输出计算图,判断所述输出计算图是否存在剩余待计算节点;
响应于所述输出计算图不存在所述剩余待计算节点的判断结果,将所述输出计算图转换为计算结果并返回至用户。


4.根据权利要求3所述的指令推送方法,其特征在于,在所述判断所述输出计算图是否存在剩余待计算节点之后,还包括:
响应于所述输出计算图存在所述剩余待计算节点的判断结果,根据所述结构数据计算所述剩余待计算节点,得到剩余计算节点,将所述输出计算图和所述剩余计算节点转换为计算结果并返回至用户。


5.一种基于神经网络的指令推送系统,其特征在于,包括:
模型解析模块,用于解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;...

【专利技术属性】
技术研发人员:李金鹏黄炯凯蔡权雄牛昕宇
申请(专利权)人:深圳鲲云信息科技有限公司
类型:发明
国别省市:广东;44

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

1