Глубокое изучение в Google Colab: загрузка большого набора данных изображений занимает очень много времени, как ускорить процесс? - PullRequest
0 голосов
/ 18 января 2019

Я работаю над моделью глубокого обучения с использованием Keras и для ускорения вычислений, я хотел бы использовать графический процессор, доступный в google colab.

Мои файлы изображений уже загружены на мой диск Google. У меня 24 000 изображений для обучения, 4 000 для тестирования моей модели.

Однако, когда я загружаю свои изображения в массив, это занимает очень много времени (почти 2 часа) Так что это не очень удобно делать каждый раз, когда я использую ноутбук google colab.

Знаешь ли ты, как ускорить процесс? Это мой текущий код:

TRAIN_DIR  = "Training_set/X"
TRAIN_DIR_Y = "Training_set/Y"
IMG_SIZE = 128

def parse_img_data(path):
    X_train = []
    index_train = []
    img_ind = []
    for img in tqdm(os.listdir(path)):
        img_ind.append(int(img.split('.')[0])-1)
        path = os.path.join(TRAIN_DIR,img)
        img = cv2.imread(path,cv2.IMREAD_COLOR)
        img = cv2.resize(img, (IMG_SIZE,IMG_SIZE))
        X_train.append(np.array(img))
    return np.array(img_ind), np.array(X_train)

ind_train, X_train = parse_img_data(TRAIN_DIR)

Буду очень признателен, если вы мне поможете.

Xavier

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Я пытался, и для тех, кому любопытно, я не смог использовать поток из каталога с папкой на диске Google.Среда файла коллаба не считывает путь и выдает ошибку «Папка не существует».Я пытался решить проблему и поиск в стеке, похожие вопросы были размещены здесь Google для совместной работы и здесь Google Colab не может получить доступ к содержимому диска , без эффективного решения и для некоторыхпричина, много отрицательных отзывов к тем, кто спрашивает.

Единственное решение, которое я нахожу для чтения 20k изображений в google colab, - это загрузить их и затем обработать, потратив на это два грустных часа.Это имеет смысл, Google идентифицирует вещи внутри диска с помощью идентификаторов, поток из каталога требует, чтобы он идентифицировал как набор данных, так и классы с абсолютными путями к папкам, что несовместимо с методом идентификации дисков Google.Альтернативой может быть использование облачной среды Google вместо этого, я полагаю, и оплата. Мы получаем довольно много бесплатно, как есть.Это мое понимание ситуации новичком, пожалуйста, поправьте меня, если ошибаетесь.

edit1: я смог использовать поток из каталога на Google Collab, Google также определяет вещи с путем, дело в том, что если вы используете os.getcwd (), он не работает должным образом, если вы используетеэто даст вам, что текущий рабочий каталог - «/ content», если на самом деле это «/ content / drive / My Drive / folderinsideideourdrive /...../ folderthathasyourcollabnotebook /. Если вы измените в traingenerator путь так, чтобыон включает в себя этот параметр и игнорирует os, он работает. Однако у меня были проблемы с оперативной памятью, даже когда использовался поток из каталога, из-за невозможности обучить мой cnn, возможно, это то, что просто случается со мной.

Обязательно выполните

from google.colab import drive
drive.mount('/content/drive/')

, чтобы ноутбук распознал пути

0 голосов
/ 18 января 2019

Вы можете попытаться смонтировать папку на Google Диске (фрагмент кода можно найти в меню «Примеры») и использовать ImageDataGenerator с flow_from_directory(). Проверьте документацию здесь

...