55 votes

Utilisation des jeux de données Kaggle dans Google Colab

Est-il possible d'utiliser n'importe quel ensemble de données disponible via le site Web de l'UE ? kaggle API dans Google Colab ? Je vois que l'API Kaggle est utilisée dans ce carnet Colab mais je ne vois pas très bien à quels ensembles de données il donne accès.

124voto

Bob Smith Points 12540

Pas à pas

  1. Créez une clé API dans Kaggle.

    Pour ce faire, rendez-vous sur kaggle.com/ et ouvrez votre page de paramètres utilisateur. settings nav

  2. Ensuite, faites défiler la page jusqu'à la section d'accès à l'API et cliquez sur générer pour télécharger une clé API. api token Cela va télécharger un fichier appelé kaggle.json sur votre ordinateur. Vous utiliserez ce fichier dans Colab pour accéder aux ensembles de données et aux compétitions.

  3. Naviguez jusqu'à https://colab.research.google.com/.

  4. Téléchargez votre kaggle.json en utilisant l'extrait suivant dans une cellule de code :

    from google.colab import files files.upload()

  5. Installez l'API kaggle en utilisant !pip install -q kaggle

  6. Déplacez le kaggle.json dans ~/.kaggle qui est l'endroit où le client de l client API s'attend à ce que votre jeton soit situé :

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

  7. Vous pouvez maintenant accéder aux ensembles de données en utilisant le client, par exemple, !kaggle datasets list .

Voici un exemple complet de carnet de notes de la partie Colab de ce processus : https://colab.research.google.com/drive/1DofKEdQYaXmDWBzuResXWWvxhLgDeVyl

Cet exemple montre le téléchargement du kaggle.json le client Kaggle API et l'utilisation du client Kaggle pour télécharger un ensemble de données.

4 votes

C'est génial @bob-smith, je viens de faire un rapide one-liner pour le code sur colab : !if [ ! -f ~/.kaggle/kaggle.json ]; then python "from google.colab import files \n files.upload()" && mkdir -p ~/.kaggle && cp kaggle.json ~/.kaggle/ && chmod 600 ~/.kaggle/kaggle.json; fi

1 votes

Les deux dernières parties ne fonctionnent pas correctement pour moi. Pour l'avant-dernière partie (téléchargement), j'obtiens ceci : Downloading stack-overflow-2018-developer-survey.zip to /content For the last part getting this:head : cannot open '/Root/.kaggle/datasets/stackoverflow/stack-overflow-2018-developer-survey/survey_results_public.csv' for reading : Aucun fichier ou répertoire de ce type

0 votes

Merci pour cette réponse, j'en avais grandement besoin

20voto

Rachael Tatman Points 676

Vous devriez pouvoir accéder à n'importe quel jeu de données sur Kaggle via l'API. Dans cet exemple, seuls les jeux de données pour les compétitions sont listés. Vous pouvez voir les jeux de données auxquels vous pouvez accéder avec cette commande :

kaggle datasets list

Vous pouvez également rechercher des ensembles de données en ajoutant la balise -s, puis le terme de recherche qui vous intéresse. Vous obtiendrez ainsi une liste de jeux de données sur les chiens :

kaggle datasets list -s dogs

Vous trouverez plus d'informations sur l'API et sur la manière de l'utiliser dans le site Web de la Commission européenne. documentation ici .

J'espère que cela vous aidera ! :)

0 votes

Merci beaucoup, c'était très utile !

0 votes

Une autre question : si le notebook est déconnecté ou si une autre raison se produit comme le temps mort de la VM pour le notebook, dans cette situation, dois-je retélécharger le jeu de données ou non ?

2 votes

Vous devrez retélécharger les données à chaque fois que votre VM redémarrera (tout comme la réinstallation de paquets). Ainsi, si elle se déconnecte et se reconnecte très rapidement, vous ne devriez pas avoir besoin de retélécharger les données. Mais si vous obtenez une nouvelle VM, par exemple après 90 minutes d'inactivité, vous devrez retélécharger ces données.

3voto

Madmint Points 5038

Je vous propose ce tutoriel pour utiliser l'API Kaggle sur Google Colab directement sans télécharger et mettre en ligne le jeu de données sur votre machine locale. Kaggle API + Colaboratoire

2voto

Prakash Gupta Points 31

Jetez un coup d'œil à ce .

Il utilise l'api officielle de kaggle derrière la scène, mais automatise le processus afin que vous n'ayez pas à retélécharger manuellement chaque fois que votre VM est enlevée. De plus, un autre problème auquel j'ai été confronté en utilisant l'API Kaggle directement sur Colab était le transfert fastidieux de la clé API Kaggle via Google Drive. La méthode ci-dessus automatise également cette opération.

Avertissement : je suis l'un des créateurs de Clouderizer.

1voto

Tout d'abord, lancez cette commande pour savoir où se trouve ce fichier colab, comment il s'exécute. enter image description here !ls -d $PWD/* Il montrera /content/data /content/gdrive /content/models En d'autres termes, votre répertoire courant est Root/content/. Votre répertoire de travail (pwd) est /content/. Donc lorsque vous faites !ls il affichera data gdrive models . Pour info, ! vous permet d'exécuter des commandes linux dans colab.

Google Drive continue de nettoyer le dossier /content. Par conséquent, chaque session où vous utilisez colab, les ensembles de données téléchargés, le fichier json de kaggle disparaîtront. C'est pourquoi il est important d'automatiser le processus, afin que vous puissiez vous concentrer sur l'écriture du code, et non sur la configuration de l'environnement à chaque fois.

Exécutez ceci dans le bloc de code colab comme exemple avec votre propre clé api. ouvrez le fichier kaggle.json. vous les trouverez.

# 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()

Ensuite, exécutez !ls à nouveau. Vous verrez toutes les données dont vous avez besoin. J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X