用法
create_per_worker_dataset(
dataset_fn
)
參數
-
dataset_fn
返回數據集的數據集函數。這將在工人身上執行。
返回
-
表示這些單獨數據集的集合的對象。
iter
預計將在此對象上調用,該對象返回迭代器的tf.distribute.experimental.coordinator.PerWorkerValues
(位於工作程序上)。
通過在工作設備上調用 dataset_fn
在工作人員上創建數據集。
這將創建由dataset_fn 在workers 上生成的給定數據集,並返回一個表示這些單獨數據集集合的對象。在這樣的數據集集合上調用 iter
會返回一個 tf.distribute.experimental.coordinator.PerWorkerValues
,它是迭代器的集合,其中迭代器已放置在相應的工作程序上。
不支持在迭代器的 PerWorkerValues
上調用 next
。迭代器旨在作為參數傳遞給 tf.distribute.experimental.coordinator.ClusterCoordinator.schedule
。當調度的函數即將被一個worker執行時,該函數將接收到該worker對應的個體迭代器。當迭代器是函數的輸入時,可以在調度函數內的迭代器上調用 next
方法。
目前schedule
方法假設worker 都是相同的,因此假設不同worker 上的數據集是相同的,除非它們包含dataset.shuffle
操作並且未設置隨機種子時它們可能會被不同地洗牌。因此,我們還建議無限重複數據集並安排有限數量的步驟,而不是依賴數據集中的OutOfRangeError
。
例子:
strategy = tf.distribute.experimental.ParameterServerStrategy(
cluster_resolver=...)
coordinator = tf.distribute.experimental.coordinator.ClusterCoordinator(
strategy=strategy)
@tf.function
def worker_fn(iterator):
return next(iterator)
def per_worker_dataset_fn():
return strategy.distribute_datasets_from_function(
lambda x:tf.data.Dataset.from_tensor_slices([3] * 3))
per_worker_dataset = coordinator.create_per_worker_dataset(
per_worker_dataset_fn)
per_worker_iter = iter(per_worker_dataset)
remote_value = coordinator.schedule(worker_fn, args=(per_worker_iter,))
assert remote_value.fetch() == 3
相關用法
- Python tf.distribute.experimental.coordinator.ClusterCoordinator.fetch用法及代碼示例
- Python tf.distribute.experimental.MultiWorkerMirroredStrategy.gather用法及代碼示例
- Python tf.distribute.experimental.MultiWorkerMirroredStrategy用法及代碼示例
- Python tf.distribute.experimental.rpc.Server.create用法及代碼示例
- Python tf.distribute.experimental.MultiWorkerMirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.distribute.experimental.partitioners.Partitioner.__call__用法及代碼示例
- Python tf.distribute.experimental.TPUStrategy.experimental_distribute_values_from_function用法及代碼示例
- Python tf.distribute.experimental.MultiWorkerMirroredStrategy.run用法及代碼示例
- Python tf.distribute.experimental.partitioners.MaxSizePartitioner.__call__用法及代碼示例
- Python tf.distribute.experimental.partitioners.FixedShardsPartitioner用法及代碼示例
- Python tf.distribute.experimental.TPUStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.distribute.experimental.ParameterServerStrategy.gather用法及代碼示例
- Python tf.distribute.experimental.MultiWorkerMirroredStrategy.scope用法及代碼示例
- Python tf.distribute.experimental.TPUStrategy用法及代碼示例
- Python tf.distribute.experimental.MultiWorkerMirroredStrategy.reduce用法及代碼示例
- Python tf.distribute.experimental.partitioners.MinSizePartitioner用法及代碼示例
- Python tf.distribute.experimental.ParameterServerStrategy.experimental_distribute_values_from_function用法及代碼示例
- Python tf.distribute.experimental.CentralStorageStrategy.experimental_distribute_values_from_function用法及代碼示例
- Python tf.distribute.experimental.CentralStorageStrategy用法及代碼示例
- Python tf.distribute.experimental.ParameterServerStrategy.experimental_distribute_dataset用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.distribute.experimental.coordinator.ClusterCoordinator.create_per_worker_dataset。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。