Использование наборов данных kaggle в Google Colab

Можно ли использовать напрямую любые наборы данных, доступные в kaggle в Google Colab? я вижу Kaggle API в этой ссылке, но, видимо, она имеет только определенные наборы данных, и это немного сбивает с толку меня.

15 ответов

Решение

Шаг за шагом --

  1. Создайте ключ API в Kaggle.

    Для этого перейдите на kaggle.com/ и откройте страницу настроек пользователя. настройки навигации

  2. Затем прокрутите вниз до раздела доступа к API и нажмите "Генерировать", чтобы загрузить ключ API. API-токен Это загрузит файл с именем kaggle.json на ваш компьютер. Вы будете использовать этот файл в Colab для доступа к наборам данных Kaggle и соревнованиям.

  3. Перейдите на страницу https://colab.research.google.com/.

  4. Загрузите свой kaggle.json файл, используя следующий фрагмент кода в ячейке кода:

    from google.colab import files files.upload()

  5. Установите API kaggle, используя !pip install -q kaggle

  6. Переместить kaggle.json подать в ~/.kaggle, где клиент API ожидает, что ваш токен будет расположен:

    !mkdir -p ~/.kaggle !cp kaggle.json ~/.kaggle/

  7. Теперь вы можете получить доступ к наборам данных с помощью клиента, например, !kaggle datasets list,

Вот полный пример записной книжки о части этого процесса в Colab: https://colab.research.google.com/drive/1DofKEdQYaXmDWBzuResXWWvxhLgDeVyl

Этот пример показывает загрузку kaggle.json файл, клиент Kaggle API и использование клиента Kaggle для загрузки набора данных.

Вы должны иметь доступ к любому набору данных в Kaggle через API. В этом примере перечислены только наборы данных для соревнований. Вы можете увидеть, что наборы данных вы можете получить с помощью этой команды:

kaggle datasets list

Вы также можете искать наборы данных, добавив тег -s, а затем интересующий вас поисковый термин. Таким образом, вы получите список наборов данных о собаках:

kaggle datasets list -s dogs

Вы можете найти больше информации об API и о том, как его использовать, в документации здесь.

Надеюсь, это поможет!:)

Детальный подход:

  1. Зайдите в мою учетную запись в своем профиле

  1. Прокрутите вниз, пока не найдете параметр Create new Api Token, при этом будет загружен файл с именем kaggle.json.

  1. Зайдите в Colab загрузите файл kaggle.json

  1. pip install kaggle

  1. создайте новую папку с именем kaggle, скопируйте kaggle.json в папку kaggle и установите разрешения на чтение и запись только для вас (пользователя).

6. Перейдите на веб-сайт Kaggle. Например, вы хотите загрузить какие-либо данные, нажмите на три точки в правой части экрана. Затем нажмите скопировать команду API

  1. Зайдите в colab, вставьте команду API

8. Когда вы делаете !ls, вы увидите, что наша загрузка представляет собой zip-файл.

  1. Чтобы распаковать файл, используйте следующую команду

  1. Теперь, когда вы это сделаете !ls вы обнаружите, что наш CSV-файл извлечен из ZIP-файла.

  1. Чтобы прочитать файл, выполните простой pd.read_csv, импорт панд

12. Как видите, мы успешно прочитали наш файл в colab.

Это загружает набор данных kaggle в google colab, где вы можете выполнять анализ и создавать потрясающие модели машинного обучения или обучать нейронные сети.

Удачного анализа!!!

Совмещенный верхний ответ на эту суть Github, как реализация Colab. Вы можете напрямую скопировать код и использовать его.

Как импортировать набор данных из Kaggle в Colab

Метод:

Сначала несколько вещей, которые вы должны сделать:

  1. Подпишитесь на Kaggle
  2. Зарегистрируйтесь на соревнование, с которого вы хотите получить доступ к данным (например, соревнование LANL-Earthquake-Prediction).
  3. Загрузите свои учетные данные для доступа к Kaggle API как kaggle.json
# Install kaggle packages
!pip install -q kaggle
!pip install -q kaggle-cli
# Colab's file access feature
from google.colab import files

# Upload `kaggle.json` file
uploaded = files.upload()
# Retrieve uploaded file
# print results
for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

# Then copy kaggle.json into the folder where the API expects to find it.
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!ls ~/.kaggle

Теперь проверьте, сработало ли это!

#list competitions
!kaggle competitions list -s LANL-Earthquake-Prediction

Посмотрите на это.

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

Отказ от ответственности: я один из создателей Clouderizer.

У меня есть этот учебник, чтобы использовать Kaggle API в Google Colab напрямую, без загрузки и выгрузки данных с вашего локального компьютера. Kaggle API + Колаборатория

После шагов (1-6) выше, чтобы использовать набор данных из конкретного соревнования в колабе, вы можете использовать команду:

! kaggle соревнования скачать -c elo-merchant-категория-рекомендация

( elo-merchant-category-рекомендации - это название соревнования.)

Чтобы загрузить данные о конкурентах в Google Colab с сайта kaggle. Я работаю над Google Colab, и у меня была такая же проблема. но я сделал два звонка.

Сначала вы должны зарегистрировать свой номер мобильного телефона вместе с кодом страны. Во-вторых, вам нужно нажать на последнюю отправку на странице набора данных kaggle. Затем загрузить файл kaggle.json с сайта kaggle.upload kaggle.json в Google Colab. После этого в Google Colab запустить этот код приведен ниже.

!pip install -q kaggle
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/ 
!chmod 600 ~/.kaggle/kaggle.json 
!kaggle competitions download -c web-traffic-time-series-forecasting

Краткое руководство по использованию наборов данных Kaggle в Google Colab с использованием Kaggle API

(1) Загрузите токен Kaggle API.

  • Перейдите в «Аккаунт», спуститесь по странице и найдите раздел «API».
  • Нажмите кнопку «Создать новый токен API».
  • Будет загружен файл «kaggle.json».

(2) Подключите диск Google к ноутбуку Colab.

  • Это означает предоставление доступа к файлам на вашем диске Google для записной книжки Colab.
      from google.colab import drive
drive.mount("/content/gdrive", force_remount=True)

(3) Загрузите файл «kaggle.json» в папку на диске Google, куда вы хотите загрузить набор данных Kaggle.

(4) Установите Kaggle API.

      !pip install kaggle

(5) Измените текущий рабочий каталог на то, где вы хотите загрузить набор данных Kaggle.

      %cd /content/gdrive/MyDrive/DataSets/house_price_data/

(6) Запустите следующий код, чтобы настроить путь к «kaggle.json».

      import os
os.environ['KAGGLE_CONFIG_DIR'] = "/content/gdrive/MyDrive/DataSets/house_price_data/"

(7) Загрузите набор данных.

      !kaggle competitions download -c house-prices-advanced-regression-techniques

Прежде всего, запустите эту команду, чтобы узнать, где находится этот файл colab, как он выполняется. !ls -d $PWD/* Это покажет /content/data /content/gdrive /content/models Другими словами, ваш текущий каталог - root / content /. Ваш рабочий каталог (pwd) - / content /. поэтому, когда вы делаете !ls покажет data gdrive models, К вашему сведению! позволяет запускать команды linux внутри colab.

Google Диск продолжает очищать папку / content. Поэтому каждый сеанс, в котором вы используете colab, загруженные наборы данных, файл kaggle json, исчезнет. Вот почему важно автоматизировать процесс, чтобы вы могли сосредоточиться на написании кода, а не каждый раз настраивать среду.

Запустите это в блоке кода colab в качестве примера с вашим собственным ключом API. открыть файл kaggle.json. Вы найдете их.

# Info on how to get your api key (kaggle.json) here: https://github.com/Kaggle/kaggle-api#api-credentials
!pip install kaggle
{"username":"seunghunsunmoonlee","key":""}
import json
import zipfile
import os
with open('/content/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)
!chmod 600 /content/.kaggle/kaggle.json
!kaggle config path -p /content
!kaggle competitions download -c dog-breed-identification
os.chdir('/content/competitions/dog-breed-identification')
for file in os.listdir():
    zip_ref = zipfile.ZipFile(file, 'r')
    zip_ref.extractall()
    zip_ref.close()

Тогда беги !ls снова. Вы увидите все данные, которые вам нужны. Надеюсь, поможет!

Хакерский способ:

  1. После входа в систему перейдите на страницу набора данных
  2. Откройте Инструменты разработчика Chrome, затем перейдите на панель «Сеть».
  3. Нажмите кнопку "Загрузить" на Kaggle
  4. При нажатии вы увидите много запросов в области сети, найдите запрос, начинающийся archive.zip
  5. Щелкните этот запрос правой кнопкой мыши, затем «Копировать» -> «Копировать как cURL (bash)». Теперь вы скопировали команду
  6. В Colab вставьте команду и добавьте ! до начала команды, затем запустите ее

Это определенно менее надежный способ, чем API, но все же остается вариантом.

Я считаю принятый ответ очень исчерпывающим, но хотел бы добавить, что:

      !kaggle competitions download -c dogs-vs-cats

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

403 - Запрещено

что не очень многословно. Он хочет сказать: «Посетите kaggle.com и примите правила (например, для этого соревнования). Вы не можете принять их через API! Это явно указано в документации (см. Документацию по общедоступному API | Kaggle):

Как и при обычном участии в Соревновании через пользовательский интерфейс, вы должны прочитать и принять правила, чтобы загружать данные или делать заявки. Вы не можете принять правила конкурса через API. Вы должны сделать это, посетив веб-сайт Kaggle и приняв там правила.

Да, это мог быть комментарий, но мне не хватает репутации, чтобы комментировать.

Самая важная часть перед загрузкой файлов:

На веб-странице Kaggle в разделе «Соревнование» вы должны нажать:

Поздняя подача или участие в конкурсе

и

ПРИНЯТЬ ПРАВИЛА И УСЛОВИЯ НА ВЕБ-СТРАНИЦЕ СОРЕВНОВАНИЙ KAGGLE

если нет, то после копирования файла api и после запуска загрузки набора данных в качестве результата отображается ошибка 403.

Следуйте этой статье, чтобы получить любые данные с ключом API на диск Google с помощью colab. Как получить наборы данных Kaggle в Google Colab

      
import os
os.makedirs("/content/.kaggle/")

import json
token = {"username":"your_username_here","key":"your_kaggle_key_here"}
with open('/content/.kaggle/kaggle.json', 'a+') as file:
    json.dump(token, file)

import shutil
os.makedirs("/.kaggle/")
src="/content/.kaggle/kaggle.json"
des="/.kaggle/kaggle.json"
shutil.copy(src,des)


os.makedirs("/root/.kaggle/")
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json

!kaggle config set -n path -v /content

#https://towardsdatascience.com/setting-up-kaggle-in-google-colab-ebb281b61463

!kaggle datasets download -d xhlulu/siim-covid19-resized-to-512px-png

У меня работает на Colab с 29.05.21!

Другие вопросы по тегам