Я сейчас загружаю изображения, создаю из него массив и добавляю его в список.К сожалению, это, похоже, съедает всю мою оперативную память на количество изображений, которые я пытаюсь загрузить (20 КБ).
Код:
def convert_image_to_array(files,relpath):
images_as_array=[]
len_files = len(files)
i = 0
print("---ConvImg2Arr---")
print("---STARTING---")
for file in files:
images_as_array.append(img_to_array(load_img(relpath+file, target_size=(soll_img_shape, soll_img_shape)))/255)
if i == int(len_files*0.2):
print("20% done")
if i == int(len_files*0.5):
print("50% done")
if i == int(len_files*0.8):
print("80% done")
i +=1
print("---DONE---")
return images_as_array
, вызывая его с помощью X_train, получаемого из train_test_split:
x_train = convert_image_to_array_opt(X_train,rel_path)
Какой более эффективный способ загрузить все эти изображения?
Редактировать:
Использование .flow_from_directory () из Keras решило мои проблемы, но я все равнохотелось бы знать, как это можно сделать так, как я пытался.