ResNet: 100% Genauigkeit während der Ausbildung, aber 33% der Vorhersagegenauigkeit mit den gleichen Daten

Ich bin neu in machine learning and deep learning " und für das lernen-Zwecke, die ich zu spielen versuchte mit Resnet. Ich habe versucht, zu overfit über kleine Daten (3 verschiedenen Bilder) und sehen, wenn ich fast 0 Verlust-und 1,0-Genauigkeit - und das Tat ich.

Das problem ist, dass Vorhersagen auf der Ausbildung Bilder (d.h. die gleichen 3 Bilder zum training verwendet werden) sind nicht korrekt.

Training Bilder

ResNet: 100% Genauigkeit während der Ausbildung, aber 33% der Vorhersagegenauigkeit mit den gleichen Daten ResNet: 100% Genauigkeit während der Ausbildung, aber 33% der Vorhersagegenauigkeit mit den gleichen Daten
ResNet: 100% Genauigkeit während der Ausbildung, aber 33% der Vorhersagegenauigkeit mit den gleichen Daten

Bild-Etiketten

[1,0,0], [0,1,0], [0,0,1]

Mein python-code

#loading 3 images and resizing them
imgs = np.array([np.array(Image.open("./Images/train/" + fname)
                          .resize((197, 197), Image.ANTIALIAS)) for fname in
                 os.listdir("./Images/train/")]).reshape(-1,197,197,1)
# creating labels
y = np.array([[1,0,0],[0,1,0],[0,0,1]])
# create resnet model
model = ResNet50(input_shape=(197, 197,1),classes=3,weights=None)

# compile & fit model
model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['acc'])

model.fit(imgs,y,epochs=5,shuffle=True)

# predict on training data
print(model.predict(imgs))

Das Modell nicht overfit die Daten:

3/3 [==============================] - 22s - loss: 1.3229 - acc: 0.0000e+00
Epoch 2/5
3/3 [==============================] - 0s - loss: 0.1474 - acc: 1.0000
Epoch 3/5
3/3 [==============================] - 0s - loss: 0.0057 - acc: 1.0000
Epoch 4/5
3/3 [==============================] - 0s - loss: 0.0107 - acc: 1.0000
Epoch 5/5
3/3 [==============================] - 0s - loss: 1.3815e-04 - acc: 1.0000

aber Vorhersagen sind:

 [[  1.05677405e-08   9.99999642e-01   3.95520459e-07]
 [  1.11955103e-08   9.99999642e-01   4.14905685e-07]
 [  1.02637095e-07   9.99997497e-01   2.43751242e-06]]

was bedeutet, dass alle Bilder habe label=[0,1,0]

warum? und wie kann das passieren?

  • Wo ist die Bilder? Warum Sie nicht posten?
  • Ich glaube nicht, Bilder sind relevant hier.. Sie sind einfach Graustufenbilder, über 110x90 Größe..
  • Gut, wie kann ich das problem reproduzieren?
  • ohh Recht 🙂 ich werde Sie in einer minute
  • imgur.com/a/XKlKA - 3 Bilder, die ich verwenden, um zu versuchen, überanpassung
  • Poste bitte die Bilder einzeln in Ihre Frage.
  • Dank WilmarvanOmmeren die Frage ist, aktualisiert
  • ValueError: Input size must be at least 197x197... welche version von Keras verwenden Sie?
  • Ich benutze Keras2.0.8, aber ich glaube nicht, dass die version wichtig ist.. stellen Sie sicher, dass Sie die Größe der Bilder, wie ich in den obigen code
  • die Ausnahme wird ausgelöst, wenn Sie versuchen zu erklären ResNet50(input_shape=(140...
  • du hast Recht!! Es tut mir Leid, ändern 140 bis 197 und es sollte funktionieren.. schau in den code oben 🙂
  • Dude - es ist nicht zu arbeiten - es erwartet Bild der Größe (224, 224, 3) mit include_top=True.
  • Komisch.. es funktioniert für mich.. bist du sicher, dass input_shape ist (197,197,1) bei der Erstellung ResNet50 Objekt?

InformationsquelleAutor Dvir Samuel | 2017-11-07
Schreibe einen Kommentar