tf.distribute.coordinator.experimental_get_current_worker_index
Возвращает текущий индекс работника, когда вызывается внутри блока работника.
tf.distribute.coordinator.experimental_get_current_worker_index()
Некоторые рабочие нагрузки обучения с сервером параметров могут потребовать, чтобы работник знал свой индекс, например, для фрагментации данных для обучения с уменьшенной дисперсией.
Этот метод может быть использован внутри tf.function, который выполняется на работнике. То есть, либо в dataset_fn, который выполняется через ClusterCoordinator.create_per_worker_dataset, или в любой другой функции, запланированной через ClusterCoordinator.schedule.
Пример (фрагментация данных по работнику):
strategy = tf.distribute.ParameterServerStrategy(
cluster_resolver=...)
coordinator = (
tf.distribute.coordinator.ClusterCoordinator(strategy))
def dataset_fn(context):
dataset = tf.data.Dataset.range(10)
worker_index = (
tf.distribute.coordinator.experimental_get_current_worker_index()
)
dataset = dataset.shard(
num_shards=num_workers,
index=worker_index,
)
return dataset
@tf.function
def per_worker_dataset_fn():
return strategy.distribute_datasets_from_function(dataset_fn)
per_worker_dataset = coordinator.create_per_worker_dataset(
per_worker_dataset_fn)
| Возможные исключения | |
|---|---|
RuntimeError | если вызывается вне tf.function или вне контекста выполнения удаленного закрытия (то есть, на машине, не являющейся работником). |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/distribute/coordinator/experimental_get_current_worker_index