tensorflow多gpu并行计算

tensorflow多GPU并行计算

TensorFlow可以可以利用GPU加速深度学习模型的训练过程,在这里介绍一下利用多个GPU或者机器时,TensorFlow是如何进行多GPU并行计算的。
首先,TensorFlow并行计算分为:模型并行,数据并行。模型并行是指根据不同模型设计不同的并行方式,模型不同计算节点放在不同GPU或者机器上进行计算。数据并行是比较通用简便的实现大规模并行方式,同时使用多个硬件资源计算不同batch数据梯度,汇总梯度进行全局参数更新。
在这里我们主要介绍数据并行的多GPU并行方法。数据并行,多块GPU同时训练多个batch数据,运行在每块GPU上的模型基于同一神经网络,网络结构一样,共享模型参数。数据并行也分为两个部分,同步数据并行和异步数据并行。
在每一轮迭代中,前向传播算法会根据当前参数的取值,计算出在一小部分训练数据上的预测值,然后反向传播算法,根据loss function计算参数的梯度并且更新参数。而不同的数据并行模式的区别在于参数的更新方式不同。
1. 数据异步并行
数据异步并行模式流程图
图一:数据异步并行模式流程图
从图一可以看出,在每一轮迭代时候,不同的设备会读取参数最新的取值。但是因为不同的设备,读取参数取值的时间不一样,得到的值也有可能不一样。
也就是说数据异步并行模式根据当前参数的取值和随机获取的一小部分数据数据在不同设备上各自运行,不等待所有GPU完成一次训练,哪个GPU完成训练,立即将梯度更新到共享模型参数。
2. 数据同步并行
数据同步并行模式流程图
图二:数据同步并行模式流程图
与数据异步并行模式不同的是数据同步并行模式在所有设备完成反向传播的计算之后,需要计算出不同设备上参数梯度的平均值,最后在根据平均值对参数进行更新。
3. 比较
同步数据并行,所有GPU计算完batch数据梯度,统计将多个梯度合在一起,更新共享模型参数,类似使用较大batch。GPU型号、速度一致时,效率最高。
异步数据并行,不等待所有GPU完成一次训练,哪个GPU完成训练,立即将梯度更新到共享模型参数。
同步数据并行比异步收敛速度更快,模型精度更高。
4. 代码实例
TensorFlow多GPU并行计算实例—MNIST

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值