一种用于分布式深度学习的增量迭代方法技术

技术编号:36085971 阅读:14 留言:0更新日期:2022-12-24 11:01
本发明专利技术涉及到数据处理领域,提出了一种用于分布式深度学习的增量迭代方法,步骤包括:步骤1):构造DAG;步骤2):过滤RDD数据集;步骤3):将过滤后的RDD数据集转换为GPU可以处理的数据类型,存入GPU全局显存中;步骤4)进行迭代计算;步骤5):进行增量迭代计算。在本发明专利技术中,打破了传统数据处理方法不能有效利用异构多样的内存,以及对增量数据的数据处理效率慢的问题,提出一种用于分布式深度学习的增量迭代方法,有效利用GPU中的多级存储结构进行增量迭代学习,提升了深度学习数据处理效率。提升了深度学习数据处理效率。提升了深度学习数据处理效率。

【技术实现步骤摘要】
一种用于分布式深度学习的增量迭代方法


[0001]本专利技术涉及数据处理领域,特别是涉及一种用于分布式深度学习的增量迭代方法。

技术介绍

[0002]随着人工智能热潮的重新兴起,致力于深度学习的并行处理平台已成为许多研究人员的关注焦点。作为MapReduce编程模型的主流代表,Flink和Spark非常适合计算密集型数据分析和迭代计算应用。然而,分布式计算框架和GPU之间仍然存在许多不同的特性,这给在具有集成GPU的异构分布式环境中构建深度学习增量迭代模型带来了挑战。
[0003]同时,在实际应用场景中,流数据是实时动态变化的,如何对数据变化时产生的增量数据的计算进行时间和资源上的合理利用,是传统的大数据处理方法亟需处理的问题。

技术实现思路

[0004]本专利技术的目的是提供一种用于分布式深度学习的增量迭代方法,能够有效完成数据高效处理任务。
[0005]为实现上述目的,本专利技术提供了如下方案:
[0006]一种用于分布式深度学习的增量迭代方法,包括:
[0007]步骤1:构造DAG。获取RDD ID以及RDD间的依赖关系,构建由多个包含头RDD、依赖关系、尾RDD三元组的有向无环图。
[0008]步骤2:过滤RDD数据集。为了增加后续GPU利用效率,当内存达到一定阈值后,计算步骤1中所有RDD数据的权重,并进行过滤操作,将权重小的RDD过滤掉,过滤后的数据集即为需要缓存至内存中的RDD数据集。
[0009]步骤3:将上述步骤2过滤后的RDD数据集转换为GPU可以处理的数据类型,存入GPU全局显存中。
[0010]步骤4:进行迭代计算。为每个线程块分配一个自己的数据集放在共享内存中。所述数据集为每次迭代中本地访问频率高的数据组成的集合。线程块中的每个线程依次读取全局显存中的待计算数据,并进行迭代计算。并以所述迭代计算后的数据集对共享内存中存储的数据集进行更新;
[0011]步骤5:进行增量迭代计算。当数据集发生增量变化时,共享内存从全局显存中读取增量数据,并进行增量迭代计算,得到增量迭代后的数据集,以增量迭代后的数据集对共享内存中的数据集进行更新;
[0012]进一步地,所述步骤1中,构建DAG的具体方法包括:
[0013]步骤1.1、输入样本数据,遍历所有RDD函数操作,获取所有输入RDD、依赖关系、输出RDD构成的三元组t:
[0014]t=R
RhR

r

R
Rt
[0015]其中R
RhR
是输入RDD ID,r是依赖关系,R
RtR
是输出RDD ID。同时,将无法构成三元组
关系的RDD丢弃。
[0016]步骤1.2、读取所有三元组t,构建DAG;
[0017]进一步地,所述步骤2中,过滤RDD数据集的具体方法包括:
[0018]步骤2.1、判断当前内存的存储量是否达到阈值,如达到,则继续以下步骤;
[0019]步骤2.2、计算RDD权重。该过程的公式定义如下:
[0020][0021]其中,w表示该RDD分区的权重值,表示该RDD的计算代价,表示该RDD的使用次数,S
p
表示该分区的大小,表示该RDD的生命周期,表示计算该RDD输入RDD的位置。A={α0,α1,α2,α3,α4}中的元素是常数,分别是和的归一化权重,权重值得选取由用户的具体任务Task需求决定。
[0022]进一步地,所述步骤4中,进行迭代计算的具体方法包括:
[0023]步骤4.1、在全局显存中为每个线程块分配一个自己的数据集放在共享内存中。
[0024]步骤4.2、线程块中的每个线程依次读取全局显存中的待计算数据,并进行迭代计算;
[0025]步骤4.3、以步骤4.2迭代计算后的数据集对共享内存中存储的数据集进行更新;
[0026]步骤4.4、当共享内存达到一定阈值时,将每次迭代中本地访问频率低的数据转存至全局显存中;
[0027]进一步地,所述步骤5中,进行增量迭代计算的具体方法包括:
[0028]步骤5.1、当数据集发生增量变化时,即由于流数据动态变化而产生新的迭代数据时,共享内存从全局显存中读取增量数据;
[0029]步骤5.2、进行增量迭代计算,得到增量迭代计算后的数据集。其中,增量迭代为根据增量数据和原始迭代结果获得新的迭代结果的迭代方法,所述增量数据为由于业务增长而产生的新的迭代数据。
[0030]步骤5.3、以上述步骤5.2增量迭代计算后的数据集对共享内存中的数据集进行更新。其中,将判断为收敛的数据存在全局内存中,后续迭代继续用,不进行更新,以达到增量控制的目的。
[0031]步骤5.4、当共享内存到达一定阈值后,将不被频繁访问的数据移到全局显存。
[0032]本专利技术的优点:
[0033]上述分布式深度学习的增量迭代方法,通过构建DAG图,并根据RDD权重对内存中的数据进行过滤替换,并将数据集存至GPU的全局显存中,并将迭代计算中的数据存至共享内存中进行计算,充分利用了GPU内的缓存资源,通过不同存储结构间的调用,有效的减少重复计算,从而减少计算总时间,提高深度学习的数据处理效率。
附图说明
[0034]图1为本专利技术的一种用于分布式深度学习的增量迭代方法的流程图;
[0035]图2为本专利技术所提出的增量迭代模型结构图。
具体实施方式
[0036]为了使本专利技术的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本专利技术作进一步详细说明。
[0037]如图1所示,一种用于分布式深度学习的增量迭代方法,包含以下步骤:
[0038]步骤1,构建DAG,具体为:
[0039]在步骤1.1中,本实施例:输入样本数据,遍历所有RDD函数操作,对RDD之间的操作逻辑进行分析,获取所有输入RDD、依赖关系、输出RDD构成的三元组t:
[0040]t=R
RhR

r

R
Rt
[0041]其中R
RhR
是输入RDD ID,r是依赖关系,R
RtR
是输出RDD ID。同时,将无法构成三元组关系的RDD丢弃。
[0042]步骤1.2中,本实施例:读取所有三元组t,将相同的RDD合并为同一个节点,构建有向无环图DAG。其中,将无法组成三元组的RDD数据丢弃。
[0043]步骤2,过滤RDD数据集,具体为:
[0044]在步骤2.1中,本实施例:为当前内存的存储量设定一个阈值,一旦内存中存储量达到指定阈值,则进行过滤操作。
[0045]在步骤2.2中,本实施例:通过为RDD各项属性分配权重,从而计算RDD分区的总权重值。权重计算的公式定义如下:
[0046][0047]其中,w表示该RDD分区的权重值,表示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于分布式深度学习的增量迭代方法,其特征在于包括以下步骤:1)构造DAG;2)过滤RDD数据集;3)将过滤后的RDD数据集转换为GPU可以处理的数据类型,存入GPU全局显存中;4)进行迭代计算;5)进行增量迭代计算。2.如权利要求1所述的一种用于分布式深度学习的增量迭代方法,其特征在于步骤1)中:所述构造DAG具体步骤为:1)输入样本数据,遍历所有RDD函数操作,获取所有输入RDD、依赖关系、输出RDD构成的三元组t:t=R
h

r

R
t
其中R
h
是输入RDD ID,r是依赖关系,R
t
是输出RDD ID;同时,将无法构成三元组关系的RDD丢弃;2)读取所有三元组t,构建DAG。3.如权利要求1所述的一种用于分布式深度学习的增量迭代方法,其特征在于步骤1)中:过滤RDD数据集具体步骤为:1)判断当前内存的存储量是否达到阈值,如达到,则继续一下步骤;2)计算RDD权重;该过程的公式定义如下:其中,w表示该RDD分区的权重值,表示该RDD的计算代价,表示该RDD的使用次数,S
p
表示该分区的大小,表示该RDD的生命周期,表示计算该RDD输入RDD的位置;A={α0,α1...

【专利技术属性】
技术研发人员:邵长城
申请(专利权)人:广东工业大学
类型:发明
国别省市:

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

1