在單個設備上運行的分發策略。
繼承自:Strategy
用法
tf.compat.v1.distribute.OneDeviceStrategy(
device
)
參數
-
device
應放置變量的設備的設備字符串標識符。有關如何使用設備的更多詳細信息,請參閱課程文檔。示例:"/cpu:0"、"/gpu:0"、"/device:CPU:0"、"/device:GPU:0"
屬性
-
cluster_resolver
返回與此策略關聯的集群解析器。一般來說,當使用multi-worker
tf.distribute
策略如tf.distribute.experimental.MultiWorkerMirroredStrategy
或tf.distribute.TPUStrategy()
時,有一個tf.distribute.cluster_resolver.ClusterResolver
與所使用的策略相關聯,並且這樣的實例由該屬性返回。打算擁有關聯
tf.distribute.cluster_resolver.ClusterResolver
的策略必須設置相關屬性,或覆蓋此屬性;否則,默認返回None
。這些策略還應提供有關此屬性返回的內容的信息。Single-worker 策略通常沒有
tf.distribute.cluster_resolver.ClusterResolver
,在這些情況下,此屬性將返回None
。當用戶需要訪問集群規範、任務類型或任務 ID 等信息時,
tf.distribute.cluster_resolver.ClusterResolver
可能很有用。例如,os.environ['TF_CONFIG'] = json.dumps({ 'cluster':{ 'worker':["localhost:12345", "localhost:23456"], 'ps':["localhost:34567"] }, 'task':{'type':'worker', 'index':0} }) # This implicitly uses TF_CONFIG for the cluster and current task info. strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy() ... if strategy.cluster_resolver.task_type == 'worker': # Perform something that's only applicable on workers. Since we set this # as a worker above, this block will run on this particular instance. elif strategy.cluster_resolver.task_type == 'ps': # Perform something that's only applicable on parameter servers. Since we # set this as a worker above, this block will not run on this particular # instance.
有關詳細信息,請參閱
tf.distribute.cluster_resolver.ClusterResolver
的 API 文檔字符串。 -
extended
tf.distribute.StrategyExtended
與其他方法。 -
num_replicas_in_sync
返回聚合梯度的副本數。
使用此策略會將在其範圍內創建的任何變量放置在指定設備上。通過此策略分發的輸入將被預取到指定的設備。此外,通過strategy.run
調用的任何函數也將被放置在指定的設備上。
此策略的典型用法可能是在切換到實際分發到多個設備/機器的其他策略之前使用 tf.distribute.Strategy API 測試您的代碼。
例如:
tf.enable_eager_execution()
strategy = tf.distribute.OneDeviceStrategy(device="/gpu:0")
with strategy.scope():
v = tf.Variable(1.0)
print(v.device) # /job:localhost/replica:0/task:0/device:GPU:0
def step_fn(x):
return x * 2
result = 0
for i in range(10):
result += strategy.run(step_fn, args=(i,))
print(result) # 90
相關用法
- Python tf.compat.v1.distribute.OneDeviceStrategy.scope用法及代碼示例
- Python tf.compat.v1.distribute.OneDeviceStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.compat.v1.distribute.OneDeviceStrategy.reduce用法及代碼示例
- Python tf.compat.v1.distribute.OneDeviceStrategy.make_input_fn_iterator用法及代碼示例
- Python tf.compat.v1.distribute.OneDeviceStrategy.experimental_make_numpy_dataset用法及代碼示例
- Python tf.compat.v1.distribute.OneDeviceStrategy.run用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.compat.v1.distribute.Strategy.run用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_make_numpy_dataset用法及代碼示例
- Python tf.compat.v1.distribute.experimental.TPUStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.compat.v1.distribute.StrategyExtended.batch_reduce_to用法及代碼示例
- Python tf.compat.v1.distribute.experimental.TPUStrategy.experimental_make_numpy_dataset用法及代碼示例
- Python tf.compat.v1.distribute.experimental.CentralStorageStrategy.make_input_fn_iterator用法及代碼示例
- Python tf.compat.v1.distribute.experimental.MultiWorkerMirroredStrategy.reduce用法及代碼示例
- Python tf.compat.v1.distribute.experimental.MultiWorkerMirroredStrategy.experimental_make_numpy_dataset用法及代碼示例
- Python tf.compat.v1.distribute.Strategy.experimental_make_numpy_dataset用法及代碼示例
- Python tf.compat.v1.distribute.StrategyExtended.colocate_vars_with用法及代碼示例
- Python tf.compat.v1.distribute.experimental.CentralStorageStrategy用法及代碼示例
- Python tf.compat.v1.distribute.ReplicaContext用法及代碼示例
- Python tf.compat.v1.distribute.experimental.TPUStrategy.scope用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.distribute.OneDeviceStrategy。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。