#python #numpy #image-processing #deep-learning #google-colaboratory
Вопрос:
как я могу обработать свой большой набор данных изображений (75 000 изображений) в массив numpy? Моя попытка состоит в том, чтобы просто открыть изображение и сохранить его в массиве, вот так:
for i, image in enumerate(allTrainImages):
if i % 1000 == 0:
print("%d images processed!" % i)
x_train[i] = np.asarray(Image.open(image).thumbnail(image_size))
y_train[i] = np.asarray(train['class_label'][i])
Первые 5000 изображений можно легко обработать, но после этого потребуется целая вечность, чтобы перейти к следующему шагу 1000…
Есть ли более быстрый метод?
Комментарии:
1. Без более подробной информации трудно быть конкретным. Как
x_train[]
они определены иy_train[]
определены? (shape=(75000,1)
,dtype=object
?) Насколько велики сохраненные изображения? Если мне нужно угадать, я подозреваю, что замедление-это время, потраченное на перераспределение памяти для каждого нового массива. Я думаю, что Список будет более эффективным. Ты можешь это сделать? Или требуется массив?2. 75000 изображений-это много и должно занимать огромный объем памяти, если изображение довольно большое. Загрузка 5000 HD-изображений (1080×720) занимает примерно 13 ГБ оперативной памяти и до 193 ГБ оперативной памяти для 75000 HD-изображений! У вас действительно есть такой объем памяти на целевой машине? Если нет, вам нужно загрузить изображение небольшими порциями.