Проблема с прогнозами с использованием существующей модели Tensorflow - PullRequest
1 голос
/ 26 марта 2020

Я обучил модель на наборе данных, содержащем изображения, принадлежащие двум разным категориям, и сейчас пытаюсь получить некоторые прогнозы от этой модели на новых изображениях. Я использовал формат save_model для сохранения и пытаюсь загрузить и предсказать одно изображение в моей модели. Мой код выглядит следующим образом:

loaded = tf.keras.models.load_model('/Library/...')

loaded.compile(loss=tf.keras.losses.CategoricalCrossentropy(label_smoothing=0.1),
               optimizer=tf.keras.optimizers.SGD(lr=0.005, momentum=0.9), metrics=['accuracy'])

test_image = image.load_img(img_path, target_size=(img_width, img_height))
test_image = image.img_to_array(test_image)
test_image = np.expand_dims(test_image, axis=0)
test_image = test_image.reshape(img_width, img_height)
result = loaded.predict(test_image)
print(loaded.predict(test_image))
print(result)

, и я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "/Users/...", line 73, in <module>
    test_image = test_image.reshape(img_width, img_height)
ValueError: cannot reshape array of size 268203 into shape (299,299)

Я думал, что это проблема с файлом изображения, но он из того же источника, что и изображения, которые я Я тренировался, и у меня там не было проблем. Все файлы являются изображениями RGB PNG (я думал, что проблема была в том, что они были RGBA, однако это не так). Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 26 марта 2020

Вы должны проверить размеры изображения. Количество элементов вашего массива должно быть произведением аргументов .reshape. 299 * 299 не равно 268203.

Примером является

a = np.array(range(6))

Это допустимые изменения:

a.reshape(1,6)
a.reshape(2,3)
a.reshape(3,2)
a.reshape(6,1)

, поскольку произведение аргументов равно 6, что длина массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...