一种基于SPARK平台的并行化深度学习方法与流程

文档序号:15493316发布日期:2018-09-21 21:05阅读:979来源:国知局
本发明涉及深度学习
技术领域
,更具体地,涉及一种基于spark平台的并行化深度学习方法。
背景技术
:随着人工智能的兴起,神经网络的应用扩展到了各个生活场景中,用以解决实际问题。由于应用场景越来越复杂,建模困难越来越大,导致神经网络(比如lenet-5)的层数越来越深,层与层之间相连的参数越来越多,因而计算任务耗时越来越长,成本巨大。虽然近年来单机硬件水平不断提高,cpu与gpu运算速度不断提升,但是传统的单机多卡(gpu)的模式仍不能很好地解决这一问题,所以大多数厂商的解决方案是利用集群协作来完成神经网络的前向与后向传播以及参数同步。这样一来,计算时间得以大幅度减少,然而由于木桶效应的存在,最终同步时间和通讯时间的长短取决于集群中性能最差的节点,会造成某些节点长时间处于空闲状态,浪费资源。技术实现要素:本发明的目的在于解决现有技术存在资源浪费的缺陷,提供了一种基于spark平台的并行化深度学习方法。为实现以上发明目的,采用的技术方案是:一种基于spark平台的并行化深度学习方法,包括以下步骤:s1.在多个节点上分别安装spark平台,然后进行相关的环境变量设置;s2.令多个节点中的部分节点为计算节点,剩余的节点中,一部分为参数存储节点,另一部分为参数服务控制节点;s3.在各个计算节点上分别初始化一个训练模型;s4.判断所有的计算节点的训练模型的状态是否都已触发触发器,若是则执行步骤s6,否则执行步骤s4;s4.将训练数据进行划分后平均分配给各个计算节点,各个计算节点上的训练模型利用分配的数据进行前向传播计算和后向传播计算,得到训练模型的参数信息后将参数信息通过参数服务控制节点回传至参数存储节点进行存储;然后同步更新训练模型的相关状态;s5.判断各个计算节点的一代训练是否完成,若否则直接执行步骤s4;若是则输出总时间,并且使每个计算节点向参数服务控制节点请求对应计算节点最新的参数信息,请求得到最新的参数信息对训练模型进行配置后,执行步骤s4;s6.结束。优选地,所述训练模型为lenet-5卷积神经网络。优选地,所述训练数据加载在sparkcontext中,其在分配前经过预处理。优选地,所述预处理的具体过程如下:1)将训练数据尺寸为32×32位图转换为28×28的灰度图表示形式;2)根据事先设定好的图片灰度值的均值和标准差对进行训练数据中的样本进行直方图均衡化处理;3)对训练数据中的样本进行混洗处理,随机地将图片信息重新排列,最大程度上减少偶然性误差;4)对混洗后的训练数据进行重新分区的处理,使得分区数等于参与训练的总核数,方便后续的数据分发。优选地,所述计算节点上传的参数信息以块的形式存储在参数存储节点中,每个块都会有唯一的标识,块的标识由两部分组成:1)任务标识:每次创建训练任务时,会对每个任务分配唯一的任务标识;2)训练线程标识:每次训练开始前,会根据配置的总核数来创建相应数目的训练线程,每个线程之间相互独立,每个线程都有唯一的标识信息;将以上两部分信息组合在一起形成块标识,与参数存储节点中的物理存储空间一一对应。优选地,所述计算节点计算得到参数信息后,会向参数服务控制节点发送push请求上传参数,参数服务控制节点根据计算节点上传的块标识信息回复路由信息,计算节点根据该路由信息向参数存储节点发送参数,参数存储节点再对接收的参数信息进行存储。优选地,计算节点在需要获取最新的参数信息时,会向参数服务控制节点发送pull请求,参数服务控制节点根据块标识信息将存储在参数存储节点本地的参数信息发送给计算节点。优选地,参数服务控制节点对参数存储节点、计算节点进行注册登记,并生成相应的路由信息记录到路由表中。优选地,所述上传的参数信息在存储时具有备份有3个副本,分别存储在不同的参数存储节点中。与现有技术相比,本发明的有益效果是:本发明提供的方法针对现有的深度学习方法参数同步模式在大规模集群中可能会存在的问题,在spark环境中引入了参数存储节点和参数服务控制节点这一编程框架,将集群中的节点分为计算节点、参数存储节点和参数服务控制节点,参数服务控制节点负责参数的收发以及参数更新机制的实现。参数存储节点和参数服务控制节点的出现使得异步通信成为可能,计算节点只需要在某次迭代的伊始向参数服务控制节点请求权重,在迭代的末尾向参数服务控制节点发送权重即可,大幅降低了通信时间、通信量以及节点闲置时间,使得在大数据环境下的深度学习训练任务的效率大幅提升。附图说明图1为方法的流程示意图。图2为计算节点、参数存储节点和参数服务控制节点的数据交互图。图3为push请求的示意图。图4为pull请求的示意图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;以下结合附图和实施例对本发明做进一步的阐述。实施例1spark是一个用来实现快速而通用的集群计算的平台,提供了分布式的内存抽象,是海量大数据处理的主要平台之一。spark扩展了广泛使用的mapreduce计算模型,而且高效地支持更多计算模型,包括交互式查询和流处理。spark另一个鲜明特点是采用了内存计算,提前将数据缓存在内存中,计算过程中的i/o操作全部发生在内存中,大大减少了内存与外存之间i/o交互所需的大量时间。在集群管理方面,spark支持原生的standalone调度器、hadoop自带的yarn调度以及mesos调度器,用户只需要分别在多台节点上安装spark,并进行简单的配置就可以启动spark集群,且无需担心具体计算任务怎样在各个节点间分配,spark调度器会将计算任务拆分成多个jobs、tasks、stages从而分配个各个节点。总的来说,spark适用于各种各样原先需要多种不同的分布式平台的场景。如图1、2所示,本发明提供的方法包括有以下步骤:s1.在多个节点上分别安装spark平台,然后进行相关的环境变量设置;s2.令多个节点中的部分节点为计算节点,剩余的节点中,一部分为参数存储节点,另一部分为参数服务控制节点;s3.在各个计算节点上分别初始化一个训练模型;s4.判断所有的计算节点的训练模型的状态是否都已触发触发器,若是则执行步骤s6,否则执行步骤s4;s4.将训练数据进行划分后平均分配给各个计算节点,各个计算节点上的训练模型利用分配的数据进行前向传播计算和后向传播计算,得到训练模型的参数信息后将参数信息通过参数服务控制节点回传至参数存储节点进行存储;然后同步更新训练模型的相关状态;参数信息包括参数权重和梯度;s5.判断各个计算节点的一代训练是否完成,若否则直接执行步骤s4;若是则输出总时间,并且使每个计算节点向参数服务控制节点请求对应计算节点最新的参数信息,请求得到最新的参数信息对训练模型进行配置后,执行步骤s4;s6.结束。上述方案中,训练模型为lenet-5卷积神经网络。其中,训练数据加载在sparkcontext中,其在分配前经过预处理;预处理的具体过程如下:1)将训练数据尺寸为32×32位图转换为28×28的灰度图表示形式;2)根据事先设定好的图片灰度值的均值和标准差对进行训练数据中的样本进行直方图均衡化处理;3)对训练数据中的样本进行混洗处理,随机地将图片信息重新排列,最大程度上减少偶然性误差;4)对混洗后的训练数据进行重新分区的处理,使得分区数等于参与训练的总核数,方便后续的数据分发。本实施例中,计算节点上传的参数信息以块的形式存储在参数存储节点中,每个块都会有唯一的标识,块的标识由两部分组成:1)任务标识:每次创建训练任务时,会对每个任务分配唯一的任务标识;2)训练线程标识:每次训练开始前,会根据配置的总核数来创建相应数目的训练线程,每个线程之间相互独立,每个线程都有唯一的标识信息;将以上两部分信息组合在一起形成块标识,与参数存储节点中的物理存储空间一一对应。本实施例中,如图3所示,所述计算节点计算得到参数信息后,会向参数服务控制节点发送push请求上传参数,参数服务控制节点根据计算节点上传的块标识信息回复路由信息,计算节点根据该路由信息向参数存储节点发送参数,参数存储节点再对接收的参数信息进行存储。同样地,如图4所示,计算节点在需要获取最新的参数信息时,会向参数服务控制节点发送pull请求,参数服务控制节点根据块标识信息将存储在参数存储节点本地的参数信息发送给计算节点。每个参数存储节点只负责自己分到的参数。当参数服务控制节点向参数存储节点发送更新参数或获取参数指令时,参数存储节点只需要根据提供的块标识寻找对应物理位置存储的数据即可。本实施例中,参数服务控制节点对参数存储节点、计算节点进行注册登记,并生成相应的路由信息记录到路由表中。路由表存储在参数服务控制节点中,保障整个参数服务器系统路由功能的实现。示例表格3、4所示:表1存储节点路由表存储节点1ip地址11,192.168.x.x下一跳点12,192.168.x.x……存储节点2ip地址21,192.168.x.x下一跳点22,192.168.x.x…………………………表2块标识与存储位置映射表块标识1存储节点11存储分区12……块标识2存储节点21存储分区22…………………………计算节点在每次访问和更新参数前,会先向参数服务控制节点询问最新的路由信息,然后根据自身所持有的块标识信息(blockid),找到发送目的地存储节点和相应分区,再根据存储节点路由表中的信息进行路由,将本地参数按目标位置拆分发送。同时,所述上传的参数信息在存储时具有备份有3个副本,分别存储在不同的参数存储节点中。在具体实施的时候,其中的一个节点会被选为首选节点,来提供针对某个参数的服务。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1