四、Tensorflow的分布式训练
TensorFlow中的集群(cluster)指的是一系列能够针对图(Graph)进行分布式计算任务(task)。每个任务是同服务(server)相关联的。TensorFlow中的服务会包含一个用于创建session的主节点和至少一个用于图运算的工作节点,一个集群可以被拆分为一个活着多个作业(job),每个作业可以包含至少一个任务。
以下的例子是一个最简单的例子
1、服务端代码:
import tensorflow as tf '''
运行命令:
python tensf_server_01 --job_name=ps --task_index=0
python tensf_server_01 --job_name=ps --task_index=0
python tensf_server_01 --job_name=work --task_index=0
python tensf_server_01 --job_name=work --task_index=1
python tensf_server_01 --job_name=work --task_index=2 ''' #1、配置服务器相关信息
#因为tensorflow底层代码中,默认就是使用ps和work分别表示两类不同的工作节点
#ps:变量/张量的初始化,存储相关节点
#work:变量/张量的计算/运算的相关节点
ps_host = ['127.0.0.1:33331','127.0.0.1:33332']
work_hosts = ['127.0.0.1:33333','127.0.0.1:33334','127.0.0.1:33335']
cluster = tf.train.ClusterSpec({'ps':ps_host,'work':work_hosts}) #2、定义一些运行参数(在运行该python文件的时候就可以制定这些参数了)
tf.app.flags.DEFINE_string('job_name',default_value='work',docstring="One of 'ps' or 'work'")
tf.app.flags.DEFINE_integer('task_index',default_value=0,docstring="Index of task within the job")
FLAGS = tf.app.flags.FLAGS #2、启动服务
#_下划线表示占位符
def main(_):
print(FLAGS.job_name)
server = tf.train.Server(cluster,job_name=FLAGS.job_name,task_index=FLAGS.task_index)
server.join() if __name__ == '__main__':
#底层默认会调用main方法
tf.app.run()
2、client端的代码:
import tensorflow as tf
import numpy as np #1、构建图
#表示使用ps的job,task:0表示使用第一个配置,也就是127.0.0.1:33331
with tf.device('/job:ps/task:0'):
#构造函数
x = tf.constant(np.random.rand(100).astype(np.float32)) with tf.device('/job:ps/task:1'):
y = y = x * 0.2 +0.3 #2、运行
with tf.Session(target='grpc://127.0.0.1:33335',
config=tf.ConfigProto(log_device_placement=True)) as sess:
sess.run(y)
四、Tensorflow的分布式训练的更多相关文章
- 『TensorFlow』分布式训练_其三_多机分布式
本节中的代码大量使用『TensorFlow』分布式训练_其一_逻辑梳理中介绍的概念,是成熟的多机分布式训练样例 一.基本概念 Cluster.Job.task概念:三者可以简单的看成是层次关系,tas ...
- [翻译] 使用 TensorFlow 进行分布式训练
本文以两篇官方文档为基础来学习TensorFlow如何进行分布式训练,借此进入Strategy世界.
- 『TensorFlow』分布式训练_其一_逻辑梳理
1,PS-worker架构 将模型维护和训练计算解耦合,将模型训练分为两个作业(job): 模型相关作业,模型参数存储.分发.汇总.更新,有由PS执行 训练相关作业,包含推理计算.梯度计算(正向/反向 ...
- 『TensorFlow』分布式训练_其二_单机多GPU并行&GPU模式设定
建议比对『MXNet』第七弹_多GPU并行程序设计 一.tensorflow GPU设置 GPU指定占用 gpu_options = tf.GPUOptions(per_process_gpu_mem ...
- [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架
[源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 目录 [源码解析] 深度学习分布式训练框架 horovod (5) --- 融合框架 0x00 摘要 0x01 架构图 ...
- [源码解析] TensorFlow 之 分布式变量
[源码解析] TensorFlow 之 分布式变量 目录 [源码解析] TensorFlow 之 分布式变量 1. MirroredVariable 1.1 定义 1.2 相关类 1.2.1 类体系 ...
- 文本分布式表示(二):用tensorflow和word2vec训练词向量
看了几天word2vec的理论,终于是懂了一些.理论部分我推荐以下几篇教程,有博客也有视频: 1.<word2vec中的数学原理>:http://www.cnblogs.com/pegho ...
- tensorflow分布式训练
https://blog.csdn.net/hjimce/article/details/61197190 tensorflow分布式训练 https://cloud.tencent.com/dev ...
- TensorFlow Distribution(分布式中的数据读取和训练)
本文目的 在介绍estimator分布式的时候,官方文档由于版本更新导致与接口不一致.具体是:在estimator分布式当中,使用dataset作为数据输入,在1.12版本中,数据训练只是datase ...
随机推荐
- 常见的7种XSS
1. URL Reflection 当URL以某种方式反映在源代码中时,我们可以添加自己的XSS向量/有效负载.对于PHP页面,可以使用斜杠字符(/)在页面名称之后添加任何内容 http://brut ...
- Snapde和Excel、PowerPivot、WPS打开超大CSV文件性能比较
Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件:它运行的速度非常快,反应非常灵敏. 我们拿四份文件进行测试,对比一下他们打开大文件的性能:loan_theme_ids.c ...
- Python 标准类库 - 因特网协议与支持之socketserver
标准类库 - 因特网协议与支持之socketserver by:授客 QQ:1033553122 socketserver 模块,简化网络服务编写任务. 创建服务的步骤 1 通过子类化BaseReq ...
- LEDE 虚拟机安装
虽然我对路由器没什么兴趣,但是紧跟潮流还是有必要的,现在因为网络闭关锁国政策,很多人都想自己搭配一台私人的服务器,不想被商业公司左右数据安全.我感觉这个是一个商机,建议大家可以朝这个方向发展. 这里最 ...
- ASP.NET Zero--单元测试
单元测试 ASP.NET Zero启动项目包含单元和集成测试.使用以下工具开发测试: xUnit作为测试框架. Shouldly 作为断言库. Microsoft.EntityFrameworkCor ...
- SQLServer之创建用户定义的数据库角色
创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...
- js得到规范的时间格式函数,并调用
1.js得到规范的时间格式函数 Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1 ...
- Windows 2008 R2 域控制器迁移至windows 2016记录
文章参考 https://social.technet.microsoft.com/Forums/zh-CN/21a5f5e9-feee-4454-acad-fd22989d7bed/22495296 ...
- .net问号的作用
??运算符(C# 参考)http://msdn.microsoft.com/zh-cn/library/ms173224.aspx 可以为 null 的类型(C# 编程指南)http://msdn.m ...
- 浏览器仿EXCEL表格插件 版本更新 - 智表ZCELL产品V1.3.1更新
智表(zcell)是一款浏览器仿excel表格jquery插件.智表可以为你提供excel般的智能体验,支持双击编辑.设置公式.设置显示小数精度.下拉框.自定义单元格.复制粘贴.不连续选定.合并单元格 ...