После некоторого поиска в Google я обнаружил, что отдельный образ лучше предварительно обработать с помощью opencv, поэтому обратился к его документации, установленной на Mac через терминал (используя conda).
conda install opencv
Далее в коде пробовал это:
import cv2
import numpy as np
predict_datagen = ImageDataGenerator(rescale=1./255)
img1 = cv2.imread('path_to_image/img_1.jpg')
img1 = cv2.resize(img1, (64, 64))
Зная, что форма ввода изображения модели была (64, 64, 3) после изменения размера, я проверил, совпадает ли форма с
print(img1.shape)
Оказалось, что все было хорошо, поэтому мне нужно было добавить измерение, чтобы соответствовать требованиям модели, что я выяснил после получения ValueError:
ValueError: Error when checking : expected conv2d_1_input to have 4 dimensions, but got array with shape (64, 64, 3)
Итак, изображение было изменено:
img1 = np.array(img1).reshape((1, 64, 64, 3))#do not miss the order in tuple
После этого я получил изображение необходимой формы и размера и готово к единственному предсказанию с помощью метода predict
.