CN111309382B - 基于神经网络的指令推送方法、系统、设备及存储介质 - Google Patents

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

Info

Publication number
CN111309382B
CN111309382B CN202010101364.4A CN202010101364A CN111309382B CN 111309382 B CN111309382 B CN 111309382B CN 202010101364 A CN202010101364 A CN 202010101364A CN 111309382 B CN111309382 B CN 111309382B
Authority
CN
China
Prior art keywords
instruction
data
calculation
graph
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010101364.4A
Other languages
English (en)
Other versions
CN111309382A (zh
Inventor
李金鹏
黄炯凯
蔡权雄
牛昕宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202010101364.4A priority Critical patent/CN111309382B/zh
Publication of CN111309382A publication Critical patent/CN111309382A/zh
Application granted granted Critical
Publication of CN111309382B publication Critical patent/CN111309382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种基于神经网络的指令推送方法、系统、设备及存储介质。该指令推送方法包括:解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;解析所述结构数据得到驱动层可识别的指令数据;发送所述参数数据和指令数据至所述驱动层根据所述指令数据和参数数据进行初始化;发送所述输入计算图至所述驱动层并通知所述驱动层,以使驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。本发明实施例实现了提高神经网络的指令执行效率。

Description

基于神经网络的指令推送方法、系统、设备及存储介质
技术领域
本发明实施例涉及神经网络技术,尤其涉及一种基于神经网络的指令推送方法、系统、设备及存储介质。
背景技术
随着深度学习技术的逐渐成熟,基于神经网络的行业落地应用越来越多,包括安全防卫、工业监控、自动驾驶等。
神经网络由多个重复性计算层(也称为算子)组成,其计算方式具有高并行度、高计算量的特点。神经网络中,采用指令集的方式实现硬件层和软件层的交互,十分灵活。
但是硬件层和软件层的指令集交互是串行执行的,即硬件层接收到一条来自软件层的指令后才执行,无法确定下一条指令,在神经网络执行计算时,其计算是循环的,指令是静态的,而指令集交互方式仍然会使用动态指令的方式去兼容,导致硬件效率无法最大化,过多的软件层和硬件层的指令交互次数造成时间和资源的浪费,指令的执行效率大大降低。
发明内容
本发明实施例提供一种基于神经网络的指令推送方法、系统、设备及存储介质,以实现提高神经网络的指令执行效率。
本发明实施例提供了一种基于神经网络的指令推送方法,该方法包括:
解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
解析所述结构数据得到驱动层可识别的指令数据;
发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化;
发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
一方面,本发明实施例还提供了一种基于神经网络的指令推送系统,该指令推送系统包括:
模型解析模块,用于解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
指令生成模块,用于解析所述结构数据得到驱动层可识别的指令数据;
指令执行模块,用于发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,还用于发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
另一方面,本发明实施例还提供了一种基于神经网络的指令推送设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例提供的方法。
又一方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例提供的方法。
本发明实施例通过解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;解析所述结构数据得到驱动层可识别的指令数据;发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,发送所述输入计算图至所述驱动层并通知所述驱动层,根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图,将所有指令预先全部打包推送给驱动层以减少交互次数,解决过多的软件层和硬件层的指令交互次数造成时间和资源的浪费的问题,实现提高神经网络的指令执行效率的效果。
附图说明
图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。
本实施例中,预设神经网络模型可以是用户预先通过软件层的编写生成的,可以通过解析该预设神经网络模型得到结构数据和参数数据,结构数据即为用户编写的自定义的神经网络的结构,参数数据即为用户提供的与该结构数据对应的权重数据。预处理输入计算图可以为软件层对该输入计算图需要的硬件层中的计算空间进行分配,并请求构建驱动层和硬件层之间的数据传输管道,软件层通过控制该数据传输管道内的数据传输,实现控制硬件层进行计算。
在一实施例中,用户可以通过软件层的端到端自动编译工具链编译器(RainBuilder Compiler,RbCompiler)解析预设神经网络模型的pb文件,生成结构数据的pbtxt文件和参数数据的coeff文件,用户添加预处理代码后,按照使用流程调用软件层的端到端自动编译工具链运行时(RainBuilder Runtime,RbRuntime),将预处理过的输入计算图、pbtxt文件以及coeff文件传输给RbRuntime。
S120、解析所述结构数据得到驱动层可识别的指令数据。
本实施例中,软件层的RbRuntime得到预处理过的输入计算图、pbtxt文件以及coeff文件后,解析pbtxt文件,并将其转化为驱动层的端到端自动编译工具链驱动器(RainBuilder driver,Rbdriver)可识别的指令数据,该指令数据包括全部驱动层的Rbdriver调用的用来控制硬件层计算的指令,且该指令数据是按照硬件层的实际计算顺序依次排列好的,因此驱动层得到该指令数据后不需要重复与软件层通讯而是依次获得指令驱动硬件层进行计算。
S130、发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化。
S140、发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
本实施例中,软件层的RbRuntime得到驱动层的Rbdriver可识别的指令数据后,会将该驱动层的Rbdriver可识别的指令数据和coeff文件共同发送至驱动层的Rbdriver中,驱动层的Rbdriver将会根据指令数据和coeff文件进行初始化,准备进行计算。驱动层的Rbdriver准备完毕后,软件层的RbRuntime将会发送预处理过的输入计算图给驱动层的Rbdriver,并通知驱动层的Rbdriver可以计算,驱动层的Rbdriver将会发送预处理过的输入计算图给硬件层,按照指令数据中的指令依次驱动硬件层计算该输入计算图以得到输出计算图。
本发明实施例通过解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;解析所述结构数据得到驱动层可识别的指令数据;发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,发送所述输入计算图至所述驱动层并通知所述驱动层,根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图,将所有指令预先全部打包推送给驱动层以减少交互次数,解决过多的软件层和硬件层的指令交互次数造成时间和资源的浪费的问题,实现提高神经网络的指令执行效率的效果。
实施例二
如图2所示,本发明实施例二提供了一种基于神经网络的指令推送方法,本发明实施例二是在本发明实施例一的基础上作进一步的优化,该指令推送方法方法包括:
S210、接收用户的编写和训练指令生成所述预设神经网络模型。
本实施例中,用户可以根据自身需要通过软件层的TensorFlow软件编写和训练神经网络,以得到预设神经网络模型,也就是生成pb文件。
S220、解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图。
S230、解析所述结构数据得到驱动层可识别的指令数据。
S240、发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化。
S250、发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
本发明实施例中的S220-S250中的实现方法和本发明实施例一相同。
S260、读取所述输出计算图,判断所述输出计算图是否存在剩余待计算节点。
S270、响应于所述输出计算图不存在所述剩余待计算节点的判断结果,将所述输出计算图转换为计算结果并返回至用户。
S280、响应于所述输出计算图存在所述剩余待计算节点的判断结果,根据所述结构数据计算所述剩余待计算节点,得到剩余计算节点,将所述输出计算图和剩余计算节点转换为计算结果并返回至用户。
本实施例中,硬件层计算输入计算图得到输出计算图后,硬件层会将得到的输出计算图输出至驱动层的Rbdriver中,驱动层的Rbdriver继续将输出计算图输出至软件层的RbRuntime预先分配好的内存中。软件层的RbRuntime会从该内存中读取该输出计算图,并判断该输出计算图是否还存在剩余待计算节点,这些剩余待计算节点可能为硬件层无法计算的节点,也可能为预设神经网络模型所指定不使用硬件层计算的节点。若不存在剩余待计算节点,软件层的RbRuntime会直接将该输出计算图转换为计算结果,并将该计算结果返回至用户,完成一次神经网络的计算。若存在剩余待计算节点,软件层的RbRuntime根据预设神经网络模型的结构数据,即pbtxt文件,计算该剩余待计算节点得到剩余计算节点,计算完毕后,软件层的RbRuntime会将该输出计算图以及得到剩余计算节点共同转换为计算结果,并将该计算结果返回至用户,完成一次神经网络的计算。
本发明实施例通过读取所述输出计算图,判断所述输出计算图是否存在剩余待计算节点,响应于所述输出计算图不存在所述剩余待计算节点的判断结果,将所述输出计算图转换为计算结果并返回至用户,响应于所述输出计算图存在所述剩余待计算节点的判断结果,根据所述结构数据计算所述剩余待计算节点,得到剩余计算节点,将所述输出计算图和剩余计算节点转换为计算结果并返回至用户,直接将硬件层没有计算的节点输出并使用软件层计算,解决了神经网络计算时存在剩余待计算节点不便于计算的问题,实现了神经网络的高效计算。
实施例三
如图3所示,本发明实施例三提供了一种基于神经网络的指令推送系统300,本发明实施例三所提供的指令推送系统300可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和效果。该指令推送系统300包括模型解析模块310、指令生成模块320和指令执行模块330。
模型解析模块310用于解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;指令生成模块320用于解析所述结构数据得到驱动层可识别的指令数据;指令执行模块330用于发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,还用于发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
在一实施例中,神经网络是由大量的、简单的处理单元广泛地互相连接而形成的复杂网络系统,这些简单的处理单元也被称为算子,即神经网络模型由大量的算子广泛地互相连接而成。在实际运算中,神经网络中完成某种功能的一层或多层通常称为一个计算节点,计算图是神经网络进行实际运算时的一种表达形式,包括多个计算节点及计算节点之间的连接关系,计算图中的一个计算节点可以对应神经网络中的一层或多层,输入计算图则是神经网络计算时的第一层的计算节点。计算节点与算子可以是相同大小,也可以是不同大小,不同的神经网络模型中,计算节点和算子之间的大小关系不同。例如,神经网络模型中包含的算子种类为A1、A2、A3、A4四种,神经网络计算图的计算节点可以是第一计算节点A1+A2和第二计算节点A3+A4两种,计算节点之间的连接关系可以是先运行第一计算节点A1+A2和第二计算节点A3+A4,再运行第一计算节点A1+A2和第二计算节点A3+A4的和A1+A2+A3+A4。
本实施例中,预设神经网络模型可以是用户预先通过软件层的编写生成的,可以通过解析该预设神经网络模型得到结构数据和参数数据,结构数据即为用户编写的自定义的神经网络的结构,参数数据即为用户提供的与该结构数据对应的权重数据。预处理输入计算图可以为软件层对该输入计算图需要的硬件层中的计算空间进行分配,并请求构建驱动层和硬件层之间的数据传输管道,软件层通过控制该数据传输管道内的数据传输,实现控制硬件层进行计算。
在一实施例中,用户可以通过软件层的RbCompiler解析预设神经网络模型的pb文件,生成结构数据的pbtxt文件和参数数据的coeff文件,用户添加预处理代码后,按照使用流程调用软件层的RbRuntime,将预处理过的输入计算图、pbtxt文件以及coeff文件传输给RbRuntime。软件层的RbRuntime得到预处理过的输入计算图、pbtxt文件以及coeff文件后,解析pbtxt文件,并将其转化为驱动层的Rbdriver可识别的指令数据,该指令数据包括全部驱动层的Rbdriver调用的用来控制硬件层计算的指令,且该指令数据是按照硬件层的实际计算顺序依次排列好的,因此驱动层得到该指令数据后不需要重复与软件层通讯而依次获得指令驱动硬件层计算。软件层的RbRuntime得到驱动层的Rbdriver可识别的指令数据后,会将该驱动层的Rbdriver可识别的指令数据和coeff文件共同发送至驱动层的Rbdriver中,驱动层的Rbdriver将会根据指令数据和coeff文件进行初始化,准备进行计算。驱动层的Rbdriver准备完毕后,软件层的RbRuntime将会发送预处理过的输入计算图给驱动层的Rbdriver,并通知驱动层的Rbdriver可以计算,驱动层的Rbdriver将会发送预处理过的输入计算图给硬件层,按照指令数据中的指令依次驱动硬件层计算该输入计算图以得到输出计算图。
在一实施例中,该指令推送系统还包括模型生成模块和计算输出模块。
模型生成模块340用于接收用户的编写和训练指令生成所述预设神经网络模型。计算输出模块350用于读取所述输出计算图,判断所述输出计算图是否存在剩余待计算节点,所述计算输出模块还用于响应于所述输出计算图不存在所述剩余待计算节点的判断结果,将所述输出计算图转换为计算结果并返回至用户。所述计算输出模块还用于响应于所述输出计算图存在所述剩余待计算节点的判断结果,根据所述结构数据计算所述剩余待计算节点以得到剩余计算节点,将所述输出计算图和剩余计算节点转换为计算结果并返回至用户。
本实施例中,用户可以根据自身需要通过软件层的TensorFlow编写和训练神经网络,以得到预设神经网络模型,也就是生成pb文件。硬件层计算输入计算图得到输出计算图后,硬件层会将得到的输出计算图输出至驱动层的Rbdriver中,驱动层的Rbdriver继续将输出计算图输出至软件层的RbRuntime预先分配好的内存中。软件层的RbRuntime会从该内存中读取该输出计算图,并判断该输出计算图是否还存在剩余待计算节点,这些剩余待计算节点可能为硬件层无法计算的节点,也可能为预设神经网络模型所指定不使用硬件层计算的节点。若不存在剩余待计算节点,软件层的RbRuntime会直接将该输出计算图转换为计算结果,并将该计算结果返回至用户,完成一次神经网络的计算。若存在剩余待计算节点,软件层的RbRuntime根据预设神经网络模型的结构数据,即pbtxt文件,计算该剩余待计算节点得到剩余计算节点,计算完毕后,软件层的RbRuntime会将该输出计算图以及得到剩余计算节点共同转换为计算结果,并将该计算结果返回至用户,完成一次神经网络的计算。
本发明实施例通过模型解析模块310,用于解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;指令生成模块320,用于解析所述结构数据得到驱动层可识别的指令数据;指令执行模块330,用于发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化,还用于发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图,将所有指令预先全部打包推送给驱动层以减少交互次数,解决过多的软件层和硬件层的指令交互次数造成时间和资源的浪费的问题,实现提高神经网络的指令执行效率的效果。
实施例四
图4为本发明实施例四提供的一种基于神经网络的指令推送设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来限制。
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括:一个或者多个处理器或者处理单元16,系统存储器28(即图4中的内存),连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的总线结构的局域总线。举例来说,这些体系结构包括工业标准体系结构(Industry Standard Architecture,ISA)总线,微通道体系结构(MicroChannel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standard Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备12包括多种计算机系统可读介质。这些介质可以是能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存32。计算机设备12可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如便携式紧凑磁盘只读存储器(Compact Disc Read Only Memory,CD-ROM),数字多功能盘只读存储器(Digital Video Disk Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明多个实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Drives,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行多种功能应用以及数据处理,例如实现本发明实施例所提供的方法:
解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
解析所述结构数据得到驱动层可识别的指令数据;
发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化;
发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如本发明所有发明实施例提供的方法:
解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
解析所述结构数据得到驱动层可识别的指令数据;
发送所述参数数据和指令数据至所述驱动层,使所述驱动层根据所述指令数据和参数数据进行初始化;
发送所述输入计算图至所述驱动层并通知所述驱动层根据指令数据驱动硬件层计算所述输入计算图和参数数据以得到输出计算图。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者以上的组合。计算机可读存储介质的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(Compact DiscRead-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述合适的组合。在本文件中,计算机可读存储介质可以是包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括电磁信号、光信号或上述合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用适当的介质传输,包括无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种基于神经网络的指令推送方法,其特征在于,包括:
解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
解析所述结构数据得到驱动层可识别的指令数据;
发送所述参数数据和所述指令数据至所述驱动层,使所述驱动层根据所述指令数据和所述参数数据进行初始化;
发送所述输入计算图至所述驱动层并通知所述驱动层根据所述指令数据驱动硬件层计算所述输入计算图和所述参数数据以得到输出计算图。
2.根据权利要求1所述的指令推送方法,其特征在于,在所述解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图之前,还包括:
接收用户的编写和训练指令生成所述预设神经网络模型。
3.根据权利要求1所述的指令推送方法,其特征在于,在所述发送所述输入计算图至所述驱动层并通知所述驱动层根据所述指令数据驱动硬件层计算所述输入计算图和所述参数数据以得到输出计算图之后,包括:
读取所述输出计算图,判断所述输出计算图是否存在剩余待计算节点;
响应于所述输出计算图不存在所述剩余待计算节点的判断结果,将所述输出计算图转换为计算结果并返回至用户。
4.根据权利要求3所述的指令推送方法,其特征在于,在所述判断所述输出计算图是否存在剩余待计算节点之后,还包括:
响应于所述输出计算图存在所述剩余待计算节点的判断结果,根据所述结构数据计算所述剩余待计算节点,得到剩余计算节点,将所述输出计算图和所述剩余计算节点转换为计算结果并返回至用户。
5.一种基于神经网络的指令推送系统,其特征在于,包括:
模型解析模块,用于解析预设神经网络模型得到结构数据和参数数据并预处理输入计算图;
指令生成模块,用于解析所述结构数据得到驱动层可识别的指令数据;
指令执行模块,用于发送所述参数数据和所述指令数据至所述驱动层,使所述驱动层根据所述指令数据和所述参数数据进行初始化,还用于发送所述输入计算图至所述驱动层并通知所述驱动层根据所述指令数据驱动硬件层计算所述输入计算图和所述参数数据以得到输出计算图。
6.根据权利要求5所述的指令推送系统,其特征在于,还包括:
模型生成模块,用于接收用户的编写和训练指令生成所述预设神经网络模型。
7.根据权利要求5所述的指令推送系统,其特征在于,还包括:
计算输出模块,用于读取所述输出计算图,判断所述输出计算图是否存在剩余待计算节点,所述计算输出模块还用于响应于所述输出计算图不存在所述剩余待计算节点的判断结果,将所述输出计算图转换为计算结果并返回至用户。
8.根据权利要求7所述的指令推送系统,其特征在于,所述计算输出模块还用于响应于所述输出计算图存在所述剩余待计算节点的判断结果,根据所述结构数据计算所述剩余待计算节点,得到剩余计算节点,将所述输出计算图和所述剩余计算节点转换为计算结果并返回至用户。
9.一种基于神经网络的指令推送设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的指令推送方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的指令推送方法。
CN202010101364.4A 2020-02-19 2020-02-19 基于神经网络的指令推送方法、系统、设备及存储介质 Active CN111309382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010101364.4A CN111309382B (zh) 2020-02-19 2020-02-19 基于神经网络的指令推送方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010101364.4A CN111309382B (zh) 2020-02-19 2020-02-19 基于神经网络的指令推送方法、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111309382A CN111309382A (zh) 2020-06-19
CN111309382B true CN111309382B (zh) 2023-03-03

Family

ID=71145128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010101364.4A Active CN111309382B (zh) 2020-02-19 2020-02-19 基于神经网络的指令推送方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111309382B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115437642B (zh) * 2022-11-07 2024-05-14 深圳鲲云信息科技有限公司 一种模型编译方法、装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110796594A (zh) * 2019-10-28 2020-02-14 腾讯科技(深圳)有限公司 一种图像生成方法、装置及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3493136A4 (en) * 2016-08-25 2020-03-11 Tencent Technology (Shenzhen) Company Limited INFORMATION PROCESSING METHOD AND DEVICE, DISPLAY TERMINAL AND STORAGE MEDIUM

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110796594A (zh) * 2019-10-28 2020-02-14 腾讯科技(深圳)有限公司 一种图像生成方法、装置及设备

Also Published As

Publication number Publication date
CN111309382A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
US20210295161A1 (en) Training neural networks represented as computational graphs
US6925431B1 (en) Method and system for predicting communication delays of detailed application workloads
US20160371081A1 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
CN111797969A (zh) 神经网络模型的转换方法及相关装置
CN113168583A (zh) 在量子计算仿真中用于测量的门融合
CN111045911B (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN111145076A (zh) 数据并行化处理方法、系统、设备及存储介质
CN116467061B (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN111309382B (zh) 基于神经网络的指令推送方法、系统、设备及存储介质
CN113031954A (zh) 代码编译方法、装置、电子设备、存储介质及异构系统
CN109359055B (zh) 一种数据测试的方法和设备
CN113141407B (zh) 一种页面资源加载方法、装置和电子设备
CN111338816B (zh) 基于神经网络的指令交互方法、系统、设备及存储介质
CN114970847A (zh) 数据处理方法、装置和存储介质
US11797277B2 (en) Neural network model conversion method server, and storage medium
CN110515849B (zh) 一种断点调试方法、装置、系统、设备及存储介质
CN108564170B (zh) 一种基于noc的可重构神经网络运算方法和电路
CN117827523B (zh) 一种模型的异常处理方法、装置、电子设备及存储介质
CN111753983B (zh) 神经网络模型的定制化方法、系统、设备和存储介质
CN116341633B (zh) 一种模型部署方法、装置、设备及存储介质
Li et al. Streaming applications on heterogeneous platforms
CN117591104B (zh) 模型的生成方法、装置、电子设备及存储介质
KR101127469B1 (ko) 네트워크 기반 로봇의 소프트웨어 개발 시스템 및 방법
CN113704687B (zh) 一种张量计算运行方法、装置及运算系统
KR102471536B1 (ko) 멀티-액세스 엣지 컴퓨팅 플랫폼 기반 시뮬레이션 서비스 제공 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant