После добавления дополнительного измерения image_array
будет иметь форму, аналогичную (1, 3, 250, 250)
или (1, 250, 250, 3)
(в зависимости от вашего бэкенда, учитывая 3-канальные изображения).
Когда вы выполните images.append(image_array)
, он добавит этот 4d-массив в список массивов numpy. На практике этот список будет 5-мерным массивом, но когда вы преобразуете его обратно в пустой массив, у numpy не будет способа узнать, какую желаемую форму / количество измерений вы хотите.
Вы можете использовать np.vstack()
( doc ) для укладки каждого отдельного 4d-массива по первой оси.
Измените эти строки в вашем коде:
# Create a single numpy array with all the images we loaded
x_train = np.array(images)
Для:
x_train = np.vstack(images)