I'm very new to Keras. I trained a model and would like to predict some images stored in subfolders (like for training). For testing, I want to predict 2 images from 7 classes (subfolders). The test_generator below sees 14 images, but I get 196 predictions. Where is the mistake? Thanks a lot!
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(200, 200),
color_mode="rgb",
shuffle = "false",
class_mode='categorical')
filenames = test_generator.filenames
nb_samples = len(filenames)
predict = model.predict_generator(test_generator,nb_samples)
The problem is the inclusion of
nb_samples
in thepredict_generator
which is creating 14 batches of 14 imagesDefault
batch_size
in generator is 32. If you want to make 1 prediction for every sample of total nb_samples you should devide your nb_samples with thebatch_size
. Thus with abatch_size
of 7 you only need 14/7=2 steps for your 14 imagesYou can change the value of batch_size in flow_from_directory from default value (which is batch_size=32 ) to batch_size=1. Then set the steps of predict_generator to the total number of your test images. Something like this: