CN109697500B - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109697500B CN109697500B CN201811645778.2A CN201811645778A CN109697500B CN 109697500 B CN109697500 B CN 109697500B CN 201811645778 A CN201811645778 A CN 201811645778A CN 109697500 B CN109697500 B CN 109697500B
- Authority
- CN
- China
- Prior art keywords
- network
- sub
- network layer
- attribute
- fusion
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及一种数据处理方法、装置、电子设备和可读存储介质,采用上述数据处理方法能够生成目标神经网络的离线模型文件,相比于逐层对该子网络中的各网络层进行运算所需的多个输出操作和多次输出操作而言,提高了运算速率。
Description
技术领域
本申请涉及神经网络技术领域,特别是涉及一种数据处理方法、装置、电子设备和可读存储介质。
背景技术
深度学习一般分为训练和推理两个过程,训练过程用于搜索和求解神经网络模型的最优参数;而推理过程则用于根据经过训练的神经网络模型,对输入的新的数据进行推理,即前向运算,得到目标输出。
基于caffe等深度学习框架构建的神经网络模型的前向运算过程,是由处理器在线逐层对神经网络的每层进行编译和运行操作的,即每层的操作为单独的运算,每层运算时均需要进行至少一次输入拷贝和至少一次输出拷贝,且神经网络的运行需要依赖caffe等深度学习框架。
总之,目前的神经网络的在线逐层运算的方式,存在运算速率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高运算速率的数据处理方法、装置、电子设备和可读存储介质。
第一方面,一种数据处理方法,所述方法包括:
获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
在其中一个实施例中,所述方法还包括如下步骤:
获取所述目标神经网络对应的原始神经网络;
根据所述原始神经网络中各个网络层的配置信息,确定所述各个网络层的融合属性;
根据所述原始神经网络中各个网络层的融合属性及各个网络层的依赖关系,将具有相同融合属性的至少一个网络层融合为一个子网络。
在其中一个实施例中,所述网络层的融合属性包括第一融合属性和第二融合属性;所述根据所述原始神经网络中各个网络层的配置信息,确定所述各个网络层的融合属性的步骤,包括:
获取各个网络层的预设的融合属性函数的返回值;
若所述网络层的返回值为第一返回值,则确定所述网络层的融合属性为第一融合属性;
若所述网络层的返回值为第二返回值,则确定所述网络层的融合属性为第二融合属性。
在其中一个实施例中,所述根据所述原始神经网络中各个网络层的融合属性及各个网络层的依赖关系,将具有相同融合属性的至少一个网络层融合为一个子网络的步骤,包括:
根据各个网络层的依赖关系,确定各个网络层的拓扑排序;
根据所述拓扑排序,若当前网络层的融合属性为第一融合属性,则在所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同时,将所述当前网络层与所述当前网络层的上一网络层划分为同一子网络;
根据所述拓扑排序,若所述当前网络层的融合属性为第二融合属性,则将所述当前网络层单独划分为一个子网络。
在其中一个实施例中,所述根据所述原始神经网络中各个网络层的融合属性及各个网络层的依赖关系,将具有相同融合属性的至少一个网络层融合为一个子网络的步骤,还包括:
根据各个网络层的依赖关系,确定各个网络层的拓扑排序;
根据所述拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则所述当前网络层与所述当前网络层的上一网络层属于同一子网络;
根据所述拓扑排序,若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不同,则所述当前网络层与所述当前网络层的上一网络层属于不同的子网络。
在其中一个实施例中,所述方法还包括:
根据各个网络层中预设的融合函数,将所述子网络的各个网络层对应的算子添加至同一融合算子中。
在其中一个实施例中,各个所述子网络的执行顺序,以及各个所述子网络包含的网络层信息存储于caffe中创建的目标对象中。
在其中一个实施例中,所述子网络的融合属性还包括第二融合属性,所述离线模型中还包括第二融合属性的子网络对应的计算指令。
在其中一个实施例中,所述方法还包括:
创建各个所述子网络的网络标识与所述各个所述子网络包含的至少一个网络层的标识的对应关系,存储并显示所述对应关系;
存储并显示各个子网络对应的目标处理器。
第二方面,一种数据处理方法,所述方法包括:
获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;
根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
在其中一个实施例中,所述子网络的融合属性包括第一融合属性,所述离线模型文件中包括第一融合属性的子网络对应的计算指令;所述的根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果的步骤,包括:
当所述子网络的融合属性为第一融合属性时,则根据所述所述第一融合属性的子网络的权值数据和所述离线模型文件中所述第一融合属性的子网络的计算指令进行运算,得到所述第一融合属性的子网络的输出结果。
在其中一个实施例中,所述子网络的融合属性还包括第二融合属性;所述离线模型文件还包括第二融合属性的子网络对应的计算指令;所述根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果的步骤,还包括:
当所述子网络的融合属性为第二融合属性时,则根据所述第二融合属性的子网络的权值数据和所述离线模型文件中所述第二融合属性的子网络的计算指令进行运算,获得所述第二融合属性的子网络的输出结果。
在其中一个实施例中,所述方法还包括如下步骤:
若所述子网络的融合属性为第一融合属性,则确定所述子网络对应的目标处理器为人工智能处理器,所述人工智能处理器能够实现所述第一融合属性的子网络的运算;
若所述子网络的融合属性为第二融合属性,则确定所述子网络对应的目标处理器为通用处理器,所述通用处理器能够实现所述第二融合属性的子网络的运算。
第三方面,一种数据处理装置,所述装置包括:
网络数据获取模块,用于获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
编译模块,用于根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
离线模型文件生成模块,用于根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
第四方面,一种数据处理装置,所述装置包括:
离线模型文件获取模块,用于获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;
运算模块,用于根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
第五方面,一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
在其中一个实施例中,所述处理器包括第一处理器和第二处理器,所述第一处理器为人工智能处理器,所述第二处理器为通用处理器。
第六方面,一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
上述数据处理方法、装置、电子设备和可读存储介质,针对子网络划分处理后的目标神经网络,所述目标神经网络被划分为至少一个第一融合属性的子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;电子设备可以在对第一融合属性的子网络进行编译时,可以对第一融合属性的子网络中的所有网络层的所有算子进行整体编译,得到第一融合属性的子网络的计算指令,然后根据各第一融合属性的子网络的计算指令,生成离线模型文件;也就是说,至少针对该子网络而言,相比于逐层对该子网络中的各网络层进行编译所需的多个输出操作和多次输出操作而言,只需要进行一次输入操作和一次输出操作即可,提高了运算效率,进而提高了离线模型文件的生成效率及速度。
进一步的,基于上述方法生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对所述第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据,避免了对各个子网络的重复编译过程,可以进一步提高网络的效率;总之,基于上述方法生成的离线模型文件可以在进行神经网络运算时提高神经网络运算的运算速率。
附图说明
图1a为一个实施例中数据处理方法的应用环境图;
图1b为一个实施例中数据处理方法的流程示意图;
图2为一个实施例中数据处理方法的流程示意图;
图3为一个实施例中目标神经网络的示意图;
图4为一个实施例中数据处理方法的流程示意图;
图5a为另一个实施例中数据处理方法的流程示意图;
图5b为一个实施例中离线模型文件在caffe中的定义的格式的示意图;
图6为一个实施例中数据处理装置的结构框图;
图7为一个实施例中数据处理装置的结构框图;
图8为另一个实施例中数据处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据处理方法,可以应用于主板、计算机设备等具有神经网络处理功能的电子设备中,该电子设备可以是同构的电子设备,也可以是异构的电子设备,如参照图1a所示,该电子设备可以包括第一处理器11、第二处理器12和存储器13。其中第一处理器11和第二处理器12可以但不限于是如下多种组合中的一种组合:CPU(中央处理器)和人工智能处理器,CPU和DSP(Digital Signal Processing,数字信号处理器),CPU和GPU(图像处理器),GPU和人工智能处理器。存储器13存储有计算机程序,第一处理器11可以在执行计算机程序时实现上述数据处理方法,生成目标神经网络的离线模型文件;第一处理器也可以获取任一目标神经网络的离线模型文件,根据该离线模型文件实现神经网络运算,用于对输入的图像数据、文本数据、语音数据等进行处理,从而实现模式识别、自动控制、预测估计等多种功能。第二处理器12可以在第一处理器进行神经网络运算过程中,接收第一处理器发送的与第二处理器相关的计算指令和输入数据,并返回计算结果,实现神经网络的部分网络层的运算。可以理解的是,上述第一处理器或第二处理器也可以独立实现上述神经网络运算。
本实施例中的目标神经网络的结构、离线模型文件的生成和运行均可以基于caffe等神经网络架构,也可以通过其他程序语言来进行架构。各种类型的神经网络可以由各种类型的网络层通过有向连接组合构建,包括但不限于卷积层、池化层、全连接层、激活层等网络层;每个网络层对应至少一个算子,例如激活层可以对应relu算子,卷积层可以对应卷积算子。一般地,在根据目标神经网络的离线模型文件进行神经网络运算时,离线模型文件中包括目标神经网络中各网络层的计算指令,因此处理器是逐网络层进行运算的,可以通过解析离线模型文件得到当前网络层的计算指令,然后输入当前网络层的上一网络层的输出数据,根据上述计算指令对上述输入的数据进行处理,得到当前网络层的输出数据。也就是说,每层运算时均需要进行至少一次输入操作和至少一次输出操作,存在运算速率低的问题。
本实施例的数据处理器方法应用于同构的电子设备中时,该同构的电子设备中的处理器可以通过将处理器支持的多个网络层尽可能的划分为一个子网络,在对该子网络进行编译时,可以对该子网络中的所有网络层的所有算子进行整体编译,得到该子网络的计算指令,并基于各子网络的计算指令生成目标神经网络的离线模型文件。本实施例的数据处理方法是基于上述目标神经网络的离线模型文件,在进行神经网络运算的过程中,至少针对上述子网络,可以将该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据,相比于逐层对该子网络中的各网络层进行运算所需的多个输出操作和多次输出操作而言,只需要进行一次输入操作和一次输出操作即可,提高了运算速率。
类似地,本实施例的数据处理方法应用于异构的电子设备中时,第一处理器或第二处理器均可以对该处理器支持的多个网络层进行上述的融合编译处理,也可以单由第二处理器对第二处理器支持的多个网络层进行上述的融合编译处理,第一处理器对第二处理器不支持的其它子网络可以进行逐层编译,均可生成上述离线模型文件;总之,上述方案均在本方法的保护范围之内。
在一个实施例中,如图1b所示,本申请实施例提供了一种数据处理方法,以该方法应用于图1a中的电子设备为例进行说明,上述方法包括以下步骤:
S101,获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性。
其中,目标神经网络的权值数据可以是训练好的权值数据,也可以是初始权值数据;所述目标神经网络的模型数据可以包括但不限于所述目标神经网络的输入数据、各子网络中的融合算子、各子网络的依赖关系(即有向连接关系或输出输出关系)等。
其中,每个所述子网络中的所述网络层具有相同的融合属性,每个子网络中的至少一个网络层能够被融合为一个网络层。即上述子网络可以对应一个融合算子,该融合算子中可以包括所述子网络中各网络层的算子;可以理解的是,各网络层的算子存在依赖关系,该依赖关系与各网络层的依赖关系一致。可选地,子网络中各个网络层的融合属性可以用于表示该网络层能否在第一处理器上运行,各个子网络的融合属性于其中的网络层的融合属性相同。子网络的融合属性可以用于表示该子网络能否在第一处理器上运行。
可选地,该子网络的融合属性可以包括第一融合属性,第一融合属性的子网络能够在第一处理器上运行。例如,当第一处理器支持该网络层的融合操作时,则该网络层的融合属性可以为第一融合属性。当第一处理器不支持该网络层的融合操作时,则该网络层的融合属性可以为第二融合属性。
S102,根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令。
具体地,上述权值数据为上述目标神经网络训练后的权值数据,也可以是预设的初始权值数据等,本实施例对此并不限制;上述权值数据可以包括各网络层的权值数据。
具体地,步骤S102可以包括:针对所述目标神经网络的第一融合属性的各子网络,从目标神经网络的模型数据中获取各子网络中的融合算子;获取所述子网络中各网络层的权值数据,并将所述子网络中各网络层的权值数据与所述子网络的融合算子中各网络层的算子绑定;对所述融合算子进行编译,得到各所述子网络的计算指令。进一步地,所述子网络的计算指令绑定有所述子网络的权值数据,即该子网络的计算指令与该子网络的权值数据可以对应存储。
更进一步地,电子设备可以根据各个子网络的执行顺序,对上述各个子网络的融合算子进行编译,获得各个子网络的计算指令。其中,电子设备可以获取所述目标神经网络中各个子网络之间的依赖关系,并根据所述各子网络之间的依赖关系,确定所述子网络之间的执行顺序。其中,该目标神经网络的各个子网络的依赖关系可以是预先存储于caffe中创建的目标对象中的。该各个子网络之间的依赖关系是指各个子网络之间的输入关系和输出关系。
可以理解的是,上述目标神经网络可以被划分为至少一个第一融合属性的子网络,以及除所述第一融合属性的子网络以外的其它网络层或子网络。在对第一融合属性的子网络进行编译操作过程中,电子设备可以对上述第一融合属性的子网络中的所有网络层的所有算子进行整体编译,得到各第一融合属性的子网络的计算指令。上述子网络的融合算子中包括该子网络的所有网络层的算子;而对该融合算子进行编译可以得到针对该融合算子的计算指令,即该子网络的计算指令,而无需对子网络中所有网络层的算子进行逐一编译,可以提高编译效率。
可选地,上述步骤S102还可以包括:针对对除所述第一融合属性的子网络以外的其它子网络或网络层,电子设备可以逐网络层进行编译,得到各网络层的计算指令;该网络层的计算指令可以绑定有所述网络层的权重数据。
S103,根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
具体地,在caffe中可以设置有离线模型文件,当电子设备获得该第一融合属性的子网络的计算指令时,可以将该第一融合属性的子网络的计算指令存储至离线模型文件中,从而获得该目标神经网络的离线模型。其中,该离线模型文件可以包括第一融合属性的子网络对应的计算指令。进一步可选地,该离线模型文件中还可以包括第一融合属性的子网络对应的权值数据,该权值数据与其计算指令对应存储。
可选地,电子设备可以根据各子网络的依赖关系,确定各子网络的执行顺序;并根据各子网络的执行顺序,将各子网络的计算指令添加到所述离线模型文件中。
在一个实施例中,所述离线模型文件可以包括离线模型数据域和子网络配置数据域;其中,离线模型数据域可以存储上述第一融合属性的各子网络的计算指令及权值数据,也可以存储其它网络层的计算指令及权值数据,各计算指令关联对应的权值数据。子网络配置数据域可以存储上述目标神经网络的模型数据,以及各子网络的划分数据,例如各子网络中包含的网络层,各子网络的索引,以及各子网络的目标处理器的标识等。可以理解的是,当所述第一融合属性的子网络所对应的目标处理器为所述第一融合属性关联的处理器,如上述示例中的人工智能处理器;其它子网络(可以是单个网络层构成的子网络)对应的目标处理器可以为上述示例中的通用处理器。
可选地,上述离线模型文件中还可以包括各个所述子网络的执行顺序,以便在根据所述各子网络的执行顺序进行神经网络运算。进一步地,上述各子网络的执行顺序的获取过程,包括:电子设备可以获取所述目标神经网络中各个子网络之间的依赖关系,并根据所述各子网络之间的依赖关系,确定所述子网络之间的执行顺序;具体地,若当前子网络中的至少一个网络层与其他子网络的至少一个网络层存在依赖关系时,则确定所述当前子网络与其他子网络具有依赖关系,从而确定各个子网络之间的依赖关系;根据各个所述子网络的依赖关系确定各个所述子网络的执行顺序。
其中,该目标神经网络的各个子网络的依赖关系可以是预先存储于caffe中创建的目标对象中的。该各个子网络之间的依赖关系是指各个子网络之间的输入关系和输出关系;子网络的执行顺序可以预先储存在caffe中创建的目标对象中。需要说明的是,上述子网络的执行顺序在离线模型文件中不是必须的,因为可以通过目标神经网络的模型数据得到各子网络的依赖关系,进而得到各子网络的执行顺序;当然,上述子网络的执行顺序也可以储存在模型数据中。
可选地,所述子网络的融合属性还可以包括第二融合属性,所述离线模型中还包括第二融合属性的子网络对应的计算指令。若所述第二融合属性的子网络表征所述子网络中所有网络层均可被通用处理器支持进行融合操作,则所述步骤S102还可以包括:根据所述第二融合属性的子网络的权值数据和所述第二融合属性的子网络的融合算子进行整体编译,得到第二融合属性的子网络。所述步骤S103可以包括:根据所述第一融合属性的子网络的计算指令和第二融合属性的子网络的计算指令生成离线模型文件。
进一步地,电子设备可以采用caffe中预设的离线模型生成工具,根据所述目标神经网络的各网络层的权值数据、所述各子网络的计算指令、所述目标神经网络的模型数据以及模型设置参数,生成离线模型文件。所述模型设置参数还可以包括应用平台参数,该应用平台参数表示该离线模型文件对应的人工智能处理器的平台类型。进一步地,该模型设置参数还可以包括以下内容中的至少一种:摆数顺序、硬件摆数的类型、模型并行度参数。其中,摆数顺序表示数据在硬件设备中的摆放顺序;硬件摆数的类型代表数据的摆放和数据的拆合的一种数据预处理的策略;模型并行度参数n可以表示n个处理器核并行处理一个离线模型文件;应用于平台参数表示该离线模型文件对应的人工智能处理器的平台类型。可选地,离线模型文件中可以预先设置有上述的摆数顺序、硬件摆数的类型以及模型并行度参数的数值。Caffe中还设置有离线模型修改接口,用户可以根据实际需要对上述参数的数值进行调整。上述诸多参数可以便于结构优化,以进一步提高离线模型文件的运行效率。在一种实施方式中,上述诸多参数可以保存在离线模型文件中,也可以保存在离线模型文件的相关文件中,如.twins文件。
本实施例的数据处理方法,针对子网络划分处理后的目标神经网络,所述目标神经网络被划分为至少一个第一融合属性的子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;电子设备可以在对第一融合属性的子网络进行编译时,可以对第一融合属性的子网络中的所有网络层的所有算子进行整体编译,得到第一融合属性的子网络的计算指令,然后根据各第一融合属性的子网络的计算指令,生成离线模型文件;基于上述方法生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对所述第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据;也就是说,至少针对该子网络而言,相比于逐层对该子网络中的各网络层进行编译所需的多个输出操作和多次输出操作而言,只需要进行一次输入操作和一次输出操作即可,提高了运算效率,进而提高了离线模型文件的生成效率及速度。
进一步的,基于上述方法生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对所述第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据,避免了对各个子网络的重复编译过程,可以进一步提高网络的效率;总之,基于上述方法生成的离线模型文件可以在进行神经网络运算时提高神经网络运算的运算速率。
可选地,在一个实施例中,参照图2所示,在图1b所示的数据处理方法的基础上,本实施例涉及对原始神经网络进行划分子网络处理,得到目标神经网络的过程,具体可以包括:
S201,获取所述目标神经网络对应的原始神经网络。
所述原始神经网络的模型数据可以包括但不限于所述原始神经网络的输入数据、各网络层中的配置信息、各网络层的依赖关系(即有向连接关系或输出输出关系)等,其中,网络层的配置信息至少可以包括该网络层的算子类型。
S202,根据所述原始神经网络中各个网络层的配置信息,确定所述各个网络层的融合属性。
具体地,各个网络层中的配置信息可以是各个网络层中融合函数等预先配置的信息,电子设备可以根据各个网络层中的融合函数,确定各个网络层的融合属性。
可选地,网络层的融合属性包括第一融合属性和第二融合属性,电子设备可以包括第一处理器和第二处理器。例如,电子设备可以预先判断各网络层是否可以被第一处理器支持进行融合操作。针对各网络层,可以在与该第一处理器关联的预设函数库中查找是否存在所述网络层的各算子的逻辑、用于融合算子的逻辑、以及用于调用各逻辑的接口,若存在该网络层中所有算子的的逻辑、用于融合算子的逻辑、以及用于调用各逻辑的接口,则确定第一处理器支持该网络层进行融合操作,该网络层的融合属性可以确定为第一融合属性。若不存在该网络层中任一算子的的逻辑或不存在用于融合算子的逻辑、或不存在调用任一逻辑的接口,则第一处理器不支持该网络层进行融合操作,该网络层的融合属性可以确定为第二融合属性。示例性地,上述预设函数库中存储有各类算子的逻辑代码,上述各类算子的逻辑代码经编译得到的指令可以为上述第一处理器所识别和执行。
进一步地,上述第一处理器可以为人工智能处理器,第二处理器可以为通用处理器。电子设备可以对所述网络层中的算子判断是否为人工智能处理器所支持,来确定所述网络层的融合属性。此外,在一种实施方式中,网络层的配置信息还可以包括该网络层的融合属性,则电子设备可以解析所述配置信息获的所述网络层的融合属性。
可选地,所述网络层的融合属性包括第一融合属性和第二融合属性;上述步骤S202可以包括:
获取各个网络层的预设的融合属性函数的返回值;
若所述网络层的返回值为第一返回值,则确定所述网络层的融合属性为第一融合属性;若所述网络层的返回值为第二返回值,则确定所述网络层的融合属性为第二融合属性。
示例性地,在各网络层中添加函数mfus_supported()中返回true或false表示是否支持融合操作,其中mfus_supported()为预先定义的融合属性函数,可以判断上述预设函数库中是否存在针对所述网络层的各算子的逻辑以及用于调用所述逻辑的接口,若是,返回true,即第一融合属性;若否,则返回false,即第二融合属性。示例性的,若某网络层中包括某些不常用的算子和某些较复杂的检测算子,则上述预设函数库中不存在相应逻辑和接口,则该网络层的中的mfus_supported()返回值为false,即该网络层为第二融合属性。示例性地,若上述预设函数库为人工智能处理器所关联的函数库,则人工智能处理器可以支持第一融合属性的子网络整体编译,而不支持第二融合属性的子网络整体编译;若上述预设函数库为通用处理器所关联的函数库,则通用处理器可以支持第一融合属性的子网络整体编译,而不支持第二融合属性的子网络整体编译。
S203,根据所述原始神经网络中各个网络层的融合属性及各个网络层的依赖关系,将具有相同融合属性的至少一个网络层融合为一个子网络。
具体地,当所述原始神经网络中各个网络层的融合属性全相同时,则所述原始神经网络中各个网络层可以融合为一个子网络。当所述原始神经网络中各个网络层的融合属性不全相同时,则所述原始神经网络中各个网络层可以融合为多个子网络。
可选地,可以通过各个网络层中设置的融合函数,将具有相同属性的至少一个网络层融合为一个子网络。进一步地,所述方法还可以包括:根据各个网络层中预设的融合函数,将所述子网络的各个网络层对应的算子添加至同一融合算子中。具体地,电子设备可以根据预先定义的融合类创建所述子网络的融合算子,并通过每一层的fuser()函数,将所述子网络中各网络层中的算子添加到所述融合算子中;示例性地,电子设备可以遍历所述子网络中的各网络层,将各网络层中的算子根据各网络层的拓扑排序按顺序添加到融合算子中。
在一个实施例中,上述步骤S203可以包括:
根据各个网络层的依赖关系,确定各个网络层的拓扑排序;
根据所述拓扑排序,若当前网络层的融合属性为第一融合属性,则在所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同时,将所述当前网络层与所述当前网络层的上一网络层划分为同一子网络;
根据所述拓扑排序,若所述当前网络层的融合属性为第二融合属性,则将所述当前网络层单独划分为一个子网络。
需要说明的是,所述网络层的上一网络层一般为该网络层的输入网络层,下一网络层为该网络层的输出网络层;而对拓扑排序中的各网络层而言,所述网络层的上一网络层为该网络层在拓扑排序中的上一网络层,所述网络层的下一网络层为该网络层在拓扑排序中的下一网络层。
可以理解的是,上述目标神经网络中的各子网络的网络层需符合拓扑排序;其中,各子网络的网络层符合拓扑排序具体是指:将目标神经网络中各网络层按照各网络层之间的有向连接关系排成一个线性序列,则对于任意一组存在有向连接关系的网络层U和网络层V而言(从网络层U指向网络层V),网络层U在线性序列中排列在网络层V之前;当该子网络为该线性序列中的某一段时,该子网络符合拓扑排序,如此,可以保证目标神经网络中该子网络和其它子网络或网络层之间的输入输出关系正常。
具体地,根据目标神经网络中各网络层之间的有向连接关系(输入输出关系),将目标神经网络中各网络层组成一个序列,对于任一组存在有向连接关系的两个网络层(输入层和输出层)而言,输入层在序列中位于输出层之前,可以根据各网络层在序列中的排列顺序进行编号,得到各网络层的索引,索引可以从小到大编号。从上述序列中的第一网络层开始,可以将所述第一网络层作为初始子网络,判断所述第一网络层的下一网络层是否与所述第一网络层的融合属性相同,若是,则将所述下一网络层添加到所述初始子网络中;若否,则将最终的初始子网络作为所述原始神经网络的一个子网络,并将所述下一网络层作为新的第一子网络,再次进行上述划分子网络的运算,直至遍历所述原始神经网络的所有网络层,得到划分的多个子网络。
参照图3所示,如果基于图的划分,将目标神经网络中各网络层看做网络层,根据各网络层之间的有向连接关系(在caffe中,各网络层之间通过blob类传递数据的,可以看做连接网络层的有向边),便得到了一个有向图;图中的网络层标记有融合属性,如网络层1,2,3,5的融合属性为第一融合属性,网络层4的融合属性为第二融合属性。如此,划分子网络的问题似乎可以转化成在这样的图中寻找具有相同属性的最大连通子图的过程,基于最大子图的划分会得到两个子网络:[1,2,3,5]和[4],但这种划分得到的子网络存在输入输出关系上的混乱,例如,网络层5会在网络层4之前计算,而网络层4和网络层5之间的有向连接关系为从网络层4指向网络层5,即网络层5的输入数据包括网络层4的输出数据,即不一定符合拓扑排序。
而在本申请中,通过上述各个网络层之间的依赖关系,可以首先确定各个网络层拓扑排序,例如,各个网络层的拓扑排序可以是:网络层1-网络层2-网络层3-网络层4-网络层5。然后根据拓扑排序进行子网划分。针对图3所示的原始神经网络,可以从索引为1的网络层1开始(即符合拓扑排序的第一网络层),将网络层1作为初始子网络,判断索引为2的网络层2(即符合拓扑排序的第二网络层)是否与网络层1的融合属性相同,因为二者融合属性相同,因此将网络层2加入网络层1所属的初始子网络中;接着判断索引为3的网络层3是否与网络层1的融合属性相同,因为二者融合属性相同,因此将网络层3加入网络层1所属的初始子网络中;接着判断索引为4的网络层4是否与网络层3的融合属性是否相同,因为二者融合属性不同,且网络层4的融合属性为第二融合属性,因此将最终的初始子网络[1,2,3]作为一个子网络,并将网络层4作为另一个初始子网络。进一步地,电子设备可以判断索引为5的网络层5是否与网络层4的融合属性相同,因为二者融合属性不同,因此将最终的初始子网络[4]作为一个子网络,以及将仅剩的网络层5作为一个子网络,即划分得到三个子网络:[1,2,3]、[4]和[5]。
基于此,原始神经网络将被划分成下表中的三个子网络:
子网络 | 包含的层的索引 |
subnet[0] | 1,2,3 |
subnet[1] | 4 |
subnet[2] | 5 |
此处示例上述的另一种符合拓扑排序的子网络划分方法,针对图3所示的原始神经网络,可以从索引为2的网络层2开始,当网络层2的融合属性为第一融合属性,且网络层2的融合属性与所述网络层2的上一网络层(网络层1)的融合属性相同,则网络层2与网络层1划分为同一子网络;当网络层3的融合属性为第一融合属性,且网络层3的融合属性与所述网络层3的上一网络层(网络层2)的融合属性相同,则网络层3与网络层2划分为同一子网络;当网络层4的融合属性为第二融合属性,则网络层4单独划分为一个子网络;网络层5的融合属性为第一融合属性,且网络层5的融合属性与所述网络层5的上一网络层(网络层4)的融合属性不同,则网络层5单独划分为一个子网络。
在一个实施例中,参照图4所示,上述步骤S203可以包括:
S401,根据各个网络层的依赖关系,确定各个网络层的拓扑排序;
S402,根据所述拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则所述当前网络层与所述当前网络层的上一网络层属于同一子网络;
S403,根据所述拓扑排序,若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不同,则所述当前网络层与所述当前网络层的上一网络层属于不同的子网络。
示例性地,通过上述各个网络层之间的依赖关系,可以首先确定各个网络层拓扑排序,例如,各个网络层的拓扑排序可以是:网络层1-网络层2-网络层3-网络层4-网络层5,其中,网络层1、2、5的融合属性为第一融合属性,网络层3、4的融合属性为第二融合属性。则可以将网络层1和2划分为一个子网络,将网络层3和4划分为一个子网络,将网络层5划分为一个子网络。
可选地,所述方法还包括存储子网络的划分结果的过程,具体可以包括:创建各个所述子网络的网络标识与所述各个所述子网络包含的至少一个网络层的标识的对应关系,存储并显示所述对应关系;存储并显示各个子网络对应的目标处理器。具体地,电子设备将所述对应关系以表格或网络结构图的方式进行显示。其中,该子网络的网络标识可以用于区别不同的子网络,进一步地,该子网络标识还可以用于表示该子网络的拓扑排序。可选地,该子网络标识可以是子网络的索引,该子网络的索引可以是顺次编写的数字或字母等等,此处不做具体限定。更进一步地,该子网络的网络标识与各个子网络的网络层的标识的对应关系可以参见上表所示。再进一步地,在生成离线模型的过程中,上述对应关系可以进行显示,以便用户获知上述对应关系。
进一步地,还可以存储各个子网络对应的目标处理器,该目标处理器可以是第一存储器和第二存储器。可选地,该第一处理器可以是人工智能处理器,该第二处理器可以为通用处理器。当该子网络的融合属性为第一融合属性时,则确定该子网络的目标处理器为第一处理器,并将该目标处理器的标识与该子网络的标识对应存储并显示,以便用户获知该子网络对应的处理器信息。当该子网络的融合属性为第二融合属性时,则确定该子网络的目标处理器为第二处理器,并将该目标处理器标识与该子网络的标识对应存储并显示,以便用户获知该子网络对应的处理器信息。
本实施例的数据处理方法中,可以根据原始神经网络的各网络层的配置信息,确定所述各网络层的融合属性,并根据所述各网络层的融合属性和各网络层的依赖关系,对所述原始神经网络进行子网络划分处理,得到子网络划分处理后的目标神经网络。
在一个实施例中,如图5a所示,本申请实施例还提供了一种数据处理方法,该数据处理方法可以直接根据离线模型文件实现目标神经网络的相关运算,而无需对该目标神经网络中的各个子网络进行重复的编译。具体地,所述方法包括:
S501,获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令。
可以理解的是,上述目标神经网络的离线模型文件为上述任一的数据处理方法所生成的离线模型文件;当然,上述离线模型文件可以为其它电子设备生成的,本实施例的电子设备可以获取上述离线模型文件并执行运算。关于上述步骤S501的描述可以参照以上实施例中的描述,这里不再赘述。
S502,根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
电子设备可以解析上述离线模型文件,得到上述离线模型文件中的第一融合属性的各子网络的计算指令、除所述第一融合属性的子网络以外的其它网络层的计算指令,还可以获取计算指令所绑定的各子网络的权值数据,以及各子网络或网络层的依赖关系。
具体地,若所述子网络的融合属性包括第一融合属性和第二融合属性,所述方法还包括如下步骤:若所述子网络的融合属性为第一融合属性,则确定所述子网络对应的目标处理器为第一处理器;若所述子网络的融合属性为第二融合属性,则确定所述子网络对应的目标处理器为第二处理器。其中,上述第一处理器可以为人工智能处理器,第二处理器可以为通用处理器。当然,在其他实施例中,第一处理器和第二处理器可以均为通用处理器。
进一步地,离线模型文件中可以包括第一融合属性的子网络对应的计算指令,以及第二融合属性的子网络对应的计算指令。上述第一融合属性的子网络的计算指令可以由人工智能处理器识别并执行,第二属性的子网络的计算指令可以由通用处理器识别并执行。可选地,第二融合属性的子网络的计算指令由电子设备逐网络层进行编译获得,即离线模型文件中包含具有第二融合属性的各个网络层对应的计算指令。当然,该第二融合属性的子网络的计算指令可以由多个第二融合属性的网络层融合后整体编译获得。
具体地,上述步骤S502可以包括:
当所述子网络的融合属性为第一融合属性时,则根据所述所述第一融合属性的子网络的权值数据和所述离线模型文件中所述第一融合属性的子网络的计算指令进行运算,得到所述第一融合属性的子网络的输出结果。
当所述子网络的融合属性为第二融合属性时,则根据所述第二融合属性的子网络的权值数据和所述离线模型文件中所述第二融合属性的子网络的计算指令进行运算,获得所述第二融合属性的子网络的输出结果。
示例性地,当第一融合属性关联人工智能处理器时,在对上述第一融合属性的子网络进行运算的过程中,电子设备可以调用与所述人工智能处理器,根据上述第一融合属性的子网络的计算指令和该子网络的上一网络层的输出数据进行处理,得到人工智能处理器返回的处理结果,即该子网络的输出数据;该子网络的输出数据可以包括所述子网络中各网络层的输出数据。
类似地,在对目标神经网络中除上述第一融合属性的子网络以外的其它子网络或网络层进行运算时,电子设备可以调用通用处理器逐网络层进行运算,即针对各网络层,根据目标神经网络中该网络层的上一网络层的输出数据和该网络层的计算指令,得到该网络层的输出数据;该网络层的输出数据可以作为目标神经网络中该网络层的下一网络层的输入数据。可以理解的是,若上述网络层是第一融合属性,可以调用人工智能处理器处理该网络层的运算;若上述网络层不是第一融合属性,则可以由中央处理器等通用处理器执行。
需要说明的是,所述网络层的上一网络层一般为该网络层的输入网络层,下一网络层为该网络层的输出网络层;而对拓扑排序中的各网络层而言,所述网络层的上一网络层为该网络层在拓扑排序中的上一网络层,所述网络层的下一网络层为该网络层在拓扑排序中的下一网络层。
本实施例的数据处理方法,基于上述数据处理方法生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据;也就是说,至少针对该子网络而言,相比于逐层对该子网络中的各网络层进行运算所需的多个输出操作和多次输出操作而言,只需要进行一次输入操作和一次输出操作即可,提高了运算速率。
此外,基于caffe的角度,对本实施例中的数据处理方法进行详细描述,参见如下:
在caffe中,目标神经网络的配置信息可以体现为caffe中目标神经网络的配置文件prototxt,上述融合属性也可以在caffe的数据结构文件caffe.proto中预先定义;caffe可以根据目标神经网络的配置文件创建net(网络)对象并初始化,以及通过权重文件weighs.caffemodel获取目标神经网络的权值数据;再创建一个subnet(子网络)对象并初始化,用于存放所有划分的子网络对象;然后创建spliter类(分离)对象,调用spliter类对象的split方法,该类用于对目标神经网络进行划分子网络处理,得到至少一个subnet对象,存入subnets集合;创建spliter类时可以根据各网络层之间的有向连接关系构建图graph,通过对subnets集合解析得到图中graph中各子网络之间的输入输出关系,并添加到subnets对象中。对创建的net对象(目标神经网络)进行融合算子和编译的操作,针对人工智能处理器支持的subnet对象(即第一融合属性的子网络),通过预先定义的fusion类创建一个针对该subnet对象的融合算子的对象,然后遍历所述subnet对象中的所有网络层,通过所述subnet对象中每一网络层中预先定义的fuser()函数,将该网络层所使用的算子全部添加至该融合算子,然后编译融合算子,得到融合算子对应的该subnet对象的第一类计算指令,并添加至该subnet对象中;将预设的生成离线模型文件的工具融入到“caffe”中,使用类似与“test”的“genoff”命令生成离线模型文件,如offline.cambricon,模型的名字、文件名均通过参数“-mname NAME”来指定,下图为离线模型文件生成工具使用命令:
caffe genoff-model deploy.prototxt-weights weights.caffemodel
-mname model_name-mcore core_type-hd_reshape 3
-model_parallel 4
其中,“deploy.prototxt”为划分子网络处理过和编译过的目标神经网络的配置文件,包括子网络配置信息和计算指令;“core_type”为应用平台参数;“hd_reshape 3”为硬摆数顺序;“model_parallel 4”为模型并行度参数。
在生成离线模型文件时,可以通过预设的日志生成机制生成日志信息;日志信息可以包括:
·某个子网络在第二处理器(如CPU)还是在第一处理器(如人工智能处理器)上运行。对于在第二处理器(如CPU)上运行的子网络,需要手动编写运算的方法。当然,作为进一步的改进,在第二处理器(如CPU)上运行的子网络(即第二融合属性的子网络)的计算指令也可以包含于离线模型文件中,从而使得该在第二处理器(如CPU)上运行的子网络也无需重复编译。
·某个子网络的编号索引,索引可以从0开始递增;
·某个子网络中包含的网络层的名称;
·某个子网络的输入输出Blob名称,这些Blob名称与配置文件prototxt中各网络层中Blob的名称一致。
可以理解的是,上述的caffe可以为caffe的各类适用版本。
通常,需要在caffe的数据结构文件caffe.proto中定义序列化信息,来管理离线模型文件,可以将离线模型文件中的各信息以序列化信息的格式读入到caffe中。
相应地,参照图5b所示,为离线模型文件在caffe中的定义的格式,其中messageModelInfo作为整体的域,其中包含基础的Offlinecontent,即离线模型数据,SegmenInfo分段信息,以及其它扩展信息。
此外,caffe中存在分类示例程序cpp_classification,即一个分类较为准确的参照神经网络模型,可以分别针对参照神经网络模型和本实施例的离线模型文件,通过对相同的输入数据进行分类处理,并对比得到的处理结果,来判断离线模型文件的准确性。
应该理解的是,虽然图1b,2,4,5b的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1b,2,4,5b中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种数据处理装置,包括:网络数据获取模块61、编译模块62和离线模型文件生成模块63,其中:
网络数据获取模块61,用于获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
编译模块62,用于根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
离线模型文件生成模块63,用于根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
可选地,参照图7所示,在上述图6的基础上,所述装置还可以包括:
原始网络获取模块64,用于获取所述目标神经网络对应的原始神经网络;
融合属性确定模块65,用于根据所述原始神经网络中各个网络层的配置信息,确定所述各个网络层的融合属性;
子网络划分模块66,用于根据所述原始神经网络中各个网络层的融合属性及各个网络层的依赖关系,将具有相同融合属性的至少一个网络层融合为一个子网络。
可选地,所述网络层的融合属性包括第一融合属性和第二融合属性;所述融合属性确定模块65可以包括:
函数值返回单元,用于获取各个网络层的预设的融合属性函数的返回值;
第一融合属性确定单元,用于若所述网络层的返回值为第一返回值,则确定所述网络层的融合属性为第一融合属性;
第二融合属性确定单元,用于若所述网络层的返回值为第二返回值,则确定所述网络层的融合属性为第二融合属性。
可选地,所述子网络划分模块66具体用于根据各个网络层的依赖关系,确定各个网络层的拓扑排序;根据所述拓扑排序,若当前网络层的融合属性为第一融合属性,则在所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同时,将所述当前网络层与所述当前网络层的上一网络层划分为同一子网络;根据所述拓扑排序,若所述当前网络层的融合属性为第二融合属性,则将所述当前网络层单独划分为一个子网络。
可选地,所述子网络划分模块66具体还用于根据各个网络层的依赖关系,确定各个网络层的拓扑排序;根据所述拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则所述当前网络层与所述当前网络层的上一网络层属于同一子网络;根据所述拓扑排序,若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不同,则所述当前网络层与所述当前网络层的上一网络层属于不同的子网络。
可选地,参照图7所示,所述装置还包括:
算子融合模块67,根据各个网络层中预设的融合函数,将所述子网络的各个网络层对应的算子添加至同一融合算子中。
可选地,各个所述子网络的执行顺序,以及各个所述子网络包含的网络层信息存储于caffe中创建的目标对象中。
可选地,所述子网络的融合属性还包括第二融合属性,所述离线模型中还包括第二融合属性的子网络对应的计算指令。
可选地,所述装置还可以包括:
子网络关系保存模块,用于创建各个所述子网络的网络标识与所述各个所述子网络包含的至少一个网络层的标识的对应关系,存储并显示所述对应关系;
目标处理器关系保存模块,用于存储并显示各个子网络对应的目标处理器。
本实施例的数据处理装置,针对子网络划分处理后的目标神经网络,所述目标神经网络被划分为至少一个第一融合属性的子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;电子设备可以在对第一融合属性的子网络进行编译时,可以对第一融合属性的子网络中的所有网络层的所有算子进行整体编译,得到第一融合属性的子网络的计算指令,然后根据各第一融合属性的子网络的计算指令,生成离线模型文件;基于上述方法生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对所述第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据;也就是说,至少针对该子网络而言,相比于逐层对该子网络中的各网络层进行编译所需的多个输出操作和多次输出操作而言,只需要进行一次输入操作和一次输出操作即可,提高了运算效率,进而提高了离线模型文件的生成效率及速度。
进一步的,基于上述方法生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对所述第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据,避免了对各个子网络的重复编译过程,可以进一步提高网络的效率;总之,基于上述装置生成的离线模型文件可以在进行神经网络运算时提高神经网络运算的运算速率。
在一个实施例中,如图8所示,提供了一种数据处理装置,包括:离线模型文件获取模块81和运算模块82,其中:
离线模型文件获取模块81,用于获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;
运算模块82,用于根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
可选地,所述子网络的融合属性包括第一融合属性,所述离线模型文件中包括第一融合属性的子网络对应的计算指令;所述运算模块82可以包括:
第一运算单元,用于当所述子网络的融合属性为第一融合属性时,则根据所述所述第一融合属性的子网络的权值数据和所述离线模型文件中所述第一融合属性的子网络的计算指令进行运算,得到所述第一融合属性的子网络的输出结果。
可选地,所述子网络的融合属性还包括第二融合属性;所述离线模型文件还包括第二融合属性的子网络对应的计算指令;所述运算模块82还可以包括:
第二运算单元,用于当所述子网络的融合属性为第二融合属性时,则根据所述第二融合属性的子网络的权值数据和所述离线模型文件中所述第二融合属性的子网络的计算指令进行运算,获得所述第二融合属性的子网络的输出结果。
进一步地,所述装置还可以包括:
第一目标处理器确定模块,用于若所述子网络的融合属性为第一融合属性,则确定所述子网络对应的目标处理器为人工智能处理器,所述人工智能处理器能够实现所述第一融合属性的子网络的运算;
第二目标处理器确定模块,用于若所述子网络的融合属性为第二融合属性,则确定所述子网络对应的目标处理器为通用处理器,所述通用处理器能够实现所述第二融合属性的子网络的运算。
本实施例的数据处理装置,基于上述数据处理装置生成的离线模型文件,可以在对目标神经网络进行运算时,至少针对第一融合属性的子网络,可以根据该子网络的输入数据和该子网络的计算指令得到该子网络的输出数据;也就是说,至少针对该子网络而言,相比于逐层对该子网络中的各网络层进行运算所需的多个输出操作和多次输出操作而言,只需要进行一次输入操作和一次输出操作即可,提高了运算速率。
关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,同样。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
此外,该处理器执行计算机程序时实现以下步骤:
获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;
根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
可选地,所述处理器包括第一处理器和第二处理器,所述第一处理器为人工智能处理器,所述第二处理器为通用处理器。
所述电子设备可以但不限于是数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在一个实施例中,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;
根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
此外,该计算机程序被处理器执行时可以实现以下步骤:
获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;
根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种数据处理方法,其特征在于,所述方法包括:
划分子网络以获得目标神经网络,其中,所述划分子网络的操作包括:根据原始神经网络中各个网络层的拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则确定所述当前网络层与所述当前网络层的上一网络层属于同一子网络;若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不相同,则确定所述当前网络层与所述当前网络层的上一网络层不属于同一子网络;各个网络层的融合属性可以用于表示该网络层能否在第一处理器上运行;
获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;所述第一融合属性的网络层能够在所述第一处理器上运行;
根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括如下步骤:
获取所述目标神经网络对应的原始神经网络;
根据所述原始神经网络中各个网络层的配置信息,确定所述各个网络层的融合属性;
根据各个网络层的依赖关系,确定各个网络层的拓扑排序,以根据所述拓扑排序将具有相同融合属性的至少一个网络层融合为一个子网络。
3.根据权利要求2所述的方法,其特征在于,所述网络层的融合属性包括第一融合属性和第二融合属性;所述根据所述原始神经网络中各个网络层的配置信息,确定所述各个网络层的融合属性的步骤,包括:
获取各个网络层的预设的融合属性函数的返回值;
若所述网络层的返回值为第一返回值,则确定所述网络层的融合属性为第一融合属性;
若所述网络层的返回值为第二返回值,则确定所述网络层的融合属性为第二融合属性。
4.根据权利要求3所述的方法,其特征在于,所述根据各个网络层的依赖关系,确定各个网络层的拓扑排序,以根据所述拓扑排序将具有相同融合属性的至少一个网络层融合为一个子网络的步骤,包括:
根据所述拓扑排序,若当前网络层的融合属性为第一融合属性,则在所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同时,将所述当前网络层与所述当前网络层的上一网络层划分为同一子网络;
根据所述拓扑排序,若所述当前网络层的融合属性为第二融合属性,则在所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不相同时,将所述当前网络层单独划分为一个子网络。
5.根据权利要求3所述的方法,其特征在于,所述根据各个网络层的依赖关系,确定各个网络层的拓扑排序,以根据所述拓扑排序将具有相同融合属性的至少一个网络层融合为一个子网络的步骤,包括:
根据所述拓扑排序,若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不同,则所述当前网络层与所述当前网络层的上一网络层属于不同的子网络。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
根据各个网络层中预设的融合函数,将所述子网络的各个网络层对应的算子添加至同一融合算子中。
7.根据权利要求1-5任一项所述的方法,其特征在于,各个所述子网络的执行顺序,以及各个所述子网络包含的网络层信息存储于caffe中创建的目标对象中。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述子网络的融合属性还包括第二融合属性,所述离线模型中还包括第二融合属性的子网络对应的计算指令。
9.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
创建各个所述子网络的网络标识与所述各个所述子网络包含的至少一个网络层的标识的对应关系,存储并显示所述对应关系;
存储并显示各个子网络对应的目标处理器。
10.一种数据处理方法,其特征在于,所述方法包括:
获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;其中,所述目标神经网络是基于子网络划分获得的,所述划分子网络的操作包括:根据原始神经网络中各个网络层的拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则确定所述当前网络层与所述当前网络层的上一网络层属于同一子网络;若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不相同,则确定所述当前网络层与所述当前网络层的上一网络层不属于同一子网络;各个网络层的融合属性可以用于表示该网络层能否在第一处理器上运行;所述各个子网络的融合算子对应的计算指令为根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译获得;
根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
11.根据权利要求10所述的方法,其特征在于,所述子网络的融合属性包括第一融合属性,所述离线模型文件中包括第一融合属性的子网络对应的计算指令;所述的根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果的步骤,包括:
当所述子网络的融合属性为第一融合属性时,则根据所述第一融合属性的子网络的权值数据和所述离线模型文件中所述第一融合属性的子网络的计算指令进行运算,得到所述第一融合属性的子网络的输出结果。
12.根据权利要求10所述的方法,其特征在于,所述子网络的融合属性还包括第二融合属性;所述离线模型文件还包括第二融合属性的子网络对应的计算指令;所述根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果的步骤,还包括:
当所述子网络的融合属性为第二融合属性时,则根据所述第二融合属性的子网络的权值数据和所述离线模型文件中所述第二融合属性的子网络的计算指令进行运算,获得所述第二融合属性的子网络的输出结果。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括如下步骤:
若所述子网络的融合属性为第一融合属性,则确定所述子网络对应的目标处理器为人工智能处理器,所述人工智能处理器能够实现所述第一融合属性的子网络的运算;
若所述子网络的融合属性为第二融合属性,则确定所述子网络对应的目标处理器为通用处理器,所述通用处理器能够实现所述第二融合属性的子网络的运算。
14.一种数据处理装置,其特征在于,所述装置包括:
子网络划分模块,用于根据原始神经网络中各个网络层的拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则确定所述当前网络层与所述当前网络层的上一网络层属于同一子网络;若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不相同,则确定所述当前网络层与所述当前网络层的上一网络层不属于同一子网络;其中,各个网络层的融合属性可以用于表示该网络层能否在第一处理器上运行;
网络数据获取模块,用于获取目标神经网络的模型数据和权值数据,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述子网络的融合属性包括第一融合属性;所述第一融合属性的网络层能够在在所述第一处理器上运行;
编译模块,用于根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译,获得各个子网络的计算指令;
离线模型文件生成模块,用于根据所述第一融合属性的子网络的计算指令生成离线模型文件;所述离线模型文件中包括第一融合属性的子网络对应的计算指令。
15.一种数据处理装置,其特征在于,所述装置包括:
离线模型文件获取模块,用于获取目标神经网络的模型数据和所述目标神经网络的离线模型文件,其中,所述目标神经网络包括至少一个子网络,每个所述子网络中包含至少一个网络层,每个所述子网络中的所述网络层具有相同的融合属性,至少一个所述网络层的算子被融合为一个融合算子;所述离线模型文件包括各个子网络的融合算子对应的计算指令;其中,所述目标神经网络是基于子网络划分获得的,所述划分子网络的操作包括:根据原始神经网络中各个网络层的拓扑排序,若当前网络层的融合属性与所述当前网络层的上一网络层的融合属性相同,则确定所述当前网络层与所述当前网络层的上一网络层属于同一子网络;若所述当前网络层的融合属性与所述当前网络层的上一网络层的融合属性不相同,则确定所述当前网络层与所述当前网络层的上一网络层不属于同一子网络;各个网络层的融合属性可以用于表示该网络层能否在第一处理器上运行;所述各个子网络的融合算子对应的计算指令为根据所述目标神经网络的权值数据和模型数据对所述各子网络的融合算子进行整体编译获得;
运算模块,用于根据所述模型数据和所述离线模型文件中各子网络的计算指令进行运算,得到输出结果。
16.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述方法的步骤。
17.根据权利要求16所述的电子设备,其特征在于,所述处理器包括第一处理器和第二处理器,所述第一处理器为人工智能处理器,所述第二处理器为通用处理器。
18.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645778.2A CN109697500B (zh) | 2018-12-29 | 2018-12-29 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645778.2A CN109697500B (zh) | 2018-12-29 | 2018-12-29 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109697500A CN109697500A (zh) | 2019-04-30 |
CN109697500B true CN109697500B (zh) | 2020-06-09 |
Family
ID=66232368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811645778.2A Active CN109697500B (zh) | 2018-12-29 | 2018-12-29 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697500B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309917B (zh) * | 2019-07-05 | 2020-12-18 | 安徽寒武纪信息科技有限公司 | 离线模型的验证方法及相关装置 |
CN111027688A (zh) * | 2019-10-21 | 2020-04-17 | 浙江省北大信息技术高等研究院 | 一种基于fpga的神经网络计算器生成方法及装置 |
WO2021120177A1 (zh) * | 2019-12-20 | 2021-06-24 | 华为技术有限公司 | 编译神经网络模型的方法和装置 |
CN113554164A (zh) * | 2020-04-24 | 2021-10-26 | 上海商汤智能科技有限公司 | 神经网络模型的优化、数据处理方法及装置、存储介质 |
CN112069456A (zh) * | 2020-09-21 | 2020-12-11 | 北京明略昭辉科技有限公司 | 一种模型文件的生成方法、装置、电子设备及存储介质 |
CN112506523A (zh) * | 2020-12-21 | 2021-03-16 | 上海携旅信息技术有限公司 | Bert模型的优化方法及系统、电子设备及存储介质 |
CN112686378A (zh) * | 2020-12-23 | 2021-04-20 | 展讯通信(上海)有限公司 | 神经网络的计算部署方法及装置、存储介质、计算机设备 |
CN113570030B (zh) * | 2021-01-18 | 2024-05-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN114118389B (zh) * | 2022-01-28 | 2022-05-10 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、设备及存储介质 |
CN116629330B (zh) * | 2023-04-24 | 2024-04-16 | 北京大学 | 一种算子检测方法、装置以及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924322B2 (en) * | 2012-06-15 | 2014-12-30 | International Business Machines Corporation | Multi-processor cortical simulations with reciprocal connections with shared weights |
CN105378762A (zh) * | 2014-04-08 | 2016-03-02 | 微软技术许可有限责任公司 | 使用交替方向乘子法的深度学习 |
CN107533664A (zh) * | 2015-03-26 | 2018-01-02 | 英特尔公司 | 通过分解的神经网络分类 |
CN107832839A (zh) * | 2017-10-31 | 2018-03-23 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的运算的方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284825B (zh) * | 2016-04-29 | 2020-04-14 | 中科寒武纪科技股份有限公司 | 用于执行lstm运算的装置和方法 |
CN106845631B (zh) * | 2016-12-26 | 2020-05-29 | 上海寒武纪信息科技有限公司 | 一种流执行方法及装置 |
WO2018121472A1 (zh) * | 2016-12-28 | 2018-07-05 | 上海寒武纪信息科技有限公司 | 一种运算方法 |
CN108694441B (zh) * | 2017-04-07 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 一种网络处理器和网络运算方法 |
CN108734288B (zh) * | 2017-04-21 | 2021-01-29 | 上海寒武纪信息科技有限公司 | 一种运算方法及装置 |
CN108734279B (zh) * | 2017-04-20 | 2021-04-23 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
CN107578014B (zh) * | 2017-09-06 | 2020-11-03 | 上海寒武纪信息科技有限公司 | 信息处理装置及方法 |
-
2018
- 2018-12-29 CN CN201811645778.2A patent/CN109697500B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924322B2 (en) * | 2012-06-15 | 2014-12-30 | International Business Machines Corporation | Multi-processor cortical simulations with reciprocal connections with shared weights |
CN105378762A (zh) * | 2014-04-08 | 2016-03-02 | 微软技术许可有限责任公司 | 使用交替方向乘子法的深度学习 |
CN107533664A (zh) * | 2015-03-26 | 2018-01-02 | 英特尔公司 | 通过分解的神经网络分类 |
CN107832839A (zh) * | 2017-10-31 | 2018-03-23 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的运算的方法和装置 |
Non-Patent Citations (3)
Title |
---|
"Bridge the Gap between Neural Networks and Neuromorphic Hardware with a Neural Network Compiler";Yu Ji;《ASPLOS "18: Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems》;20180331;第448-460页 * |
"Reconfigurable network-on-chip for 3D neural network accelerators";Arash Firuzan et al.;《NOCS "18: Proceedings of the Twelfth IEEE/ACM International Symposium on Networks-on-Chip》;20181031;第1-8页 * |
"深度神经网络并行化研究综述";朱虎明 等;《计算机学报》;20180831;第41卷(第8期);第1861-1881页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109697500A (zh) | 2019-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109697500B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109754073B (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
EP2801906B1 (en) | Source code flow analysis using information retrieval | |
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US11055210B2 (en) | Software test equipment and software testing method | |
CN112036577B (zh) | 基于数据形式的应用机器学习的方法、装置和电子设备 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN110580189A (zh) | 生成前端页面的方法、装置、计算机设备以及存储介质 | |
CN109063295A (zh) | 基于cae模型的节点信息优化处理方法和装置 | |
CN112965710B (zh) | 计算图的处理方法、装置和系统 | |
CN109308258A (zh) | 测试数据的构造方法、装置、计算机设备和存储介质 | |
CN115240048A (zh) | 面向图像分类的深度学习的算子定位融合方法及装置 | |
CN106294129A (zh) | 代码覆盖率测试方法及装置 | |
CN114118770A (zh) | 一种指标计算方法及装置 | |
CN114258035B (zh) | 通信方法及装置、系统 | |
CN106294530A (zh) | 规则匹配的方法和系统 | |
CN113299380A (zh) | 基于智慧医疗大数据的信息提示方法及智慧医疗服务系统 | |
CN112559343A (zh) | 测试路径生成方法及相关设备 | |
CN103853554A (zh) | 一种软件重构位置确定方法及装置 | |
CN113377419B (zh) | 一种业务处理方法、装置、可读存储介质及电子设备 | |
CN109491892B (zh) | 一种项目环境的配置方法和装置 | |
CN115994086A (zh) | 图像处理方法及装置、存储介质、终端 | |
CN117389659B (zh) | 一种面向工业软件的方法库管理方法及装置 | |
CN115564322B (zh) | 一种业务处理方法、装置、电子设备及存储介质 | |
CN118551751B (zh) | 基于大语言模型的多智能体协同方法、装置、设备及介质 |
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 | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |