CN109919308A - 一种神经网络模型部署方法、预测方法及相关设备 - Google Patents
一种神经网络模型部署方法、预测方法及相关设备 Download PDFInfo
- Publication number
- CN109919308A CN109919308A CN201711330928.6A CN201711330928A CN109919308A CN 109919308 A CN109919308 A CN 109919308A CN 201711330928 A CN201711330928 A CN 201711330928A CN 109919308 A CN109919308 A CN 109919308A
- Authority
- CN
- China
- Prior art keywords
- layer
- network
- network model
- neural network
- target
- 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.)
- Granted
Links
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
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
Abstract
本发明实施例提供一种神经网络模型部署方法、预测方法及相关设备,该方法包括:读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;以Net类连接各目标网络层;将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。本发明实施例可实现神经网络模型至终端设备的部署,并提升神经网络模型至终端设备部署的通用性。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种神经网络模型部署方法、预测方法及相关设备。
背景技术
神经网络,特别是卷积神经网络(CNN,Convolutional Neural Network),作为深度学习的一个重要分支,已成为语音分析、图像识别等领域的研究热点。神经网络的实际应用一般分为神经网络模型训练,和神经网络模型预测。
神经网络模型训练可以理解为是,基于大量的样本数据,对神经网络的参数进行学习和调整,得到需求功能的神经网络模型;神经网络模型预测可以理解为是,依据训练好的神经网络模型对预测输入数据进行运算,确定预测结果(如分类或识别结果),实现需求功能。
一般而言,神经网络模型训练是在服务器进行,并部署在服务器,这就使得神经网络模型预测需由终端设备和服务器协同进行,如神经网络模型训练好后,由终端设备获取预测输入数据并提交到服务器,由在服务器部署的神经网络模型进行神经网络模型预测,这无疑导致神经网络模型预测对速度和实时性的要求满足存在一定的困难;因此如何改进神经网络模型的部署方式,以为提升神经网络模型预测的速度和实时性提供基础,成为了本领域技术人员需要考虑的问题。
发明内容
有鉴于此,本发明实施例提供一种神经网络模型部署方法、预测方法及相关设备,以将神经网络模型部署在终端设备,为提升神经网络模型预测的速度和实时性提供基础,并且所提供的神经网络模型部署方法具有通用性高的特点。
为实现上述目的,本发明实施例提供如下技术方案:
一种神经网络模型部署方法,包括:
读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
以Net类连接各目标网络层;
将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
本发明实施例还提供一种神经网络模型预测方法,包括:
通过终端设备的数据输入装置,获取预测输入数据;
调用终端设备预部署的神经网络模型;
将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
本发明实施例还提供一种神经网络模型部署装置,包括:
读取模块,用于读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
目标网络层实现模块,用于分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
网络层连接模块,用于以Net类连接各目标网络层;
格式转换模块,用于将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
参数加载模块,用于分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
本发明实施例还提供一种神经网络模型预测装置,包括:
数据获取模块,用于通过终端设备的数据输入装置,获取预测输入数据;
模型调用模块,用于调用终端设备预部署的神经网络模型;
模型处理模块,用于将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
本发明实施例还提供一种终端设备,包括:至少一个存储器和至少一个图形处理器;所述存储器存储有程序,所述图形处理器调用所述存储器存储的程序时,实现上述所述的神经网络模型部署方法的各个步骤。
本发明实施例还提供一种存储介质,所述存储介质存储有适于图形处理器执行的程序,所述程序被所述图形处理器执行时,实现上述所述的神经网络模型部署方法的各个步骤。
本发明实施例还提供一种终端设备,包括:至少一个存储器和至少一个图形处理器;所述存储器存储有程序,所述图形处理器调用所述存储器存储的程序时,实现上述所述的神经网络模型预测方法的各个步骤。
基于上述技术方案,本发明实施例提供的神经网络模型部署方法,基于所定义的适于终端设备的神经网络模型的框架主体,以Layer类对初始神经网络模型的各网络层进行重定义,得到继承自Layer类的各目标网络层;并且通过Net类连接各目标网络层,在各目标网络层中加载转换为预定格式的相应的目标运行参数,得到目标神经网络模型。Layer类是一个抽象类,本发明实施例通过将Layer类作为目标神经网络模型的各目标网络层的基类,从而对于不同学习框架训练的初始神经网络模型,在将初始神经网络模型部署至终端设备上时,可使用本发明实施例提供的框架主体,以Layer类为目标网络层的基类进行初始神经网络模型的各网络层的重定义,并以Net类连接重定义的各目标网络层,实现不同学习框架训练的初始神经网络模型至终端设备的通用部署,从而在进行神经网络模型预测时,可直接基于终端设备部署的神经网络模型实现神经网络模型预测,为提升神经网络模型预测的速度和实时性提供了基础;同时,本发明实施例可对不同学习框架训练的神经网络模型进行至终端设备的通用部署,降低了神经网络模型至终端设备部署的使用局限,提升了神经网络模型部署的通用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的神经网络模型部署方法的流程图;
图2为继承自Layer类的CNN的网络层示例图;
图3为本发明实施例提供的神经网络模型部署方法的另一流程图;
图4为本发明实施例提供的神经网络模型的框架主体示意图;
图5为本发明实施例提供的神经网络模型预测方法的流程图;
图6为常规的卷积计算方式的部分伪码示意图;
图7为本发明实施例提供的GPU的kernel函数的部分伪码示意图;
图8为本发明实施例提供的GPU的kernel函数的另一部分伪码示意图;
图9为本发明实施例提供的神经网络模型部署装置的结构框图;
图10为本发明实施例提供的神经网络模型部署装置的另一结构框图;
图11为本发明实施例提供的神经网络模型部署装置的再一结构框图;
图12为终端设备的硬件结构框图;
图13为本发明实施例提供的神经网络模型预测装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的神经网络模型部署方法,可将服务器训练好的神经网络模型部署在终端设备,同时可实现服务器基于不同学习框架训练的神经网络模型至终端设备的通用部署;如可实现服务器基于Tensorflow(Tensorflow是谷歌研发的一种人工智能学习系统)、caffe(卷积神经网络框架)等不同学习框架训练的神经网络模型至终端设备的通用部署,避免在进行神经网络模型至终端设备的部署时,终端设备需要安装与服务器训练神经网络模型的学习框架相应的移动版的学习框架的情况发生;
为提升神经网络模型至终端设备部署的通用性,本发明的发明人定义了适于终端设备的神经网络模型的一种新型的框架主体,该框架主体由Layer(层)类重定定义神经网络模型的各网络层,即神经网络模型的各网络层可继承自Layer类,并由Layer类实现各网络层的具体方法;同时,继承自Layer类的神经网络模型的各网络层可通过Net(网络)类连接,组成神经网络模型的网络结构。其中,Layer类是一个抽象类,本发明实施例通过将Layer类作为构建神经网络模型的网络层的基类,从而对于不同学习框架训练的神经网络模型,在将神经网络模型部署至终端设备上时,可使用本发明实施例提供的框架主体,以Layer类为网络层的基类进行神经网络模型的各网络层的重定义,并以Net类连接各网络层,实现不同学习框架训练的神经网络模型至终端设备的通用部署。
基于此思路,在将服务器训练好的神经网络模型部署至终端设备上时,图1示出了本发明实施例提供的神经网络模型部署方法的流程图,该方法可应用于终端设备,尤其是可应用于IOS操作系统的终端设备(IOS操作系统是苹果公司的移动操作系统),如具体可由IOS终端的GPU(图形处理器)执行实现;显然,本发明实施例提供的神经网络模型部署方法并不限于终端设备的操作系统为IOS,也可在其他操作系统的终端设备上进行应用,由终端设备的GPU执行实现神经网络模型的部署;
参照图1,本发明实施例提供的神经网络模型部署方法可以包括:
步骤S100、读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数。
可选的,初始神经网络模型可以认为是需部署到终端设备的神经网络模型;作为一种可选方式,初始神经网络模型可以是服务器基于特定学习框架训练好的神经网络模型,如服务器基于Tensorflow等学习框架训练好的神经网络模型,Tensorflow学习框架是谷歌研发的一种人工智能学习系统;
作为另一种可选方式,初始神经网络模型可以是已部署在终端设备上,但需基于本发明实施例提供的框架主体重新进行部署的神经网络模型,如对于终端设备通过移动版的特定学习框架部署到终端设备的神经网络模型,可利用本发明实施例提供的神经网络模型部署方法重新进行部署,以使得部署在终端设备的神经网络模型具有本发明实施例提供的框架主体的特性;例如对于终端设备通过移动版的Tensorflow学习框架部署到终端设备的神经网络模型,可利用本发明实施例提供的神经网络模型部署方法进行重新部署。
在确定需部署到终端设备的初始神经网络模型后,本发明实施例可读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
可选的,本发明实施例可读取初始神经网络模型的网络结构,得到各网络层的层定义,初始神经网络模型的网络结构一般包括多个类型的相互连接的网络层,如以初始神经网络模型的网络形式为CNN为例,CNN的一种可选网络结构可以包括:规范化层(BatchNorm),卷积层(Convolution),反卷积层(Deconvolution),激活层(ReLU),相加层(Eltwise),带参数的激活层(PReLU),降采样层(Pooling),缩放层(Resize),深度可分离卷积层(Depthwise Convolution),拼接层(Concat)等;显然,此处的CNN网络结构的示例仅是可选的,具体的网络结构还可根据实际需要调整设置;
通过读取初始神经网络模型的网络结构,本发明实施例可读取得到初始神经网络模型的各网络层的层定义,一网络层的层定义可对该网络层的层属性进行描述,包括该网络层的名字信息、类型信息、初始化信息等。
可选的,本发明实施例可从初始神经网络模型的各网络层中,读取各网络层的运行参数;初始神经网络模型的各网络层的运行参数可以认为是,初始神经网络模型的各网络层的权重,初始神经网络模型的各网络层的运行参数,决定了初始神经网络模型所具有的功能,在神经网络模型训练过程中,学习调整的主要是神经网络模型的各网络层的运行参数。
步骤S110、分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类。
可选的,继承是编程语言中的一种方法,若类A继承自类B,则类B可称为基类,类A可称为派生类,且类A可以获得类B的属性和方法;本发明实施例在对初始神经网络模型进行至终端设备的部署时,可对初始神经网络模型的各网络层进行重定义,在终端设备中得到各网络层相应的目标网络层,目标网络层可以认为是目标神经网络模型中的网络层,目标神经网络模型可以认为是基于本发明实施例提供的神经网络模型部署方法,完成初始神经网络模型至终端设备的部署,所得到的部署结果;相应的,初始神经网络模型的一网络层可对应目标神经网络模型的一目标网络层;在对初始神经网络模型的各网络层进行重定义,得到各网络层相应的目标网络层时,本发明实施例可借助继承方式,由Layer类实现各网络层相应的目标网络层,使得重定义的各目标网络层均继承自Layer类;
可选的,作为一种示例,初始神经网络模型的一网络层的层定义可以包括:该网络层的名字信息、类型信息、初始化信息等;相应的,Layer类可以预置有名字属性,Layer类型属性(Layer type),以及初始化方法(如init方法);
可选的,作为一种可选实现,分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类的实现过程可以是:对于任一网络层,以Layer类为基类,在终端设备中根据该网络层的名字信息,调整Layer类预置的名字属性,根据该网络层的类型信息,调整Layer类预置的Layer类型属性,根据该网络层的初始化信息,由Layer类预置的初始化方法进行初始化操作,以得到各网络层相应的目标网络层,使所得到的各目标网络层均为Layer类的派生类。从而由Layer类对初始神经网络模型中的每一网络层均进行此处理,则可实现各网络层相应的目标网络层。
步骤S120、以Net类连接各目标网络层。
可选的,在得到初始神经网络模型的各网络层相应的目标网络层后,初始神经网络模型中的每一网络层的结构均以Layer类为基类进行了重定义,得到了重定义的各目标网络层;本发明实施例可根据所述初始神经网络模型的各网络层的连接结构,以Net类连接各目标网络层,形成目标神经网络模型的各目标网络层的连接结构,并且目标神经网络模型的各目标网络层的连接结构,与初始神经网络模型的各网络层的连接结构相应;
可选的,为便于连接,以初始神经网络模型具有A1、B1、C1网络层,且A1网络层连接B1网络层、B1网络层连接C1网络层为例,则通过步骤S110以Layer类实现A1网络层相应的目标网络层A2,B1网络层相应的目标网络层B2,C1网络层相应的目标网络层C2后,可根据初始神经网络模型中A1、B1、C1网络层的连接结构,以Net类连接目标网络层A2、B2、C2,使得目标网络层A2连接目标网络层B2,目标网络层B2连接目标网络层C2,从而得到与初始神经网络模型的各网络层的连接结构相应的,各目标网络层的连接结构。
步骤S130、将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数。
在通过前述步骤实现各目标网络层,以及以Net类连接各目标网络层,形成目标神经网络模型的网络层结构后,本发明实施例还需对各目标网络层的运行参数进行加载,以使得目标神经网络模型具有与初始神经网络模型相应的功能;
基于此,本发明实施例可将读取的初始神经网络模型的各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;一网络层的目标运行参数可以理解为是,需要加载到相应的目标网络层中的运行参数;可选的,预定格式可以是本发明实施例提供的适于终端设备的神经网络模型的框架主体的格式,具体格式类型可根据实际情况设定。
需要说明的是,步骤S130可以是步骤S100执行之后便执行,不一定是在步骤S120执行之后。
步骤S140、分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
可选的,对于一网络层的目标运行参数而言,本发明实施例可在该网络层相应的目标网络层中加载相应的目标运行参数,得到加载有相应目标运行参数的目标网络层;从而对于每一目标网络层均进行相应的目标运行参数的加载,则可在终端设备中已重定义得到各目标网络层,且连接各目标网络层的基础上,进行各目标网络层的目标运行参数的加载,得到目标神经网络模型,从而基于本发明实施例提供的神经网络模型部署方法,完成初始神经网络模型至终端设备的部署,得到的部署结果为目标神经网络模型。
本发明实施例提供的神经网络模型部署方法包括:读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;以Net类连接各目标网络层;将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
本发明实施例提供的神经网络模型部署方法,基于所定义的适于终端设备的神经网络模型的框架主体,以Layer类对初始神经网络模型的各网络层进行重定义,得到继承自Layer类的各目标网络层;并且通过Net类连接各目标网络层,在各目标网络层中加载转换为预定格式的相应的目标运行参数,得到目标神经网络模型。Layer类是一个抽象类,本发明实施例通过将Layer类作为目标神经网络模型的各目标网络层的基类,从而对于不同学习框架训练的初始神经网络模型,在将初始神经网络模型部署至终端设备上时,可使用本发明实施例提供的框架主体,以Layer类为目标网络层的基类进行初始神经网络模型的各网络层的重定义,并以Net类连接重定义的各目标网络层,实现不同学习框架训练的初始神经网络模型至终端设备的通用部署,从而在进行神经网络模型预测时,可直接基于终端设备部署的神经网络模型实现神经网络模型预测,为提升神经网络模型预测的速度和实时性提供了基础;同时,本发明实施例可对不同学习框架训练的神经网络模型进行至终端设备的通用部署,降低了神经网络模型至终端设备部署的使用局限,提升了神经网络模型部署的通用性。
可选的,Layer类中可预置名字属性,Layer类型属性以及初始化方法,以实现各网络层相应的目标网络层的重定义;进一步,Layer类中还可预置加载参数方法(如loadmodel),实现重定义后的目标网络层中目标运行参数的加载;
作为一种示例,以初始神经网络模型为CNN形式为例,图2示出了继承自Layer类的CNN的网络层示例,如图2所示,初始神经网络模型中的输出等于输入层(Identify),卷积层(Convolution),规范化层(Batch Norm),激活层(ReLU),相加层(Eltwise),带参数的激活层(PReLU),缩放层(Resize),拼接层(Concat)均可继承自Layer类;并由Layer类中预置的名字属性(var name)、Layer类型属性(var type)、初始化方法(init)实现上述初始神经网络模型中的各网络层的重定义,得到各目标网络层,并通过Layer类中预置的加载参数方法(load model)实现各目标网络层的目标运行参数的加载;进一步,在得到目标神经网络模型后,还可通过Layer类中encode方法,编码本层计算任务并提交给GPU;
可选的,图3示出了本发明实施例提供的神经网络模型部署方法的另一流程图,参照图3,该方法可以包括:
步骤S200、读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;其中,一网络层的层定义包括:该网络层的名字信息,类型信息,初始化信息。
步骤S210、对于初始神经网络模型的任一网络层,以Layer类为基类,在终端设备中根据该网络层的名字信息,调整Layer类预置的名字属性,根据该网络层的类型信息,调整Layer类预置的Layer类型属性,根据该网络层的初始化信息,由Layer类预置的初始化方法进行初始化操作,以得到各网络层相应的目标网络层,使所得到的各目标网络层均为Layer类的派生类。
步骤S220、根据初始神经网络模型的各网络层的连接结构,以Net类连接各目标网络层。
可选的,以Net类连接各目标网络层后,各目标网络层的连接结构与初始神经网络模型的各网络层的连接结构相应。
步骤S230、将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数。
步骤S240、分别根据各网络层的目标运行参数,以Layer类预置的加载参数方法,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
可选的,Net类除连接各目标网络层外,还可实现如下功能:
添加一层网络层到神经网络模型中;相应的,本发明实施例可通过Net类预置的添加网络层方法(如add Layer方法),添加一层网络层到目标神经网络模型中,所添加的网络层也是继承自Layer类;
读取并加载运行神经网络模型所需的参数;相应的,本发明实施例可通过Net类预置的读取参数方法(如load model方法),读取并加载目标神经网络模型运行所需的参数;
运行神经网络模型,进行前向预测;相应的,本发明实施例可通过Net预置的预测方法(如forward方法),运行目标神经网络模型,进行前向预测。
可选的,以CNN模型为例,图4示出了本发明实施例提供的适于终端设备的神经网络模型的框架主体示意;如图4所示,Layer类可预置有名字属性(var name),Layer类型属性(var type),初始化方法(init),加载参数方法(load model),encode方法(用于编码本层计算任务并提交给GPU方法);Net类预置有Layer类标识(var Layers,用于指示所连接的Layer类),add Layer方法,load model方法,forward方法等;同时,CNN网络的Identify,Convolution,BatchNorm,ReLU,Eltwise,PReLU,Resize,Concat均继承自Layer类。
使用图4所示框架主体,本发明实施例可对使用Tensorflow学习框架训练的初始神经网络模型,Caffe(卷积神经网络框架)学习框架训练的初始神经网络模型等,进行通用的神经网络模型至终端设备的部署;
以对使用Tensorflow学习框架训练的初始神经网络模型,进行至终端设备的部署为例,则本发明实施例可读取Tensorflow学习框架训练的初始神经网络模型,得到模型定义文件(model.para)和模型参数文件(model.bin),模型定义文件可记录有初始神经网络模型的各网络层的层定义,模型参数文件记录有各网络层的运行参数转换成预定格式后的目标运行参数;
从而可根据各网络层的层定义,在终端设备中(如在终端设备的GPU中)由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类,并通过Net类连接各目标网络层,使得各目标网络层的连接结构,与初始神经网络模型中各网络层的连接结构相应;基于Layer类的load model方法,将模型参数文件记录各网络层的目标运行参数,在各网络层相应的目标网络层中进行加载,得到目标神经网络模型,实现使用Tensorflow学习框架训练的初始神经网络模型,至终端设备的部署。
由于本发明实施例可通过Layer类对初始神经网络模型的各网络层进行重定义,使得重定义各目标网络层均继承自Layer类,并且通过Net类连接各目标网络层后,可在各目标网络层中加载转换为预定格式的相应的目标运行参数,实现需在终端设备部署的初始神经网络模型的重构,在终端设备上部署得到相应的目标神经网络模型;基于本发明实施例提供的神经网络模型部署方法,可通过统一的适于终端设备的神经网络模型的框架主体,将不同学习框架训练的初始神经网络模型在终端设备上进行重定义,实现不同学习框架训练的初始神经网络模型至终端设备的通用部署,降低了神经网络模型部署的使用局限;并且在进行神经网络模型预测时,可直接基于终端设备部署的神经网络模型实现神经网络模型预测,为提升神经网络模型预测的速度和实时性提供了基础。
可选的,本发明实施例提供的神经网络模型部署方法可应用于终端设备的GPU,在将神经网络模型部署至终端设备后,可利用GPU计算(如最大限度的利用了GPU的并行运算)直接在终端设备实现神经网络模型预测,提升前向预测的速度和实时性,实现基于终端设备的GPU的神经网络模型的前向预测。
可选的,图5示出了本发明实施例提供的神经网络模型预测方法的流程图,图5所示神经网络模型预测方法可应用于终端设备,参照图5,该神经网络模型预测方法可以包括:
步骤S300、通过终端设备的数据输入装置,获取预测输入数据。
预测输入数据可以是进行神经网络模型预测所需的输入数据;视神经网络模型的功能的不同,预测输入数据的形式也可能不同,如具有语音分析功能的神经网络模型,预测输入数据可以是语音的语音特征等,具有图像识别功能的神经网络模型,预测输入数据可以是图像的图像特征等,显然,预测输入数据也可能是一组数据;
可选的,终端设备的数据输入装置可以是鼠标、键盘、网络接口、触摸屏等具有向终端设备写入数据能力的装置设备。
步骤S310、调用终端设备预部署的神经网络模型。
可选的,终端设备预部署的神经网络模型可基于本发明实施例提供的神经网络模型部署方法,部署在终端设备;终端设备预部署的神经网络模型可以由Layer类实现各网络层,使各网络层均继承自Layer类,并由Net类连接各网络层,通过在各网络层加载相应的预定格式的运行参数实现。
步骤S320、将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
在调用终端设备预部署的神经网络模型后,可将终端设备获取的预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果;可选的,预测结果可以是分类结果或者识别结果。
本发明实施例提供的神经网络模型预测方法,可在进行神经网络模型预测时,直接基于预部署到终端设备的神经网络模型进行预测输入数据的处理,从而直接在终端设备处得到预测结果,免去神经网络模型预测过程中终端设备与服务器的交互过程,极大的提升了神经网络模型预测的速度和实时性。
可选的,在进行神经网络模型预测时,本发明实施例可基于利用GPU的并行运算,提升预测速度;以神经网络模型为CNN为例,在基于GPU的神经网络模型前向预测过程中,本发明实施例还可对CNN形式的神经网络模型进行卷积层优化实现。
CNN网络因为网络层次深,参数量大,所以将CNN网络模型部署到终端设备后,在终端GPU上进行前向预测时,将涉及到非常大的计算量,而通常卷积层的参数是占比最多的,计算量一般占据70%以上;在常规的卷积层的实现中,比较高效的方法是im2col+GEMM方案,首先使用im2col将featrue maps(特征图)和filter(滤波器)转换成矩阵,再调用GEMM(Generalized Matrix Multiplication)对两矩阵内积,这样一来卷积操作就被转化为了矩阵乘法运算;这种办法对于filter数目越多(也即featrue maps通道数越多),filter尺寸越大的情况,效率越高;而本发明实施例是在终端设备上进行CNN网络模型的前向预测,而终端设备因为计算能力有限,一般featrue maps通道数不宜过大,因此若使用常规的im2col进行CNN网络模型卷积层在终端设备的计算,反而会增加内存读取的次数。
针对此情况,本发明实施例可最大限度利用GPU的并行性,将卷积层的width(宽度),height(高度)和out put Channels(输出通道)三个维度使用GPU进行并行调度,以降低卷积层实现的循环层数;例如可将卷积层实现原本的6层循环降低到3层循环;
可选的,作为一种示例,假设卷积层的输入image为:
input[inputHeight][inputWidth][inputChannels];
filter为:filter[outputChannels][filterHeight][filterWidth][inputChannels];
输出image为:output[outputHeight][outputWidth][outputChannels];
以stride=1为例,使用常规的卷积计算方式计算output需要6层循环,伪码表示可如图6所示;而在本发明实施例中,GPU的kernel函数伪码可如图7所示,原本loop 1,loop2,loop 3三层循环由GPU并行的计算和调度,只余下calc_output(oc,y,x)的三层循环。
进一步,本发明实施例可充分利用GPU计算隐藏内存延迟的特性,增加一个循环内连续计算的目标点数量;如在一次循环中连续计算8个目标点,增加了循环内计算的cycles(周期),从而隐藏了内存读写的延迟;
同时,本发明实施例可在计算第一个目标点时,读取第一个目标点相应的全部像素点,而在计算非第一个目标点时,由于相邻的两个目标点存在重复的像素点,因此在计算非第一个目标点时,可复用前一次计算的目标点中相同的像素点,并重新读取与前一次计算的目标点不同的像素点,使得内存读取的次数得到减少;比如对于3x3的卷积,计算一个目标点原本需要读取9个相邻的像素点,而相邻的两个目标点有6个像素点是重复的,本发明连续计算8个相邻目标点,只有第一次需要读取9个像素点,之后每次都复用前一次的6个像素点,一次只需重新读取3个像素点,从而使内存读取的次数减少了一半以上;
作为一种示例,针对kernel size为3x3的卷积,优化后GPU的kernel函数伪码如图8示;可见,convolution中的loop 4循环内只计算了output[y][x][oc]一个点,convolution3x3中的loop 4循环内计算了y到y+7连续的8个点,循环内计算所需的cycles是原来的8倍,可以更好的利用GPU计算隐藏内存读取延迟的特性;而convolution中每计算一个点,都需要读取input image 9(filterHeight*filterWidth)次,convolution3x3连续计算垂直y方向上相邻的8个点,计算相邻的两点所需的9个pixel中有6个点(pixel_line1,pixel_line2)是重复的,每次只需读取新的3个点;convolution中计算8点读取的次数为9*8=72次,convolution3x3中为9+3*7=30次,内存读取次数减少了58%。
在通过本发明实施例进行卷积层优化实现后,基于IOS系统,将本发明实施例的卷积层的实现速度与Caffe2、Tensorflow和ncnn等传统方案相比,如下表1示出的比对结果,可以看出,本发明实施例可在实现卷积层时,实现4-10倍的加速。
表1
本发明实施例可用于图片艺术滤镜模型至IOS移动端(如IOS操作系统的智能手机)的部署,及在IOS移动端基于部署好的图片艺术滤镜模型进行前向预测,从而将使用Torch(Torch是一个广泛支持机器学习算法的科学计算框架)训练好的图片艺术滤镜模型转换成IOS移动端的模型格式,从而在使用图片艺术滤镜模型对图片添加艺术滤镜效果时,直接基于在IOS移动端部署后的图片艺术滤镜模型,在IOS移动端对获取的图片添加艺术滤镜效果;以CNN网络模型为例,具体应用过程可以如下:
IOS移动端可读取使用Torch训练好的图片艺术滤镜模型,进行预定格式的转换(如转换成二进制格式),得到转换后的图片艺术滤镜模型的各网络层的定义和目标运行参数,获取到模型定义文件model.para和模型参数文件model.bin;model.para定义了CNN形式的图片艺术滤镜模型的结构,包括图片艺术滤镜模型的各网络层的定义,model.bin文件包括了网络各层对应的目标运行参数;
IOS移动端调用在GPU中预定的CNN网络模型的框架主体,该框架主体由Layer类定义CNN网络模型的各网络层,且由Net类连接Layer类定义的各网络层;
在IOS移动端的GPU中,加载模型定义文件model.para,由Layer类实现图片艺术滤镜模型的各目标网络层,并以Net类连接各目标网络层;加载模型参数文件model.bin,在IOS移动端的GPU中,对各目标网络层进行相应网络层的目标运行参数的加载,构建出重定义的图片艺术滤镜模型;
基于在IOS移动端的GPU中重定义的图片艺术滤镜模型,IOS移动端在对一个图片添加艺术滤镜效果时,IOS移动端可根据GPU中重定义的图片艺术滤镜模型,对图片添加艺术滤镜效果。
本发明实施例可对不同训练框架训练的神经网络模型实现至终端设备部署的支持,如可支持torch,Tensorflow,caffe等学习框架训练的神经网络模型,至终端设备快捷部署,降低了神经网络模型部署的使用局限,可对不同学习框架训练的神经网络模型进行通用部署,提升了神经网络模型部署的通用性;进一步,本发明实施例可基于IOS系统实现,不需依赖第三方库,而是可基于IOS原生的Metal和Objective-C语言编写,库的数据大小得到了极大的减少;同时,本发明实施例可支持丰富的layer,基于layer类进行网络层的自定义,对于神经网络模型的网络层具有较高的扩展性能;进一步,本发明实施例可基于GPU并行运行实现卷积层的实现优化,提升了CNN网络模型前向预测的速度。
下面对本发明实施例提供的神经网络模型部署装置进行介绍,下文描述的神经网络模型部署装置可以认为是,终端设备为实现本发明实施例提供的神经网络模型部署方法所需设置的程序模块;下文描述的神经网络模型部署装置可与上文描述的神经网络模型部署方法,相互对应参照。
图9为本发明实施例提供的神经网络模型部署装置的结构框图,该装置可应用于终端设备,尤其是可应用于IOS操作系统的终端设备中的GPU,参照图9,本发明实施例提供的神经网络模型部署装置可以包括:
读取模块100,用于读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
目标网络层实现模块200,用于分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
网络层连接模块300,用于以Net类连接各目标网络层;
格式转换模块400,用于将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
参数加载模块500,用于分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
可选的,一网络层的层定义包括:该网络层的名字信息,类型信息,初始化信息;相应的,目标网络层实现模块200,用于分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类,具体包括:
对于初始神经网络模型的任一网络层,以Layer类为基类,在终端设备中根据该网络层的名字信息,调整Layer类预置的名字属性,根据该网络层的类型信息,调整Layer类预置的Layer类型属性,根据该网络层的初始化信息,由Layer类预置的初始化方法进行初始化操作,以得到各网络层相应的目标网络层,使所得到的各目标网络层均为Layer类的派生类。
可选的,参数加载模块500,用于分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型,具体包括:
分别根据各网络层的目标运行参数,以Layer类预置的加载参数方法,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
可选的,网络层连接模块300,用于以Net类连接各目标网络层,具体包括:
根据初始神经网络模型的各网络层的连接结构,以Net类连接各目标网络层,使各目标网络层的连接结构与初始神经网络模型的各网络层的连接结构相应。
可选的,图10示出了本发明实施例提供的神经网络模型部署装置的另一结构框图,结合图9和图10所示,该装置还可以包括:
Net类应用模块600,用于通过Net类预置的添加网络层方法,添加一层网络层到目标神经网络模型中,其中,所添加的网络层继承自Layer类;和/或,通过Net类预置的读取参数方法,读取并加载目标神经网络模型运行所需的参数;和/或,通过Net预置的预测方法,运行目标神经网络模型,进行前向预测。
可选的,所述初始神经网络模型为CNN网络模型;相应的,图11示出了本发明实施例提供的神经网络模型部署装置的再一结构框图,结合图9和图11所示,该装置还可以包括:
GPU并行调度模块700,用于将CNN网络模型的卷积层的宽度,高度和输出通道三个维度使用终端设备的GPU进行并行调度,以降低卷积层实现的循环层数;
目标点增加模块800,用于增加一个循环内连续计算的目标点数量;
像素点读取模块900,用于在计算第一个目标点时,读取第一个目标点相应的全部像素点,在计算非第一个目标点时,复用前一次计算的目标点中相同的像素点,并重新读取与前一次计算的目标点不同的像素点。
可选的,GPU并行调度模块700也可单独应用于图8或图9所示装置中。
在终端设备中得到部署好的目标神经网络模型后,本发明实施例可通过终端设备部署的目标神经网络模型,进行神经网络模型预测,如终端设备可获取输入数据,调用终端设备中部署的目标神经网络模型(如在终端设备的GPU中部署的目标神经网络模型)对输入数据进行运算,确定输入数据的分类或识别结果。
本发明实施例提供的神经网络模型部署装置可应用于终端设备,可选的,图12示出了终端设备的硬件结构,参照图12,该终端设备可以包括:至少一个图形处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本发明实施例中,图形处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且图形处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
其中,存储器存储有程序,图形处理器调用存储器所存储的程序时,可实现上述所述的神经网络模型部署方法的各个步骤。
可选的,所述程序可用于:
读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
以Net类连接各目标网络层;
将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
可选的,所述程序的细化功能和扩展功能可参照上文相应部分。
本发明实施例还提供一种存储介质,该存储介质如存储器等,该存储介质存储有适于图形处理器执行的程序,所述程序被所述图形处理器执行时,实现上述所述的神经网络模型部署方法的各个步骤。
可选的,所述程序可用于:
读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
以Net类连接各目标网络层;
将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
可选的,所述程序的细化功能和扩展功能可参照上文相应部分。
本发明实施例还提供一种神经网络模型预测装置,通过本发明实施例提供的神经网络模型部署装置,将神经网络模型部署到终端设备后,由终端设备部署的神经网络模型实现神经网络模型预测;图13示出了本发明实施例提供的神经网络模型预测装置的结构框图,该装置可应用于终端设备,尤其是可应用于IOS操作系统的终端设备中的GPU,参照图13,本发明实施例提供的神经网络模型预测装置可以包括:
数据获取模块10,用于通过终端设备的数据输入装置,获取预测输入数据;
模型调用模块20,用于调用终端设备预部署的神经网络模型;
模型处理模块30,用于将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
可选的,所述神经网络模型可以为CNN网络模型;模型处理模块30,用于由所述神经网络模型处理所述预测输入数据,可具体包括:
在处理所述预测输入数据时,将CNN网络模型的卷积层的宽度,高度和输出通道三个维度使用终端设备的GPU进行并行调度,以降低卷积层实现的循环层数。
可选的,模型处理模块30,用于由所述神经网络模型处理所述预测输入数据,还可包括
增加一个循环内连续计算的目标点数量;
在计算第一个目标点时,读取第一个目标点相应的全部像素点,在计算非第一个目标点时,复用前一次计算的目标点中相同的像素点,并重新读取与前一次计算的目标点不同的像素点。
可选的,本发明实施例还提供一种终端设备,该终端设备的硬件结构可如图12所示,该终端可包括:至少一个存储器和至少一个图形处理器;所述存储器存储有程序,所述图形处理器调用所述存储器存储的程序时,实现上文所述的神经网络模型预测方法的各个步骤。
可选的,所述程序可用于:
通过终端设备的数据输入装置,获取预测输入数据;
调用终端设备预部署的神经网络模型;
将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
可选的,本发明实施例还提供一种存储介质,该存储介质存储有适于图形处理器执行的程序,所述程序用于:
通过终端设备的数据输入装置,获取预测输入数据;
调用终端设备预部署的神经网络模型;
将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
可选的,所述程序的细化功能和扩展功能可参照上文相应部分。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种神经网络模型部署方法,其特征在于,包括:
读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
以Net类连接各目标网络层;
将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
2.根据权利要求1所述的神经网络模型部署方法,其特征在于,一网络层的层定义包括:该网络层的名字信息,类型信息,初始化信息;所述分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类包括:
对于初始神经网络模型的任一网络层,以Layer类为基类,在终端设备中根据该网络层的名字信息,调整Layer类预置的名字属性,根据该网络层的类型信息,调整Layer类预置的Layer类型属性,根据该网络层的初始化信息,由Layer类预置的初始化方法进行初始化操作,以得到各网络层相应的目标网络层,使所得到的各目标网络层均为Layer类的派生类。
3.根据权利要求1或2所述的神经网络模型部署方法,其特征在于,所述分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型包括:
分别根据各网络层的目标运行参数,以Layer类预置的加载参数方法,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
4.根据权利要求1或2所述的神经网络模型部署方法,其特征在于,所述以Net类连接各目标网络层包括:
根据初始神经网络模型的各网络层的连接结构,以Net类连接各目标网络层,使各目标网络层的连接结构与初始神经网络模型的各网络层的连接结构相应。
5.根据权利要求4所述的神经网络模型部署方法,其特征在于,所述方法还包括:
通过Net类预置的添加网络层方法,添加一层网络层到目标神经网络模型中,其中,所添加的网络层继承自Layer类;
和/或,通过Net类预置的读取参数方法,读取并加载目标神经网络模型运行所需的参数;
和/或,通过Net预置的预测方法,运行目标神经网络模型,进行前向预测。
6.根据权利要求1或2所述的神经网络模型部署方法,其特征在于,所述初始神经网络模型为CNN网络模型;所述方法还包括:
将CNN网络模型的卷积层的宽度,高度和输出通道三个维度使用终端设备的GPU进行并行调度,以降低卷积层实现的循环层数。
7.根据权利要求6所述的神经网络模型部署方法,其特征在于,所述方法还包括:
增加一个循环内连续计算的目标点数量;
在计算第一个目标点时,读取第一个目标点相应的全部像素点,在计算非第一个目标点时,复用前一次计算的目标点中相同的像素点,并重新读取与前一次计算的目标点不同的像素点。
8.一种神经网络模型预测方法,其特征在于,包括:
通过终端设备的数据输入装置,获取预测输入数据;
调用终端设备预部署的神经网络模型;
将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
9.根据权利要求8所述的神经网络模型预测方法,其特征在于,所述神经网络模型为CNN网络模型;所述由所述神经网络模型处理所述预测输入数据包括:
在处理所述预测输入数据时,将CNN网络模型的卷积层的宽度,高度和输出通道三个维度使用终端设备的GPU进行并行调度,以降低卷积层实现的循环层数。
10.根据权利要求9所述的神经网络模型预测方法,其特征在于,所述由所述神经网络模型处理所述预测输入数据还包括:
增加一个循环内连续计算的目标点数量;
在计算第一个目标点时,读取第一个目标点相应的全部像素点,在计算非第一个目标点时,复用前一次计算的目标点中相同的像素点,并重新读取与前一次计算的目标点不同的像素点。
11.一种神经网络模型部署装置,其特征在于,包括:
读取模块,用于读取初始神经网络模型,得到所述初始神经网络模型的各网络层的层定义,及各网络层的运行参数;
目标网络层实现模块,用于分别根据所述各网络层的层定义,在终端设备中由Layer类实现各网络层相应的目标网络层,使各目标网络层均继承自Layer类;
网络层连接模块,用于以Net类连接各目标网络层;
格式转换模块,用于将各网络层的运行参数转换为预定格式,得到各网络层的目标运行参数;
参数加载模块,用于分别根据各网络层的目标运行参数,在各网络层相应的目标网络层中加载相应的目标运行参数,得到在终端设备部署的目标神经网络模型。
12.一种神经网络模型预测装置,其特征在于,包括:
数据获取模块,用于通过终端设备的数据输入装置,获取预测输入数据;
模型调用模块,用于调用终端设备预部署的神经网络模型;
模型处理模块,用于将预测输入数据作为所述神经网络模型的输入,由所述神经网络模型处理所述预测输入数据,得到预测结果。
13.一种终端设备,其特征在于,包括:至少一个存储器和至少一个图形处理器;所述存储器存储有程序,所述图形处理器调用所述存储器存储的程序时,实现如权利要求1-7任一项所述的神经网络模型部署方法的各个步骤。
14.一种存储介质,其特征在于,所述存储介质存储有适于图形处理器执行的程序,所述程序被所述图形处理器执行时,实现如权利要求1-7任一项所述的神经网络模型部署方法的各个步骤。
15.一种终端设备,其特征在于,包括:至少一个存储器和至少一个图形处理器;所述存储器存储有程序,所述图形处理器调用所述存储器存储的程序时,实现如权利要求8-10任一项所述的神经网络模型预测方法的各个步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711330928.6A CN109919308B (zh) | 2017-12-13 | 2017-12-13 | 一种神经网络模型部署方法、预测方法及相关设备 |
PCT/CN2018/116958 WO2019114517A1 (zh) | 2017-12-13 | 2018-11-22 | 一种神经网络模型部署方法、预测方法及设备 |
EP18887768.2A EP3614316A4 (en) | 2017-12-13 | 2018-11-22 | METHOD OF APPLYING A MODEL OF NEURAL NETWORK, PREDICTION METHOD AND DEVICE |
US16/659,888 US20200050939A1 (en) | 2017-12-13 | 2019-10-22 | Neural network model deployment method, prediction method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711330928.6A CN109919308B (zh) | 2017-12-13 | 2017-12-13 | 一种神经网络模型部署方法、预测方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109919308A true CN109919308A (zh) | 2019-06-21 |
CN109919308B CN109919308B (zh) | 2022-11-11 |
Family
ID=66818916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711330928.6A Active CN109919308B (zh) | 2017-12-13 | 2017-12-13 | 一种神经网络模型部署方法、预测方法及相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200050939A1 (zh) |
EP (1) | EP3614316A4 (zh) |
CN (1) | CN109919308B (zh) |
WO (1) | WO2019114517A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263731A (zh) * | 2019-06-24 | 2019-09-20 | 电子科技大学 | 一种单步人脸检测系统 |
CN110458285A (zh) * | 2019-08-14 | 2019-11-15 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110852449A (zh) * | 2019-11-25 | 2020-02-28 | 北京百度网讯科技有限公司 | 模型迁移方法和电子设备 |
CN110942139A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市魔数智擎人工智能有限公司 | 深度学习神经网络部署系统及其方法 |
CN110955470A (zh) * | 2019-12-06 | 2020-04-03 | 深圳前海环融联易信息科技服务有限公司 | 算法模型接口化方法、装置、计算机设备及存储介质 |
CN111222637A (zh) * | 2020-01-17 | 2020-06-02 | 上海商汤智能科技有限公司 | 神经网络模型部署方法及装置、电子设备和存储介质 |
CN111242286A (zh) * | 2020-01-14 | 2020-06-05 | Oppo广东移动通信有限公司 | 一种数据格式变换方法、装置及计算机可读存储介质 |
CN111290762A (zh) * | 2020-01-19 | 2020-06-16 | 深圳云天励飞技术有限公司 | 一种深度学习网络的部署方法、装置及终端设备 |
CN111652351A (zh) * | 2020-05-09 | 2020-09-11 | 济南浪潮高新科技投资发展有限公司 | 一种神经网络模型的部署方法、设备及介质 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN112016665A (zh) * | 2020-10-20 | 2020-12-01 | 深圳云天励飞技术股份有限公司 | 计算神经网络在处理器上运行时间的方法及装置 |
CN112749626A (zh) * | 2020-12-10 | 2021-05-04 | 同济大学 | 一种面向dsp平台的快速人脸检测与识别方法 |
CN113570030A (zh) * | 2021-01-18 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583287B (zh) | 2017-09-29 | 2024-04-12 | 浙江莲荷科技有限公司 | 实物识别方法及验证方法 |
CN108268619B (zh) | 2018-01-08 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 内容推荐方法及装置 |
CN110569856B (zh) | 2018-08-24 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 样本标注方法及装置、损伤类别的识别方法及装置 |
CN110569696A (zh) | 2018-08-31 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 用于车辆部件识别的神经网络系统、方法和装置 |
CN110570316A (zh) | 2018-08-31 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 训练损伤识别模型的方法及装置 |
EP3767549A1 (en) * | 2019-07-03 | 2021-01-20 | Nokia Technologies Oy | Delivery of compressed neural networks |
EP3767548A1 (en) * | 2019-07-03 | 2021-01-20 | Nokia Technologies Oy | Delivery of compressed neural networks |
EP4024875A4 (en) * | 2019-08-30 | 2022-10-26 | Sony Group Corporation | RECEIVING DEVICE, RECEIVING METHOD AND TRANSMISSION DEVICE AND TRANSMISSION METHOD |
US11556450B2 (en) * | 2019-10-11 | 2023-01-17 | International Business Machines Corporation | Hybrid data-model parallelism for efficient deep learning |
CN113743598B (zh) * | 2020-05-27 | 2023-08-04 | 杭州海康威视数字技术股份有限公司 | 一种ai芯片的运行方式的确定方法和装置 |
CN112115974B (zh) * | 2020-08-18 | 2024-04-09 | 郑州睿如信息技术有限公司 | 一种城市垃圾分类处理智能视觉检测方法 |
CN111966361B (zh) * | 2020-09-25 | 2024-04-05 | 北京百度网讯科技有限公司 | 用于确定待部署模型的方法、装置、设备及其存储介质 |
EP3975060A1 (en) * | 2020-09-29 | 2022-03-30 | Samsung Electronics Co., Ltd. | Method and apparatus for analysing neural network performance |
CN113301127B (zh) * | 2021-05-07 | 2022-06-14 | 淮阴工学院 | 一种牲畜饲料检测系统 |
CN113469328B (zh) * | 2021-06-24 | 2024-03-19 | 上海寒武纪信息科技有限公司 | 执行转数穿过的装置、板卡、方法及可读存储介质 |
CN116151352A (zh) * | 2023-04-13 | 2023-05-23 | 中浙信科技咨询有限公司 | 基于大脑信息通路整合机制的卷积循环神经网络诊断方法 |
CN116128046B (zh) * | 2023-04-14 | 2023-07-18 | 杭州国芯科技股份有限公司 | 嵌入式设备的多输入神经网络模型串行块的存储方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0443976A2 (en) * | 1990-02-20 | 1991-08-28 | International Business Machines Corporation | Neural network shell for application programs |
CA2061012A1 (en) * | 1991-04-18 | 1992-10-19 | Shawn M. Austvold | Enhanced neural network shell for application programs |
US20070061277A1 (en) * | 2003-09-05 | 2007-03-15 | International Business Machines Corporation | Method, system, and storage medium for providing dynamic deployment of grid services over a computer network |
EP3153996A2 (en) * | 2015-10-07 | 2017-04-12 | Altera Corporation | Method and apparatus for implementing layers on a convolutional neural network accelerator |
WO2017166155A1 (zh) * | 2016-03-31 | 2017-10-05 | 富士通株式会社 | 一种对神经网络模型进行训练的方法、装置及电子设备 |
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN107341761A (zh) * | 2017-07-12 | 2017-11-10 | 成都品果科技有限公司 | 一种深度神经网络的计算执行方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104964719A (zh) * | 2015-06-30 | 2015-10-07 | 安徽工业大学 | 一种基于bp神经网络的户用电子水表流量计量方法 |
US10769533B2 (en) * | 2015-09-04 | 2020-09-08 | Baidu Usa Llc | Systems and methods for efficient neural network deployments |
CN105205558B (zh) * | 2015-09-23 | 2018-11-06 | 南京磐能电力科技股份有限公司 | 一种面向建筑能耗预测的bp神经网络模型配置方法 |
CN106295803A (zh) * | 2016-08-10 | 2017-01-04 | 中国科学技术大学苏州研究院 | 深度神经网络的构建方法 |
-
2017
- 2017-12-13 CN CN201711330928.6A patent/CN109919308B/zh active Active
-
2018
- 2018-11-22 WO PCT/CN2018/116958 patent/WO2019114517A1/zh unknown
- 2018-11-22 EP EP18887768.2A patent/EP3614316A4/en active Pending
-
2019
- 2019-10-22 US US16/659,888 patent/US20200050939A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0443976A2 (en) * | 1990-02-20 | 1991-08-28 | International Business Machines Corporation | Neural network shell for application programs |
CA2061012A1 (en) * | 1991-04-18 | 1992-10-19 | Shawn M. Austvold | Enhanced neural network shell for application programs |
US20070061277A1 (en) * | 2003-09-05 | 2007-03-15 | International Business Machines Corporation | Method, system, and storage medium for providing dynamic deployment of grid services over a computer network |
EP3153996A2 (en) * | 2015-10-07 | 2017-04-12 | Altera Corporation | Method and apparatus for implementing layers on a convolutional neural network accelerator |
WO2017166155A1 (zh) * | 2016-03-31 | 2017-10-05 | 富士通株式会社 | 一种对神经网络模型进行训练的方法、装置及电子设备 |
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN107341761A (zh) * | 2017-07-12 | 2017-11-10 | 成都品果科技有限公司 | 一种深度神经网络的计算执行方法和系统 |
Non-Patent Citations (1)
Title |
---|
张蓓蓓等: "基于BP神经网络负载预测的虚拟机部署策略", 《华中科技大学学报(自然科学版)》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263731A (zh) * | 2019-06-24 | 2019-09-20 | 电子科技大学 | 一种单步人脸检测系统 |
CN110263731B (zh) * | 2019-06-24 | 2021-03-16 | 电子科技大学 | 一种单步人脸检测系统 |
CN110458285A (zh) * | 2019-08-14 | 2019-11-15 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110942139A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市魔数智擎人工智能有限公司 | 深度学习神经网络部署系统及其方法 |
CN110852449B (zh) * | 2019-11-25 | 2023-11-14 | 北京百度网讯科技有限公司 | 模型迁移方法和电子设备 |
CN110852449A (zh) * | 2019-11-25 | 2020-02-28 | 北京百度网讯科技有限公司 | 模型迁移方法和电子设备 |
CN110955470A (zh) * | 2019-12-06 | 2020-04-03 | 深圳前海环融联易信息科技服务有限公司 | 算法模型接口化方法、装置、计算机设备及存储介质 |
CN110955470B (zh) * | 2019-12-06 | 2024-01-19 | 深圳前海环融联易信息科技服务有限公司 | 算法模型接口化方法、装置、计算机设备及存储介质 |
CN111242286A (zh) * | 2020-01-14 | 2020-06-05 | Oppo广东移动通信有限公司 | 一种数据格式变换方法、装置及计算机可读存储介质 |
CN111222637A (zh) * | 2020-01-17 | 2020-06-02 | 上海商汤智能科技有限公司 | 神经网络模型部署方法及装置、电子设备和存储介质 |
CN111222637B (zh) * | 2020-01-17 | 2023-11-28 | 上海商汤智能科技有限公司 | 神经网络模型部署方法及装置、电子设备和存储介质 |
CN111290762A (zh) * | 2020-01-19 | 2020-06-16 | 深圳云天励飞技术有限公司 | 一种深度学习网络的部署方法、装置及终端设备 |
CN111652351A (zh) * | 2020-05-09 | 2020-09-11 | 济南浪潮高新科技投资发展有限公司 | 一种神经网络模型的部署方法、设备及介质 |
CN111753948B (zh) * | 2020-06-23 | 2022-11-01 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN112016665A (zh) * | 2020-10-20 | 2020-12-01 | 深圳云天励飞技术股份有限公司 | 计算神经网络在处理器上运行时间的方法及装置 |
CN112749626B (zh) * | 2020-12-10 | 2022-09-13 | 同济大学 | 一种面向dsp平台的快速人脸检测与识别方法 |
CN112749626A (zh) * | 2020-12-10 | 2021-05-04 | 同济大学 | 一种面向dsp平台的快速人脸检测与识别方法 |
CN113570030A (zh) * | 2021-01-18 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3614316A1 (en) | 2020-02-26 |
WO2019114517A1 (zh) | 2019-06-20 |
US20200050939A1 (en) | 2020-02-13 |
CN109919308B (zh) | 2022-11-11 |
EP3614316A4 (en) | 2021-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109919308A (zh) | 一种神经网络模型部署方法、预测方法及相关设备 | |
CN107103113B (zh) | 面向神经网络处理器的自动化设计方法、装置及优化方法 | |
CN107578095B (zh) | 神经网络计算装置及包含该计算装置的处理器 | |
CN110546611A (zh) | 通过跳过处理操作来减少神经网络处理器中的功耗 | |
CN106095437B (zh) | 用户界面从右到左rtl的布局方式的实现方法及装置 | |
CN107977414A (zh) | 基于深度学习的图像风格迁移方法及其系统 | |
CN111758107A (zh) | 用于基于硬件的池化的系统和方法 | |
Zhou et al. | Efficient image super-resolution using vast-receptive-field attention | |
CN106529669A (zh) | 用于处理数据序列的方法和装置 | |
CN107341761A (zh) | 一种深度神经网络的计算执行方法和系统 | |
CN112084037A (zh) | 神经网络的内存分配方法及装置 | |
CN112084038A (zh) | 神经网络的内存分配方法及装置 | |
CN111310921B (zh) | 一种轻量级深度卷积神经网络的fpga实现方法 | |
CN107066618A (zh) | 一种网页页面转换后显示方法和装置 | |
CN109242092A (zh) | 网络获取及图像处理方法和装置、电子设备、存储介质 | |
CN114461978B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN111240557A (zh) | 页面显示方法、装置以及设备 | |
CN112966729B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN112270083B (zh) | 一种多分辨建模与仿真方法及系统 | |
US20230342942A1 (en) | Image data processing method, method and apparatus for constructing digital virtual human, device, storage medium, and computer program product | |
CN111617480A (zh) | 一种点云渲染方法及装置 | |
CN109660852A (zh) | 录制视频发布前的视频预览方法、存储介质、设备及系统 | |
CN104793837A (zh) | 图形生成方法及装置 | |
CN115829000A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112801868B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |