Как кормить DenseNet без загрузки всего набора данных за один раз в Керасе - PullRequest
0 голосов
/ 20 мая 2019

У меня есть локальный набор данных размером около 750 МБ изображений, и каждый размер изображения составляет [1280 960,3], я хочу передать его в нейронную сеть DenseNet с помощью запросов, я нашел репозиторий на github о DenseNet , но они используют полную загрузку набора данных, и если я сделаю то же самое, мне понадобится очень большая оперативная память, потому что, когда я попробовал в Google Colab (12 ГБ оперативной памяти), блокнот ноутбука блокируется.

Хранилища, которые я нашел:

1- https://github.com/titu1994/DenseNet

2- https://github.com/tdeboissiere/DeepLearningImplementations/tree/master/DenseNet

Код, который я использовал для загрузки набора данных, но он потребляет всю оперативную память:

import os
import numpy as np
from keras.preprocessing import image

PATH = os.getcwd()

train_path = PATH+'/data/train/'
train_batch = os.listdir(train_path)
x_train = []

# if data are in form of images
for sample in train_data:
    img_path = train_path+sample
    x = image.load_img(img_path)
    # preprocessing if required
    x_train.append(x)

test_path = PATH+'/data/test/'
test_batch = os.listdir(test_path)
x_test = []

for sample in test_data:
    img_path = test_path+sample
    x = image.load_img(img_path)
    # preprocessing if required
    x_test.append(x)

# finally converting list into numpy array
x_train = np.array(x_train)
x_test = np.array(x_test)

Итак, как я могу использовать другой метод, который не загружает все наборы данных за один раз и передает их в DenseNet?

...