当前位置: 首页 > 专利查询>北京大学专利>正文

基于宽模型稀疏数据集的高效GPU训练模型的图像识别方法技术

技术编号:23605373 阅读:35 留言:0更新日期:2020-03-28 06:17
本发明专利技术公布了一种基于宽模型稀疏数据集的高效GPU训练模型的图像识别方法,将图像的像素转换为向量,再对向量进行训练归类;通过建立机器学习训练方法CuWide,CuWide采用了复制策略、重要性缓存、面向列的存储和多流技术的流管道,利用GPU并使用大量稀疏数据集高效地训练图像识别预测宽模型,将图像识别预测宽模型在GPU上部署、训练,本发明专利技术方法在训练大规模的宽模型方面性能优异,可大大提高图像识别的效率。

Image recognition method of high efficiency GPU training model based on wide model sparse data set

The invention discloses an image recognition method of high-efficiency GPU training model based on wide model sparse data set, which converts image pixels into vectors, and then trains and classifies vectors; by establishing a machine learning training method cuwide, cuwide adopts a stream pipeline with replication strategy, importance cache, column oriented storage and multi stream technology, and uses GPU and a large amount of sparse data The method of the invention has excellent performance in training large-scale wide models and can greatly improve the efficiency of image recognition.

【技术实现步骤摘要】
基于宽模型稀疏数据集的高效GPU训练模型的图像识别方法
本专利技术属于机器学习和图像处理
,涉及图像分类识别方法,尤其涉及一种基于宽模型稀疏数据集的高效GPU训练模型的图像识别方法。
技术介绍
推荐系统、广告点击率预测和图像识别等机器学习和数据挖掘问题因其在许多实际服务中的成功而越来越受欢迎,如图像分类结合计算机视觉和机器学习算法从图像中抽取意义的任务,可以为一张图像分配一个标签或一个高级的解释图像内容的人类可读句子,无论在学术界和工业界都是个很热的话题。在图像识别领域,分类的准确与否直接影响商业利润,在数据量巨大的情况下,不仅要考虑模型的精度,还要考虑模型训练的时间和空间代价。宽模型可以从一系列特征中学习解决这类问题,它已经被应用于许多预测应用中,如逻辑回归(LogisticRegression)、线性支持向量机(LSVM)、因子分解机(FM)等。为了训练上述宽模型,几种基于CPU的系统,如Liblinear[1],针对大规模正规化线性分类和回归,xLearn[2]是使用指令级优化的大规模稀疏机器学习问题的高性能实现,这些方法可以处理数以百万计的特征,利用CPU的计算能力,支持多核环境。然而,CPU上的宽模型的训练性能仍然不令人满意,宽模型训练受到内存带宽的限制,而现有的GPU解决方案也不能充分利用GPU的高内存带宽。目前流行的基于数据流的机器学习系统,如TensorFlow[3]、MXNet[4]、CNTK[5]等,主要是为神经网络计算而设计的,因此缺乏针对宽模型中数据通常是稀疏分布的特性的优化。然而这些框架设计没有解决以下两点缺陷:1.宽模型训练时的计算策略与GPU的存储层次之间的差距。宽模型训练可分为前向和后向两个阶段。在经典的训练策略下,前向阶段计算梯度,后向阶段用梯度更新模型。这种策略已经被许多通用的机器学习框架(如TensorFlow、PyTorch[6]、MXNet)广泛采用。为了加速GPU的模型训练,将两个阶段之间的梯度存储在全局内存中。然而,根据GPU的存储层次结构,片内共享存储器相对于全局存储器具有更低的延迟和更高的带宽,以此提高GPU的利用率和性能。这样做的难点在于共享内存的容量很小,而梯度的大小可能非常大,因为它与特征的数量成正比。例如,nvidiapascalGPU每个多处理器只有96kb。但是,特征的数量很容易超过数百万,这会占用超过1MB的内存。因此,如何设计一种新的宽模型训练策略来克服GPU共享内存的局限性是一个亟待解决的问题。图2显示了基于GPU的宽模型使用基于阶段的策略训练(TensorFlow,PyTorch和MXNet),在宽模型训练中都遵循这一策略。总的来说,基于阶段的策略需要O(m)全局存储器存储空间(如图2所示),其中m是模型大小。大量的全局存储器随机存取是整个程序的瓶颈,GPU中的共享内存具有比全局存储器更低的延迟和更高的内存带宽,它可以用来提高训练效率。然而,共享内存的大小有限。梯度是非常高维度的密集向量,并且太大以至于不能存储在共享内存中。因此,基于阶段的策略难以从共享内存的优势出发。2.稀疏不规则数据与GPUSIMT体系结构的差距。在实践中,用户通常需使用one-hot编码来生成一组广泛的特性,因此,宽模型的输入通常是高维的和稀疏的。然而,由于GPU是用SIMT架构设计来处理数据密集型任务,没有仔细的调整,稀疏数据很容易导致许多冗余内存访问。特征分布近似于幂律分布,这是高度偏斜的,这种特征分布引起模型参数的非均匀访问,在使用GPU时导致高频特征的线程冲突。线程冲突使并行计算退化为串行计算。参考文献:[1]R.-E.Fan,K.-W.Chang,C.-J.Hsieh,X.-R.Wang,andC.-J.Lin.Liblinear:Alibraryforlargelinearclassification.Journalofmachinelearningresearch,9(Aug):1871–1874,2008.[2]xlearn:ahighperformance,easy-to-use,andscalablemachinelearningpackage.https://github.com/aksnzhy/xlearn.[3]M.Abadi,P.Barham,J.Chen,Z.Chen,A.Davis,J.Dean,M.Devin,S.Ghemawat,G.Irving,M.Isard,etal.Tensorflow:asystemforlarge-scalemachinelearning.InOSDI,volume16,pages265–283,2016.[4]T.Chen,M.Li,Y.Li,M.Lin,N.Wang,M.Wang,T.Xiao,B.Xu,C.Zhang,andZ.Zhang.Mxnet:Aflexibleandefficientmachinelearninglibraryforheterogeneousdistributedsystems.arXivpreprintarXiv:1512.01274,2015.[5]F.SeideandA.Agarwal.Cntk:Microsoft’sopen-sourcedeep-learningtoolkit.InProceedingsofthe22ndACMSIGKDDInternationalConferenceonKnowledgeDiscoveryandDataMining,pages2135–2135.ACM,2016.[6]A.Paszke,S.Gross,S.Chintala,G.Chanan,E.Yang,Z.DeVito,Z.Lin,A.Desmaison,L.Antiga,andA.Lerer.AutomaticdifferentiationinPyTorch.2017.
技术实现思路
为了克服上述现有技术的缺陷,本专利技术提出了一种基于宽模型稀疏数据集的高效GPU训练模型方法及图像识别方法,建立一个机器学习训练方法框架CuWide(基于图形处理器的大规模稀疏分类系统),用以更高效地利用GPU训练使用大量稀疏图像数据集的图像预测模型,提高图像识别的效率。本专利技术建立一种有效的大规模宽模型GPU训练方法CuWide,充分利用GPU中的内存层次结构来加速训练,针对推荐任务或预测任务中的稀疏数据和宽模型,采用了一种基于流的训练策略,引入聚合-损失-更新(ALA,Aggregate-Loss-Apply)编程模型和基于偶图的执行引擎,包括复制、重要特征缓存和面向用于识别图像数据特征的存储优化,并基于CuWide原型给出内存调度和流管道策略克服了GPU内存容量的限制,以处理大规模数据集。可在推荐系统、点击率预测和图像识别等预测类模型训练中应用。图2为CuWide的结构。为了充分利用GPU中内存层次结构的优势,这种基于流的新训练策略通过使用一种特征聚集的技术作用在经典的前向和后向阶段中,计算每个样本的加权特征和,并将它本文档来自技高网
...

【技术保护点】
1.一种基于宽模型稀疏数据集的高效GPU训练模型方法,其特征是,可应用于图像识别,将图像的像素转换为向量,再对向量进行训练归类;通过建立机器学习训练方法CuWide,利用GPU并使用大量稀疏数据集高效地训练图像识别预测宽模型,将图像识别预测宽模型在GPU上部署、训练,由此提高图像识别的效率;包括如下步骤:/n1)将训练数据分批输入图像识别预测宽模型,所述图像识别预测宽模型为使用CuWide中的ALA接口编程的模型,所述ALA接口包括:聚合接口、损失接口和更新接口;/n所述训练方法CuWide方法包括:基于流的训练策略、ALA编程接口、偶图执行引擎和多流调度策略;/n所述ALA接口的聚合接口用于利用输入图像数据和模型参数计算累加值;所述损失接口用于利用累加结果计算损失;所述更新接口用于更新模型参数;/n2)使用CuWide的多流调度策略,包括内存调度和流管道策略,自动处理不能完全放入GPU内存的图像数据集,并优化GPU中的异步数据传输过程来隐藏数据传输和GPU到主存储器的内存访问延迟,进一步将批量数据传入偶图执行引擎;/n3)所述偶图执行引擎为基于偶图的数据稀疏感知优化执行引擎,用于有效地实现GPU上的基于流量的策略,包括图的构造、划分和基于块计算:/n31)首先,通过偶图执行引擎将用于训练的图像分类数据建模为一个偶图,其中样本由样本顶点表示,特征由参数顶点表示,边缘表示特征与样本之间的关系;具体使用复制策略、重要性缓存和面向特征的存储,处理图像数据稀疏数据集的稀疏性和不规则性,将其建模为一个偶图;/n32)在训练过程中,将GPU上的小批量图像数据进一步分成小块;/n将小批量图像数据进一步划分成多个小块,通过执行聚合接口定义的特征聚合,对每个小块逐个进行处理,并将累加量存储在共享内存中;其中累加量具体通过数据特征和模型参数的聚合操作得到;/n33)提取与小块对应的子图;每个子图由GPU上的线程块执行;/n通过执行损失和更新接口定义的方法,使用聚合结果计算损失函数和更新模型;在逆向阶段,使用累积量计算梯度;/n34)利用偶图执行引擎收集所有小块更新的运算结果并同步至模型;/n4)经过多轮迭代,训练收敛后保存图像分类模型及参数;再使用训练好的图像分类模型对图像进行分类;具体执行如下操作:/n41)将待分类的图像测试集输入训练好的图像分类模型;/n42)计算各类别概率,得出图像分属某一类别的概率,根据最大的概率结果确定其类别;/n通过上述步骤,实现基于宽模型稀疏数据集的高效GPU训练模型的图像识别。/n...

【技术特征摘要】
1.一种基于宽模型稀疏数据集的高效GPU训练模型方法,其特征是,可应用于图像识别,将图像的像素转换为向量,再对向量进行训练归类;通过建立机器学习训练方法CuWide,利用GPU并使用大量稀疏数据集高效地训练图像识别预测宽模型,将图像识别预测宽模型在GPU上部署、训练,由此提高图像识别的效率;包括如下步骤:
1)将训练数据分批输入图像识别预测宽模型,所述图像识别预测宽模型为使用CuWide中的ALA接口编程的模型,所述ALA接口包括:聚合接口、损失接口和更新接口;
所述训练方法CuWide方法包括:基于流的训练策略、ALA编程接口、偶图执行引擎和多流调度策略;
所述ALA接口的聚合接口用于利用输入图像数据和模型参数计算累加值;所述损失接口用于利用累加结果计算损失;所述更新接口用于更新模型参数;
2)使用CuWide的多流调度策略,包括内存调度和流管道策略,自动处理不能完全放入GPU内存的图像数据集,并优化GPU中的异步数据传输过程来隐藏数据传输和GPU到主存储器的内存访问延迟,进一步将批量数据传入偶图执行引擎;
3)所述偶图执行引擎为基于偶图的数据稀疏感知优化执行引擎,用于有效地实现GPU上的基于流量的策略,包括图的构造、划分和基于块计算:
31)首先,通过偶图执行引擎将用于训练的图像分类数据建模为一个偶图,其中样本由样本顶点表示,特征由参数顶点表示,边缘表示特征与样本之间的关系;具体使用复制策略、重要性缓存和面向特征的存储,处理图像数据稀疏数据集的稀疏性和不规则性,将其建模为一个偶图;
32)在训练过程中,将GPU上的小批量图像数据进一步分成小块;
将小批量图像数据进一步划分成多个小块,通过执行聚合接口定义的特征聚合,对每个小块逐个进行处理,并将累加量存储在共享内存中;其中累加量具体通过数据特征和模型参数的聚合操作得到;
33)提取与小块对应的子图;每个子图由GPU上的线程块执行;
通过执行损失和更新接口定义的方法,使用聚合结果计算损失函数和更新模型;在逆向阶段,使用累积量计算梯度;
34)利用偶图执行引擎收集所有小块更新的运算结果并同步至模型;
4)经过多轮迭代,训练收敛后保存图像分类模型及参数;再使用训练好的图像分类模型对图像进行分类;具体执行如下操作:
41)将待分类的图像测试集输入训练好的图像分类模型;
42)计算各类别概率,得出图像分属某一类别的概率,根据最大的概率结果确定其类别;
通过上述步骤,实现基于宽模型稀疏数据集的高效GPU训练模型的图像识别。


2.如权利要求1所述基于宽模型稀疏数据集的高效GPU训练模型方法,其特征是,步骤31)中建模为一个偶图具体包括如下过程:
311)构造图:使用偶图模型构造图像分类的宽模型,其中样本顶点代表样本,参数顶点代表不同的图像特征,边缘代表样本和特征之间的关系;
对于小批量随机梯度下降的每次迭代,样本顶点的数量是批大小,参数顶点的数目是数据集的特征维数,边缘表示稀疏输入;在数据加载之后,消除图的构造,并且不同的宽模型共享相同的图形结构;宽模型均为ALA模型;
32)划分图:将输入的图像批量训练数据划分为数据块,并逐个处理数据块;通过参数顶点剪裁策略提取数据块中的样本顶点的单跳邻域来划分边缘并创建子图;
33)进行基于块的运算:按照ALA模型进行块...

【专利技术属性】
技术研发人员:苗旭鹏苏立梓崔斌周跃马凌霄杨智
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1