此页面由 Cloud Translation API 翻译。
Switch to English

tf.distribute.cluster_resolver.TFConfigClusterResolver

TensorFlow 1版 GitHub上查看源代码

一个ClusterResolver它读取TF_CONFIG ENVVAR的实现。

继承: ClusterResolver

使用TF_CONFIG大约群集合的信息时,这是集群解析器的实现。返回的集群规范将从TF_CONFIG环境变量进行初始化。

到集TF_CONFIG一个例子是:

 os.environ['TF_CONFIG'] = json.dumps({
  'cluster': {
      'worker': ["localhost:12345", "localhost:23456"]
  },
  'task': {'type': 'worker', 'index': 0}
})
 

但是,有时容器业务流程框架将设置TF_CONFIG为您服务。在这种情况下,你可以不经过任何参数创建一个实例。你可以在这里找到一个例子,让Kuburnetes设置TF_CONFIG你:https://github.com/tensorflow/ecosystem/tree/master/kubernetes。然后你可以用用它tf.distribute.Strategy为:

 # `TFConfigClusterResolver` is already the default one in the following
# strategy.
strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy(
    cluster_resolver=TFConfigClusterResolver())
 

task_type (字符串,可选)覆盖在TF_CONFIG环境变量指定的任务类型。
task_id (整数,可选)覆盖在TF_CONFIG环境变量指定的任务的索引。
rpc_layer (字符串,可选)覆盖RPC层TensorFlow用途。
environment (字符串,可选)覆盖TensorFlow的运行环境。

environment 返回其TensorFlow在运行当前的环境。

有两个可能的返回值,“谷歌”(当TensorFlow在谷歌内部的环境中运行),或一个空字符串(当TensorFlow在其它地方运行)。

如果要实现的是,在谷歌的环境和开源世界都工作的ClusterResolver(例如,一个TPU ClusterResolver或类似的),你将不得不返回取决于环境,你将不得不检测适当的字符串。

否则,如果要实现,将只在开源TensorFlow工作,你并不需要实现该物业的ClusterResolver。

rpc_layer

task_id 返回任务ID此ClusterResolver表示。

在TensorFlow分布式环境中,每个职业可以有一个适用的任务ID,这是它的任务类型中的实例的索引。当用户需要根据任务指标运行特定的代码,这非常有用。例如,

 cluster_spec = tf.train.ClusterSpec({
"ps": ["localhost:2222", "localhost:2223"],
"worker": ["localhost:2224", "localhost:2225", "localhost:2226"]
})

# SimpleClusterResolver is used here for illustration; other cluster
# resolvers may be used for other source of task type/id.
simple_resolver = SimpleClusterResolver(cluster_spec, task_type="worker",
task_id=0)

...

if cluster_resolver.task_type == 'worker' and cluster_resolver.task_id == 0:
# Perform something that's only applicable on 'worker' type, id 0. This
# block will run on this particular instance since we've specified this
# task to be a 'worker', id 0 in above cluster resolver.
else:
# Perform something that's only applicable on other ids. This block will
# not run on this particular instance.
 

返回None如果这样的信息不可用或不适用在目前的分布式环境中,如培训tf.distribute.cluster_resolver.TPUClusterResolver

欲了解更多信息,请参阅tf.distribute.cluster_resolver.ClusterResolver的类文档字符串。

task_type 任务返回类型此ClusterResolver表示。

在TensorFlow分布式环境中,每个职业可以有一个适用的任务类型。在TensorFlow有效的任务类型包括“首席”:被指定与更多职责的工作人员,“工人”:培训/评估一个普通的工人,“PS”:参数服务器,或“评估”:一个评估,评估检查站为指标。

多工人的配置有关“首席”和“工人”的任务类型,其中最常用的信息。

有机会获得这样的信息时,用户需要根据任务类型来运行特定的代码是非常有用的。例如,

 cluster_spec = tf.train.ClusterSpec({
"ps": ["localhost:2222", "localhost:2223"],
"worker": ["localhost:2224", "localhost:2225", "localhost:2226"]
})

# SimpleClusterResolver is used here for illustration; other cluster
# resolvers may be used for other source of task type/id.
simple_resolver = SimpleClusterResolver(cluster_spec, task_type="worker",
task_id=1)

...

if cluster_resolver.task_type == 'worker':
# Perform something that's only applicable on workers. This block
# will run on this particular instance since we've specified this task to
# be a worker in above cluster resolver.
elif cluster_resolver.task_type == 'ps':
# Perform something that's only applicable on parameter servers. This
# block will not run on this particular instance.
 

返回None如果这样的信息不可用或不适用在目前的分布式环境中,如培训tf.distribute.experimental.TPUStrategy

欲了解更多信息,请参阅tf.distribute.cluster_resolver.ClusterResolver的类文档。

方法

cluster_spec

查看源代码

返回一个ClusterSpec基础上,TF_CONFIG环境变量。

返回
一个ClusterSpec从TF_CONFIG环境变量的信息。

master

查看源代码

返回创建TensorFlow会话时主地址使用。

ARGS
task_type (字符串,可选)覆盖,并且设置在主的task_type。
task_id (整数,可选)覆盖,并设置主的任务ID。
rpc_layer (字符串,可选)覆盖,并且设置在其TensorFlow节点相互通信的协议。

返回
主的地址。

加薪
RuntimeError 如果没有指定task_type或TASK_ID是和TF_CONFIG环境变量不包含任务部分。

num_accelerators

查看源代码

返回人均加速器内核的数量。

这将返回每个工人提供加速器核(如GPU和热塑性聚氨酯)的数量。

或者,我们允许呼叫者指定task_type和TASK_ID,如果他们要针对特定​​的TensorFlow任务查询加速器数量。这是为了支持异构环境中,加速器内核的每个主机的数量是不同的。

ARGS
task_type (可选)类型,我们要查询机器的TensorFlow任务。
task_id (可选),我们要查询机器的TensorFlow任务的指标。
config_proto (可选)配置启动一个新的会话来查询它有多少加速器内核。

返回
加速器类型的地图,核心数量。