Ich verwende neurolab
in Python, um ein neurales Netzwerk zu erstellen. Ich erstelle ein newff
Netzwerk und verwende die Standard-Trainingsfunktion train_bfgs
. Mein Problem ist oft, das Training endet einfach bevor die Epochen abgelaufen sind oder sogar das Fehlerziel erreicht ist. Ich schaute mich um und fand einen Post auf Neurolabs Github-Seite, wo sie irgendwie erklärten, warum das passierte. Mein Problem ist, wenn ich das Programm einige Male wiederhole, fängt es einfach an und das Training beginnt und dann fällt auch der Fehler (wahrscheinlich sind einige zufällige Startgewichte viel besser als die anderen). Was ich tun möchte, ist eine Art Check in das Training, so dass, wenn der Fehler zu hoch ist und die trainierten Epochen nicht einmal nahe am Gesamtwert liegen, das Netzwerk neu trainiert wird (so ähnlich wie das Programm neu gestartet wird) (vielleicht zurücksetzen) die Netzwerk-Standardgewichte)Neurolab Umschulung des Netzwerks
Hier ist, was ich geschrieben habe, aber natürlich tut es
trainingComplete = False
while not trainingComplete:
error = net.train(trainingData, TS, epochs=50, show=10, goal=0.001)
if len(error) < 0.8*epochs:
if len(error) > 0 and min(error) < 0.01:
trainingComplete = True
else:
net.reset()
continue
else:
trainingComplete = True
zu arbeiten, was vor sich geht, wenn es die erste Bedingung passiert, also zu wenige Trainings Epochen, es führt die net.reset()
vor dem Neustart, aber dann, es gibt kein Training, das passiert und dies wird zu einer Endlosschleife. Irgendeine Idee, was ich vermisse? So
Dank