Ich benutze Tensorflow, um ein Convnet mit einer Reihe von 15000 Trainingsbildern mit 22 Klassen zu trainieren. Ich habe 2 Conv-Schichten und eine vollständig verbundene Schicht. Ich habe das Netzwerk mit den 15000 Bildern trainiert und habe Konvergenz und hohe Genauigkeit im Trainingssatz erfahren.Warum verhindert ein Aussetzer die Konvergenz im Convolutional Neural Network?
Allerdings hat mein Testgerät eine viel geringere Genauigkeit, daher gehe ich davon aus, dass das Netzwerk übermäßig passt. Um dies zu verhindern, habe ich Dropout vor der vollständig verbundenen Ebene meines Netzwerks hinzugefügt.
Das Hinzufügen von Ausfällen hat jedoch verursacht, dass das Netzwerk nach vielen Iterationen nie konvergiert. Ich habe mich gefragt, warum das so sein könnte. Ich habe sogar eine hohe Dropout-Wahrscheinlichkeit (Wahrscheinlichkeit von .9 halten) und habe die gleichen Ergebnisse erlebt.
Je höher der Aussetzer, desto weniger würde ich erwarten, dass es konvergiert. Hast du niedrigere Dropout-Raten versucht? –
Nun, er könnte über das Setzen von keep_prob auf 0,9 sprechen, was nur 10% der Neuronen auf Null setzt. Wenn Sie tatsächlich 90% der Neuronen auf Null setzen, wäre dies das Problem. Was mir normalerweise hilft, wenn ein Modell nicht konvergiert, ist eine Senkung der Lernrate um den Faktor 10. Sehen Sie, ob das hilft. – chasep255
Danke, ich werde das versuchen. Ja mein schlechtes Ich meinte, dass mein Keep_prob .9 war. –