Для использования flow_from_directory
. У вас должна быть следующая структура папок.
./Dataset/
./Train/
../Folder_1/
../img_1.jpg
../img_2.jpg
............
../Folder_2/
../img_1.jpg
../img_2.jpg
Где Folder_i содержит изображения класса I.
На вашем пути E:\Major Project\Data
у вас должно быть n
папок, каждая из которых соответствует каждому классу.
Тогда вы можете позвонить flow_from_directory
как
train_datagen.flow_from_directory('E:\Major Project\Data\',target_size = (64, 64),batch_size = 32,class_mode = 'categorical')
Вы получите такой вывод
Found xxxx images belonging to yyyy classes
и, если все остальное правильно, модель начнет тренироваться
После обучения, если вы хотите использовать flow_from_directory
для прогнозирования с помощью predict_generator
, вы можете сделать это следующим образом.
Вы можете изменить значение batch_size в flow_from_directory со значения по умолчанию (которое batch_size = 32) на batch_size = 1. Затем задайте шаги дляgnast_generator для общего количества ваших тестовых изображений.
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',
batch_size=1)
filenames = test_generator.filenames
nb_samples = len(filenames)
predict = model.predict_generator(test_generator,steps = nb_samples)
Если вы хотите сделать прогноз на одном изображении.
import cv2
import numpy as np
img = cv2.imread('path_to_file')
img = cv2.resize(img, (64, 64))
img = img.reshape(1, 64, 64, 3)
model.predict(img)