Я использовал ImageDataGenerator
и flow_from_directory
для обучения и проверки.
Это мои каталоги:
train_dir = Path('D:/Datasets/Trell/images/new_images/training')
test_dir = Path('D:/Datasets/Trell/images/new_images/validation')
pred_dir = Path('D:/Datasets/Trell/images/new_images/testing')
Код ImageGenerator:
img_width, img_height = 28, 28
batch_size=32
train_datagen = ImageDataGenerator(
rescale=1. / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1. / 255)
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='categorical')
Найдено 1852 изображения, относящихся к 4 классам
Найдено 115 изображений, относящихся к 4 классам
Это мой учебный код модели:
history = cnn.fit_generator(
train_generator,
steps_per_epoch=1852 // batch_size,
epochs=20,
validation_data=validation_generator,
validation_steps=115 // batch_size)
СейчасУ меня есть несколько новых изображений в тестовой папке (все изображения находятся только в одной папке), которые я хочу предсказать.Но когда я использую .predict_generator
, я получаю:
Найдено 0 изображений, принадлежащих к 0 классу
Поэтому я попробовал следующие решения:
1) Keras: Как использовать Предикат_Генератор с ImageDataGenerator? Это не сработало, потому что он пытается только на проверочном наборе.
2) Как предсказать новое изображение с помощью модели.Предсказание? module image not found
3) Как получить прогнозы с помощью предиката_генератора для потоковой передачи тестовых данных в Керасе? Это также не сработало.
МойДанные поезда в основном хранятся в 4 отдельных папках, то есть в 4 конкретных классах, проверка также сохраняется таким же образом и работает довольно хорошо.
Так что в моей тестовой папке у меня есть около 300 изображений, которые я хочу предсказатьи создайте фрейм данных, например:
image_name class
gghh.jpg 1
rrtq.png 2
1113.jpg 1
44rf.jpg 4
tyug.png 1
ssgh.jpg 3
Я также использовал следующий код:
img = image.load_img(pred_dir, target_size=(28, 28))
img_tensor = image.img_to_array(img)
img_tensor = np.expand_dims(img_tensor, axis=0)
img_tensor /= 255.
cnn.predict(img_tensor)
Но я получаю эту ошибку: [Errno 13] Permission denied: 'D:\\Datasets\\Trell\\images\\new_images\\testing'
НоЯ не смог predict_generator
на моих тестовых изображениях.Итак, как я могу предсказать мои новые изображения с помощью Keras.Я много гуглил, искал и в Kaggle Kernels, но не смог найти решение.