CN110059813B - 利用gpu集群更新卷积神经网络的方法、装置及设备 - Google Patents

利用gpu集群更新卷积神经网络的方法、装置及设备 Download PDF

Info

Publication number
CN110059813B
CN110059813B CN201910116468.XA CN201910116468A CN110059813B CN 110059813 B CN110059813 B CN 110059813B CN 201910116468 A CN201910116468 A CN 201910116468A CN 110059813 B CN110059813 B CN 110059813B
Authority
CN
China
Prior art keywords
layer
gpu
parameters
result
gpus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910116468.XA
Other languages
English (en)
Other versions
CN110059813A (zh
Inventor
黄启印
刘永超
章海涛
杨成平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910116468.XA priority Critical patent/CN110059813B/zh
Publication of CN110059813A publication Critical patent/CN110059813A/zh
Priority to TW108132432A priority patent/TWI716102B/zh
Priority to PCT/CN2020/070253 priority patent/WO2020164338A1/zh
Priority to EP20755618.4A priority patent/EP3859611B1/en
Application granted granted Critical
Publication of CN110059813B publication Critical patent/CN110059813B/zh
Priority to US17/322,626 priority patent/US11640531B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供一种利用GPU集群更新卷积神经网络的方法、装置及设备,该GPU集群包括第一GPU以及若干其它GPU。该方法由第一GPU执行,包括:获取带分类标签的样本。基于前端各层网络的参数,对样本执行第一操作得到第一操作结果。基于第一操作结果以及具有的后端各层网络的参数,对样本执行第二操作得到第二操作结果。将第一操作结果分别发送给其它GPU。接收其它各GPU在基于各自具有的后端各层网络的参数以及第一操作结果,对样本执行第三操作后得到的第三操作结果。合并第二操作结果和第三操作结果得到分类结果。根据分类结果和分类标签,确定预测误差。根据预测误差,更新卷积神经网络。

Description

利用GPU集群更新卷积神经网络的方法、装置及设备
技术领域
本说明书一个或多个实施例涉及图像处理技术领域,尤其涉及一种利用GPU集群更新卷积神经网络的方法、装置及设备。
背景技术
图片分类就是根据图片的语义信息将不同类别的图片区分开来,是计算机视觉最重要的研究课题之一。随着人工智能特别是深度学习的发展,图片分类算法取得了前所未有的进步。特别是,卷积神经网络(Convolutional Neural Networks,CNN)让机器识别图片的能力首次超越了人类。
在使用卷积神经网络对图片进行分类之前,通常需要图像处理器(GraphicsProcessing Unit,GPU)基于大量的训练样本,对卷积神经网络进行更新(也称训练)。然而,在更新卷积神经网络的过程中,GPU通常需要耗费大量的内存来存储卷积神经网络的各层网络的参数以及输出结果。以其中的全联接层(fully connected layer,FC)为例来说,由于全联接层的每一个节点都与上一层的所有节点相连,用来把前面提取到的特征综合起来,因此,与该层网络对应的参数以及输出结果通常需要耗费大量的内存。从而,对于部分内存容量比较小的GPU,其通常无法完成卷积神经网络的更新。
发明内容
本说明书一个或多个实施例描述了一种利用GPU集群更新卷积神经网络的方法、装置及设备,可以有效而准确地对卷积神经网络进行更新。
第一方面,提供了一种利用GPU集群更新卷积神经网络的方法,所述GPU集群包括第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,该方法由所述第一GPU执行,包括:
获取带分类标签的样本;
基于所述前端各层网络的参数,对所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第二操作得到第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述样本执行相应的第三操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述样本的分类结果;
根据所述分类结果和所述样本的分类标签,确定预测误差;
根据所述预测误差,更新所述卷积神经网络。
第二方面,提供了一种利用GPU集群更新卷积神经网络的方法,所述GPU集群包括第一GPU以及若干其它GPU,所述其它GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,该方法由所述其它GPU中任意的第二GPU执行,包括:
接收所述第一GPU发送的样本的第一操作结果;所述样本具有分类标签;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第三操作得到第三操作结果;
向所述第一GPU发送所述第三操作结果,以使得所述第一GPU在获取到其它各GPU发送的第三操作结果后,对所述样本的第二操作结果以及所述第三操作结果进行合并,得到所述样本的分类结果;所述样本的第二操作结果是由所述第一GPU基于所述第一操作结果以及具有的后端各层网络的参数对所述样本执行相应的第二操作后得到的;还使得所述第一GPU根据所述分类结果和所述样本的分类标签,确定预测误差;根据所述预测误差,更新所述卷积神经网络。
第三方面,提供了一种利用GPU集群的图片分类方法,所述GPU集群包括第一GPU以及若干其它GPU,所述第一GPU具有卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,该方法由所述第一GPU执行,包括:
获取待分类图片;
基于所述前端各层网络的参数,对所述待分类图片执行与所述前端各层网络相应的第一操作,得到所述待分类图片的第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述待分类图片执行相应的第二操作得到第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述待分类图片执行相应的第三操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述待分类图片的分类结果。
第四方面,提供了一种利用GPU集群更新卷积神经网络的装置,所述GPU集群包括第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,该装置包括:
获取单元,用于获取带分类标签的样本;
第一操作单元,用于基于所述前端各层网络的参数,对所述获取单元获取的所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果;
第二操作单元,用于基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第二操作得到第二操作结果;
发送单元,用于将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述样本执行相应的第三操作;
接收单元,用于接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并单元,用于合并所述第二操作结果和所述第三操作结果得到所述样本的分类结果;
确定单元,用于根据所述分类结果和所述样本的分类标签,确定预测误差;
更新单元,用于根据所述确定单元确定的所述预测误差,更新所述卷积神经网络。
第五方面,提供了一种利用GPU集群更新卷积神经网络的装置,所述GPU集群包括第一GPU以及若干其它GPU,所述其它GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,该装置包括:
接收单元,用于接收所述第一GPU发送的样本的第一操作结果;所述样本具有分类标签;
第三操作单元,用于基于所述接收单元接收的所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第三操作得到第三操作结果;
发送单元,用于向所述第一GPU发送所述第三操作结果,以使得所述第一GPU在获取到其它各GPU发送的第三操作结果后,对所述样本的第二操作结果以及所述第三操作结果进行合并,得到所述样本的分类结果;所述样本的第二操作结果是由所述第一GPU基于所述第一操作结果以及具有的后端各层网络的参数对所述样本执行相应的第二操作后得到的;还使得所述第一GPU根据所述分类结果和所述样本的分类标签,确定预测误差;根据所述预测误差,更新所述卷积神经网络。
第六方面,提供了一种利用GPU集群的图片分类装置,所述GPU集群包括第一GPU以及若干其它GPU,所述第一GPU具有卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,该装置包括:
获取单元,用于获取待分类图片;
第一操作单元,用于基于所述前端各层网络的参数,对所述获取单元获取的所述待分类图片执行与所述前端各层网络相应的第一操作,得到所述待分类图片的第一操作结果;
第二操作单元,用于基于所述第一操作结果以及具有的后端各层网络的参数,对所述待分类图片执行相应的第二操作得到第二操作结果;
发送单元,用于将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述待分类图片执行相应的第三操作;
接收单元,用于接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并单元,用于合并所述第二操作结果和所述第三操作结果得到所述待分类图片的分类结果。
第七方面,提供了一种更新卷积神经网络的设备,包括第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,所述第一GPU在运行时实现以下步骤:
获取带分类标签的样本;
基于所述前端各层网络的参数,对所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第二操作得到第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述样本执行相应的第三操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述样本的分类结果;
根据所述分类结果和所述样本的分类标签,确定预测误差;
根据所述预测误差,更新所述卷积神经网络。
第八方面,提供了一种更新卷积神经网络的设备,包括第一GPU以及若干其它GPU,所述其它GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,所述其它GPU中任意的第二GPU在运行时实现以下步骤:
接收所述第一GPU发送的样本的第一操作结果;所述样本具有分类标签;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第三操作得到第三操作结果;
向所述第一GPU发送所述第三操作结果,以使得所述第一GPU在获取到其它各GPU发送的第三操作结果后,对所述样本的第二操作结果以及所述第三操作结果进行合并,得到所述样本的分类结果;所述样本的第二操作结果是由所述第一GPU基于所述第一操作结果以及具有的后端各层网络的参数对所述样本执行相应的第二操作后得到的;还使得所述第一GPU根据所述分类结果和所述样本的分类标签,确定预测误差;根据所述预测误差,更新所述卷积神经网络。
第九方面,提供了一种图片分类设备,包括第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,所述第一GPU在运行时实现以下步骤:
获取待分类图片;
基于所述前端各层网络的参数,对所述待分类图片执行与所述前端各层网络相应的第一操作,得到所述待分类图片的第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述待分类图片执行相应的第二操作得到第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述待分类图片执行相应的第三操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述待分类图片的分类结果。
本说明书一个或多个实施例提供的利用GPU集群更新卷积神经网络的方法、装置及设备,第一GPU获取带分类标签的样本。基于前端各层网络的参数,对样本执行第一操作得到第一操作结果。基于第一操作结果以及具有的后端各层网络的参数,对样本执行第二操作得到第二操作结果。将第一操作结果分别发送给其它GPU。接收其它各GPU在基于各自具有的后端各层网络的参数以及第一操作结果,对样本执行第三操作后得到的第三操作结果。合并第二操作结果和第三操作结果得到分类结果。根据分类结果和分类标签,确定预测误差。根据预测误差,更新卷积神经网络。由此可以看出,本说明书提供的方案可以基于多个GPU来对卷积神经网络进行更新,从而可以有效而准确地对卷积神经网络进行更新。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的利用GPU集群更新卷积神经网络的方法示意图;
图2为本说明书一个实施例提供的利用GPU集群更新卷积神经网络的方法流程图;
图3为本说明书另一个实施例提供的利用GPU集群更新卷积神经网络的方法流程图;
图4为本说明书提供的利用GPU集群的图片分类方法流程图;
图5为本说明书一个实施例提供的利用GPU集群更新卷积神经网络的装置示意图;
图6为本说明书另一个实施例提供的利用GPU集群更新卷积神经网络的装置示意图;
图7为本说明书提供的利用GPU集群的图片分类装置示意图;
图8为本说明书一个实施例提供的更新卷积神经网络的设备示意图;
图9为本说明书另一个实施例提供的更新卷积神经网络的设备示意图;
图10为本说明书提供的图片分类设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书提供的方案之前,先对本方案的发明构思作以下介绍。
根据背景技术的内容可知,在图像处理技术领域,通用的图片分类方法即为基于卷积神经网络的分类方法。其中,以AlexNet,Inception系列,VGG,ResNet系列的卷积神经网络的性能较为卓越。经过研究发现,这些卷积神经网络基本都使用了softmax层作为最后分类的输出。而softmax层的输入层通常是一个全联接层(fully connected layer,FC)或者一个卷积层(convolutional layer,CONV)。
如果softmax层的输入层是FC层,假设该FC层输入的数据大小为[N,H,W,I],输出数据的大小为[N,O],则FC层的参数总个数为:H*W*I*O。这里,H为FC层输入的图片(image)的高度,W为图片的宽度,N为图片的个数,I为FC层输入的特征图(feature map)的个数,O是FC层输出的特征图的大小(也即softmax层分类的个数)。如果softmax层的输入层是CONV层,假设该CONV层输入的数据大小为[N,H,W,I],输出数据的大小为[N,O],卷积核大小为K*K(这里的K通常为1,3,5等比较小的奇数),则该CONV层的参数总个数为:K*K*I*O。为方便讨论,后续将softmax层及其输入层FC层称为FC-Softmax组合,将softmax层及其输入层CONV层称为Conv-Softmax组合。
假设CNN各层网络的参数以及对应的输出结果以字节(Byte)为单位进行存储。则FC-softmax组合需要H*W*I*O*B字节存储该层参数,需要N*O*B字节存储softmax层的输出结果。对Conv-softmax组合,需要K*K*I*O*B字节存储该层参数,需要N*O*B字节存储softmax层的输出结果。对于需要基于大规模的训练样本,来对卷积神经网络进行训练的情况,如在训练用于进行人脸识别的模型时,通常基于大规模的人脸图片。如,人脸图片的个数可能等于参与分类的人口总数。也就是说,上述公式中的O=10亿。在O=10亿情况下,当N=1时,FC-softmax组合需要至少4(H*W*I+1)GB内存,Conv-Softmax组合需要至少4(K*K*I+1)GB内存。这里的4用于表示存储的参数或者输出结果为单精度浮点数。典型地,H=W=7,I=16,32,64,128,512或者1024等。而当前主流的图形处理器(Graphics Processing Unit,GPU)设备内存只有16GB,远远小于FC-softmax组合或者Conv-Softmax组合需要的内存。在这种情况下,单个GPU无法完成卷积神经网络的训练任务。
因此,本申请的申请人考虑可将FC-Softmax组合或者Conv-Softmax组合的参数均匀分布到多个GPU上,然后利用多个GPU分布式内存完成训练。这里的多个GPU也可以称为分布式GPU集群。
此外,申请人还考虑到对除FC-Softmax组合和Conv-Softmax组合的其它层,如卷积层或者池化层等(为方便讨论,以下简称前端各层网络),由于其对应的参数占用的内存较少,因此如果将前端各层网络的参数也均匀分布到多个GPU上的话,会降低GPU利用率,浪费计算资源。为节约计算机资源,本方案对于前端各层网络仍然采用基于mini-batch的数据并行模式完成训练,即每个GPU中存储前端各层网络的全部的参数。
在这种情况下,假设GPU个数为P,每个GPU接收N张图片输入,整个网络训练的批大小(batch size)就是N*P。这里的P和N均为正整数。在前端各层网络,每个时刻,N*P张图片在所有GPU上被同时处理。在后端各层网络(如,FC-Softmax组合或者Conv-Softmax组合),每个时刻,所有GPU在处理同一张图片。
需要说明的是,在前端各层网络,虽然P个GPU在理论上可以同时运行,但是对于部分层(如,批归一化(batch normalization,BN)层)需要基于整个batch内的数据才能完成相应的操作,因此,该P个GPU之间通常还需要进行相互通讯。此外,在后端各层网络,由于P个GPU共同协作来处理一张图片,因此,各个GPU间也需要进行通讯。在本说明书中,该P个GPU之间可以基于支持分布式通讯和计算的应用编程接口函数库进行相互通讯。该函数库例如可以为信息传递接口(Message Passing Interface,MPI)库或者Rabit库等。
此外,由于对每张图片,所有的GPU都要参与处理,因此可以指定一个GPU作为协调者(coordinator)来统筹和维护整个处理过程。该一个GPU也通常称为具有协调和/或管理功能的GPU,其可以指定当前正在处理的图片,以及最后负责把一个批次的图片的分类结果拼接到一起输出等等。
以上就是本方案的发明构思,基于以上的发明构思就可以得到本方案,以下对本方案进行详细阐述。
图1为本说明书提供的更新卷积神经网络的方法示意图。图1中,该分布式GPU集群中可以包括P个GPU:GPU0、GPU1、…、GPUP-1,且GPU0为具有协调和/或管理功能的GPU。其中,GPU0中可以具有CNN的前端各层网络的全部的参数以及后端各层网络的第一部分参数,GPU1中可以具有有CNN的前端各层网络的全部的参数以及后端各层网络的第二部分参数,依次类推。以后端某层网络为FC层为例来说,假设与FC层对应的参数可以构成n*m的矩阵,那么,每个GPU中具有的该层的部分参数的个数可以表示为:(n*m)/P。特别地,当GPU的个数比较多时,各个GPU可以只初始化矩阵中的一列或者一行参数,本说明书对此不作限定。
需要说明的是,对于上述前端各层网络的参数,P个GPU可以各自独立初始化,也可以统一初始化。如果独立初始化,则该P个GPU之间不需要进行通讯。如果统一初始化,则一个GPU(如,GPU0)在完成初始化之后,可以向其它GPU广播其初始化的参数,由此来完成各个GPU之间的统一初始化。对于上述后端各层网络的参数,由于各个GPU只存储部分参数,从而各个GPU可以独立完成初始化。
如图1所示,本说明书提供的前端各层网络可以包括卷积层、BN层以及其它层,该BN层位于卷积层之后,用于对卷积层输出的中间结果进行归一化处理。由于中间结果的归一化处理通常是基于一个批次的样本(即P*N张图片)来完成的,因此,各个GPU之间通常需要进行相互通讯,具体通讯内容后续说明。此外,图1中还示出,在FC层以及Softmax层各个GPU之间通常也需要进行相互通讯,具体通讯内容也后续进行说明。
以上是对图1的整体说明,以下将结合图2来对卷积神经网络的更新过程进行详细说明。图2中,假设该方法的执行主体为GPU0(也称第一GPU),即上述具有协调和管理功能的GPU,那么该方法可以包括如下步骤:
步骤202,获取带分类标签的样本。
需要说明的是,GPU0在获取样本的同时,其它GPU也可以获取各自对应的其它样本。P个GPU共同获取的样本构成一个批次的样本。在一个例子中,上述样本可以为图片,从而上述分类标签可以是指人为预先标定好的图片类别。
步骤204,基于前端各层网络的参数,对样本执行与前端各层网络相应的第一操作,得到样本的第一操作结果。
同样地,其它各GPU也可以分别根据各自具有的前端各层网络的参数,对各自获取的其它样本执行与前端各层网络相应的第一操作,得到其它样本的第一操作结果。
如前所述,这里的前端各层网络可以包括卷积层、BN层以及其它层等。以某层网络为卷积层为例来说,GPU0根据存储的卷积层的参数,对样本执行与该卷积层对应的第一操作可以包括:GPU0根据与该卷积层对应的多个卷积核,对样本执行卷积操作,从而得到第一中间结果。之后将第一中间结果输入BN层,在BN层,GPU0在获取到上述第一中间结果后,可以等待其它各GPU完成对各自获取的其它样本的卷积操作。之后,GPU0可以读取其它各GPU在完成对各自获取的其它样本的卷积操作后所得到的第二中间结果。最后GPU0基于上述第一中间结果以及第二中间结果,对第一中间结果进行归一化处理。根据与BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移。将尺度变换和偏移后的第一中间结果输入其它层,并根据其它层的参数对样本执行相应的其它操作,直至得到样本的第一操作结果。
其它GPU执行与前端各层网络相对应的第一操作的过程类似,在此不复赘述。
需要说明的是,由于P个GPU均具有CNN的前端各层网络的参数,因此P个GPU可以针对各自获取的样本同时执行上述第一操作。此外,由于每个GPU中只存储了CNN的后端各层网络的部分的参数,因此,对执行完成上述第一操作的当前一个样本,可以由P个GPU共同对其执行与后端各层网络对应的第二操作和第三操作。以下对该共同执行过程进行说明。
步骤206,基于第一操作结果以及具有的后端各层网络的参数,对样本执行相应的第二操作得到第二操作结果。
以样本为图片为例来说,样本的第一操作结果可以理解为是由前端各层网络从图片中提取的多张特征图。以后端各层网络为FC-Softmax组合为例来说,假设GPU0中存储有FC层的一列参数,则GPU0对图片执行与FC层相对应的第二操作可以理解为执行如下的矩阵运算:将提取的多张特征图分别与上述一列参数相乘。之后,将该矩阵运算结果输入Softmax层,并执行与Softmax层相对应的第二操作,从而得到图片的第二操作结果。
可以理解的是,上述与Softmax层相对应的第二操作即为对矩阵运算结果进一步处理,以使得其取值范围在0到1之间的过程。由于该进一步处理的过程通常会涉及到与每列参数相对应的矩阵运算结果,因此GPU0还可以与其它GPU进行通讯,以获取其它GPU各自所获取的与某一列参数相对应的矩阵运算结果。在本说明书中,图片的第二操作结果即为与GPU0所存储的一列参数相对应的、进一步处理后的矩阵运算结果。
步骤208,将第一操作结果分别发送给其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及第一操作结果,对样本执行相应的第三操作。
还以前述例子为例来说,假设其它GPU中的某个GPU(以下称为GPU1)中存储的是FC层的另一列参数,则GPU1对图片执行与FC层相对应的第三操作可以理解为执行如下的矩阵运算:将提取的多张特征图分别与上述另一列网络相乘。之后,将该矩阵运算结果输入Softmax层,并执行与Softmax层相对应的第三操作,从而得到与GPU1对应的1个图片的第三操作结果。
步骤210,接收其它各GPU在执行相应的第三操作后得到的第三操作结果。
如前述例子,GPU0可以接收其它P-1个GPU各自获取的进一步处理的矩阵运算结果,从而得到P个进一步处理的矩阵运算结果。
需要说明的是,前述例子是以FC层的参数为P列进行的说明,即矩阵的列数与GPU的个数相等,从而每个GPU中可以存储FC层的一列的参数。在实际应用中,GPU的个数可以任意设定,如,GPU的个数可以少于FC层的参数的列数。在少于的情况下,可以通过如下的公式来分配每个GPU中的参数:参数总个数/P,其中,P为GPU个数。再如,GPU的个数也可以多于FC层的参数的列数。在多于的情况下,剩余的GPU返回的操作结果可以为空,也即不参与运算。
步骤212,合并第二操作结果和第三操作结果得到样本的分类结果。
如,GPU0将P个GPU的进一步处理的矩阵运算结果进行合并,从而得到上述分类结果。
步骤214,根据分类结果和样本的分类标签,确定预测误差。
当然,在实际应用中,为了提高所确定的预测误差的准确性,也可以基于一个批次的样本的分类结果以及分类标签,来确定预测误差。在这种情况下,GPU0可以在确定出所获取的样本的分类结果之后,获取其它GPU针对各自获取的其它样本所获得的分类结果。合并P个GPU针对各自获取的样本所获得的分类结果,得到合并后的分类结果。根据合并后的分类结果以及一个批次的样本(包括样本以及其它样本)的分类标签,确定预测误差。
当然,在实际应用中,P个GPU中每个GPU获取的样本个数可以为多个。每个GPU针对各自所获取的多个样本执行第一操作以及第二操作或者第三操作的过程同上所述,在此不复赘述。
步骤216,根据预测误差,更新卷积神经网络。
该更新过程具体可以为:GPU0根据预测误差,确定前端各层网络的第一更新参数以及后端各层网络的第二更新参数。根据第一更新参数,更新第一GPU所具有的前端各层网络的参数。根据第二更新参数中与第一GPU所具有的后端各层网络的参数对应的更新参数,更新第一GPU所具有的后端各层网络的参数。向其它GPU发送第一更新参数以及各自对应的第二更新参数。以使其它GPU根据各自对应的第二更新参数,更新各自具有的后端各层网络的参数。
需要说明的是,GPU0之所以可以向其它GPU发送各自对应的第二更新参数,是因为GPU0在处理一个批次的样本的过程中,可以学习到其它GPU各自所存储的后端各层网络的部分参数。
需要说明的是,上述步骤206-步骤214是由P个GPU共同对GPU0所获取的样本执行与后端各层网络对应的第二操作或者第三操作的过程。当对其它GPU中任一个GPU(以下称第二GPU)所获取的其它样本执行如上的第二操作或者第三操作时,上述步骤206-步骤214可以替换为如下各步骤:
步骤a,从第二GPU接收其它样本的第一操作结果。
需要说明的是,这里的第一操作结果可以是由第二GPU基于具有的前端各层网络的参数,对其它样本执行与前端各层网络相应的第一操作后所得到的。
步骤b,基于其它样本的第一操作结果以及具有的后端各层网络的参数,对其它样本执行相应的第二操作得到第二操作结果。
即这里是由GPU0对从其它GPU中任意的第二GPU接收的其它样本执行第二操作的过程。需要说明的是,与此同时,其它GPU也可以对该其它样本执行相应的第三操作。
步骤c,接收其它GPU在针对其它样本执行相应的第三操作后得到的第三操作结果。
除GPU0之外的其它GPU在获取到与其它样本对应的第三操作结果之后,可以向GPU0发送各自获取的其它样本的第三操作结果。
步骤d,合并其它样本的第二操作结果和其它样本的第三操作结果,得到其它样本的分类结果。
步骤e,根据样本的分类结果和分类标签,以及其它样本的分类结果和分类标签,确定预测误差。
即当还获取到其它样本的分类结果时,可以基于一个批次的样本的分类结果以及分类标签,共同来确定预测误差,由此来提高所确定误差的准确性。
综上,本说明书实施例提供的利用GPU集群更新卷积神经网络的方法,可以基于大规模的训练样本来对卷积神经网络进行更新,由此可以提高卷积神经网络更新的准确性。此外,本说明书实施例的多个GPU可以针对各自获取的样本同时执行与前端各层网络对应的第一操作,由此大大提升了GPU资源的利用率。
以上是以P个GPU中的GPU0(即协调者)为执行主体对卷积神经网络的更新过程所进行的描述,以下以P个GPU中除GPU0之外的任一个GPU(以下称第二GPU)为例对卷积神经网络的更新过程进行说明。
图3为本说明书另一个实施例提供的利用GPU集群更新卷积神经网络的方法流程图,所述方法的执行主体为第二GPU。如图3所示,所述方法可以包括如下步骤:
步骤302,接收第一GPU发送的样本的第一操作结果。
该样本具有分类标签。
可以理解的是,该样本的第一操作结果是由第一GPU基于具有的前端各层网络的参数,对样本执行与前端各层网络相应的第一操作后所得到的。
步骤304,基于第一操作结果以及具有的后端各层网络的参数,对样本执行相应的第三操作得到第三操作结果。
这里,在第二GPU执行上述第三操作的过程中,第一GPU可以对该样本执行相应的第二操作,其它GPU中除第二GPU外的GPU也可以对该样本执行相应的第三操作。
步骤306,向第一GPU发送第三操作结果。
第一GPU在获取到其它各GPU发送的第三操作结果后,对样本的第二操作结果以及第三操作结果进行合并,得到样本的分类结果。这里的样本的第二操作结果是由第一GPU基于第一操作结果以及具有的后端各层网络的参数对样本执行相应的第二操作后得到的。此外,第一GPU还可以根据分类结果和样本的分类标签,确定预测误差。根据预测误差,更新卷积神经网络。
当然,在实际应用中,为了提高所确定的预测误差的准确性,也可以基于一个批次的样本的分类结果以及对应的分类标签,来确定预测误差。其具体确定方法同上所述,在此不复赘述。此外,卷积神经网络的更新过程也可以参照步骤216,在此不作重复说明。
需要说明的是,上述步骤302-步骤306是由P个GPU共同对第一GPU所获取的样本执行与后端各层网络对应的第二操作或者第三操作的过程。当对第二GPU所获取的其它样本执行如上的第二操作或者第三操作时,上述步骤302-步骤306可以替换为如下各步骤:
步骤A,获取带分类标签的其它样本。
步骤B,基于前端各层网络的参数,对其它样本执行与前端各层网络相应的第一操作,得到其它样本的第一操作结果。
如前所述,这里的前端各层网络可以包括卷积层、BN层以及其它层等。第二GPU执行对应的第一操作的过程同第一GPU(GPU0)类似,在此不复赘述。
以其它样本也为图片为例来说,其它样本的第一操作结果可以理解为是由前端各层网络从图片中提取的多张特征图。
步骤C,基于其它样本的第一操作结果以及具有的后端各层网络的参数,对其它样本执行相应的第三操作得到第三操作结果。
步骤D,向第一GPU以及其它GPU中除第二GPU外的GPU发送其它样本的第一操作结果。
第一GPU基于具有的后端各层网络的参数以及其它样本的第一操作结果,对其它样本执行相应的第二操作得到第二操作结果。其它GPU中除第二GPU外的GPU基于各自具有的后端各层网络的参数以及其它样本的第一操作结果,对其它样本执行相应的第三操作得到第三操作结果。
步骤E,向第一GPU发送其它样本的第三操作结果。
其它GPU中除第二GPU外的GPU也可以向第一GPU发送第三操作结果。第一GPU在接收到其它GPU发送的第三操作结果后,合并第二操作结果和其它GPU发送的第三操作结果得到其它样本的分类结果,根据样本的分类结果和分类标签,以及其它样本的分类结果和分类标签,确定预测误差。
在确定预测误差之后,卷积神经网络的更新过程也可以参照步骤216,在此不作重复说明。
综上,本说明书实施例提供的利用GPU集群更新卷积神经网络的方法,可以基于大规模的训练样本来对卷积神经网络进行更新,由此可以提高卷积神经网络更新的准确性。
在完成卷积神经网络的训练之后,可以通过如下方式来完成图片的分类:由分布式GPU集群中的第一GPU对待分类图片执行与前端各层网络对应的第一操作,之后由多个GPU共同对该待分类图片执行与后端各层网络的对应的第二操作或者第三操作,从而得到对应的分类结果。其具体分类过程可以如图4所示。
图4为本说明书提供的利用GPU集群的图片分类方法流程图,所述方法的执行主体可以为第一GPU,如图4所示,所述方法可以包括如下步骤:
步骤402,获取待分类图片。
步骤404,基于前端各层网络的参数,对待分类图片执行与前端各层网络相应的第一操作,得到待分类图片的第一操作结果。
步骤406,基于第一操作结果以及具有的后端各层网络的参数,对待分类图片执行相应的第二操作得到第二操作结果。
步骤408,将第一操作结果分别发送给其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及第一操作结果,对待分类图片执行相应的第三操作。
步骤410,接收其它各GPU在执行相应的第三操作后得到的第三操作结果。
步骤412,合并第二操作结果和第三操作结果得到待分类图片的分类结果。
综上,本说明书实施例提供的利用GPU集群的图片分类方法,可以实现图片的准确而有效的分类。
与上述利用GPU集群更新卷积神经网络的方法对应地,本说明书一个实施例还提供的一种利用GPU集群更新卷积神经网络的装置,该GPU集群包括第一GPU以及若干其它GPU,第一GPU具有卷积神经网络的前端各层网络的参数,第一GPU和其它GPU共同具有所述卷积神经网络的后端各层网络的参数,如图5所示,该装置可以包括:
获取单元502,用于获取带分类标签的样本。
第一操作单元504,用于基于前端各层网络的参数,对获取单元502获取的样本执行与前端各层网络相应的第一操作,得到样本的第一操作结果。
第二操作单元506,用于基于第一操作结果以及具有的后端各层网络的参数,对样本执行相应的第二操作得到第二操作结果。
发送单元508,用于将第一操作结果分别发送给其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及第一操作结果,对样本执行相应的第三操作。
接收单元510,用于接收其它各GPU在执行相应的第三操作后得到的第三操作结果。
合并单元512,用于合并第二操作结果和第三操作结果得到样本的分类结果。
确定单元514,用于根据分类结果和样本的分类标签,确定预测误差。
更新单元516,用于根据确定单元514确定的预测误差,更新卷积神经网络。
可选地,接收单元510,还用于从第二GPU接收其它样本的第一操作结果,第二GPU是其它GPU中的任一个,该其它样本具有分类标签。
第二操作单元506,还用于基于接收单元510接收的其它样本的第一操作结果以及具有的后端各层网络的参数,对其它样本执行相应的第二操作得到第二操作结果。
接收单元510,还用于接收其它GPU在针对其它样本执行相应的第三操作后得到的第三操作结果。
合并单元512,还用于合并其它样本的第二操作结果和其它样本的第三操作结果,得到其它样本的分类结果。
确定单元514具体用于:根据样本的分类结果和分类标签,以及其它样本的分类结果和分类标签,确定预测误差。
更新单元516具体可以用于:
根据预测误差,确定前端各层网络的第一更新参数以及后端各层网络的第二更新参数。
根据第一更新参数,更新第一GPU所具有的前端各层网络的参数。根据第二更新参数中与第一GPU所具有的后端各层网络的参数对应的更新参数,更新第一GPU所具有的后端各层网络的参数。
向其它GPU发送第一更新参数以及各自对应的第二更新参数。以使其它GPU根据各自对应的第二更新参数,更新各自具有的后端各层网络的参数。
可选地,前端各层网络包括卷积层以及其它层。
第一操作单元504具体可以用于:
基于卷积层的参数,对样本执行卷积操作,以得到第一中间结果。
获取其它GPU根据各自具有的卷积层的参数,对各自获取的其它样本执行卷积操作所获得的第二中间结果。
根据其它GPU的第二中间结果,对第一中间结果进行归一化处理。
基于其它层的参数以及归一化处理后的第一中间结果,对样本执行其它操作,得到样本的第一操作结果。
可选地,上述第一GPU与其它GPU之间基于支持分布式通讯和计算的应用编程接口函数库进行相互通讯。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的利用GPU集群更新卷积神经网络的装置,可以基于多个GPU来对卷积神经网络进行更新,从而可以有效而准确地对卷积神经网络进行更新。
本说明书一个实施例提供的利用GPU集群更新卷积神经网络的装置可以为图1中GPU0的一个模块或者单元。
与上述利用GPU集群更新卷积神经网络的方法对应地,本说明书一个实施例还提供的一种利用GPU集群更新卷积神经网络的装置,该GPU集群包括第一GPU以及若干其它GPU,其它GPU具有卷积神经网络的前端各层网络的参数,第一GPU和其它GPU共同具有卷积神经网络的后端各层网络的参数,如图6所示,该装置可以包括:
接收单元602,用于接收第一GPU发送的样本的第一操作结果。
该样本具有分类标签。
第三操作单元604,用于基于接收单元602接收的第一操作结果以及具有的后端各层网络的参数,对样本执行相应的第三操作得到第三操作结果。
发送单元606,用于向第一GPU发送第三操作结果,以使得第一GPU在获取到其它各GPU发送的第三操作结果后,对样本的第二操作结果以及第三操作结果进行合并,得到样本的分类结果。样本的第二操作结果是由第一GPU基于第一操作结果以及具有的后端各层网络的参数对样本执行相应的第二操作后得到的。还使得第一GPU根据分类结果和样本的分类标签,确定预测误差。根据预测误差,更新卷积神经网络。
可选地,该装置还可以包括:
获取单元608,用于获取带分类标签的其它样本。
第一操作单元610,用于基于前端各层网络的参数,对其它样本执行与前端各层网络相应的第一操作,得到其它样本的第一操作结果。
第三操作单元604,还用于基于其它样本的第一操作结果以及具有的后端各层网络的参数,对其它样本执行相应的第三操作得到第三操作结果。
发送单元606,还用于向第一GPU以及其它GPU中除第二GPU外的GPU发送其它样本的第一操作结果,以使得第一GPU基于具有的后端各层网络的参数以及其它样本的第一操作结果,对其它样本执行相应的第二操作得到第二操作结果,以及使得其它GPU中除第二GPU外的GPU基于各自具有的后端各层网络的参数以及其它样本的第一操作结果,对其它样本执行相应的第三操作得到第三操作结果。
发送单元606,还用于向第一GPU发送其它样本的第三操作结果,以使得第一GPU合并第二操作结果和其它各GPU发送的第三操作结果得到其它样本的分类结果,根据样本的分类结果和分类标签,以及其它样本的分类结果和分类标签,确定预测误差。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的利用GPU集群更新卷积神经网络的装置,可以基于多个GPU来对卷积神经网络进行更新,从而可以有效而准确地对卷积神经网络进行更新。
本说明书一个实施例提供的利用GPU集群更新卷积神经网络的装置可以为图1中GPU1至GPUP-1中任一个GPU的一个模块或者单元。
与上述利用GPU集群的图片分类方法对应地,本说明书实施例还提供了一种利用GPU集群的图片分类装置,该GPU集群包括第一GPU以及若干其它GPU,第一GPU具有卷积神经网络的前端各层网络的参数,第一GPU和其它GPU共同具有卷积神经网络的后端各层网络的参数,如图7所示,该装置可以包括:
获取单元702,用于获取待分类图片。
第一操作单元704,用于基于前端各层网络的参数,对获取单元702获取的待分类图片执行与前端各层网络相应的第一操作,得到待分类图片的第一操作结果。
第二操作单元706,用于基于第一操作结果以及具有的后端各层网络的参数,对待分类图片执行相应的第二操作得到第二操作结果。
发送单元708,用于将第一操作结果分别发送给其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及第一操作结果,对待分类图片执行相应的第三操作。
接收单元710,用于接收其它各GPU在执行相应的第三操作后得到的第三操作结果。
合并单元712,用于合并第二操作结果和第三操作结果得到待分类图片的分类结果。
本说明书一个实施例提供的利用GPU集群的图片分类装置,可以实现图片的准确而有效的分类。
本说明书一个实施例提供的利用GPU集群的图片分类装置可以为图1中GPU0的一个模块或者单元。
与上述利用GPU集群的更新卷积神经网络的方法对应地,本说明书实施例还提供了一种更新卷积神经网络的设备,如图8所示,该设备可以包括:包括第一GPU802以及若干其它GPU(GPU804-GPUP),第一GPU802具有卷积神经网络的前端各层网络的参数,第一GPU802和其它GPU共同具有卷积神经网络的后端各层网络的参数,第一GPU802在运行时实现以下步骤:
获取带分类标签的样本。
基于前端各层网络的参数,对样本执行与前端各层网络相应的第一操作,得到样本的第一操作结果。
基于第一操作结果以及具有的后端各层网络的参数,对样本执行相应的第二操作得到第二操作结果。
将第一操作结果分别发送给其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及第一操作结果,对样本执行相应的第三操作。
接收其它各GPU在执行相应的第三操作后得到的第三操作结果。
合并第二操作结果和第三操作结果得到样本的分类结果。
根据分类结果和样本的分类标签,确定预测误差。
根据预测误差,更新卷积神经网络。
本说明书一个实施例提供的更新卷积神经网络的设备,可以基于多个GPU来对卷积神经网络进行更新,从而可以有效而准确地对卷积神经网络进行更新。
与上述利用GPU集群更新卷积神经网络的方法对应地,本说明书实施例还提供了一种更新卷积神经网络的设备,如图9所示,该设备可以包括:第一GPU902以及若干其它GPU(GPU904-GPUP),其它GPU具有卷积神经网络的前端各层网络的参数,第一GPU和其它GPU共同具有卷积神经网络的后端各层网络的参数,其它GPU中任意的第二GPU904在运行时实现以下步骤:
接收第一GPU发送的样本的第一操作结果,该样本具有分类标签。
基于第一操作结果以及具有的后端各层网络的参数,对样本执行相应的第三操作得到第三操作结果。
向第一GPU发送第三操作结果,以使得第一GPU在获取到其它各GPU发送的第三操作结果后,对样本的第二操作结果以及第三操作结果进行合并,得到样本的分类结果。样本的第二操作结果是由第一GPU基于第一操作结果以及具有的后端各层网络的参数对样本执行相应的第二操作后得到的。还使得第一GPU根据分类结果和样本的分类标签,确定预测误差。根据预测误差,更新卷积神经网络。
本说明书一个实施例提供的更新卷积神经网络的设备,可以基于多个GPU来对卷积神经网络进行更新,从而可以有效而准确地对卷积神经网络进行更新。
与上述利用GPU集群的图片分类方法对应地,本说明书还提供了一种图片分类设备,如图10所示,该设备可以包括:包括第一GPU1002以及若干其它GPU(GPU1004-GPUP),第一GPU1002具有卷积神经网络的前端各层网络的参数,第一GPU1002和其它GPU共同具有卷积神经网络的后端各层网络的参数,第一GPU1002在运行时实现以下步骤:
获取待分类图片。
基于前端各层网络的参数,对待分类图片执行与前端各层网络相应的第一操作,得到待分类图片的第一操作结果。
基于第一操作结果以及具有的后端各层网络的参数,对待分类图片执行相应的第二操作得到第二操作结果
将第一操作结果分别发送给其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对待分类图片执行相应的第三操作。
接收其它各GPU在执行相应的第三操作后得到的第三操作结果。
合并第二操作结果和第三操作结果得到待分类图片的分类结果。
本说明书提供的图片分类设备,可以实现图片的准确而有效的分类。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (19)

1.一种利用GPU集群更新卷积神经网络的方法,所述GPU集群包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;该方法由所述第一GPU执行,包括:
获取带分类标签的样本;
基于所述前端各层网络的参数,对所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果;其中,对所述样本执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述样本执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的其它样本执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述样本执行相应的其它操作,直至得到所述第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第二操作得到第二操作结果;其中,对所述样本执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述样本执行相应的第三操作;其中,所述其它各GPU中任意的第二GPU对所述样本执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述样本的分类结果;
根据所述分类结果和所述样本的分类标签,确定预测误差;
根据所述预测误差,更新所述卷积神经网络。
2.根据权利要求1所述的方法,还包括:
从所述第二GPU接收其它样本的第一操作结果,所述第二GPU是所述其它GPU中的任一个;所述其它样本具有分类标签;
基于所述其它样本的第一操作结果以及具有的后端各层网络的参数,对所述其它样本执行相应的第二操作得到第二操作结果;
接收所述其它GPU在针对所述其它样本执行相应的第三操作后得到的第三操作结果;
合并所述其它样本的第二操作结果和所述其它样本的第三操作结果,得到所述其它样本的分类结果;
所述确定预测误差包括:根据所述样本的分类结果和分类标签,以及所述其它样本的分类结果和分类标签,确定预测误差。
3.根据权利要求1所述的方法,所述根据所述预测误差,更新所述卷积神经网络,包括:
根据所述预测误差,确定所述前端各层网络的第一更新参数以及所述后端各层网络的第二更新参数;
根据所述第一更新参数,更新所述第一GPU所具有的前端各层网络的参数;根据所述第二更新参数中与所述第一GPU所具有的后端各层网络的参数对应的更新参数,更新所述第一GPU所具有的后端各层网络的参数;
向所述其它GPU发送所述第一更新参数以及各自对应的第二更新参数;以使所述其它GPU根据各自对应的第二更新参数,更新各自具有的后端各层网络的参数。
4.根据权利要求1所述的方法,所述前端各层网络包括卷积层以及其它层;
所述基于所述前端各层网络的参数,对所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果,包括:
基于所述卷积层的参数,对所述样本执行卷积操作,以得到第一中间结果;
获取所述其它GPU根据各自具有的卷积层的参数,对各自获取的其它样本执行卷积操作所获得的第二中间结果;
根据所述其它GPU的第二中间结果,对所述第一中间结果进行归一化处理;
基于所述其它层的参数以及归一化处理后的第一中间结果,对所述样本执行其它操作,得到所述样本的第一操作结果。
5.根据权利要求1所述的方法,所述第一GPU与所述其它GPU之间基于支持分布式通讯和计算的应用编程接口函数库进行相互通讯。
6.一种利用GPU集群更新卷积神经网络的方法,所述GPU集群包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述其它GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;该方法由所述其它GPU中任意的第二GPU执行,包括:
接收所述第一GPU在针对样本执行第一操作后发送的样本的第一操作结果;所述样本具有分类标签;其中,针对样本执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述样本执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的其它样本执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述样本执行相应的其它操作,直至得到所述第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第三操作得到第三操作结果;其中,对所述样本执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
向所述第一GPU发送所述第三操作结果,以使得所述第一GPU在获取到其它各GPU发送的第三操作结果后,对所述样本的第二操作结果以及所述第三操作结果进行合并,得到所述样本的分类结果;所述样本的第二操作结果是由所述第一GPU基于所述第一操作结果以及具有的后端各层网络的参数对所述样本执行相应的第二操作后得到的;还使得所述第一GPU根据所述分类结果和所述样本的分类标签,确定预测误差;根据所述预测误差,更新所述卷积神经网络;其中,对所述样本执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果。
7.根据权利要求6所述的方法,还包括:
获取带分类标签的其它样本;
基于所述前端各层网络的参数,对所述其它样本执行与所述前端各层网络相应的第一操作,得到所述其它样本的第一操作结果;基于所述其它样本的第一操作结果以及具有的后端各层网络的参数,对所述其它样本执行相应的第三操作得到第三操作结果;
向所述第一GPU以及所述其它GPU中除所述第二GPU外的GPU发送所述其它样本的第一操作结果,以使得所述第一GPU基于具有的后端各层网络的参数以及所述其它样本的第一操作结果,对所述其它样本执行相应的第二操作得到第二操作结果,以及使得所述其它GPU中除所述第二GPU外的GPU基于各自具有的后端各层网络的参数以及所述其它样本的第一操作结果,对所述其它样本执行相应的第三操作得到第三操作结果;
向所述第一GPU发送所述其它样本的第三操作结果,以使得所述第一GPU合并所述第二操作结果和所述其它GPU发送的第三操作结果得到所述其它样本的分类结果,根据所述样本的分类结果和分类标签,以及所述其它样本的分类结果和分类标签,确定预测误差。
8.一种利用GPU集群的图片分类方法,所述GPU集群包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述第一GPU具有卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;该方法由所述第一GPU执行,包括:
获取待分类图片;
基于所述前端各层网络的参数,对所述待分类图片执行与所述前端各层网络相应的第一操作,得到所述待分类图片的第一操作结果;其中,对所述待分类图片执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述待分类图片执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的所述待分类图片执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述待分类图片执行相应的其它操作,直至得到所述第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述待分类图片执行相应的第二操作得到第二操作结果;其中,对所述待分类图片执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述待分类图片执行相应的第三操作;其中,所述其它各GPU中任意的第二GPU对所述待分类图片执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述待分类图片的分类结果。
9.一种利用GPU集群更新卷积神经网络的装置,所述GPU集群包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;该装置设置于所述第一GPU,包括:
获取单元,用于获取带分类标签的样本;
第一操作单元,用于基于所述前端各层网络的参数,对所述获取单元获取的所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果;其中,对所述样本执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述样本执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的其它样本执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述样本执行相应的其它操作,直至得到所述第一操作结果;
第二操作单元,用于基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第二操作得到第二操作结果;其中,对所述样本执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果;
发送单元,用于将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述样本执行相应的第三操作;其中,所述其它各GPU中任意的第二GPU对所述样本执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
接收单元,用于接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并单元,用于合并所述第二操作结果和所述第三操作结果得到所述样本的分类结果;
确定单元,用于根据所述分类结果和所述样本的分类标签,确定预测误差;
更新单元,用于根据所述确定单元确定的所述预测误差,更新所述卷积神经网络。
10.根据权利要求9所述的装置,
所述接收单元,还用于从所述第二GPU接收其它样本的第一操作结果,所述第二GPU是所述其它GPU中的任一个;所述其它样本具有分类标签;
所述第二操作单元,还用于基于所述接收单元接收的所述其它样本的第一操作结果以及具有的后端各层网络的参数,对所述其它样本执行相应的第二操作得到第二操作结果;
所述接收单元,还用于接收所述其它GPU在针对所述其它样本执行相应的第三操作后得到的第三操作结果;
所述合并单元,还用于合并所述其它样本的第二操作结果和所述其它样本的第三操作结果,得到所述其它样本的分类结果;
所述确定单元具体用于:根据所述样本的分类结果和分类标签,以及所述其它样本的分类结果和分类标签,确定预测误差。
11.根据权利要求9所述的装置,所述更新单元具体用于:
根据所述预测误差,确定所述前端各层网络的第一更新参数以及所述后端各层网络的第二更新参数;
根据所述第一更新参数,更新所述第一GPU所具有的前端各层网络的参数;根据所述第二更新参数中与所述第一GPU所具有的后端各层网络的参数对应的更新参数,更新所述第一GPU所具有的后端各层网络的参数;
向所述其它GPU发送所述第一更新参数以及各自对应的第二更新参数;以使所述其它GPU根据各自对应的第二更新参数,更新各自具有的后端各层网络的参数。
12.根据权利要求9所述的装置,所述前端各层网络包括卷积层以及其它层;
所述第一操作单元具体用于:
基于所述卷积层的参数,对所述样本执行卷积操作,以得到第一中间结果;
获取所述其它GPU根据各自具有的卷积层的参数,对各自获取的其它样本执行卷积操作所获得的第二中间结果;
根据所述其它GPU的第二中间结果,对所述第一中间结果进行归一化处理;
基于所述其它层的参数以及归一化处理后的第一中间结果,对所述样本执行其它操作,得到所述样本的第一操作结果。
13.根据权利要求9所述的装置,所述第一GPU与所述其它GPU之间基于支持分布式通讯和计算的应用编程接口函数库进行相互通讯。
14.一种利用GPU集群更新卷积神经网络的装置,所述GPU集群包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述其它GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;该装置设置于所述其它GPU中任意的第二GPU,包括:
接收单元,用于接收所述第一GPU在针对样本执行第一操作后发送的样本的第一操作结果;所述样本具有分类标签;其中,针对样本执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述样本执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的其它样本执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述样本执行相应的其它操作,直至得到所述第一操作结果;
第三操作单元,用于基于所述接收单元接收的所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第三操作得到第三操作结果;其中,对所述样本执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
发送单元,用于向所述第一GPU发送所述第三操作结果,以使得所述第一GPU在获取到其它各GPU发送的第三操作结果后,对所述样本的第二操作结果以及所述第三操作结果进行合并,得到所述样本的分类结果;所述样本的第二操作结果是由所述第一GPU基于所述第一操作结果以及具有的后端各层网络的参数对所述样本执行相应的第二操作后得到的;还使得所述第一GPU根据所述分类结果和所述样本的分类标签,确定预测误差;根据所述预测误差,更新所述卷积神经网络;其中,对所述样本执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果。
15.根据权利要求14所述的装置,还包括:
获取单元,用于获取带分类标签的其它样本;
第一操作单元,用于基于所述前端各层网络的参数,对所述其它样本执行与所述前端各层网络相应的第一操作,得到所述其它样本的第一操作结果;
所述第三操作单元,还用于基于所述其它样本的第一操作结果以及具有的后端各层网络的参数,对所述其它样本执行相应的第三操作得到第三操作结果;
所述发送单元,还用于向所述第一GPU以及所述其它GPU中除第二GPU外的GPU发送所述其它样本的第一操作结果,以使得所述第一GPU基于具有的后端各层网络的参数以及所述其它样本的第一操作结果,对所述其它样本执行相应的第二操作得到第二操作结果,以及使得所述其它GPU中除所述第二GPU外的GPU基于各自具有的后端各层网络的参数以及所述其它样本的第一操作结果,对所述其它样本执行相应的第三操作得到第三操作结果;
所述发送单元,还用于向所述第一GPU发送所述其它样本的第三操作结果,以使得所述第一GPU合并所述第二操作结果和所述其它各GPU发送的第三操作结果得到所述其它样本的分类结果,根据所述样本的分类结果和分类标签,以及所述其它样本的分类结果和分类标签,确定预测误差。
16.一种利用GPU集群的图片分类装置,所述GPU集群包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述第一GPU具有卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;该装置设置于所述第一GPU,包括:
获取单元,用于获取待分类图片;
第一操作单元,用于基于所述前端各层网络的参数,对所述获取单元获取的所述待分类图片执行与所述前端各层网络相应的第一操作,得到所述待分类图片的第一操作结果;其中,对所述待分类图片执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述待分类图片执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的所述待分类图片执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述待分类图片执行相应的其它操作,直至得到所述第一操作结果;
第二操作单元,用于基于所述第一操作结果以及具有的后端各层网络的参数,对所述待分类图片执行相应的第二操作得到第二操作结果;其中,对所述待分类图片执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果;
发送单元,用于将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述待分类图片执行相应的第三操作;其中,所述其它各GPU中任意的第二GPU对所述待分类图片执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
接收单元,用于接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并单元,用于合并所述第二操作结果和所述第三操作结果得到所述待分类图片的分类结果。
17.一种更新卷积神经网络的设备,包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述第一GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;所述第一GPU在运行时实现以下步骤:
获取带分类标签的样本;
基于所述前端各层网络的参数,对所述样本执行与所述前端各层网络相应的第一操作,得到所述样本的第一操作结果;其中,对所述样本执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述样本执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的其它样本执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述样本执行相应的其它操作,直至得到所述第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第二操作得到第二操作结果;其中,对所述样本执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述样本执行相应的第三操作;其中,所述其它各GPU中任意的第二GPU对所述样本执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述样本的分类结果;
根据所述分类结果和所述样本的分类标签,确定预测误差;
根据所述预测误差,更新所述卷积神经网络。
18.一种更新卷积神经网络的设备,包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述其它GPU具有所述卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;所述其它GPU中任意的第二GPU在运行时实现以下步骤:
接收所述第一GPU在针对样本执行第一操作后发送的样本的第一操作结果;所述样本具有分类标签;其中,针对样本执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述样本执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的其它样本执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述样本执行相应的其它操作,直至得到所述第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述样本执行相应的第三操作得到第三操作结果;其中,对所述样本执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
向所述第一GPU发送所述第三操作结果,以使得所述第一GPU在获取到其它各GPU发送的第三操作结果后,对所述样本的第二操作结果以及所述第三操作结果进行合并,得到所述样本的分类结果;所述样本的第二操作结果是由所述第一GPU基于所述第一操作结果以及具有的后端各层网络的参数对所述样本执行相应的第二操作后得到的;还使得所述第一GPU根据所述分类结果和所述样本的分类标签,确定预测误差;根据所述预测误差,更新所述卷积神经网络;其中,对所述样本执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果。
19.一种图片分类设备,包括具有协调和/或管理功能的第一GPU以及若干其它GPU,所述第一GPU具有卷积神经网络的前端各层网络的参数,所述第一GPU和所述其它GPU共同具有所述卷积神经网络的后端各层网络的参数,其中,所述前端各层网络包括卷积层、归一化BN层和其它层;所述后端各层网络包括全连接层和Softmax层;所述第一GPU在运行时实现以下步骤:
获取待分类图片;
基于所述前端各层网络的参数,对所述待分类图片执行与所述前端各层网络相应的第一操作,得到所述待分类图片的第一操作结果;其中,对所述待分类图片执行第一操作包括:根据与所述卷积层对应的多个卷积核,对所述待分类图片执行卷积操作;将得到的第一中间结果输入所述BN层,在所述BN层,基于所述第一中间结果以及接收的第二中间结果,对第一中间结果进行归一化处理;其中,所述第二中间结果是通过所述其它GPU对各自获取的所述待分类图片执行卷积操作得到;根据与所述BN层对应的尺度因子和平移因子,对归一化后的第一中间结果进行尺度变换和偏移;将尺度变换和偏移后的第一中间结果输入所述其它层,并根据所述其它层的参数对所述待分类图片执行相应的其它操作,直至得到所述第一操作结果;
基于所述第一操作结果以及具有的后端各层网络的参数,对所述待分类图片执行相应的第二操作得到第二操作结果;其中,对所述待分类图片执行相应的第二操作包括:将所述第一操作结果与所述第一GPU中存储的所述全连接层的一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作,从而得到所述第二操作结果;
将所述第一操作结果分别发送给所述其它GPU,以使得其它各GPU分别基于各自具有的后端各层网络的参数以及所述第一操作结果,对所述待分类图片执行相应的第三操作;其中,所述其它各GPU中任意的第二GPU对所述待分类图片执行相应的第三操作包括:将所述第一操作结果与所述第二GPU中存储的所述全连接层的另一列参数相乘,将得到的矩阵运算结果输入所述Softmax层,并执行与所述Softmax层相对应的操作;
接收所述其它各GPU在执行相应的第三操作后得到的第三操作结果;
合并所述第二操作结果和所述第三操作结果得到所述待分类图片的分类结果。
CN201910116468.XA 2019-02-13 2019-02-13 利用gpu集群更新卷积神经网络的方法、装置及设备 Active CN110059813B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910116468.XA CN110059813B (zh) 2019-02-13 2019-02-13 利用gpu集群更新卷积神经网络的方法、装置及设备
TW108132432A TWI716102B (zh) 2019-02-13 2019-09-09 利用gpu集群更新卷積神經網路的方法、裝置及設備
PCT/CN2020/070253 WO2020164338A1 (zh) 2019-02-13 2020-01-03 利用gpu集群更新卷积神经网络的方法、装置及设备
EP20755618.4A EP3859611B1 (en) 2019-02-13 2020-01-03 Method, apparatus and device for updating convolutional neural network using gpu cluster
US17/322,626 US11640531B2 (en) 2019-02-13 2021-05-17 Method, apparatus and device for updating convolutional neural network using GPU cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910116468.XA CN110059813B (zh) 2019-02-13 2019-02-13 利用gpu集群更新卷积神经网络的方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110059813A CN110059813A (zh) 2019-07-26
CN110059813B true CN110059813B (zh) 2021-04-06

Family

ID=67316031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910116468.XA Active CN110059813B (zh) 2019-02-13 2019-02-13 利用gpu集群更新卷积神经网络的方法、装置及设备

Country Status (5)

Country Link
US (1) US11640531B2 (zh)
EP (1) EP3859611B1 (zh)
CN (1) CN110059813B (zh)
TW (1) TWI716102B (zh)
WO (1) WO2020164338A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059813B (zh) * 2019-02-13 2021-04-06 创新先进技术有限公司 利用gpu集群更新卷积神经网络的方法、装置及设备
CN112560936B (zh) * 2020-12-11 2024-06-25 深圳市帮联科技有限公司 模型并行训练方法、装置、设备、存储介质和程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253493A (zh) * 2005-08-31 2008-08-27 微软公司 在图形处理单元上训练卷积神经网络
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN106339753A (zh) * 2016-08-17 2017-01-18 中国科学技术大学 一种有效提升卷积神经网络稳健性的方法
CN107292385A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种类Alexnet网络的模型训练方法和装置
CN108021395A (zh) * 2017-12-27 2018-05-11 北京金山安全软件有限公司 一种面向神经网络的数据并行处理方法及系统
CN108229687A (zh) * 2016-12-14 2018-06-29 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及电子设备
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN109241139A (zh) * 2018-08-31 2019-01-18 联想(北京)有限公司 数据处理方法、逻辑模型系统以及数据处理系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6819790B2 (en) * 2002-04-12 2004-11-16 The University Of Chicago Massive training artificial neural network (MTANN) for detecting abnormalities in medical images
CN106462800A (zh) * 2014-04-11 2017-02-22 谷歌公司 使卷积神经网络的训练并行化
CN104035751B (zh) * 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
CN105894087A (zh) * 2015-01-26 2016-08-24 华为技术有限公司 用于神经网络中训练参数集的系统和方法
US10002402B2 (en) * 2015-07-23 2018-06-19 Sony Corporation Learning convolution neural networks on heterogeneous CPU-GPU platform
US10332509B2 (en) * 2015-11-25 2019-06-25 Baidu USA, LLC End-to-end speech recognition
JP6635265B2 (ja) * 2016-07-29 2020-01-22 株式会社デンソーアイティーラボラトリ 予測装置、予測方法および予測プログラム
US10949746B2 (en) * 2016-10-27 2021-03-16 International Business Machines Corporation Efficient parallel training of a network model on multiple graphics processing units
US10528848B2 (en) * 2016-11-04 2020-01-07 Case Western Reserve University Histomorphometric classifier to predict cardiac failure from whole-slide hematoxylin and eosin stained images
US20180341871A1 (en) * 2017-05-25 2018-11-29 Accenture Global Solutions Limited Utilizing deep learning with an information retrieval mechanism to provide question answering in restricted domains
CN111052129B (zh) * 2017-07-28 2024-03-08 美国西门子医学诊断股份有限公司 深度学习体积定量方法和设备
CN108108813A (zh) * 2017-12-01 2018-06-01 中国科学院重庆绿色智能技术研究院 一种大类别深度学习gpu并行加速的方法
CN108304918B (zh) * 2018-01-18 2020-08-28 中兴飞流信息科技有限公司 一种数据并行的深度学习的参数交换方法和系统
CN110059813B (zh) * 2019-02-13 2021-04-06 创新先进技术有限公司 利用gpu集群更新卷积神经网络的方法、装置及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253493A (zh) * 2005-08-31 2008-08-27 微软公司 在图形处理单元上训练卷积神经网络
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN107292385A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种类Alexnet网络的模型训练方法和装置
CN106339753A (zh) * 2016-08-17 2017-01-18 中国科学技术大学 一种有效提升卷积神经网络稳健性的方法
CN108229687A (zh) * 2016-12-14 2018-06-29 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及电子设备
CN108021395A (zh) * 2017-12-27 2018-05-11 北京金山安全软件有限公司 一种面向神经网络的数据并行处理方法及系统
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN109241139A (zh) * 2018-08-31 2019-01-18 联想(北京)有限公司 数据处理方法、逻辑模型系统以及数据处理系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Multi-GPU Based Recurrent Neural Network Language Model Training;Xiaoci Zhang et al;《ICYCSEE 2016》;20161231;第484-493页 *
Using patterns of firing neurons in spiking neural networks for learning and early recognition of spatio-temporal patterns;Banafsheh Rekabdar et al;《COMPUTATIONAL INTELLIGENCE FOR VISION AND ROBOTICS》;20160411;第881-897页 *
基于多GPU的深层神经网络快速训练方法;薛少飞 等;《清华大学学报(自然科学版)》;20131231;第53卷(第6期);第745-748页 *
基于虚拟化的多GPU深度神经网络训练框架;杨志刚 等;《计算机工程》;20180228;第44卷(第2期);第68-83页 *

Also Published As

Publication number Publication date
EP3859611A4 (en) 2022-02-09
US11640531B2 (en) 2023-05-02
EP3859611B1 (en) 2024-08-07
TWI716102B (zh) 2021-01-11
US20210271976A1 (en) 2021-09-02
WO2020164338A1 (zh) 2020-08-20
EP3859611A1 (en) 2021-08-04
TW202101305A (zh) 2021-01-01
CN110059813A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
US20220391665A1 (en) Method for splitting neural network model by using multi-core processor, and related product
EP4036803A1 (en) Neural network model processing method and apparatus, computer device, and storage medium
US20210224125A1 (en) Operation Accelerator, Processing Method, and Related Device
Serapião et al. Combining K-Means and K-Harmonic with Fish School Search Algorithm for data clustering task on graphics processing units
CN111401406B (zh) 一种神经网络训练方法、视频帧处理方法以及相关设备
US20180365558A1 (en) Real-time resource usage reduction in artificial neural networks
Gutiérrez et al. GPU-SME-kNN: Scalable and memory efficient kNN and lazy learning using GPUs
US11144291B1 (en) Loop-oriented neural network compilation
US20230289955A1 (en) End-to-end part learning for image analysis
CN110059813B (zh) 利用gpu集群更新卷积神经网络的方法、装置及设备
US12106222B2 (en) Neural network training under memory restraint
CN111915555B (zh) 一种3d网络模型预训练方法、系统、终端及存储介质
US20210264237A1 (en) Processor for reconstructing artificial neural network, electrical device including the same, and operating method of processor
De Vita et al. µ-ff: On-device forward-forward training algorithm for microcontrollers
WO2022047802A1 (en) Processing-in-memory device and data processing method thereof
US11461662B1 (en) Compilation time reduction for memory and compute bound neural networks
US20230334289A1 (en) Deep neural network accelerator with memory having two-level topology
US20230229916A1 (en) Scalable tensor network contraction using reinforcement learning
US20230376659A1 (en) Vlsi placement optimization using self-supervised graph clustering
Gupta et al. Store-n-learn: Classification and clustering with hyperdimensional computing across flash hierarchy
CN117933312A (zh) 一种模型剪枝方法及相关装置
CN112633464A (zh) 用于识别图像的计算系统和方法
US12045611B1 (en) Reconfigurable neural network processing based on subgraph recognition
Budiman et al. Adaptive parallel ELM with convolutional features for Big Stream data
US20230237308A1 (en) Optimally clipped tensors and vectors

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201016

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant