CN110163345A - 一种神经网络处理方法、装置、设备及介质 - Google Patents
一种神经网络处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110163345A CN110163345A CN201910386136.3A CN201910386136A CN110163345A CN 110163345 A CN110163345 A CN 110163345A CN 201910386136 A CN201910386136 A CN 201910386136A CN 110163345 A CN110163345 A CN 110163345A
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- equivalent constructions
- source
- 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.)
- Pending
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种神经网络处理方法、装置、设备及介质,所述方法包括获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境;获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境;解析所述源神经网络对象得到层拓扑;根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象;根据所述源框架类型参数和等效构造目标参数获取等效构造规则集;根据等效构造规则集得到各个层对象对应的目标层对象;根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。本发明通过等效构造等效神经网络对象的方式实现了异框架下神经网络模型的转换。
Description
技术领域
本发明涉及神经网络领域,尤其涉及一种神经网络处理方法、装置、设备及介质。
背景技术
近年来,随着深度学习技术及神经网络的迅速发展,许多深度学习框架提出或者开源出来。深度学习框架的主要目标是通过提供一套专门的神经网络应用程序接口(Application Programming Interface,API)实现在中央处理器(Central ProcessingUnit,CPU)或图形处理器(Graphics Processing Unit,GPU)设备高效运行深度学习系统。由于不同深度学习框架的目标用户、框架定位及设计理念不同,具体实现细节存在差异,研究人员在实验时往往需要对所使用的深度学习框架实现细节有具体的了解,增加了研究实验成本。针对这种问题,降低基于深度学习框架进行深度学习的难度,基于深度学习模型的高级API出现了,其可以用于扩展深度学习框架中的神经网络的具体实现,并封装其相关的预处理、训练和训练后处理逻辑。但是现有的基于深度学习模型的高级API无法进行异框架神经网络模型的切换,也无法优化某个神经网络框架下的神经网络到移动终端的部署流程。
发明内容
为了解决现有技术中无法实现异框架下神经网络转化的问题以及无法优化某个神经网络框架下的神经网络到移动终端的部署流程的问题,本发明提供了一种神经网络处理方法、装置、设备及介质。
一方面,本发明提供了一种神经网络处理方法,所述方法包括:
获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境;
获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境;
解析所述源神经网络对象得到层拓扑,所述层拓扑用于表征各个层的类型以及各个层之间的连接关系;
根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象;
根据所述源框架类型参数和等效构造目标参数获取等效构造规则集;
根据等效构造规则集得到各个层对象对应的目标层对象;
根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。
另一方面,本发明提供了一种神经网络处理装置,所述装置包括:
源神经网络对象获取模块,用于获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境;
等效构造目标参数获取模块,用于获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境;
层拓扑解析模块,用于解析所述源神经网络对象得到层拓扑,所述层拓扑用于表征各个层的类型以及各个层之间的连接关系;
层对象构建模块,用于根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象;
等效构造规则集获取模块,用于根据所述源框架类型参数和等效构造目标参数获取等效构造规则集;
目标层对象构建模块,用于根据等效构造规则集得到各个层对象对应的目标层对象;
目标神经网络对象构建模块,用于根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。
另一方面,本发明提供了一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种神经网络处理方法。
另一方面,本发明提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种神经网络处理方法。
本发明提供的一种神经网络处理方法、装置、设备及介质。本发明中对于源神经网络对象中的各个层对象,分别得到其对应的目标层对象,并将各个目标层对象按照层拓扑进行关联即可得到目标神经网络对象。因为每个层对象与其相应的目标层对象是等效的,因此,按照层拓扑关联得到的目标神经网络对象与源神经网络对象也是等效的,由此,本发明通过等效构造等效神经网络对象的方式实现了异框架下神经网络模型的转换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供的一种神经网络处理方法流程图;
图2是本发明提供的卷积层处理方法示意图;
图3是本发明提供的层对象对应的目标层对象结构映射示意图;
图4是本发明提供的根据等效构造规则集得到各个层对象对应的目标层对象的方法流程图;
图5是本发明提供的将Tensorflow中的输入层转化为Caffe中的输入层的方法流程图;
图6是本发明提供的将Tensorflow中的神经网络层转化为Caffe中的神经网络层流程图;
图7是本发明提供的Tensorflow中的特征填充示意图;
图8是本发明提供的Caffe中的特征填充示意图;
图9是本发明提供的应用程序封装逻辑示意图;
图10是本发明提供的一种对目标神经网络对象优化的方法流程图;
图11是本发明提供的图像预处理方法流程图;
图12是本发明提供的一种神经网络处理装置框图;
图13是本发明提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。为了便于后续本发明实施例的理解,首先对本发明实施例中涉及的基本概念进行以下解释:
Tensorflow:Tensorflow是一种深度学习框架。是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现,其前身是谷歌的神经网络算法库。Tensorflow拥有多层级结构,可部署于各类服务器、终端和网页。TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护。
深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层也是一个多层结构,通过TensorFlow,可以构建多层次神经网络,每层神经网络的运行机制都是本层的神经元处理完成后得到一个结果,然后传递给下一层。
TensorLayer:TensorLayer是一款基于TensorFlow开发的深度学习与强化学习库。它提供高级别的深度学习API,从便于基于TensorFlow进行神经网络的开发。TensorLayer通过简洁的代码实现扩展了Tensorflow框架中所有的神经网络实现,并且提供了包括数据预处理、训练、训练后处理,以及服务模块和数据库管理在内的端到端工作流程,这些是开发者建立一个完整模型所需要的全部过程。这样开发者不仅能通过TensorLayer调用由Tensorflow提供的全部功能,而且能使用由多个底层API联合提供的更多扩展功能。
TensorLayer底层完全基于TensorFlow深度学习库,虽然对TensorFlow做了一些实用性扩展,但其算法实现细节仅是继承,没有考虑支持算法实现细节的外层调整,因此,虽然可以解决TensorFlow的简洁调用、灵活扩展问题,但无法解决工程人员实际工作中遇到的多深度学习框架模型切换问题。这就决定了它只能是解决单一深度学习框架场景的高级API,还不是通用场景高级API。
此外,TensorLayer的定位只是高级深度学习模型API,而且相关的训练后处理、服务模块及数据库管理在内的端到端工作流程,但并不涉及移动端部署流程。
Caffe:卷积神经网络框架,全称Convolutional Architecture for FastFeature Embedding,是一种常用的深度学习框架,主要应用在视频、图像处理方面。是一个清晰,可读性高,快速的深度学习框架。基于Caffe可以构建多层次的深度神经网络。
Caffe与Tensorflow是分别独立的两个深度学习框架。现有技术中基于Caffe构建的神经网络与基于Tensorflow构建的神经网络内部逻辑和结构的差别使其无法互相转换。
本发明实施例中将不同框架下构建的神经网络称之为异框架神经网络,比如,基于TensorFlow框架构建的神经网络A和基于Caffe框架构建的神经网络B即为异框架神经网络。现有技术中,异框架神经网络无法进行互相转换,然而,在实际研发过程中又存在异框架神经网络相互转换的客观需求,本发明实施例提供一种神经网络处理方法,所述神经网络处理方法可以通过等效构造的方式得到异框架下等效的神经网络,从而满足神经网络相互转换的客观需求,所述方法如图1所示,包括:
S101.获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境。
具体地,所述源神经网络对象可以为未经训练的神经网络模型,也可以为训练后的神经网络模型,本发明实施例对所述神经网络模型的训练过程不做限定。
所述源神经网络对象包括了神经网络的结构以及神经网络的相关参数。
S102.获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境。
源框架类型参数用于表征源神经网络对象的创建环境,比如源神经网络对象的创建环境可以是Tensorflow,也可以是Caffe或其它深度学习框架,不同框架下创建的神经网络对象可能无法自由转换。
等效构造目标参数用于表征目标神经网络对象的创建环境,比如目标神经网络对象的创建环境可以是Tensorflow,也可以是Caffe或其它深度学习框架,不同框架下创建的神经网络对象可能无法自由转换。
本发明实施例中源神经网络对象的创建环境与等效构造目标参数对应的创建环境不同。
S103.解析所述源神经网络对象得到层拓扑,所述层拓扑用于表征各个层的类型以及各个层之间的连接关系。
本发明实施例中提及的神经网络模型各个层的连接关系可以通过“前”“后”来描述,在神经网路模型中按照数据流向,先获取到数据的层在前,后获取数据的层在后。
源神经网络对象的模型构成可以根据实际情况进行灵活的设置,每个层的类型以及层前后关系都不进行具体限定。一个神经网络对象可以包含至少一个个输入层和至少一个神经网络层,每个层均具有输入和输出,本层的输出将作为其相邻的下一个层的输入。
具体地,本发明实施例中各种类型的神经网络层简述如下:
卷积层:卷积层是神经网络模型的重要组成部分,通过卷积进行特征提取,并且为其输入数据降维。
如图2所示,输入图像的维度为32*32*3,3是它的深度,代表图像的三个通道,即R代表红色,G代表绿色,B代表蓝色,卷积核是一个5*5*3的张量,卷积核的深度和输入图像的深度相同。通过一个卷积核与输入图像进行卷积可以得到一个28*28*1的特征图,图2是用了两个卷积核得到了两个特征图。
在一个神经网络模型中可以使用多层卷积层来得到更深层次的特征图。
池化层:池化层的作用与卷积层类似,对输入所述池化层的数据进行压缩,一方面使数据维度下降,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。
池化层可以设置在卷积层的后面,保留主要的特征,同时减少下一层的参数和计算量,防止过拟合。同时,还可以保持某种不变性,其执行的数据处理动作包括平移(translation),旋转(rotation),尺度化(scale)等,常用的有平均池化层(mean-pooling)和最大池化层(max-pooling)。
全连接层:连接所有的特征,得到神经网络模型的输出。
通常在设计神经网络模型时,前几层设置卷积层,卷积层参数量占比小,计算量占比大;而后设置全连接层,全连接层参数量占比达,计算量占比大。在进行计算加速优化时,重点放在卷积层;进行参数优化、权值裁剪时,重点放在全连接层。
S104.根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象。
具体地,每个层对象包括该层对象的类型、结构以及层对象的参数。
本步骤中得到各个层对象的目的在于后续可以对各个层对象进行分别转化,以得到其它框架下的相应的与层对象等效的目标层对象。本发明实施例中等效可以理解为对于相同输入,等效的两个层对象具备相同输出。
S105.根据所述源框架类型参数和等效构造目标参数获取等效构造规则集。
具体地,本发明实施例中源框架类型参数和等效构造目标参数构成的参数对与等效构造规则集具备一一对应关系。
比如,若源框架类型参数指向Tensorflow框架,而等效构造目标参数指向Caffe,则得到第一等效构造规则集,第一等效构造规则集中规定了如何将Tensorflow框架下的神经网络的各个层对象转化为Caffe中的层对象的逻辑。
比如,若源框架类型参数指向Caffe框架,而等效构造目标参数指向Tensorflow,则得到第二等效构造规则集,第二等效构造规则集中规定了如何将Caffe框架下的神经网络的各个层对象转化为Tensorflow中的层对象的逻辑。
S106.根据等效构造规则集得到各个层对象对应的目标层对象。
具体地,所述目标层对象中可能包括一个或多个目标子层。举例而言,层对象为单层结构,而其对应的目标层对象可以为多层结构,目标层对象包括多个子层。如图3所示。图3中将一个第一归一化层转化为一个具有四层结构的目标层对象,所述四层结构分别为最小均值层、方差计算层、第二归一化层和放缩层。
具体地,所述根据等效构造规则集得到各个层对象对应的目标层对象,如图4所示,包括:
S1061.根据层对象中的层类型在所述等效构造规则集中提取等效构造规则。
具体地,所述等效构造规则可以被封装为一个应用程序接口,通过应用程序接口实现目标层对象的等效构造。
S1062.根据所述等效构造规则构建与所述层对象等效的目标层对象。
层对象具有结构和参数,目标层对象的结构和参数可以与层对象相同或不同,但是目标层对象与层对象是等效的。
以层对象为一个输入层,所述等效构造规则用于将Tensorflow中的输入层转化为Caffe中的输入层为例,所述根据所述等效构造规则构建与所述层对象等效的目标层对象如图5所示,包括:
S1.创建Caffe框架下的目标输入层;
S2.获取层对象中的四维张量,所述四维张量分别标识批处理参数、长度、宽度和通道;
S3.根据所述四维张量设置所述目标输入层的属性,以得到目标层对象。
以层对象为某个神经网络层,所述等效构造规则用于将Tensorflow中的神经网络层转化为Caffe中的神经网络层为例,所述根据所述等效构造规则构建与所述层对象等效的目标层对象如图6所示,包括:
S10.创建Caffe框架下的目标神经网络层。
对于不同类型的神经网络层,Tensorflow到Caffe的映射关系不同,可能是一对一映射也可能是一对多映射,一对一映射导致单层神经网络层对应的目标神经网络层只包括一层神经网络,而一对多映射导致单层神经网络层对应的目标神经网络层包括多层神经网络。
S20.获取所述神经网络层中执行的数据处理逻辑,所述数据处理逻辑包括至少一个数据处理动作。
S30.根据所述数据处理逻辑得到第一数据处理逻辑和第二数据处理逻辑,所述第一数据处理逻辑为所述数据处理逻辑中Caffe框架不兼容的数据处理动作构成的数据处理逻辑,所述第二数据处理逻辑为Caffe框架兼容的数据处理动作构成的数据处理逻辑。
具体的,所述第一数据处理逻辑或第二数据处理逻辑可以为空。
S40.若所述第一数据处理逻辑不为空,则根据所述第一数据处理逻辑得到兼容处理逻辑;修正所述目标神经网络得到目标层对象,以使得所述目标层对象输出的数据处理结果体现兼容处理逻辑与所述第二数据处理逻辑的共同作用;所述兼容处理逻辑与所述第二数据处理逻辑的共同作用与Tensorflow中的神经网络层的作用是等效的。
S50.若所述第一数据处理逻辑为空,则修正所述目标神经网络得到目标层对象,以使得所述目标层对象输出的数据处理结果体现所述第二数据处理逻辑的作用。
本发明实施例中具体以数据处理逻辑包括特征填充(Padding)这一数据处理动作为例进行说明:
由于Caffe与Tensorflow的Padding实现方式存在不同,下面进行简单介绍:
Tensorflow提供两种类型的Padding操作:SAME Padding和VALID Padding。
VALID Padding的执行逻辑为:输入的特征图按预设步长从左往右滑动,若特征图的行或列为单数,则舍弃无法被处理的最右侧列或最底部行。
SAME Padding:当需要处理的特征图的列或行是奇数时,在最右列的右侧添加列或在最底部行的底部添加行,新添加的行或列中元素均为零,并使用添加后的特征图进行处理。
图7显示的是一个2x3的输入特征图矩阵,最大池化窗口为2x2,窗口移动的步长stride为2。第一次由于窗口可以覆盖,灰色区域可以满足处理要求。向右滑动两步之后,VALID方式下余下的窗口不到2x2便直接将第三列舍弃,而SAME方式并不会舍弃多出来的一列,而是填充第四列以满足2x2窗口的处理需要。
Caffe仅提供对称Padding,要求左右或上下Padding的列或行相同,因此并不支持图7中Tensorflow的SAME Padding方式,因此,Padding这一数据处理动作无法被兼容,因此,需要为其设计对应的兼容处理逻辑。本发明实施例中所述兼容处理逻辑为顺序执行预填充与VALID Padding。即将Tensorflow中的SAME Padding(第一数据处理逻辑)转化为顺序执行预填充与VALID Padding(兼容处理逻辑),如图8所示,其中VALID Padding与Tensorflow中的VALID Padding相同。兼容处理逻辑的预填充+VALID Paddin的方式,避免调用Caffe不支持的SAME方式,解决了兼容性问题,保障了Tensorflow中的神经网络层能够被转化为Caffe中的目标神经网络层。
S107.根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。
具体地,对于源神经网络对象中的各个层对象,分别得到其对应的目标层对象,并将各个目标层对象按照层拓扑进行关联即可得到目标神经网络对象。因为每个层对象与其相应的目标层对象是等效的,因此,按照层拓扑关联得到的目标神经网络对象与源神经网络对象也是等效的,由此,本发明实施例通过等效构造等效神经网络对象的方式实现了异框架下神经网络模型的转换。
具体地,步骤S107也可以通过设置应用程序接口来实现。在一个优选的实施例中,如图9所示,可以将等效构造规则集和步骤S107都封装为应用程序接口,封装后得到的应用程序接口相当于兼容各个神经网络开发框架的上层接口,从而可以实现异框架下创建的神经网络模型的相互转换。
进一步地,所述应用程序接口可以具体包括层初始化接口和转化接口,层初始化接口用于在各个框架下构建某个类型的层,转化接口用于对层进行异框架转换。
以Tensorflow框架为例,为其每个层都实现了一个__init__方法和to_caffe_prototxt方法,用来完成对Tensorflow底层接口的调用并初始化层,以及将其转化为Caffe框架中的层。
本发明实施例提供一种神经网络处理方法,可以兼容不同深度学习框架,使得不同深度学习框架下开发的神经网络模型可以以等效构造的方式完成相互转换。基于在现有的低级的深度学习框架(比如Tensorflow或Caffe)封装了一层应用程序接口,可以提供更加易于修改和扩展的神经网络模型定义API,基于层粒度实现了跨深度学习框架的转换。
进一步地,为了便于用户进行一键式的异框架下的模型自动转换,在一个优选的实施例中可以提供一个模型自动转换接口,所述模型自动转换接口可以将上述步骤S101-S107的逻辑进行上一层封装,从而实现一键式转换。这一转换可以以具备具体参数和结构的某个神经网络模型为输入,以另一个异框架下具备具体参数和结构的某个神经网络模型为输出。
具体地,本发明实施例提供了会话模式下的一键式转换接口和非会话模式下的一键式转换接口。
会话模式下的一键式转换接口通过加载在外部创建的完整的神经网络对象的方式完成一键式转换。
非会话模式下的一键式转换接口通过加载待创建的模型的定义和参数,即可在内部创建完整的神经网络对象,并基于创建出的神经网络对象完成一键式转换。
本发明实施例中提供了神经网络异框架的转换方法,不同框架下的神经网络的适用场景也可能不同。其中一个典型的场景为移动终端场景中的神经网络模型的落地。具体地,将运行于工作站上通过不同深度学习框架训练生成的模型转换为移动终端中的神经网络模型,而移动终端由于硬件资源有限,因此,在进行移动终端中的神经网络模型不仅需要能够被运行于移动终端的神经网络框架识别,还应该具备运行资源占用小的特点。通过本发明实施例中上述的神经网网络处理方法生成目标神经网络对象即可解决运行于移动终端的神经网络框架识别的问题,而运行资源占用小则需要通过优化目标神经网络对象的结构才能够得到解决。
本发明实施例认为目标神经网络对象的层数越少,则目标神经网络对象运行资源占用越小,因此,基于上述神经网络处理方法得到目标神经网络对象后,本发明实施例还提供了一种对目标神经网络对象优化的方法,如图10所示,所述方法包括:
S201.提取所述目标神经网络对象的至少一个待优化层结构,每个所述待优化层结构均包括一个数据处理层和一个放缩层。
所述待优化层结构为一个多层结构,以目标神经网络对象隶属于Caffe框架为例,所述待优化层结构包括至少一个数据处理层和至少一个放缩层,而数据处理层和放缩层也都可以执行多个数据处理动作,比如数据处理层(Batchnorm Layer)其对应的数据处理动作可以包括最小均值计算(mini-batch mean)和方差计算(mini-batch variance参数计算),放缩层(Scale Layer)实现了归一化(normalize)和缩放(scale)。
S202.对每个所述待优化层结构中的各个层进行合并以得到所述待优化层结构对应的目标单层。
具体地,所述目标单层中对于输入数据执行下述处理:
(1)计算输入数据的均值
(2)计算输入数据的方差
(3)计算输入数据的归一化特征值其中ε是目标神经网络对象中的内置参数;
(4)计算输入数据的对应的输出数据其中γ,β是目标神经网络对象中的内置参数。
S203.使用所述目标单层替代所述待优化层结构以得到所述目标神经网络的优化结果。
本发明实施例不仅提供一种相对于现有深度学习框架更高级别(Higher-Level)的深度学习模型API,从而能够灵活实现神经网络的模型转换,从而封装出无使用场景限制的高级API;还能够得到适用于移动终端的神经网络模型对象,从而打通工作站模型训练到移动端应用部署的完整流程,可以加快研究人员实验速度及提升研究成果的工程落地效率。可以支持不同框架模型的一键自动转换,隐藏不同深度学习框架实现细节的差异;基于神经网络模型训练成果封装了一个移动端推理模型生成方法,可以补齐研究实验成果快速上线移动端应用的工程短板。
基于本发明实施例的神经网络处理方法可以满足不同框架下训练和使用神经网络的需要,而目标神经网络对象的优化方法可以满足移动终端训练和使用神经网络的需要,便于神经网络的落地。本发明实施例中得到的目标神经网络能广泛应用于计算机视觉相关场景,比如图像处理、游戏人物捏脸以及艺术滤镜,为了将后台训练好的用于计算机视觉相关场景的神经网络应用于移动终端,在一个优选的实施例中,所述移动终端和后台在训练或使用神经网络之前都可以基于相同的图像预处理方法对图像进行预处理,以提升神经网络的训练速度,并便于应用神经网络的训练结果。具体地,所述图像预处理方法如图11所示,包括:
S301.获取待处理图片。
具体地,所述待处理图片的通道顺序为RGB。
S302.从所述待处理图片中裁取目标图片,所述目标图片面积与所述待处理图片面积比值位于第一预设区间,所述目标图片宽高比值位于第二预设区间。
具体地,本发明实施例所述目标图片面积与所述待处理图片面积比值可以随机在[0.05,1.0]之间取值,本发明实施例目标图片宽高比值可以随机在[3/4,4/3]取值。
S303.将所述目标图片的尺寸调整至目标尺寸。
具体地,所述目标尺寸优选为224*224。
S304.以第一概率水平翻转所述目标图片。
具体地,所述第一概率优选为0.5。
S305.以第二概率旋转所述目标图片,所述旋转的旋转角位于第三预设区间内。
具体地,所述第二概率优选为0.25,所述第二预设区间优选为[-45°,45°]
S306.以第三概率扰动所述目标图片的饱和度、对比度、亮度和色度。
本发明实施例不仅提出了神经网络的处理方法,并将处理方法封装为一种神经网络模型定义的高级API,它通过提供兼容不同深度学习框架,并且提出了神经网络优化处理方法,从而使得神经网络能够直接在移动终端落地。依托本发明实施例开发者可以快速迭代神经网络模型,为模型训练、进行移动端部署,提高研究人员进行深度学习算法实验的效率,更为研究人员进行算法落地、移动端工程部署提供便利,解决了长期困扰研究人员的工程问题。
本发明实施例还提供一种神经网络处理装置,如图12所示,所述装置包括:
源神经网络对象获取模块401,用于获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境;
等效构造目标参数获取模块402,用于获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境;
层拓扑解析模块403,用于解析所述源神经网络对象得到层拓扑,所述层拓扑用于表征各个层的类型以及各个层之间的连接关系;
层对象构建模块404,用于根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象;
等效构造规则集获取模块405,用于根据所述源框架类型参数和等效构造目标参数获取等效构造规则集;
目标层对象构建模块406,用于根据等效构造规则集得到各个层对象对应的目标层对象;
目标神经网络对象构建模块407,用于根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。
具体地,本发明实施例所述一种神经网络处理装置与方法实施例均基于相同发明构思。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行本发明实施例所述的一种神经网络处理方法步骤,具体执行过程可以方法实施例的具体说明,在此不进行赘述。
进一步地,图13示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以为计算机终端、移动终端或其它设备,所述设备还可以参与构成或包含本发明实施例所提供的装置。如图13所示,计算机终端10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图13所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图13中所示更多或者更少的组件,或者具有与图13所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种神经网络处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种神经网络处理方法,其特征在于,所述方法包括:
获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境;
获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境;
解析所述源神经网络对象得到层拓扑,所述层拓扑用于表征各个层的类型以及各个层之间的连接关系;
根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象;
根据所述源框架类型参数和等效构造目标参数获取等效构造规则集;
根据所述等效构造规则集得到各个层对象对应的目标层对象;
根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。
2.根据权利要求1所述方法,其特征在于,所述根据所述等效构造规则集得到各个层对象对应的目标层对象,包括:
根据层对象中的层类型在所述等效构造规则集中提取等效构造规则;
根据所述等效构造规则构建与所述层对象等效的目标层对象。
3.根据权利要求2所述的方法,其特征在于,所述根据所述等效构造规则构建与所述层对象等效的目标层对象,包括:
创建卷积神经网络框架下的目标输入层;
获取层对象中的四维张量,所述四维张量分别标识批处理参数、长度、宽度和通道;
根据所述四维张量设置所述目标输入层的属性,以得到目标层对象。
4.根据权利要求2所述的方法,其特征在于,所述根据所述等效构造规则构建与所述层对象等效的目标层对象,包括:
创建卷积神经网络框架下的目标神经网络层;
获取所述神经网络层中执行的数据处理逻辑,所述数据处理逻辑包括至少一个数据处理动作;
根据所述数据处理逻辑得到第一数据处理逻辑和第二数据处理逻辑,所述第一数据处理逻辑为所述数据处理逻辑中卷积神经网络框架不兼容的数据处理动作构成的数据处理逻辑,所述第二数据处理逻辑为卷积神经网络框架兼容的数据处理动作构成的数据处理逻辑;
若所述第一数据处理逻辑不为空,则根据所述第一数据处理逻辑得到兼容处理逻辑;修正所述目标神经网络得到目标层对象,以使得所述目标层对象输出的数据处理结果体现兼容处理逻辑与所述第二数据处理逻辑的共同作用;所述兼容处理逻辑与所述第二数据处理逻辑的共同作用与所述层对象的作用是等效的。
5.根据权利要求4所述的方法,其特征在于,所述根据所述等效构造规则构建与所述层对象等效的目标层对象,还包括:
若所述第一数据处理逻辑为空,则修正所述目标神经网络得到目标层对象,以使得所述目标层对象输出的数据处理结果体现所述第二数据处理逻辑的作用。
6.根据权利要求1所述的方法,其特征在于,还包括:
对所述目标神经网络对象进行优化以减少所述目标神经网络对象的层数。
7.根据权利要求6所述的方法,其特征在于,所述对所述目标神经网络对象进行优化以检索所述目标神经网络对象的层数,包括:
提取所述目标神经网络对象的至少一个待优化层结构,每个所述待优化层结构均包括一个数据处理层和一个放缩层;
对每个所述待优化层结构中的各个层进行合并以得到所述待优化层结构对应的目标单层;
使用所述目标单层替代所述待优化层结构以得到所述目标神经网络的优化结果。
8.一种神经网络处理装置,其特征在于,所述装置包括:
源神经网络对象获取模块,用于获取源神经网络对象,所述源神经网络对象包括源框架类型参数,所述源框架类型参数表征所述源神经网络对象的创建环境;
等效构造目标参数获取模块,用于获取等效构造目标参数,所述等效构造目标参数表征目标神经网络对象的创建环境;
层拓扑解析模块,用于解析所述源神经网络对象得到层拓扑,所述层拓扑用于表征各个层的类型以及各个层之间的连接关系;
层对象构建模块,用于根据所述层拓扑和所述源神经网络对象,得到每个层对应的层对象;
等效构造规则集获取模块,用于根据所述源框架类型参数和等效构造目标参数获取等效构造规则集;
目标层对象构建模块,用于根据等效构造规则集得到各个层对象对应的目标层对象;
目标神经网络对象构建模块,用于根据层拓扑对各个目标层对象进行连接以得到目标神经网络对象。
9.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的一种神经网络处理方法。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如权利要求1-7任一项所述的一种神经网络处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910386136.3A CN110163345A (zh) | 2019-05-09 | 2019-05-09 | 一种神经网络处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910386136.3A CN110163345A (zh) | 2019-05-09 | 2019-05-09 | 一种神经网络处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110163345A true CN110163345A (zh) | 2019-08-23 |
Family
ID=67634152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910386136.3A Pending CN110163345A (zh) | 2019-05-09 | 2019-05-09 | 一种神经网络处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110163345A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110942139A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市魔数智擎人工智能有限公司 | 深度学习神经网络部署系统及其方法 |
CN110989995A (zh) * | 2019-11-27 | 2020-04-10 | 开放智能机器(上海)有限公司 | 基于开源深度学习框架的人工智能应用的处理方法及系统 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN112163677A (zh) * | 2020-10-14 | 2021-01-01 | 杭州海康威视数字技术股份有限公司 | 应用机器学习模型的方法、装置及设备 |
CN113642592A (zh) * | 2020-04-27 | 2021-11-12 | 武汉Tcl集团工业研究院有限公司 | 一种训练模型的训练方法、场景识别方法、计算机设备 |
WO2023071793A1 (zh) * | 2021-10-29 | 2023-05-04 | 华为技术有限公司 | 神经网络的构建方法和装置 |
-
2019
- 2019-05-09 CN CN201910386136.3A patent/CN110163345A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110942139A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市魔数智擎人工智能有限公司 | 深度学习神经网络部署系统及其方法 |
CN110989995A (zh) * | 2019-11-27 | 2020-04-10 | 开放智能机器(上海)有限公司 | 基于开源深度学习框架的人工智能应用的处理方法及系统 |
CN113642592A (zh) * | 2020-04-27 | 2021-11-12 | 武汉Tcl集团工业研究院有限公司 | 一种训练模型的训练方法、场景识别方法、计算机设备 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111753948B (zh) * | 2020-06-23 | 2022-11-01 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN112163677A (zh) * | 2020-10-14 | 2021-01-01 | 杭州海康威视数字技术股份有限公司 | 应用机器学习模型的方法、装置及设备 |
CN112163677B (zh) * | 2020-10-14 | 2023-09-19 | 杭州海康威视数字技术股份有限公司 | 应用机器学习模型的方法、装置及设备 |
WO2023071793A1 (zh) * | 2021-10-29 | 2023-05-04 | 华为技术有限公司 | 神经网络的构建方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163345A (zh) | 一种神经网络处理方法、装置、设备及介质 | |
US10445043B2 (en) | Graphics engine and environment for efficient real time rendering of graphics that are not pre-known | |
CN107122147B (zh) | 用于将图像基元部署至计算构造的图像流管线控制器 | |
CN110532871A (zh) | 图像处理的方法和装置 | |
CN110227259A (zh) | 一种数据处理的方法、装置、服务器和系统 | |
US11563885B2 (en) | Adaptive system for autonomous machine learning and control in wearable augmented reality and virtual reality visual aids | |
CN110351511A (zh) | 基于场景深度估计的视频帧率上变换系统及方法 | |
CN107515948A (zh) | 页面跳转方法、装置及可读存储介质 | |
CN109117779A (zh) | 一种穿搭推荐方法、装置及电子设备 | |
CN105912234A (zh) | 虚拟场景的交互方法和装置 | |
CN109117760A (zh) | 图像处理方法、装置、电子设备和计算机可读介质 | |
CN107393502B (zh) | 用于多遍渲染的技术 | |
CN109978063A (zh) | 一种生成目标对象的对齐模型的方法 | |
CN108320312A (zh) | 图片的配色方法及装置、计算机终端 | |
CN108028888A (zh) | 用于以隔行曝光捕捉图像帧的方法及装置 | |
CN111583154A (zh) | 图像处理方法、肤质美化模型训练方法及相关装置 | |
CN108335260A (zh) | 一种游戏场景图像处理方法、装置、存储介质及电子装置 | |
CN110276289A (zh) | 生成匹配模型的方法和人脸特征点追踪方法 | |
CN107562415A (zh) | 一种贴纸功能框架实现方法与设备 | |
CN110102048A (zh) | 一种虚拟服装渲染方法及装置 | |
CN109271897A (zh) | 人脸动作单元检测方法、装置、计算机设备及存储介质 | |
CN108108102A (zh) | 图像推荐方法及电子设备 | |
CN109685750A (zh) | 图像增强方法及计算设备 | |
CN108140251A (zh) | 视频循环生成 | |
CN110536087A (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 |