Comment obtenir des résultats stables avec TensorFlow, réglage de la graine aléatoire

Je suis en train de lancer un réseau de neurones plusieurs fois avec des paramètres différents dans le but de calibrer les paramètres réseaux (abandon des probabilités, au taux d'apprentissage électronique.d.). Cependant, je vais avoir le problème que l'exécution du réseau tout en conservant les paramètres de la même me donne encore une autre solution, quand je lance le réseau dans une boucle comme suit:

filename = create_results_file()
for i in range(3):
  g = tf.Graph()
  with g.as_default():
    accuracy_result, average_error = network.train_network(
        parameters, inputHeight, inputWidth, inputChannels, outputClasses)
    f, w = get_csv_writer(filename)
    w.writerow([accuracy_result, "did run %d" % i, average_error])
    f.close()

Je suis en utilisant le code suivant au début de ma train_network fonction avant la mise en place des couches et de la fonction d'erreur de mon réseau:

np.random.seed(1)
tf.set_random_seed(1)

J'ai aussi essayé d'ajouter ce code avant le TensorFlow création graphique, mais je continue à recevoir des solutions différentes dans mes résultats de sortie.

Je suis en utilisant un AdamOptimizer et je suis de l'initialisation réseau poids en utilisant tf.truncated_normal. En outre, je suis en utilisant np.random.permutation aléatoire les images entrantes pour chaque époque.

InformationsquelleAutor Waanders | 2016-03-29