Cette page a été traduite par l'API Cloud Translation.
Switch to English

tf.distribute.ReplicaContext

plus par

Tensorflow 1 Version Voir la source sur GitHub

tf.distribute.Strategy API lorsque dans un contexte de réplique.

Vous pouvez utiliser tf.distribute.get_replica_context pour obtenir une instance de ReplicaContext . Cela devrait être dans votre fonction pas reproduire exactement, comme dans un tf.distribute.Strategy.run appel.

devices Les dispositifs cette réplique doit être exécutée sur, en tant que tuple de chaînes.
num_replicas_in_sync Retourne le nombre de répliques sur lesquels des gradients sont agrégés.
replica_id_in_sync_group Renvoie l'identifiant de la réplique étant définie.

Ceci identifie la réplique qui fait partie d'un groupe de synchronisation. À l'heure actuelle, nous partons du principe que tous les groupes de synchronisation contiennent le même nombre de répliques. La valeur de l'ID de réplique peut varier de 0 à num_replica_in_sync - 1.

strategy Le courant tf.distribute.Strategy objet.

méthodes

all_reduce

Voir la source

Tout-réduit la donnée value Tensor nid à travers des répliques.

Si all_reduce est appelé dans une réplique, il doit être appelé dans toutes les répliques. La structure imbriquée et Tensor formes doivent être identiques dans toutes les répliques.

Exemple avec deux répliques: 0 Replica value : { 'a': 1, 'b': [40, 1]} réplique une value : { 'a': 3 'b': [2, 98]}

Si reduce_op == SUM : Résultat (sur toutes les répliques): { 'a': 4, 'b': [42, 99]}

Si reduce_op == MEAN : Résultat (sur toutes les répliques): { 'a': 2, 'b': [21, 49,5]}

args
reduce_op Type de réduction, une instance de tf.distribute.ReduceOp enum.
value La structure imbriquée de Tensor est à tout réduire. La structure doit être compatible avec tf.nest .
experimental_hints A tf.distrbute.experimental.CollectiveHints . Conseils pour effectuer des opérations collectives.

Retour
Un Tensor nid avec la réduction de la value s de chaque réplique.

merge_call

Voir la source

Args de fusion à travers des répliques et exécution merge_fn dans un contexte cross-réplique.

Cela permet la communication et la coordination lorsque plusieurs appels à la step_fn déclenchée par un appel à strategy.run(step_fn, ...) .

Voir tf.distribute.Strategy.run pour une explication.

Sinon dans un champ distribué, cela équivaut à:

 strategy = tf.distribute.get_strategy()
with cross-replica-context(strategy):
  return merge_fn(strategy, *args, **kwargs)
 

args
merge_fn Fonction qui relie les arguments à partir de fils qui sont donnés comme PerReplica. Il accepte tf.distribute.Strategy objet comme premier argument.
args Liste ou tuple avec des arguments par thread de position pour merge_fn .
kwargs Dict avec des arguments mot - clé par thread pour merge_fn .

Retour
La valeur de retour de merge_fn , à l' exception des PerReplica valeurs qui sont déballés.

__enter__

Voir la source

__exit__

Voir la source