НОВОСТИ [Из песочницы] Быстрая загрузка большого количества данных в Google Colab

Bonnie
Оффлайн
Регистрация
12.04.17
Сообщения
19.095
Реакции
107
Репутация
0
Доброго времени суток, Хабр. Решил поделиться своим знанием, как можно быстро загрузить большое количество файлов в 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 архив.

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

lyy9w0xt45znk_x8ie3i-dn6wqc.png


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

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

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

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

    wi_jro9n-jjtu-x7db8tc9bicui.png
  4. Выбираем свой аккаунт в Google

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

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

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

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

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

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

    t9as9nmhuac2dhbj0xjkixhcl2u.png


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

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

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

    ssxetws1bvu4r01orsq977ezswy.png

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

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

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

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

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

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

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

[email protected]

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