Как отобразить результат модели?

Есть обученная модель. Определяет где машина, где велосипед. Решил проверить на тестовых изображениях (их три, они расположены в директории, указанной в test_path).

Код срабатывает, никакой ошибки не выдает, но и результат отсутствует.

test_path = 'C:\\Users\\Администратор\\AppData\\Local\\Programs\\Python\\Python36-32\\test_images'
imgs_path = glob.glob(test_path + '\\*.jpg')

model = keras.models.load_model('C:\\Users\\Администратор\\AppData\\Local\\Programs\\Python\\Python36-32\\model1.h5')

for i in imgs_path:

  img = image.load_img(i, target_size=(36, 36))
  img_tensor = image.img_to_array(img)
  img_tensor = np.expand_dims(img_tensor, axis=0)
  img_tensor /= 255.
  prediction = model.predict(img_tensor)
  print (prediction)

То есть, должно выдать три результата по очереди.


Ответы (1 шт):

Автор решения: MaxU

Создайте генератор для тестовых картинок.

test_generator = datagen.flow_from_directory(
    '/path/to/test/images',
    target_size=target_size,
    batch_size=batch_size,
    class_mode='categorical')

model.evaluate_generator(test_generator, test_generator.samples // batch_size)

NOTE: тестовые картинки должны находится в поддиректориях c точно такими же названиями как и картинки из обучающего набора.

PS рабочий пример


UPD: для того, чтобы классифицировать незнакомые картинки:


img_generator = datagen.flow_from_directory(
    '/path/to/images/for/classification',
    target_size=target_size,
    batch_size=batch_size,
    class_mode='categorical')

probabilities = model.predict_generator(generator, 
                                        img_generator.samples // batch_size)
→ Ссылка