首页 理论教育 BigDL分布式深度学习训练算法优化

BigDL分布式深度学习训练算法优化

时间:2023-06-26 理论教育 版权反馈
【摘要】:图6-21分布式深度学习训练的数据并行算法基本架构BigDL作为一个构建在Hadoop/Spark集群之上的分布式深度学习框架,为用户提供了端到端的大数据处理和分析及人工智能应用开发平台。图6-22基于BigDL的分布式深度学习训练算法性能图6-23给出当集群节点数为5时的分布式学习训练网络分类性能。图6-23基于BigDL的分布式深度学习训练网络分类准确率

BigDL分布式深度学习训练算法优化

分布式深度学习训练算法可以有效解决深层网络模型训练过程中由于需要训练大量网络参数而带来的耗时问题。根据并行方式,可以将分布式深度学习训练算法分为模型并行和数据并行。

模型并行是指将单个网络模型拆分为多个部分,在分布式集群的多个节点分别训练部分网络。例如,将卷积神经网络的卷积层、全连接层拆分并分配到不同的节点进行训练,每个节点只负责单个网络层的训练,最终将所有网络层汇总,从而达到并行加速的效果。但是,通常情况下模型并行的实现难度较高,而且造成的通信开销也不低,因此较多适用于网络模型过大,单机内存无法加载的情况。

数据并行是指将训练数据集拆分,分布式集群中每个节点上都有整个网络模型的副本,每个节点只负责处理自己分配到的一部分训练数据,然后在各个节点之间同步模型参数。数据并行的训练过程中,由一个参数服务器辅助进行各节点之间参数的同步。如图6-21所示,训练时首先将模型参数W上传到参数服务器上,参数服务器将W参数传到各个节点。数据集被切分为许多个小批量,每个节点用当前的W参数计算本地小批量的梯度ΔW,最后各节点将计算出的ΔW参数推送到参数服务器上,参数服务器按照式(6.16)计算最新的W,然后向各个节点更新模型参数,进行下一轮训练。一般情况下,数据并行方法的容错率、集群利用率和训练效果均优于模型并行方法。

图6-21 分布式深度学习训练的数据并行算法基本架构

BigDL作为一个构建在Hadoop/Spark集群之上的分布式深度学习框架,为用户提供了端到端的大数据处理和分析及人工智能应用开发平台。基于BigDL的分布式深度学习训练算法流程如下:

(1)加载深度网络模型并做相应的设置,如学习率、激活函数等;

(2)通过Spark的RDD将数据集切分为若干小批量;

(3)参数服务器将网络参数同步到各个节点,并为每个节点分发一个小批量;(www.xing528.com)

(4)每个节点对分配到的部分训练数据计算梯度,完成之后上传给参数服务器,等待分配下一个计算任务;

(5)参数服务器收到所有节点上传的梯度之后,汇总计算总梯度,更新网络参数,完成一次迭代训练。需要注意的是,采用同步更新网络参数的模式,即参数服务器在一次迭代过程中等待所有节点都完成计算之后再更新参数,能够有效避免由于梯度过时引起的精度下降问题;

(6)判断网络是否收敛或者是否达到预设迭代次数。若是,则完成训练;否则重复执行步骤(2)~(5)。

图6-22给出分布式集群中的节点数分别为1、3和5的分布式深度学习训练的算法性能。其中,遥感图像数据集选用UCMD数据集,将在ImageNet上预训练好的VGG-16网络参数迁移到新模型,分别在单机、3节点集群和5节点集群上用UCMD数据集进行精调。实验参数设置如下:迭代次数为100,初始学习率设置为0.005,训练的批次大小为32,训练集/验证集/测试集的设置比例为8∶1∶1。结果表明,增加分布式集群的节点,可以有效提升深度神经网络的训练速度。

图6-22 基于BigDL的分布式深度学习训练算法性能

图6-23给出当集群节点数为5时的分布式学习训练网络分类性能。数据集仍选用UCMD,分布式并行训练神经网络时,由于梯度更新时的同步问题,可能会对网络的性能产生小幅影响,可以通过增加迭代次数,实现网络分类准确率的提升。实验结果表明,当集群节点数为5,迭代次数达到3000次时,网络的平均分类准确率为92.4%,可应用于后续的图像检索任务。

图6-23 基于BigDL的分布式深度学习训练网络分类准确率

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈