Ich benutze mehrere Kategorien von Bildern wie Vogel/Katze/Hund/Löwe.Wie kann ich vorhersagen, Testbild ist nicht Katze oder Hund, wenn ich ein anderes Bild von Keras zur Verfügung stellen?
nach Epoche = 40
mein testData.py ist:
from keras.models import load_model
from keras.models import Sequential
from keras.layers import Dense
from keras.models import model_from_json
import cv2, numpy as np
np.set_printoptions(precision=4, linewidth=100)
# -------------Load Trained Model------------------------------
model = load_model('onlyModel.h5')
print('Loaded model from disk')
# -------------Load and Pre process Test img ----------------
img = cv2.resize(cv2.imread('a.jpg'), (150, 150))
img = np.reshape(img,[1,150,150,3])
array = np.asarray(img, dtype='int32')
array = array/255
# --------------------Predictions------------------------------
predict = model.predict(array)
classes = model.predict_classes(array)
print('Prediction is = ', predict)
print('predict_class is = ',classes)
# ------------------Result--------------------------------------
if classes == 0:
print ('It is a Bird')
elif classes == 1:
print ('It is Cat')
elif classes == 2:
print ('It is Dog')
elif classes == 3:
print ('It is Lion')
else:
print ('N/A')
# ------------------------------------------------
korrekt Gibt ausgegeben, wenn ich Bild Hund bieten:
Aber dieses doesn Vorhersage Löwe Bild?
Bitte korrigieren Sie meine Code-Fehler, falls vorhanden. Ich bin neu in diesem Bereich. Schlage auch den bestmöglichen Ansatz vor.
Dies ist keine Programmierfrage, siehe https://stats.stackexchange.com/ für allgemeine Fragen zum Maschinellen Lernen. –
Verwenden Sie immer noch binäre Kreuzentropie? Sie sollten zur kategorischen Kreuzentropie wechseln, mit einer dritten Klasse: 'Andere' und einen 3-dimensionalen Zielvektor erstellen, der alle drei Kategorien widerspiegelt. – McLawrence
Also, was meinst du mit 'alles was ich bekomme ist nur 0 & 1'? Die Verwendung der Kreuzentropie sollte ein kontinuierliches Spektrum von Ausgaben ergeben, die als etwas wie normalisierte Wahrscheinlichkeiten für jede Klasse interpretiert werden können. Weitere Informationen finden Sie im Abschnitt über den [softmax classifier] (http://cs231n.github.io/linear-classify/). Können Sie bitte den Teil Ihres Codes hinzufügen, in dem Sie Ihr Modell definieren und mit dem Training beginnen? – McLawrence