Проблема в том, что ваша функция process_image()
возвращает скаляр вместо обработанного изображения (т.е. трехмерный массив формы (168,252,3)
). Итак, переменная im
это просто скаляр. Из-за этого вы получаете массив train_images2
как одномерный массив. Ниже приведен надуманный пример, который иллюстрирует это:
In [59]: train_2 = range(1008)
In [65]: train_images2 = []
In [66]: for i in range(len(train_2)):
...: im = np.random.random_sample()
...: train_images2.append(im)
...: train_images2 = np.asarray(train_images2)
...:
In [67]: train_images2.shape
Out[67]: (1008,)
Итак, исправление заключается в том, что вы должны убедиться, что функция process_image()
возвращает трехмерный массив, как в приведенном ниже надуманном примере:
In [58]: train_images2 = []
In [59]: train_2 = range(1008)
In [60]: for i in range(len(train_2)):
...: im = np.random.random_sample((168,252,3))
...: train_images2.append(im)
...: train_images2 = np.asarray(train_images2)
...:
# indeed a 4D array as you expected
In [61]: train_images2.shape
Out[61]: (1008, 168, 252, 3)