• 分布式接口


    分布式接口

    创建集群的方法是为每一个任务启动一个服务,这些任务可以分布在不同的机器上,也可以同一台机器上启动多个任务,使用不同的GPU等来运行。每个任务都会创建完成一下工作

    • 1、创建一个tf.train.ClusterSpec,用于对集群中的所有任务进行描述,该描述内容对所有任务应该是相同的

    • 2、创建一个tf.train.Server,用于创建一个任务,并运行相应作业上的计算任务。

    Tensorflow的分布式API使用如下:

    • tf.train.ClusterSpec()

    创建ClusterSpec,表示参与分布式TensorFlow计算的一组进程

    cluster = tf.train.ClusterSpec({"worker": ["worker0.example.com:2222",      /job:worker/task:0
                                               "worker1.example.com:2222",      /job:worker/task:1
                                               "worker2.example.com:2222"],     /job:worker/task:2
                                    "ps": ["ps0.example.com:2222",       /job:ps/task:0
                                           "ps1.example.com:2222"]})        /job:ps/task:1

    创建Tensorflow的集群描述信息,其中ps和worker为作业名称,通过指定ip地址加端口创建,

    • tf.train.Server(server_or_cluster_def, job_name=None, task_index=None, protocol=None, config=None, start=True)
      • server_or_cluster_def: 集群描述
      • job_name: 任务类型名称
      • task_index: 任务数

    创建一个服务(主节点或者工作节点服务),用于运行相应作业上的计算任务,运行的任务在task_index指定的机器上启动,例如在不同的ip+端口上启动两个工作任务

    # 第一个任务
    cluster = tf.train.ClusterSpec({"worker": ["localhost:2222","localhost:2223"]})
    server = tf.train.Server(cluster, job_name="worker", task_index=0)
    
    # 第二个任务
    cluster = tf.train.ClusterSpec({"worker": ["localhost:2222","localhost:2223"]})
    server = tf.train.Server(cluster, job_name="worker", task_index=1)
    • 属性:target
      • 返回tf.Session连接到此服务器的目标
    • 方法:join()
      • 参数服务器端等待接受参数任务,直到服务器关闭
    • tf.device(device_name_or_function)

    工作人任务端的代码在指定的设备上执行张量运算,指定代码运行在CPU或者GPU上

    with tf.device("/job:ps/task:0"):
      weights = tf.Variable(...)

     

  • 相关阅读:
    [Bullet3]创建世界(场景)及常见函数
    [erlang]supervisor(监控树)的重启策略
    [game]十字链表的AOI算法实现
    [翻译][erlang]cowboy handler模块的使用
    数据挖掘算法系列目录
    Spark原理分析目录
    Spark实战系列目录
    2019年读书书单
    Hadoop源码解读系列目录
    分布式架构系列目录
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/10070162.html
Copyright © 2020-2023  润新知