博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四、Tensorflow的分布式训练
阅读量:5077 次
发布时间:2019-06-12

本文共 1705 字,大约阅读时间需要 5 分钟。

TensorFlow中的集群(cluster)指的是一系列能够针对图(Graph)进行分布式计算任务(task)。每个任务是同服务(server)相关联的。TensorFlow中的服务会包含一个用于创建session的主节点和至少一个用于图运算的工作节点,一个集群可以被拆分为一个活着多个作业(job),每个作业可以包含至少一个任务。

以下的例子是一个最简单的例子

1、服务端代码:

import tensorflow as tf'''运行命令:python tensf_server_01 --job_name=ps --task_index=0python tensf_server_01 --job_name=ps --task_index=0python tensf_server_01 --job_name=work --task_index=0python tensf_server_01 --job_name=work --task_index=1python 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 tfimport numpy as np#1、构建图#表示使用ps的job,task:0表示使用第一个配置,也就是127.0.0.1:33331with 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)

 

转载于:https://www.cnblogs.com/allen-GC/p/10721064.html

你可能感兴趣的文章
JS JQUERY实现滚动条自动滚到底的方法
查看>>
UVA - 11426 GCD - Extreme (II) (欧拉函数)
查看>>
Java Web页面跳转
查看>>
C#数据缓存介绍及Caching通用帮助类整理
查看>>
Oracle学习(一):基本操作和基本查询语句
查看>>
.Net学习 第2季03 C#面向对象 继承
查看>>
ios runtime 打印内 内部调用的属性
查看>>
MongoDB —— 第三篇 高级操作
查看>>
21 ~ express ~ 内容详情展示 和 阅读数处理
查看>>
Oracle-11g 中使用表空间透明数据加密(TDE)
查看>>
简单搜索小题狂练
查看>>
php截取字符串的实例代码(支持utf-8)
查看>>
树状数组区间修改,区间查询
查看>>
Linux安装—IP设置
查看>>
linux 如何显示一个文件的某几行(中间几行)(转载)
查看>>
NodeJS做中转服务器,转发接口
查看>>
Leetcode: 3Sum
查看>>
Leetcode: Longest Increasing Path in a Matrix
查看>>
C++实验6
查看>>
java09 队列Queue与Deque
查看>>