Быстрая загрузка большого количества данных в 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:
-
Запускаем Google Colab и импортируем необходимые нам для этого библиотеки и модули
Выполняем команду на подключение к Google Drive
Переходим по ссылке для выбора свое аккаунта Google
Выбираем свой аккаунт в Google
Подтверждаем доступ Colab к Google Drive
Копируем авторизационный код для доступа к Google Drive
Вставляем авторизационный код в строку и получаем доступ к своему Google Drive
Прописываем путь к архиву с обучающей базой данных и разархивируем ее память Colab
Для тестирования скорости чтения файлов я написал функцию, которая пройдется по всем подкаталогам обучающей базы и в каждом подкаталоге прочитает все файлы которые в нем хранятся.
Тестируем скорость чтения всех файлов
Как видно, время за которое мы загрузили 2010 файлов c размером изображения 1920*1080 составило всего 0,96 сек.
То есть, менее чем за секунду, мы загрузили весь наш объем информации.
Как мы видим для загрузки из каталога 2010 файлов хранящихся на Google Drive нам потребовалось уже 1500 секунд, а ведь это 25 минут.
Это 25 минут простоя вашего экспериментов с нейросетью.
Надеюсь, статья была для вас полезной и теперь загрузка большого количества файлов с Google Drive в Colab больше уже не проблема.
Загружайте свои обучающие данные в сотни раз быстрее чем делали до этого ранее.
Всего четыре простых шага.
- Запаковать Обучающую Базу в zip архив.
- Загрузить zip файл с Обучающей Базой к себе на Google Drive
- Распаковать zip файл с Обучающей базой в память Colab
- Прочитать все файлы памяти Colab в вашу программу
Для тех, кому нужен код, описанный в статье, добро пожаловать ко мне на GitHub.
Импорт и экспорт текстовых файлов (в формате TXT или CSV)
Импортировать данные из текстового файла в Excel можно двумя способами: открыть их в Excel или импортировать как диапазон внешних данных. Чтобы экспортировать данные из Excel в текстовый файл, воспользуйтесь командой Сохранить как и измените тип файла в меню.
Чаще всего используются два формата текстовых файлов:
- текстовые файлы с разделителями (TXT), в которых для разделения полей текста обычно используется знак табуляции (знак ASCII с кодом 009);
- текстовые файлы с разделителями-запятыми (CSV), в которых в качестве разделителя полей текста обычно используется запятая (,).
Вы можете изменить знак разделения, используемый в TXT- и CSV-файлах. Это может потребоваться для обеспечения успешного выполнения импорта и экспорта.
Примечание: Можно импортировать и экспортировать до 1 048 576 строк и 16 384 столбцов.
Импорт текстового файла путем его открытия в Excel
Текстовый файл, созданный в другой программе, можно открыть как книгу Excel с помощью команды Открыть. При открытии текстового файла в Excel его формат не изменяется — это можно заметить по заголовку окна Excel, где имя указывается с расширением текстового файла (например, TXT или CSV).
- Перейдите в >открыть и перейдите в папку с текстовым файлом.
- В диалоговом окне Открытие выберите текстовые файлы в списке тип файла.
- Найдите нужный файл и дважды щелкните его.
- Если это текстовый файл (с расширением ТХТ), запустится мастер импорта текста. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт. Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.
- Если файл имеет расширение CSV, Excel автоматически откроет его и отобразит данные в новой книге.
Примечание: При открытии CSV-файлов для определения способа импорта каждого столбца используются заданные по умолчанию параметры форматирования данных. Если вы хотите применить другие параметры, используйте мастер импорта текста. Например, мастер потребуется, если столбец данных в CSV-файле имеет формат МДГ, а в Excel по умолчанию используется формат ГМД или необходимо преобразовать в текст столбец чисел, содержащих начальные нули, чтобы сохранить их. Чтобы принудительно запустить мастер импорта текста, можно изменить расширение имени файла с CSV на TXT или импортировать текстовый файл путем подключения к нем (дополнительные сведения см. в следующем разделе).
Импорт текстового файла путем подключения к нем (Power Query)
Вы можете импортировать данные из текстового файла в существующий.
- На вкладке Данные в группе & преобразование данных выберите из текстового/CSV-документа.
- В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.
- В диалоговом окне предварительного просмотра есть несколько вариантов:
- Выберите Загрузить, если вы хотите загрузить данные непосредственно на новый.
- Кроме того, выберите загрузить в, если вы хотите загрузить данные в таблицу, в смету или на существующий или новый листа Excel, или просто создать подключение. Вы также можете добавить данные в модель данных.
- Выберите Преобразовать данные, если вы хотите загрузить данные в Power Query и отредактировать их перед их преобразованием в Excel.
Если Excel не преобразует определенный столбец данных в нужный формат, их можно преобразовать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.
Экспорт данных в текстовый файл путем его сохранения
Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.
- Выберите Файл >Сохранить как.
- Нажмите кнопку Обзор.
- В диалоговом окне Сохранить как в поле Тип файла выберите формат текстового файла для этого документа. Например, щелкните Текст (с табу женой) или CSV (сзапятой).
Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.
Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.
Импорт текстового файла путем подключения к нему
Вы можете импортировать данные из текстового файла в существующий.
- Щелкните ячейку, в которую вы хотите поместить данные из текстового файла.
- На вкладке Данные в группе Получение внешних данных нажмите Из текста.
- В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт. Следуйте инструкциям мастера импорта текста. Щелкните на любой странице мастера импорта текста, чтобы получить дополнительные сведения об использовании мастера. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт.
- В диалоговом окне Импорт данных:
- В группе Куда следует поместить данные? выполните одно из следующих действий:
- Чтобы поместить данные в выбранные ячейки, щелкните На существующий лист.
- Чтобы поместить данные в верхний левый угол нового листа, выберите вариант На новый лист.
- При необходимости нажмите кнопку Свойства, чтобы задать параметры обновления, форматирования и макета импортируемых данных.
- Нажмите кнопку ОК. Excel добавит диапазон внешних данных в указанное место.
Если Excel не преобразует столбец в необходимый формат, это можно сделать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.
Экспорт данных в текстовый файл путем его сохранения
Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.
- Выберите Файл >Сохранить как.
- Откроется диалоговое окно Сохранение документа.
- В поле Тип файла выберите формат текстового файла для листа.
- Например, выберите Текстовые файлы (с разделителями табуляции) или CSV (разделители — запятые).
Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.
Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.
Изменение деления, используемого при импорте текстового файла
Способ изменения деления при импорте зависит от того, как вы импортируете текст.
- Если вы используете get & Transform Data > From Text/CSV, после выбора текстового файла и нажатия кнопки Импорт выберитесимвол, который нужно использовать в списке . Новый вариант можно сразу же увидеть в окне предварительного просмотра данных, чтобы убедиться в том, что вы сделаете нужный вариант, прежде чем продолжить.
- Если вы импортируете текстовый файл с помощью мастера импорта текста, вы можете изменить его на шаге 2 мастера импорта текста. На этом шаге также можно изменить способ обработки последовательных разделителей (например, идущих подряд кавычек). Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.
Изменение стандартного разных списков для сохранения файлов в виде текста (CSV- или CSV-файла) в Excel
Если при сохранение в CSV-окне вы хотите использовать в качестве по умолчанию полу двоеточие, но для этого нужно ограничиться Excel, измените десятичной запятой. В этом случае Excel будет использовать для этого двоеточие. Очевидно, что это также изменит способ отображения десятичных чисел, поэтому также рассмотрите возможность изменения разграничения чисел в тысячах, чтобы сузить путаницу.
- Очистка параметров Excel>Дополнительные>параметры редактирования>Использование системных междугов.
- Для десятичной запятой установите для десятичной запятой (запятую).
- Установите для 1000-го построитель . (точка).
Изменение стандартного списка для новых текстовых файлов (влияет на все программы)
Когда вы сохраняете книгу в CSV-файле, по умолчанию в качестве разных списков запятой является запятая. Вы можете изменить этот знак на другой знак с помощью параметров региона Windows.
Внимание: Изменение параметров Windows приведет к глобальным изменениям на компьютере и повлияет на все приложения. Чтобы изменить только делитель для Excel, см. изменение стандартного деления в списке для сохранения файлов в виде текста (CSV- или CSV-файла) в Excel.
- В Microsoft Windows 10 щелкните правой кнопкой мыши кнопку Начните и выберите параметры.
- Нажмите кнопку & языки выберите регион в левой области.
- На главной панели в группе Региональные параметрыщелкните Дополнительные параметры даты,времени и региона.
- В областивыберите изменить форматы даты, времени или числа.
- В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.
- В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле «Сепаратор списков».
- Дважды нажмите кнопку ОК.
- Нажмите кнопку Пуск и выберите пункт Панель управления.
- В разделе Часы, язык и регион щелкните элемент Изменение форматов даты, времени и чисел.
- В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.
- В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле «Список».
- Дважды нажмите кнопку ОК.
Примечание: После изменения разделителя элементов списка все программы на компьютере будут использовать новый символ. Вы можете вернуть стандартный символ, выполнив эти же действия.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Colaboratory. Работаем с локальной файловой системой Вашего компьютера и Google диском
# wget — закачка с сети Internet на Google диск в папку /content/gdrive/My\ Drive ( My\ Drive — пробел в имени файла в системе Linux экранируется обратным слэшем ) файла с входными данными нейронной сети (в нашем случае: dogscats.zip — множество портретов кошек и собак для обучения и тестирования нейронной сети):
! wget -P /content/gdrive/My\ Drive http://files.fast.ai/data/dogscats.zip
!unzip /content/gdrive/My\ Drive/dogscats.zip -d /content/gdrive/My\ Drive/
!git clone https://github.com/fastai/fastai.git /content/gdrive/My\ Drive/fastai
PATH = «/content/gdrive/My Drive/dogscats/»
os.listdir(PATH) - В группе Куда следует поместить данные? выполните одно из следующих действий: