Быстрая загрузка большого количества данных в Google Colab

от автора

Доброго времени суток, Хабр. Решил поделиться своим знанием, как можно быстро загрузить большое количество файлов в Google Colab с Google Drive.

Всем известно, что Google Colab отличная бесплатная платформа для обучения и экспериментов над Нейронными Сетями.

На платформе Google Colab Вам бесплатно предоставят мощную видеокарту на которой вы сможете поэкспериментировать с обучением своей нейросети на протяжении примерно 12 часов.
Затем сеанс прервется, но на следующий день от Google можно опять будет получить видеокарту и продолжить свои эксперименты.

Нейронным сетям требуется очень много данных для обучения, особенно если речь идет о нейросетях работающих с изображениями.

Для обучения таких нейросетей необходимо загрузить в обучающую и валидационную выборки тысячи и сотни изображений. К сожалению, если эти изображения загружать непосредственно из вашего Google Drive, это занимает неприлично долгое время — десятки минут или даже часы. Ведь каждое обращение за файлом в Google Drive и получение от него ответа с содержимым файла происходит последовательно и не быстро.

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

А мы люди разумные, поэтому мы один раз обратимся к Google Drive считаем наши данные запакованные заранее в zip архив, распакуем полученный zip архив в память Google Colab и считаем свои данные со скоростью в сотни раз большей чем с Google Drive последовательно по одному файлу.

Для эксперимента со скорость загрузки данных в Colab я взял имеющуюся у меня базу «Airplanes» для сегментационной нейросети.

В этой базе есть папка с изображениями «самолеты» и папка «сегментация», где хранятся маски изображений самолетов из вышеназванной папки.
В каждой папке по 1005 изображений 1920*1080.
В общей сложности нам предстоит загрузить 2010 файлов.
Я заранее загрузил к себе на Google Drive как саму базу с изображениями, так и ее zip архив.

Структура Обучающей Базы:



Итак, приступим к скоростной загрузке данных с Google Drive:

  1. Запускаем Google Colab и импортируем необходимые нам для этого библиотеки и модули

  2. Выполняем команду на подключение к Google Drive

  3. Переходим по ссылке для выбора свое аккаунта Google

  4. Выбираем свой аккаунт в Google

  5. Подтверждаем доступ Colab к Google Drive

  6. Копируем авторизационный код для доступа к Google Drive

  7. Вставляем авторизационный код в строку и получаем доступ к своему Google Drive

  8. Прописываем путь к архиву с обучающей базой данных и разархивируем ее память Colab

  9. Для тестирования скорости чтения файлов я написал функцию, которая пройдется по всем подкаталогам обучающей базы и в каждом подкаталоге прочитает все файлы которые в нем хранятся.

  10. Тестируем скорость чтения всех файлов

    Как видно, время за которое мы загрузили 2010 файлов c размером изображения 1920*1080 составило всего 0,96 сек.

    То есть, менее чем за секунду, мы загрузили весь наш объем информации.

    А давайте посмотрим за сколько времени мы загрузили бы те же файлы в Colab, если бы читали их не из архива, а последовательно один за другим из каталога на Google Drive.

  11. Изменим путь к базе с файла zip архива на обычный каталог на Google Drive

Как мы видим для загрузки из каталога 2010 файлов хранящихся на Google Drive нам потребовалось уже 1500 секунд, а ведь это 25 минут.

Это 25 минут простоя вашего экспериментов с нейросетью.

Надеюсь, статья была для вас полезной и теперь загрузка большого количества файлов с Google Drive в Colab больше уже не проблема.

Загружайте свои обучающие данные в сотни раз быстрее чем делали до этого ранее.

Всего четыре простых шага.

  1. Запаковать Обучающую Базу в zip архив.
  2. Загрузить zip файл с Обучающей Базой к себе на Google Drive
  3. Распаковать zip файл с Обучающей базой в память Colab
  4. Прочитать все файлы памяти Colab в вашу программу

По всем вопросам пишите мне на почту

alexeyk500@yandex.ru

Для тех, кому нужен код, описанный в статье, добро пожаловать ко мне на GitHub.

ссылка на оригинал статьи https://habr.com/ru/post/504362/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *