Kaggle Combat на основе Colab Pro и Google Drive

Kaggle
Kaggle Combat на основе Colab Pro и Google Drive

оригинал:hippocampus-garden.com/card реформированная_кола…

Оригинальное название: How to Kaggle with Colab Pro & Google Drive

Автор перевода: kbsc13

Контакты:

Гитхаб:GitHub.com/CCC013/AI_Ah…

Знать столбец:Машинное обучение и компьютерное зрение,Бумажные заметки с искусственным интеллектом

Публичный аккаунт WeChat:Примечания к алгоритму ИИ

предисловие

Colab Pro (в настоящее время доступен только в США, Канаде, Японии, Бразилии, Германии, Франции, Индии, Великобритании и Таиланде) предоставляет ресурсы облачных вычислений, которые легко доступны и ускоряются, но дороги и громоздки в обслуживании. В отличие от бесплатной версии, Colab Pro позволяет пользователям использовать TPU и высокопроизводительные графические процессоры, такие как V100 и P100 и т. д., для доступа к экземплярам с большим объемом памяти и поддерживать работу ноутбуков до 24 часов за плату в размере 10 долларов США за каждый. месяц доллар.

Colab Pro может удовлетворить потребности в ресурсах большинства соревнований Kaggle. Но тут есть проблема, каждую сессию можно хранить только 24 часа. Набор данных необходимо каждый раз подготавливать, что может занять некоторое время в зависимости от того, как он подготовлен. В таблице ниже мы сравниваем 5 способов подготовки наборов данных Kaggle с начальной загрузки и времени чтения и записи на диск:

К сожалению, основываясь на приведенной выше таблице, я не вижу способа быть быстрым в любом случае. Учитывая, что мы хотим больше обучать модель на множестве итераций набора данных, высокая скорость чтения и записи на диск еще более важна. В текущей ситуации я выберу третий способ: сначала загрузить набор данных через Kaggle API, сохранить его в виде zip-архива на Google Drive, а при запуске сессии разархивировать и сохранить на диске инстанса. Эта операция будет объяснена шаг за шагом в следующем разделе.

Kaggle on Colab Pro

Загрузите набор данных на Google Диск

Во-первых, вам нужно загрузить набор данных через Kaggle API и сохранить его в виде zip-архива на Google Диске, Конкретные шаги заключаются в следующем:

  1. войти вhttps://www.kaggle.com/<YourKaggleID>/account, затем загрузитеkaggle.json

  1. Создайте Google Диск с именемkaggleпапку, затем загрузитеkaggle.json
  2. Начать сеанс Colab
  3. Смонтируйте Google Диск, щелкнув значок в правом верхнем углу, как показано на изображении ниже.

  1. Скопировать с Google Дискаkaggle.jsonДля текущего сеанса и изменения прав доступа к файлу команда выглядит следующим образом:
! mkdir -p ~/.kaggle
! cp ./drive/MyDrive/kaggle/kaggle.json ~/.kaggle/
! chmod 600 ~/.kaggle/kaggle.json
  1. (Необязательно) Обновите API Kaggle. Этот пакет предустановлен на экземпляре Colab, но в мае 2021 года версия блокнотов Kaggle обновлена, и эти две версии немного отличаются.
! pip install -U kaggle
  1. Загрузка наборов данных на Google Диск через Kaggle API может занять некоторое время, а для отображения в интерфейсе Google Диска может потребоваться несколько минут.
! mkdir -p ./drive/MyDrive/kaggle/<CompetitionID>
! kaggle competitions download -c <CompetitionID> -p ./drive/MyDrive/kaggle/<CompetitionID>

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

Извлеките файл в экземпляр

Разархивируйте файл в текущую сессию, команда следующая, этот шаг также занимает некоторое время:

! mkdir -p <CompetitionID>
! unzip -q ./drive/MyDrive/kaggle/<CompetitionID>.zip -d <CompetitionID>
# You can specify the portion of dataset for saving time and disk space
! unzip -q ./drive/MyDrive/kaggle/<CompetitionID>.zip train/* -d <CompetitionID>

Это может начать обучение модели. После обучения вы можете экспортировать файл весов в набор данных Kaggle и отправлять прогнозы через API Kaggle.GitHub.com/KA GG UP/Реформа карты…

сравнение скорости

Сжатие с Google Диска занимает много времени, действительно ли этот метод быстрее, чем загрузка напрямую через Kaggle API или gsutil? Чтобы ответить на этот вопрос, я подготовил конкурс прогнозов цен на жилье (woohoo.cardreform.com/from/house-weekdays…935 КБ и проверить время распаковки этих 3 методов, результаты следующие:

Приведенные выше результаты могут несколько отличаться в зависимости от региона экземпляра, но в большинстве случаев распаковка с Google Диска — самый быстрый способ.

Обратите внимание на размер диска

Colab Pro в настоящее время предоставляет диск емкостью 150 ГБ, поэтому размер сжатого файла не может превышать 75 ГБ.

Можно ли подключить внешнее хранилище?

Установка сегментов Google Cloud Storage

Colab может монтировать диски Google Cloud Storage и получать доступ к наборам данных Kaggle, не загружая их. Для его работы нужно пройти несколько шагов.Во-первых, авторизуйте свой аккаунт с помощью следующего кода:

from google.colab import auth
auth.authenticate_user()

Далее установитеgcsfuse:

! echo "deb http://packages.cloud.google.com/apt gcsfuse-bionic main" > /etc/apt/sources.list.d/gcsfuse.list
! curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
! apt update
! apt install gcsfuse

Затем откройте блокнот Kaggle вашего любимого конкурсного проекта и запустите следующий код, чтобы получить путь к GCS (Google Cloud Storage):

from kaggle_datasets import KaggleDatasets
print(KaggleDatasets().get_gcs_path())

например, соревнования по прогнозированию цен на жильеHouse Prices - Advanced Regression Techniques, Результаты приведены ниже:

gs://kds-ecc57ad1aae587b0e86e3b9422baab9785fc1220431f0b88e5327ea5

теперь можно пройтиgcsfuseЧтобы смонтировать GCS:

! mkdir -p <CompetitionID>
! gcsfuse  --implicit-dirs --limit-bytes-per-sec -1 --limit-ops-per-sec -1 <GCSPath without gs://> <CompetitionID>

Установите с помощью вышеуказанной команды, и это может быть выполнено в течение 1 с. Но когда вы начнете перебирать набор данных, вы обнаружите, что доступ к диску очень медленный. Скорость доступа зависит от региона, в котором находится экземпляр Colab и корзина GCS, но в целом следует избегать этой операции монтирования.

Информацию о регионе для экземпляра Colab можно получить следующими способами:

! curl ipinfo.io

Информация об области корзины GCS могла быть получена с помощью следующей команды, но здесь меня подсказываютAccessDeniedExceptionОшибка исключения и не может быть устранена.

! gsutil ls -Lb gs://kds-ecc57ad1aae587b0e86e3b9422baab9785fc1220431f0b88e5327ea5

Смонтировать диск Google D

Доступ к диску слишком медленный для этого метода!


Суммировать

Использование Colab Pro — это возможность использовать лучшие видеокарты, такие как TPU или P100, GPU уровня V100, конечно, это платная версия, она стоит 10 долларов в месяц, а максимальное время работы за сеанс составляет всего 24 часа. , поэтому, если обучение модели занимает слишком много времени, вам нужно запустить сеанс несколько раз, что приводит к необходимости перезагружать набор данных и читать файл весов, сохраненный с последнего сеанса обучения.

Поэтому, чтобы максимизировать время использования Colab Pro, конечно, мы хотим сократить время загрузки набора данных.Исходя из этой идеи, автор этой статьи сравнивает методы 5. Наконец, по реальной ситуации, то есть в основном обучение модели,требуется скорость чтения диска.Повыше,поэтому я выбрал метод распаковки файла на гугл диске в инстанс Kaggle,и дал процесс работы,а потом еще и изучил можно ли его смонтировать внешним хранилищем, но скорость доступа к диску слишком низкая, не рекомендуется.

Кроме того, дисковое пространство, предоставляемое Colab Pro, составляет всего 150 ГБ, а размер сжатого файла не может превышать 75 ГБ, поэтому этот метод не подходит для больших наборов данных и сетевых моделей с большим количеством параметров, но не подходит для больших наборов данных.Для крупных соревнований без большой сетевой модели вы все равно можете использовать Colab Pro для обучения модели.

Ответив на эти ключевые слова в фоновом режиме официального аккаунта, вы сможете получить соответствующую информацию:

  1. Ответьте на «Введение в книги», чтобы получить вводные ресурсы по машинному обучению, включая книги, видео и вводные книги по Python;
  2. Ответьте на «Структура данных», чтобы получить книги по алгоритмам структуры данных и решения для leetcode;
  3. Ответьте на «multi-label» и получите код классификации изображений с несколькими метками и набор данных, реализованный с помощью keras.
  4. Ответьте на «обучение по передаче pytorch», чтобы получить код руководства по обучению передаче pytorch.
  5. Ответьте «py_ml», чтобы получить код и набор данных вводного руководства по машинному обучению для начинающих.