이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

tf.distribute.DistributedValues

참조 박을

GitHub의에서 소스보기

분산 값을 나타내는 기본 클래스입니다.

서브 클래스의 인스턴스 tf.distribute.DistributedValues 반복, 배포 전략에서 변수를 생성 할 때 생성 tf.distribute.DistributedDataset 통해 또는 tf.distribute.Strategy.run . 이 기본 클래스는 인스턴스를 직접해서는 안됩니다. tf.distribute.DistributedValues 복제 당 값이 포함되어 있습니다. 동기화 결코 서브 클래스에 따라 값 중 하나를 업데이트에 동기화 할 수 없었다 수요에 동기화, 또는.

tf.distribute.DistributedValues 의 입력으로 복제본 걸쳐 단일 값을 얻기 위해 감소 될 수 tf.distribute.Strategy.run 또는 당 복제본 값을 사용하여 검사 tf.distribute.Strategy.experimental_local_results .

사용 예제 :

  1. A로부터 생성 tf.distribute.DistributedDataset :
strategy = tf.distribute.MirroredStrategy()
dataset = tf.data.Dataset.from_tensor_slices([5., 6., 7., 8.]).batch(2)
dataset_iterator = iter(strategy.experimental_distribute_dataset(dataset))
distributed_values = next(dataset_iterator)
  1. 에 의해 반환 run :
strategy = tf.distribute.MirroredStrategy()
@tf.function
def run():
  ctx = tf.distribute.get_replica_context()
  return ctx.replica_id_in_sync_group
distributed_values = strategy.run(run)
  1. 에 입력으로 run :
strategy = tf.distribute.MirroredStrategy()
dataset = tf.data.Dataset.from_tensor_slices([5., 6., 7., 8.]).batch(2)
dataset_iterator = iter(strategy.experimental_distribute_dataset(dataset))
distributed_values = next(dataset_iterator)
@tf.function
def run(input):
  return input + 1.0
updated_value = strategy.run(run, args=(distributed_values,))
  1. 값을 감소 :
strategy = tf.distribute.MirroredStrategy()
dataset = tf.data.Dataset.from_tensor_slices([5., 6., 7., 8.]).batch(2)
dataset_iterator = iter(strategy.experimental_distribute_dataset(dataset))
distributed_values = next(dataset_iterator)
reduced_value = strategy.reduce(tf.distribute.ReduceOp.SUM,
                                distributed_values,
                                axis = 0)
  1. 복제 값에 따라 검사 :
strategy = tf.distribute.MirroredStrategy()
dataset = tf.data.Dataset.from_tensor_slices([5., 6., 7., 8.]).batch(2)
dataset_iterator = iter(strategy.experimental_distribute_dataset(dataset))
per_replica_values = strategy.experimental_local_results(
   distributed_values)
per_replica_values
(<tf.Tensor: shape=(2,), dtype=float32,
 numpy=array([5., 6.], dtype=float32)>,)