Ich versuche, ein neuronales Netzwerk mehrmals mit unterschiedlichen Parametern auszuführen, um die Netzwerkparameter (Ausfallwahrscheinlichkeiten, Lernrate ed) zu kalibrieren. Ich habe jedoch das Problem, dass das Ausführen des Netzwerks unter Beibehaltung der Parameter immer noch eine andere Lösung bietet, wenn ich das Netzwerk in einer Schleife wie folgt ausführe:
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 verwende den folgenden Code zu Beginn meiner Funktion train_network, bevor ich die Layer- und Fehlerfunktion meines Netzwerks einrichte:
np.random.seed(1)
tf.set_random_seed(1)
Ich habe auch versucht, diesen Code vor der Erstellung des TensorFlow-Diagramms hinzuzufügen, erhalte jedoch immer wieder andere Lösungen für meine Ergebnisausgabe.
Ich verwende einen AdamOptimizer und initialisiere Netzwerkgewichte mit tf.truncated_normal
. Zusätzlich verwende ich, np.random.permutation
um die eingehenden Bilder für jede Epoche zu mischen.