TensorFlow 分布式集群

上一篇博客说了怎样创建一个 Local Server 的集群,今天说说怎样创建一个真正的分布式集群。

我们准备了两个机器,如下:

192.168.0.192
192.168.0.193

我们将使用这两个机器来组成一个集群,然后把 tensorflow task 扔到其中的某个节点上运行。

  • 我们准备了两个 server 程序,用来分别在两个机器上启动来组成一个集群,并接收task。
  • 创建一个 client 程序,用来向集群提交 task。

server1.py

import sys
import time
import tensorflow as tf

try:
    worker1 = "192.168.0.192:8881"
    worker2 = "192.168.0.193:8881"
    worker_hosts = [worker1, worker2]
    cluster_spec = tf.train.ClusterSpec({ "worker": worker_hosts})
    server = tf.train.Server(cluster_spec, job_name="worker", task_index=0)
    server.join()
except KeyboardInterrupt:
    sys.exit()

server2.py

import sys
import time
import tensorflow as tf

try:
    worker1 = "192.168.0.192:8881"
    worker2 = "192.168.0.193:8881"
    worker_hosts = [worker1, worker2]
    cluster_spec = tf.train.ClusterSpec({ "worker": worker_hosts})
    server = tf.train.Server(cluster_spec, job_name="worker", task_index=1)
    server.join()
except KeyboardInterrupt:
    sys.exit()

client.py

import tensorflow as tf
with tf.Session("grpc://192.168.0.192:8881") as session:
    with tf.device("/job:worker/task:0"):
        matrix1 = tf.constant([[3., 3.]])
        matrix2 = tf.constant([[2.],[2.]])
        product = tf.matmul(matrix1, matrix2)
        result = session.run(product)
        print result

测试

  • 在 192.168.0.192 上运行 “python server1.py”
  • 在 192.168.0.193 上运行 “python server2.py”
  • 在任意一台机器上运行 “python client.py”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Ubuntu安装软件包时报错: Failed to fetch ...deb

    删除 /var/lib/apt/lists/partial 目录下的所有文件,然后运行apt-get update。

    kongxx
  • TensorFlow 分布式集群 Local Server

    kongxx
  • Python2运行时查看线程信息

    kongxx
  • 【TensorFlow】学习率、迭代次数和初始化方式对准确率的影响

    想必学过机器学习的人都知道,学习率、训练迭代次数和模型参数的初始化方式都对模型最后的准确率有一定的影响,那么影响到底有多大呢? 我初步做了个实验,在 Tenso...

    Alan Lee
  • TensorFlow:TensorBoard可视化

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 我们会再接再厉 成为全网优质的技术类...

    昱良
  • Python使用tensorflow中梯度下降算法求解变量最优值

    TensorFlow是一个用于人工智能的开源神器,是一个采用数据流图(data flow graphs)用于数值计算的开源软件库。数据流图使用节点(nodes)...

    Python小屋屋主
  • 面对“水涨船高”的数字货币,谷歌、亚马逊等科技巨头也不淡定了?

    【数据猿导读】 目前,整个数字货币领域的总市值达到了6000亿美元,其中比特币市值为3230亿美元,除此之外,还有一些知名的基于区块链的加密货币,例如以太币的市...

    数据猿
  • python paramiko模块管理S

    py3study
  • Laravel源码解析之ENV配置

    Laravel在启动时会加载项目中的 .env文件。对于应用程序运行的环境来说,不同的环境有不同的配置通常是很有用的。 例如,你可能希望在本地使用测试的 Mys...

    KevinYan
  • TensorFlow | 自己动手写深度学习模型之全连接神经网络

    前半个多月总共写了三篇深度学习相关的理论介绍文章,另外两个月前,我们使用逻辑回归算法对sklearn里面的moons数据集进行了分类实验,最终准确率和召回率都达...

    AI研习社

扫码关注云+社区

领取腾讯云代金券