2017-11-22 1 views
0

Ich habe meine eigenen 6600 Training Bild Sätze von Ziffern (0 ~ 9), 18200 Training Bildsätze von unteren englischen Buchstaben (a ~ z), 18200 Trainingsbild Sätze von oberen Englisch Buchstaben (A ~ Z).acc und kostet nicht stabil in meinem CNN-Modell

Ich trainierte zuerst meine Digit Trainingssatz mit CNN-Modell, und es hat gut funktioniert.

Hier ist meine CNN-Modellbildung.

learning rate = 0.0001 

28X28 input image 
11X11 output label.(0~9(5500 training sets) and none digit ex)a~z, A~Z(1100 training sets)) 

CONV1 
filter(3,3,1,32)->relu->maxpool(1,2,2,1) and stride(1,2,2,1) 

CONV2 
filter(3,3,32,64)->relu->maxpool(1,2,2,1) and stride(1,2,2,1) 

CONV3 
filter(3,3,64,128)->relu->maxpool(1,2,2,1) and stride(1,2,2,1)->reshape(-1, 128*4*4) 

FC1 
input - (128*4*4) 
relu  
output - (625) 

FC2 
input - (625) 
relu 
output - (11) 

its acc : 
![enter image description here][1] 

its cost : ![enter image description here][2] 

Ich denke, dass dieses CNN-Modell gut trainiert.

Ich trainierte das gleiche CNN-Modell mit meinen eigenen englischen Buchstaben (a ~ z), das Problem war aufgetreten.

Es gibt nur einen Unterschied mit einstelligen CNN-Modell, dass FC2 Schichten ausgegeben (27)

Hier ist nach und die Kosten des Modells CNN trainiert mit Englisch niedrigen Buchstaben

acc: enter image description here

Kosten: enter image description here

gibt es ernsthafte fluktuierenden Situation nach und Kosten im Vergleich mit einstelligen CNN Modell

Ich möchte dieses CNN-Modell stabiler machen. Wenn Sie Interesse haben, würden Sie mir einen Rat geben?

denke ich CNN Modellbildung der Grund ist, kann aber nicht erklären, was das Problem konkret ist

Antwort

0

Ich persönlich denke, dass die Schwankungen der englischen Kleinbuchstaben (a-z) mir normal aussieht. Beim Vergleich mit dem Zahlen-Dataset sind die Schwankungen höchstwahrscheinlich auf die Erhöhung der Anzahl der in Ihrem Dataset vorhandenen Klassen zurückzuführen. Das Ziffern-Dataset hat nur 10 Klassen, aber die englischen Kleinbuchstaben haben 26 Klassen. Daher ist es logisch, dass es während des Trainings von englischen Kleinbuchstaben mehr Schwankungen gibt, da das Modell eher mit einem Beispiel konfrontiert wird, das es vorher nicht gesehen hat.

Eine Methode, die Sie versuchen können, besteht darin, die Schwankungen zu verringern, um die Losgröße zu erhöhen, damit das Modell seine Gewichte anpassen kann, während es bei jedem Trainingsschritt mehr Beispiele sucht.

Nicht zu zuversichtlich in meiner Antwort, aber das ist, was ich während meiner 1+ Jahr auf CNNs Ausbildung beobachtet. Ich freue mich darauf, zu sehen, ob es auch auf Ihrem Modell funktioniert.

+0

Ihre Antwort ist richtig. danke :) –

+0

ich änderte Chargengröße von 100 bis 300 und gedruckte Protokolle von Kosten und acc am Terminal nach jedem Schritt, gibt es keine Schwankungen. aber es gibt Schwankungen auf dem Tensorboard-Skalargraphen (acc und cost). Ich weiß nicht, warum es passiert, können Sie diese Situation erklären? –

+0

Ich gehe davon aus, dass es bei Ihrer Frage darum geht, "warum gibt es einen Unterschied zwischen gedrucktem Wert und Tensorboard-Wert". Vielleicht sollten Sie als Erstes prüfen, ob die Variablen 'name' und' name_scope' falsch sind. Wenn es keinen Fehler gibt, posten Sie eine andere Frage und pm mir die URL dann werde ich es mir ansehen :) Wenn meine Antwort korrekt ist, bitte markieren Sie es als richtig. Vielen Dank. –