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

tf.compat.v1.set_random_seed

Voir la source sur GitHub

Définit la graine aléatoire au niveau graphique pour le graphique par défaut.

Utilisé dans les ordinateurs portables

Utilisé dans les tutoriels

Les opérations qui reposent sur une graine aléatoire tirent réellement de deux graines: le niveau graphique et des semences au niveau de fonctionnement. Ceci définit la graine au niveau graphique.

Ses interactions avec les graines au niveau de fonctionnement est le suivant:

  1. Si est défini ni le niveau, ni graphe la graine de fonctionnement: On utilise une graine aléatoire pour cette op.
  2. Si la graine au niveau du graphique est défini, mais la graine de fonctionnement ne sont pas: Le système prend une graine de manière déterministe opération conjointement avec la semence au niveau graphique afin qu'il soit une séquence aléatoire unique. Au sein de la même version de tensorflow et code utilisateur, cette séquence est déterministe. Cependant dans les différentes versions, cette séquence pourrait changer. Si le code dépend notamment des semences au travail, préciser à la fois graphique et au niveau des semences au niveau de fonctionnement explicitement.
  3. Si la graine au niveau de la courbe est pas définie, mais la graine de fonctionnement est réglé: Une graine au niveau de graphe par défaut et la graine de fonctionnement spécifié sont utilisés pour déterminer la séquence aléatoire.
  4. Si les deux le graphique niveau et la graine de fonctionnement sont définies: on utilise deux graines conjointement pour déterminer la séquence aléatoire.

Pour illustrer les effets visibles par l'utilisateur, tenez compte des exemples:

Pour générer des séquences différentes entre les sessions, ensemble, ni au niveau graphique, ni les semences de niveau op:

 a = tf.random.uniform([1])
b = tf.random.normal([1])

print("Session 1")
with tf.compat.v1.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.compat.v1.Session() as sess2:
  print(sess2.run(a))  # generates 'A3'
  print(sess2.run(a))  # generates 'A4'
  print(sess2.run(b))  # generates 'B3'
  print(sess2.run(b))  # generates 'B4'
 

Pour générer la même séquence répétée pour une op entre les sessions, mettre la graine pour l'op:

 a = tf.random.uniform([1], seed=1)
b = tf.random.normal([1])

# Repeatedly running this block with the same graph will generate the same
# sequence of values for 'a', but different sequences of values for 'b'.
print("Session 1")
with tf.compat.v1.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.compat.v1.Session() as sess2:
  print(sess2.run(a))  # generates 'A1'
  print(sess2.run(a))  # generates 'A2'
  print(sess2.run(b))  # generates 'B3'
  print(sess2.run(b))  # generates 'B4'
 

Pour les séquences aléatoires générées par toutes les opérations soient reproductibles à travers des sessions, mettre une graine au niveau graphique:

 tf.compat.v1.random.set_random_seed(1234)
a = tf.random.uniform([1])
b = tf.random.normal([1])

# Repeatedly running this block with the same graph will generate the same
# sequences of 'a' and 'b'.
print("Session 1")
with tf.compat.v1.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.compat.v1.Session() as sess2:
  print(sess2.run(a))  # generates 'A1'
  print(sess2.run(a))  # generates 'A2'
  print(sess2.run(b))  # generates 'B1'
  print(sess2.run(b))  # generates 'B2'
 

seed entier.