配置分布式TensorFlow

在大型数据集上进行神经网络的训练,往往需要更大的运算资源,而且还要耗费若干天才能完成运算量。
TensorFlow提供了一个可以分布式部署的模式,将一个训练任务拆成多个小任务,分配到不同的计算机上来完成协同运算,这样使用计算机群来代替单机计算,可以使训练时间大大缩短。
一 分布式TensorFlow的角色及原理
要想配置TensorFlow为分布训练,需要先了解TensorFlow中关于分布式的角色分配。
  • ps:作为分布式训练的服务端,等待各个终端(supervisors)来连接。
  • worker:在TensorFlow的代码中被称为supervisors,作为分布式训练的运算终端。
  • chief supervisors:在众多运算终端中必须选择一个作为主要的运算终端。该终端是在运算终端中最先启动的,它的功能是合并各个终端运算后的学习参数,将其保存或载入。
每个具体角色网络标识都是唯一的,即分布在不同IP的机器上(或者同一个机但不同的端口)。
在实际运行中,各个角色的网络构建部分代码必须100%的相同。三者分布如下:
  • 服务端作为一个多方协调者,等待各个运算终端来连接。
  • chief supervisors会在启动时统一管理全局的学习参数,进行初始化或从模型载入。
  • 其他的运算终端只是负责得到其对应的任务并进行计算,并不会保存检查点,也不会保存用于TensorBoad可视化的summary日志等任何参数信息。
整个过程都是通过RPC协议来通信的。

二 分布式部署TensorFlow的具体方法
配置过程中,首先需要建立一个server,在server中会将ps及所有worker的IP端口准备好。接着,使用tf.train.Supervisor中的managed_session来管理一个打开的session.session中只负责运算,而通信协调的事情就都交给supervisor来管理了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值