Wie man stabile Ergebnisse mit TensorFlow, Einstellung random seed

Ich versuche zu laufen, von einem neuronalen Netz mehrere Male mit verschiedenen Parametern, um zu Kalibrieren, die Netzwerke Parameter (dropout-Wahrscheinlichkeiten -, Lern-rate-e.d....). Aber ich habe das problem, dass das Netzwerk, während die Parameter die gleichen gibt mir immer noch eine andere Lösung wenn ich das Netzwerk in einer Schleife wie folgt:

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()

Ich bin mit dem folgenden code am Anfang meiner train_network-Funktion vor der Einrichtung der Schichten und die error-Funktion von meinem Netzwerk:

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

Habe ich auch versucht, indem Sie diesen code vor der TensorFlow Diagramm-Erstellung, aber ich habe immer unterschiedliche Lösungen, die in meiner Ausgabe.

Bin ich mit einer AdamOptimizer und bin initialisieren von Netzwerk-GEWICHTE mit tf.truncated_normal. Außerdem bin ich mit np.random.permutation zu schieben Sie die eingehenden Bilder für jede Epoche.

InformationsquelleAutor Waanders | 2016-03-29

Schreibe einen Kommentar