私はKerasで画像分類器を訓練し、私は実際に私は、コードを使用しています、このモデルを使用して別の画像を予測しようとしている時にコード今Kerasで保存されたモデルを使って単一の画像を予測して分類する方法は?
model.save('model1.h5')
でモデルを保存することになった
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)
と私は私が使用
ValueError: Error when checking : expected conv2d_1_input to have shape (None, 231, 172, 1) but got array with shape (1, 231, 172, 3)
画像がグレーにすべてだったというエラーを取得しますスケールモードでは、3を1に変更する必要があることを理解していますが、このコードでどのように確認できないのでしょうか?私は画像を訓練したときにも
は、私が
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
を設定するが、私はそれを再スケールするためにコードを配置する場所、それがさえも、私は設定
を必要としていた場合、私は、正確にはわかりません
batch_size = 16
と私は
を置く予測するコードで参照classes = model.predict_classes(images, batch_size=10)
また、batch_sizeを16に変更する必要がありますか?それとも、10時にそれを残しますか?
ありがとうございました!まず
まず、RGBからグレースケールへのあなたのイメージを変更する必要があり、あなたはそのために 'opencv'または' skimage'を使用することができ、その後、それをあなたのモデルに渡す – Nain