Проблема с прогнозами с использованием существующей модели Tensorflow

Я обучил модель на наборе данных, содержащем изображения, принадлежащие двум разным категориям, и сейчас пытаюсь получить некоторые прогнозы от этой модели на новых изображениях. Я использовал формат 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 ответ


Вы должны проверить размеры вашего изображения. Количество элементов вашего массива должно быть произведением аргументов .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, что является длиной массива.


Есть идеи?

10000