Ich trainierte ein Bildklassifizierer mit Keras und ich landete das Modell mit dem JetztWie verwende ich ein gespeichertes Modell in Keras, um ein einzelnes Bild vorherzusagen und zu klassifizieren?
model.save('model1.h5')
Code speichern, wenn ich versuche eigentlich ein anderes Bild unter Verwendung dieses Modells vorherzusagen, ich bin mit dem Code
from keras.models import load_model
from keras.preprocessing import image
import numpy as np
# dimensions of our images
img_width, img_height = 231, 172
# load the model we saved
model = load_model('model1.h5')
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
# predicting images
img = image.load_img('a.png', target_size=(img_width, img_height))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
images = np.vstack([x])
classes = model.predict_classes(images, batch_size=10)
print(classes)
und ich erhalte eine Fehlermeldung,
ValueError: Error when checking : expected conv2d_1_input to have shape (None, 231, 172, 1) but got array with shape (1, 231, 172, 3)
die Bilder, die ich alle benutzen in Grau waren Scale-Modus, so verstehe ich, dass ich die 3 zu einer 1 ändern muss, aber ich bin mir nicht sicher, wie mit diesem Code?
Auch wenn ich die Bilder trainiert, habe ich
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
aber ich bin mir nicht ganz sicher, wo ich den Code setzen würde es neu zu skalieren, wenn es auch
auch gebraucht wird, habe ich
batch_size = 16
und ich im Code sehen vorherzusagen ich habe
classes = model.predict_classes(images, batch_size=10)
Sollte ich diese batch_size auch auf 16 ändern? Oder lass es einfach um 10?
Danke nochmal Jungs!
Zuerst Ihr Bild von RGB in Graustufen ändern, können Sie 'opencv' oder' skimage' für das und dann Übergeben Sie es Ihrem Modell – Nain