Доброго времени суток, Хабр. Решил поделиться своим знанием, как можно быстро загрузить большое количество файлов в 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:
Как мы видим для загрузки из каталога 2010 файлов хранящихся на Google Drive нам потребовалось уже 1500 секунд, а ведь это 25 минут.
Это 25 минут простоя вашего экспериментов с нейросетью.
Надеюсь, статья была для вас полезной и теперь загрузка большого количества файлов с Google Drive в Colab больше уже не проблема.
Загружайте свои обучающие данные в сотни раз быстрее чем делали до этого ранее.
Всего четыре простых шага.
По всем вопросам пишите мне на почту
alexeyk500@yandex.ru
Для тех, кому нужен код, описанный в статье, добро пожаловать ко мне на GitHub.
Всем известно, что 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:
- Запускаем Google Colab и импортируем необходимые нам для этого библиотеки и модули
- Выполняем команду на подключение к Google Drive
- Переходим по ссылке для выбора свое аккаунта Google
- Выбираем свой аккаунт в Google
- Подтверждаем доступ Colab к Google Drive
- Копируем авторизационный код для доступа к Google Drive
- Вставляем авторизационный код в строку и получаем доступ к своему Google Drive
- Прописываем путь к архиву с обучающей базой данных и разархивируем ее память Colab
- Для тестирования скорости чтения файлов я написал функцию, которая пройдется по всем подкаталогам обучающей базы и в каждом подкаталоге прочитает все файлы которые в нем хранятся.
- Тестируем скорость чтения всех файлов
Как видно, время за которое мы загрузили 2010 файлов c размером изображения 1920*1080 составило всего 0,96 сек.
То есть, менее чем за секунду, мы загрузили весь наш объем информации.
А давайте посмотрим за сколько времени мы загрузили бы те же файлы в Colab, если бы читали их не из архива, а последовательно один за другим из каталога на Google Drive. - Изменим путь к базе с файла zip архива на обычный каталог на Google Drive
Как мы видим для загрузки из каталога 2010 файлов хранящихся на Google Drive нам потребовалось уже 1500 секунд, а ведь это 25 минут.
Это 25 минут простоя вашего экспериментов с нейросетью.
Надеюсь, статья была для вас полезной и теперь загрузка большого количества файлов с Google Drive в Colab больше уже не проблема.
Загружайте свои обучающие данные в сотни раз быстрее чем делали до этого ранее.
Всего четыре простых шага.
- Запаковать Обучающую Базу в zip архив.
- Загрузить zip файл с Обучающей Базой к себе на Google Drive
- Распаковать zip файл с Обучающей базой в память Colab
- Прочитать все файлы памяти Colab в вашу программу
По всем вопросам пишите мне на почту
alexeyk500@yandex.ru
Для тех, кому нужен код, описанный в статье, добро пожаловать ко мне на GitHub.