CN110717589A - 数据处理方法、设备和可读存储介质 - Google Patents

数据处理方法、设备和可读存储介质 Download PDF

Info

Publication number
CN110717589A
CN110717589A CN201910828500.7A CN201910828500A CN110717589A CN 110717589 A CN110717589 A CN 110717589A CN 201910828500 A CN201910828500 A CN 201910828500A CN 110717589 A CN110717589 A CN 110717589A
Authority
CN
China
Prior art keywords
sub
network model
neural network
data processing
models
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
Application number
CN201910828500.7A
Other languages
English (en)
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.)
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Megvii Technology 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 Beijing Megvii Technology Co Ltd filed Critical Beijing Megvii Technology Co Ltd
Priority to CN201910828500.7A priority Critical patent/CN110717589A/zh
Publication of CN110717589A publication Critical patent/CN110717589A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Abstract

本发明公开了数据处理方法、设备和可读存储介质。该数据处理方法包括:接收输入的数据;经由神经网络模型的至少一个子网络模型,处理数据;输出对数据的处理结果,其中,神经网络模型包括多个基本单元和多个子网络模型,其中每个子网络模型包括多个基本单元中的至少部分基本单元,且多个子网络模型中的至少两个子网络模型共享多个基本单元中的一个或多个基本单元。本发明实施例通过在一个神经网络中设计能够共享参数的多个子网络模型结构,从而在该神经网络的一次训练过程中可以同时训练多个不同的子网络模型,能够满足不同数据处理设备的精度、速度需要,极大简化了实际开发过程中的训练和测试流程,节省了计算资源。

Description

数据处理方法、设备和可读存储介质
技术领域
本发明涉及数据处理领域,尤其涉及数据处理方法、设备和可读存储介质。
背景技术
在基于深度学习的一系列方法(例如目标检测、图像分类、物体识别等方法)中,神经网络模型的训练是关系到模型输出的精度和性能的关键环节。
目前大部分的模型训练方法随机初始化神经网络的参数进行模型训练,然后再部署到相应的设备上。在部署时,诸如移动设备、台式设备、DSP设备、GPU设备等之类的设备上的计算资源的计算能力不同;并且对神经网络模型的结构有不同的偏好性;另外,神经网络模型的大小、不同的网络结构、甚至同一个网络结构中的不同子模块,在这些设备上的运行速度均有一定的差异。因此,当实际要运行神经网络模型的不同设备之间存在一定的差别时,往往需要为它们中的每一个单独地训练多个神经网络模型,使其分别具有不同的大小、形状,以与实际计算设备的性能相符。
按照现有的方法,对于一个特定任务,一个独立的神经网络模型只有一个输出结果。对于不同的设备,即便是同一个神经网络模型可能也需要调整其网络结构,而一旦网络结构做出了调整,就需要另外地重新进行参数初始化并训练。在模型的原理本身没有改动的情况下,训练多个相似的神经网络模型需要额外的手工操作、计算资源和存储资源。
因此,在现有技术中,为了适应不同硬件设备的不同计算性能,需要初始化训练不同大小的神经网络,所以会占用多倍的计算、存储开销。
发明内容
为了解决以上问题之一,本发明提供了一种数据处理方法、设备和可读存储介质,以大大减少针对不同的设备单独训练神经网络模型造成的资源浪费。
根据本发明的一个实施例,提供一种基于神经网络模型的数据处理方法,其特征在于,所述神经网络模型包括多个基本单元和多个子网络模型,其中每个子网络模型包括所述多个基本单元中的至少部分基本单元,且所述多个子网络模型中的至少两个子网络模型共享所述多个基本单元中的一个或多个基本单元,该数据处理方法包括:接收输入的数据;经由所述神经网络模型的至少一个子网络模型,处理所述数据;输出对所述数据的处理结果。
根据本发明的一个实施例,提供一种数据处理设备,通过使用神经网络模型进行数据处理,其特征在于,所述神经网络模型包括多个基本单元和多个子网络模型,其中每个子网络模型包括所述多个基本单元中的至少部分基本单元,且所述多个子网络模型中的至少两个子网络模型共享所述多个基本单元中的一个或多个基本单元,该数据处理设备包括:接收装置,接收输入的数据;处理装置,用于经由所述神经网络模型的至少一个子网络模型,处理所述数据;输出装置,用于输出对所述数据的处理结果
根据本发明的再一个实施例,提供一种基于神经网络模型的数据处理设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上面描述的方法之一。
根据本发明的又一个实施例,提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行上面描述的方法之一。
本发明实施例通过在一个神经网络中设计能够共享参数的多个子网络模型结构,从而在该神经网络的一次训练过程中可以同时训练多个不同的子网络模型,能够满足不同数据处理设备的精度、速度需要,极大简化了实际开发过程中的训练和测试流程,节省了计算资源。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的附图标记通常代表相同部件。
图1给出了根据本发明的一个示例性实施例的数据处理方法的示意性流程图。
图2作为例子示出了一个神经网络模型中部署的多种残差模块结构。
图3示出了神经网络模型的结构示意图。
图4给出了根据本发明的一个示例性实施例的神经网络模型训练过程的示意性流程图。
图5给出了根据本发明的一个示例性实施例的神经网络测试过程的示意性流程图。
图6给出了根据本发明的一个示例性实施例的结合投票机制的系统结构示意图。
图7示出了根据本发明的示例性实施例的数据处理设备的示意性框图。
图8示出了根据本发明的示例性实施例的神经网络模型训练设备的示意性框图。
图9给出了根据本发明的一个示例性实施例的数据处理设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的一些实施方式。这里需要说明的是,本申请中的数字、序号以及附图标记仅是为了方便描述而出现的,对于本发明的步骤、顺序等等均不构成任何限制,除非在说明书中明确指出了步骤的执行有特定的先后顺序。
针对现有技术中神经网络模型训练和/或测试存在的问题和不足,减少为了适配不同设备而训练多个神经网络模型造成的计算资源和存储资源浪费,消除分别对多个独立模型进行测速的繁琐过程,本发明实施例提出了一种基于神经网络模型的数据处理方法和设备,其中,神经网络模型中的子网络模型可以共享参数。
图1给出了根据本发明的一个示例性实施例的基于神经网络模型的数据处理方法的示意性流程图。
如图1所示,在步骤S110,接收输入的数据。
在步骤S120,经由神经网络模型的至少一个子网络模型,处理接收的数据。
在步骤S130,输出对接收的数据的处理结果。
本发明实施例的神经网络模型可以用于多种数据处理场景中。例如,该输入的数据可以为图像或视频帧。当输入的数据为图像或视频帧时,该神经网络模型可以用于对图像中目标对象(如人脸、车辆、狗脸、人体等)的进行检测、分割、分类、识别等,该神经网络输出的处理结果可以是目标对象的位置信息、图像分割结果、目标对象与预存对象的相似度等。该输入的数据还可以为文本或音频等,相应地该神经网络模型可以用于对文本或音频进行分类、识别等。
根据本发明的示例性实施例的神经网络模型包括多个基本单元和多个子网络模型,其中每个子网络模型包括多个基本单元中的至少部分基本单元,且多个子网络模型中的至少两个子网络模型共享多个基本单元中的一个或多个基本单元。
神经网络模型中的不同子网络模型可以适用于不同性能的数据处理设备。例如神经网络中的部分子网络模型适用于性能一般的数据处理设备(如手机、平板电脑、便携设备等),部分子网络模型适用于性能较高的数据处理设备(如服务器),部分子网络模型适用于性能较差的数据处理设备(如智能眼镜等可穿戴设备)。
本发明实施例通过在一个神经网络中设计能够共享参数的多个子网络模型结构,从而在该神经网络的一次训练过程中可以同时训练多个不同的子网络模型,能够满足不同数据处理设备的精度、速度需要,极大简化了实际开发过程中的训练和测试流程,节省了计算资源。
可选地,在S120中,该至少一个子网络模型是根据当前设备的计算性能从神经网络模型的多个子网络模型中选择的,该至少一个子网络模型为神经网络模型中适合当前设备的子网络模型。通过从神经网络模型中选择适合当前设备的至少一个子网络模型,并使用该至少一个子网络模型处理数据,能够有效的提升运算速度,减少运算所需时间。
可选地,该至少一个子网络模型为神经网络模型中适合当前设备的子网络模型且计算精度最高的子网络模型。例如,该神经网络模型中有多个子网络模型适合当前设备,此时可以从该多个子网络模型中选择计算精度最高的至少一个子网络模型用于处理输入的数据。这样能够进一步提高处理结果的精度。
这里,神经网络模型的基本单元可以为残差模块,也可以是其它子结构,例如卷积层、池化层等等。
相比于使用其他模块或结构,使用多个残差模块组合来搭建神经网络模型,具有较好的灵活性、易用性和性能。以下将以残差模块作为基本单元为例,来描述神经网络模型及其子网络模型。
本发明实施例的神经网络模型是由多个残差模块堆叠而成的。残差模块为该神经网络模型的基本单元。进一步的,神经网络模型中的残差模块可以具有不同的结构或参数配置(例如不同宽度、不同卷积核大小),也就是说,上述多个基本单元中,至少两个基本单元的宽度和/或卷积核大小不同。
本发明实施例的神经网络模型中,不同的子网络模型可以包括不同的残差模块以实现不同的数据处理能力,可以根据数据处理设备的计算性能选择合适的子网络模型进行数据处理。
在这样构造的神经网络模型中,由残差模块组成了该神经网络模型的主干。不过这些残差模块的形式虽然相似,但是在网络的不同位置可能有不同的配置,例如会使用不同的通道数或不同的卷积核大小,以便使得该神经网络模型的学习能力更强,能够适用于不同性能的设备,以便有利于解决本发明实施例要解决的技术问题:如何大大减少针对不同的设备单独训练神经网络模型造成的资源浪费。
这里,残差模块的宽度不同可以指残差模块的中间层(例如将在后面例举到的DWConv)的特征图通道数的不同。可以理解为,残差模块的宽度越大,则其参数量越大,特征图的通道数越多。其中,特征图是输入数据在模型中不同层的不同中间结果。
其中,不同的传播路径经过不同的基本单元(例如残差模块),从而形成了不同的子网络模型。可以理解为,每个传播路径表示相应的子网络模型在该神经网络模型中的数据流动,每个传播路径所经过的所有基本单元构成一个子网络模型。由此,可以认为,传播路径与子网络模型之间具有一一对应的关系。
另外,可选地,每个残差模块可以包括三个卷积层,其中,第一层和第三层卷积层可以为普通卷积层,第二层卷积层可以为深度可分离卷积层。这里的普通卷积层为现有技术中通常意义上的卷积层。
图2作为例子示出了一个神经网络模型中部署的多种残差模块结构。
如图2所示,在本例中,一个特定的残差模块可以由3层卷积层构成(请注意,该图中仅示出了卷积层)。当然,也可以由1层、2层、4层,甚至是其他的任何数量的卷积层来构成神经网络模型的残差模块,本发明实施例对此没有任何限制。其中,3层卷积层仅为示例。
举例来说,残差模块的宽度和卷积核大小可以是事先设计好的,例如某一个残差模块的输入特征图个数为128,则该残差模块可以使用3倍或6倍的扩张(expansion),则该模块的中间层DWConv的通道数(或者说宽度)就可以是384或者768。若卷积核可以使用3×3或者5×5,那表示该残差模块的中间层DWConv使用的是3×3或者5×5的卷积核,而每个残差模块的输入层和输出层一般都是1×1的卷积核,通道数也可以是预设好的。所以在本文中,如上所述,“残差模块的宽度和卷积核大小不同”,可以指该残差模块的中间层DWConv的通道数和卷积核大小不同。
在本例中,先是第一层的卷积层,该卷积层可以是一个卷积核大小为1×1的普通卷积层,后面可以紧跟一个归一化层和一个非线性激活层,即,可以按照普通卷积层-归一化层-非线性激活层的顺序排列。
第二层的卷积层可以是深度可分离卷积层(Depthwise Separable Convolution,可简写为DWConv),相比于普通卷积层更加节省参数量,并可同样按可分离卷积层-归一化层-非线性激活层的顺序排列。
第三层的卷积层可以是卷积核大小为1×1的普通卷积层,后面可以只跟归一化层,即按照普通卷积层-归一化层的顺序排列。
最后,通过捷径连接(shortcut connection)将该残差模块的输入数据和残差模块的输出数据相加得到该残差模块的输出结果。
另外,上面的例子中,残差模块具有3个卷积层。不过,实际上,残差模块也可以具有其它数量的卷积层。
另外,在图2给出的例子中,3×3或5×5的深度可分离卷积层用于特征抽取,输入和输出(即第一和第三层)的1×1卷积层用于不同通道的特征融合并保证通道数一定。
另外,1×1、3×3、5×5的卷积核具有不同的感受野(Receptive field),因此对于特征有不同的处理能力。其中,1×1与3×3的卷积核计算量更少,但对于特征的感知范围较小;5×5的卷积核计算量更大,对特征的感知范围也更大。分别设计具有不同卷积核的残差模块,可以适应不同任务的不同需求。例如有些任务输入图片较小,则选择较小的卷积核,例如1×1或者3×3的卷积核,计算量少;有些任务输入图片很大,需要较大的卷积核(例如5×5卷积核)去扩大感受野,则就会倾向于选择5×5的卷积核。但是,这里给出的卷积核的大小都是例子,本发明实施例不限于此,可以根据需求,确定卷积核大小。
本发明实施例中,可以使用多种不同的基本单元结构以满足不同子网络的需求。
在图2所示的例子中,包括4种不同结构的残差模块。如图2所示,第二层的卷积核为3×3(例如图2的第一模块和第二模块)或5×5(例如图2的第三模块和第四模块)。同时第二层的通道数(Channel Number)相比于该模块的输入通道数,可以进行3倍(例如图2的第一模块和第三模块)或6倍(例如图2的第二模块和第四模块)的扩张(expansion)。图2所示四种残差模块的计算量和效果有一定差异。这样做的好处是,可以使得不同的计算资源能够根据其计算性能来对于神经网络模型里的子模块(本文还称为“子网络模型”)进行偏好选择,而不必每次单独测试神经网络模型。
其中,扩张操作能够提升特征的维度,最终的性能也会更好一些。其中,3倍扩张和6倍扩张的不同主要体现在参数量上。网络中的某些位置可能只需要3倍扩张,某些位置可能6倍扩张的精度会更好。如何选取扩张倍数取决于使用这些模块的输出精度和计算耗时,可以根据数据精度和计算耗时来选择最优的扩张倍数。
如上所述,可选地,每个基本单元可以包括:依次连接的第一普通卷积层、第一归一化层、第一非线性激活层、深度可分离卷积层、第二归一化层、第二非线性激活层、第三普通卷积层和第三归一化层。
其中,可选地,第一普通卷积层和第三普通卷积层的卷积核大小可以为1×1,深度可分离卷积层的卷积核大小可以为3×3或5×5,深度可分离卷积层的通道数可以为每个基本单元的输入通道数的3倍或6倍。
请注意,本例中给出的残差模块的结构部署都只是为了便于理解的示意性的例子,本发明实施例不限于该例中给出的这一种具体的结构部署。本领域技术人员可以根据需要来自行设置残差模块的结构。
另外,本例中的神经网络模型具有四种残差模块,但是本领域技术人员应当明白,神经网络模型中的作为基本单元的残差模块的结构不限于四种,而是可以根据实际需要来确定残差模块的结构数量。
另外,本例中的卷积层的卷积核的设置、以及卷积层中的通道扩张的程度等等这些,也都只是示意性的,不应当被理解为是对于本发明实施例的限制。
再者,如上所述,神经网络模型的至少两个子网络模型共享一个或多个残差模块。
本发明实施例中的几个子网络模型可以共享使用某个或某几个残差模块,也就是说,至少两个子网络模型共享基本单元,即至少两个子网络模型之间有共享的参数。通过在神经网络模型中的多个子网络模型之间共享参数,能够简化神经网络模型的训练和测试流程。但是,不同的子网络模型之间不一定是完全共享参数的,也可能是部分共享或者不共享。
比如,子网络模型1可以使用残差模块1和2,而子网络模型2可以使用残差模块1和3,这时,子网络模型1和2共享残差模块1,但它们还使用不同的残差模块2、3。当然,也有可能子网络模型1使用残差模块1,子网络模型2使用残差模块1、2,这时,子网络模型1与子网络模型2共享残差模块1,但子网络模型2与子网络模型1不同的是,它还使用了残差模块2。再例如,子网络模型3可以使用残差模块4,但是它与子网络模型1和2没有共享的残差模块。
图3示出了神经网络模型的结构布置的示意图。
如图3所示,各竖方块示意为各基本单元,即基本单元1、基本单元2......基本单元M,各个长的横条示意为各子网络模型的前向传播路径(如前所述,每条路径对应一个子网络模型),即路径1、路径2......路径N。如该图中所示,每条路径即各子网络模型彼此之间经过整个神经网络模型中的部分基本单元,且它们之间也有一些共享的基本单元。比如路径1与路径N共享基本单元1,路径1、2共享基本单元3。但是各子网络之间也可以有未被共享的基本单元,比如基本单元2有可能未被共享(当然也有可能被路径2与路径3~N之间的某条或某几条路径共享)。
通过如上所述的能够共享参数的神经网络模型结构,能够实现在模型训练时,无需再分别单独训练神经网络模型,即能够实现一次就把神经网络模型训练好,为多种不同的设备所用。
另外,可以对上述的神经网络模型以及其中的多个子网络模型同时进行训练,得到经过训练的上述神经网络模型和多个子网络模型。
本发明实施例通过在一个神经网络模型内部署多个基本单元,例如残差模块,这些子网络模型分别交叉使用不同的基本单元,而不同的子网络模型之间共用的基本单元的参数是共享的,由此使得能够简化神经网络模型的训练的过程。
也就是说,一个基本单元可以服务于至少一个子网络模型,所以至少两个子网络模型可以共享某个或某些基本单元(也就是共享基本单元的参数信息)。并且,每个子网络模型各自分别输出对应的结果。
而且,经过上述训练方法得到的子网络模型相比于现有技术中进行单独训练的网络模型,模型的精度相差无几。而相比于单独训练多个神经网络模型,本发明实施例的能够共享参数的神经网络模型极大地节省了计算资源和存储资源。
图4给出了根据本发明的一个示例性实施例的神经网络模型训练过程的示意性流程图。
以下将参照图4来更详细地介绍模型训练过程。
首先,在步骤S310,初始化神经网络模型的所有训练参数。例如,对神经网络模型进行一次全局初始化,即,对整个网络模型中所有的参数统一进行初始化设置。可选地,还可以预先设定训练周期。
然后,在步骤S320,针对每一个子网络模型得到该子网络模型的用于修正其训练参数的反向传播误差。在步骤S330,将上述多个子网络模型的反向传播误差累加。
在步骤S340,将累加的反向传播误差进行反向传播以更新神经网络模型的参数,由此更新多个子网络模型的参数。
可以在设定的训练周期结束之前,重复上述的步骤S320~S330。
如果是单独训练不同的神经网络,显然需要分别计算其反向传播误差,并分别反向传播该误差,并分别进行参数的更新;而在本发明实施例中,当所有子网络模型都在一个神经网络模型中训练时,首先同样需要计算每个子网络模型的反向传播误差,但是在该误差的反向传播时,不能独立地更新每一个子网络模型的参数,这样会导致不同网络模型之间的参数冲突,使得最后训练出的子网络模型可能有精度的下降。因此,在本发明实施例中,可以将得到的多个子网络模型各自的反向传播误差累加起来,并在所有的子网络模型训练完成后,通过反向传播,用累加的反向传播误差(例如,累加的反向传播误差可以直接是误差的累加和,也可以是其他形式的累加)对神经网络模型的参数进行更新,这样,就可以在共享参数的情况下将多个子网络模型同时训练至收敛,而且不损失每个子网络模型的精度。
另外,本发明实施例中还提出为神经网络模型的各子网络模型设置索引值,用于选通激活子网络模型,使得数据只在激活的子网络模型中流通。
相应地,上述的数据处理方法还可以包括步骤S105。
其中,在步骤S105中,获取目标索引值并将该目标索引值输入上述的神经网络模型,该目标索引值用于选通激活至少一个子网络模型,且该至少一个子网络模型为上述的多个子网络模型中的、适合当前设备的子网络模型。其中,目标索引值可以包括至少一个索引值,其中每个索引值用于激活选通一个子网络模型。
这里,步骤S105可以在步骤S110之前,即在向数据处理设备输入数据之前,可以先针对该数据处理设备选取适合该设备的子网络模型(上述的神经网络模型中的子网络模型)。
以下将参照图5来描述根据本发明的一个示例性实施例的网络模型测试方法。
首先,在步骤S410,对于上述神经网络模型,设置多个索引值。这里,每个索引值用于选通激活所述神经网络模型中的一个子网络模型。由此可见,神经网络模型中有多少个子网络模型,可以设置多少个索引值。
然后,在步骤S420,在测试神经网络模型时,每次输入一个索引值,激活相应的子网络模型,待测数据通过该子网络模型的前向传播路径流经该子网络模型中,由此得到该子网络模型的预测结果;重复执行该步骤,直到得到神经网络中所有子网络模型的预测结果。
在步骤S430,基于各子网络模型的预测结果,得到各子网络模型的精度。由此,基于各子网络模型的精度,可以为特定设备选取适合该设备的且计算精度相对较高的子网络模型。
具体地,例如,在测试时,输入待测数据和想要激活的子网络模型的索引值,数据便会在整个神经网络模型中的对应该子网络模型的所有结构中前向传播,并输出该子网络模型的预测结果。显然,不同的子网络模型会覆盖不同的基本单元,整个计算过程的耗时和最后的精度都会因所选子网络模型的不同而有差异。
因此,在实际设备的测试过程中,先遍历一次所有子网络模型,查看不同子网络模型在该设备上的耗时,并根据得到的各子网络模型的精度来选择适合的子网络模型,比如,性能差的设备可以动态选择参数较少、精度稍低的子网络模型,性能较好的设备则可以选择模型参数更多、精度更高的子网络模型。由于整个神经网络模型中的大部分残差模块都是多路复用的,因此,不管选择哪个子网络模型,参数利用率都处于较高水平。相比于单独测试多个独立训练的网络,这种方法显然节省了存储资源和操作步骤,提高了资源利用率和工作效率。
某些情况下,设备的计算资源充沛,或对计算速度没有严格限制,例如在使用GPU的云平台上计算,此时往往只需要最大化网络模型的精度。在这种应用场景下,往往会选择参数最多、规模最大的那个子网络模型(或整个大的神经网络模型本身)。
由此,可选地,上述的目标索引值可以采用如下方法来确定:
为神经网络模型设置多个索引值,每个索引值用于选通激活上述多个子网络模型中的一个子网络模型;
分别在神经网络模型中输入每个子网络模型对应的索引值和待测数据,得到每个子网络模型的预测结果,并确定不同子网络模型的计算精度以及在当前设备上的耗时;
基于所述计算精度和所述耗时,选择适合当前设备且计算精度相对较高的子网络模型对应的目标索引值。由此,为当前设备选中合适的子网络模型。
另外,本发明实施例还可以神经网络模型引入投票机制,如图6所示。
例如,可以选取投票结果里出现次数最多的结果,使得投票结果的精度在神经网络模型的高精度(一般来说,网络模型规模越大,模型的精度越高)的基础上有进一步的提升。同时,由于参与投票的多个网络模型(包括多个子网络模型与整个神经网络模型)之间是参数共享的,相比于现有技术中用多个独立网络模型的投票算法,本发明实施例的投票方法明显减少了资源占用和同步耗时。
对于投票机制,可以直接使用任意一个子网络输出,但也可以综合考虑各个子网络的输出结果。让每个子网络的输出都可以影响到最终的输出。例如,投票最简单的形式可以为:假设有N个子网络的输出,选择其中的众数作为最终输出(即,选择出现次数最多的那个结果)。
另外,也可以使用其他方法,比如求N个子网络输出的均值,或者附加一个带有参数的小模型,训练这个小模型去自动选择输出。
由此,可选地,上述的至少一个子网络模型可以为N个子网络模型,其中N为大于1且小于或等于t的整数,t为神经网络模型中子网络模型的数量,在这种情况下,根据本发明实施例的数据处理方法还包括步骤S125。在该S125中,在输入的数据经由上述N个子网络模型分别进行处理而得到N个预测结果之后,通过投票机制对得到的N个预测结果进行投票,以进一步确定最终的预测结果,并将该最终的预测结果作为上述的输入的数据的处理结果。
总之,本发明实施例对于投票的具体实现方式和操作的顺序不进行任何限制,在实际使用中,可以根据具体情况选择合适的投票机制。
通过对神经网络模型的应用投票机制,有利于进一步提升神经网络模型的计算精度。
图7示出了根据本发明的示例性实施例的数据处理设备的示意性框图。
如图7所示,该数据处理设备100可以包括:接收装置110、处理装置120、输出装置130。
其中,接收装置110用于接收输入的数据。
处理装置120用于经由所述神经网络模型的至少一个子网络模型,处理所述输入的数据。
输出装置130用于输出对所述数据的处理结果。
请注意,上述的装置110-130的操作与上面描述的数据处理方法中的步骤S110-S130的操作类似,在此不再赘述。
另外,该数据处理设备100还可以包括子网络选取装置105和/或投票装置125。
其中,上述的子网络选取装置105和投票装置125与上面描述的步骤S105和步骤S125类似,在此不再赘述。
图8示出了根据本发明的示例性实施例的神经网络模型训练设备的示意性框图。
如图8所示,该神经网络模型训练设备200对于神经网络模型和其中的多个子网络模型进行训练,其可以包括:
初始化装置210,可以被配置用于初始化神经网络模型的所有参数;
误差获得装置220,可以被配置用于针对每一个子网络模型得到该子网络模型的用于修正其训练参数的反向传播误差。
误差累加装置230,可以被配置用于将所述多个子网络模型的反向传播误差累加。
更新装置240,可以被配置用于将累加的反向传播误差进行反向传播以更新所述神经网络模型的参数,由此更新所述多个子网络模型的参数。
图9给出了根据本发明的一个示例性实施例的数据处理设备的示意性框图。
参见图9,该数据处理设备1包括存储器10和处理器20。
处理器20可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器20可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器20可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器10上存储有可执行代码,当所述可执行代码被所述处理器20执行时,使所述处理器20执行上面描述的方法之一。其中,存储器10可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器20或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器10可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器10可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
此外,根据本发明实施例的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明实施例的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明实施例还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明实施例的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图等等显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种基于神经网络模型的数据处理方法,其特征在于,所述神经网络模型包括多个基本单元和多个子网络模型,其中每个子网络模型包括所述多个基本单元中的至少部分基本单元,且所述多个子网络模型中的至少两个子网络模型共享所述多个基本单元中的一个或多个基本单元,
该数据处理方法包括:
接收输入的数据;
经由所述神经网络模型的至少一个子网络模型,处理所述数据;
输出对所述数据的处理结果。
2.如权利要求1所述的数据处理方法,其特征在于,所述神经网络模型的每个基本单元是残差模块。
3.如权利要求1或2所述的数据处理方法,其特征在于,
所述多个基本单元中至少两个基本单元的宽度和/或卷积核大小不同。
4.如权利要求2所述的数据处理方法,其特征在于,每个所述基本单元包括三个卷积层,其中,第一层和第三层卷积层为普通卷积层,第二层卷积层为深度可分离卷积层。
5.如权利要求4所述的数据处理方法,其特征在于,每个所述基本单元包括:依次连接的第一普通卷积层、第一归一化层、第一非线性激活层、深度可分离卷积层、第二归一化层、第二非线性激活层、第三普通卷积层和第三归一化层。
6.如权利要求5所述的数据处理方法,其特征在于,所述第一普通卷积层和所述第三普通卷积层的卷积核大小为1×1,所述深度可分离卷积层的卷积核大小为3×3或5×5,所述深度可分离卷积层的通道数为每个所述基本单元的输入通道数的3倍或6倍。
7.如权利要求1~6中的任意一项所述的数据处理方法,其特征在于,使用如下方式对所述神经网络模型和所述多个子网络模型进行训练:
初始化所述神经网络模型的所有参数;
针对每一个子网络模型得到该子网络模型的用于修正其训练参数的反向传播误差;
将所述多个子网络模型的反向传播误差累加;
将累加的反向传播误差进行反向传播以更新所述神经网络模型的参数,由此更新所述多个子网络模型的参数。
8.如权利要求1~7中的任意一项所述的数据处理方法,其特征在于,该数据处理方法还包括:
获取目标索引值并将所述目标索引值输入所述神经网络模型,所述目标索引值用于选通激活所述至少一个子网络模型,且所述至少一个子网络模型为所述多个子网络模型中适合当前设备的子网络模型。
9.如权利要求8所述的数据处理方法,其特征在于,所述目标索引值是采用如下方法确定的:
为所述神经网络模型设置多个索引值,每个索引值用于选通激活所述多个子网络模型中的一个子网络模型;
分别在所述神经网络模型中输入每个子网络模型对应的索引值和待测数据,得到每个子网络模型的预测结果,并确定不同子网络模型的计算精度以及在当前设备上的耗时;
基于所述精度和所述耗时选择适合所述当前设备且计算精度相对较高的子网络模型对应的所述目标索引值。
10.如权利要求1至9中任一项所述的数据处理方法,其特征在于,所述至少一个子网络模型为N个子网络模型,N为大于1且小于或等于t的整数,t为所述神经网络模型中子网络模型的数量,
所述输出对所述数据的处理结果还包括:
在输入的数据经由所述N个子网络模型分别进行处理,得到N个预测结果之后,通过投票机制对得到的所述N个预测结果进行投票,以进一步确定最终的预测结果,并将所述最终的预测结果作为所述数据的处理结果。
11.一种基于神经网络模型的数据处理设备,其特征在于,所述神经网络模型包括多个基本单元和多个子网络模型,其中每个子网络模型包括所述多个基本单元中的至少部分基本单元,且所述多个子网络模型中的至少两个子网络模型共享所述多个基本单元中的一个或多个基本单元,
该数据处理设备包括:
接收装置,接收输入的数据;
处理装置,用于经由所述神经网络模型的至少一个子网络模型,处理所述数据;
输出装置,用于输出对所述数据的处理结果。
12.一种基于神经网络模型的数据处理设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1~10中任何一项所述的方法。
13.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求1~10中任何一项所述的方法。
CN201910828500.7A 2019-09-03 2019-09-03 数据处理方法、设备和可读存储介质 Pending CN110717589A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910828500.7A CN110717589A (zh) 2019-09-03 2019-09-03 数据处理方法、设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910828500.7A CN110717589A (zh) 2019-09-03 2019-09-03 数据处理方法、设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN110717589A true CN110717589A (zh) 2020-01-21

Family

ID=69210281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910828500.7A Pending CN110717589A (zh) 2019-09-03 2019-09-03 数据处理方法、设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN110717589A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596016A (zh) * 2020-12-11 2021-04-02 湖北省计量测试技术研究院 基于多个一维卷积神经网络集成的互感器故障诊断方法
CN113065641A (zh) * 2021-03-22 2021-07-02 北京邮电大学 一种神经网络模型训练方法、装置、电子设备及存储介质
WO2021159714A1 (zh) * 2020-02-12 2021-08-19 华为技术有限公司 一种数据处理方法及相关设备
CN113705766A (zh) * 2020-05-22 2021-11-26 成都鼎桥通信技术有限公司 一种神经网络模型的实现方法
WO2022057433A1 (zh) * 2020-09-18 2022-03-24 华为技术有限公司 一种机器学习模型的训练的方法以及相关设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021159714A1 (zh) * 2020-02-12 2021-08-19 华为技术有限公司 一种数据处理方法及相关设备
CN113705766A (zh) * 2020-05-22 2021-11-26 成都鼎桥通信技术有限公司 一种神经网络模型的实现方法
WO2022057433A1 (zh) * 2020-09-18 2022-03-24 华为技术有限公司 一种机器学习模型的训练的方法以及相关设备
CN112596016A (zh) * 2020-12-11 2021-04-02 湖北省计量测试技术研究院 基于多个一维卷积神经网络集成的互感器故障诊断方法
CN113065641A (zh) * 2021-03-22 2021-07-02 北京邮电大学 一种神经网络模型训练方法、装置、电子设备及存储介质
CN113065641B (zh) * 2021-03-22 2023-09-26 北京邮电大学 一种神经网络模型训练方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110717589A (zh) 数据处理方法、设备和可读存储介质
CN109754064B (zh) 执行解卷积的神经网络的方法和装置
CN108694401B (zh) 目标检测方法、装置及系统
US11960566B1 (en) Reducing computations for data including padding
US20200327079A1 (en) Data processing method and device, dma controller, and computer readable storage medium
CN106779057B (zh) 基于gpu的计算二值神经网络卷积的方法及装置
CN106651877B (zh) 实例分割方法及装置
JP6855535B2 (ja) シミュレーションデータの最適化方法、装置、記憶媒体及びプログラム
CN111062981B (zh) 图像处理方法、装置及存储介质
US20200074289A1 (en) Pooling processing method and system applied to convolutional neural network
CN110968423A (zh) 使用机器学习将工作负荷分配给加速器的方法和设备
US20210241527A1 (en) Point cloud generation method and system, and computer storage medium
WO2022105608A1 (zh) 一种快速人脸密度预测和人脸检测方法、装置、电子设备及存储介质
KR102442055B1 (ko) 전자 장치 및 그 제어 방법
US11308396B2 (en) Neural network layer-by-layer debugging
CN112734827A (zh) 一种目标检测方法、装置、电子设备和存储介质
US20230153612A1 (en) Pruning complex deep learning models based on parent pruning information
US9483846B2 (en) Data interpolation and classification method for map data visualization
CN113393368B (zh) 基于神经网络模型的图像处理方法、介质和电子设备
CN114596420A (zh) 一种应用于城市大脑的激光点云建模方法和系统
CN112396072B (zh) 基于asic与vgg16的图像分类加速方法及装置
CN112837256B (zh) 一种用于Harris角点检测的电路系统及检测方法
Kain et al. Embedded GPU cluster computing framework for inference of convolutional neural networks
CN112906808A (zh) 基于卷积神经网络的图像分类方法、系统、装置及介质
CN112949656B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200121

RJ01 Rejection of invention patent application after publication