13
votes

Impossible de trouver le fichier kaggle.json dans google colab

J'essaie de télécharger les données de défi de localisation d'objets kaggle imagenet dans google colab afin de pouvoir les utiliser pour entraîner mon modèle. Kaggle utilise une API pour un accès facile et rapide à leurs ensembles de données. ( https://github.com/Kaggle/kaggle-api ) Cependant, lors de l'appel de la commande "kaggle competitions download -c imagenet-object-localization-challenge" dans google colab, il ne trouve pas le fichier kaggle.json qui contient mon nom d'utilisateur et ma clé API.

Je n'ai pas eu ce problème sur mon mac lors de l'exécution d'un notebook Jupyter, mais comme je souhaite utiliser le GPU de Google pour mon modèle, j'ai commencé à utiliser google colab. Étant donné que l'API kaggle s'attend à ce que le nom d'utilisateur et la clé api soient dans un fichier kaggle.json situé dans un répertoire .kaggle, j'ai d'abord créé le répertoire .kaggle, puis le fichier kaggle.json, dans lequel j'ai écrit mon nom d'utilisateur et mon api- key (L'exemple ci-dessous n'affiche pas mon nom d'utilisateur et ma clé API). J'ai ensuite essayé de configurer le chemin d'accès à mon fichier json pour que kaggle l'utilise lors de l'appel de la commande de téléchargement kaggle.

!kaggle competitions download -c imagenet-object-localization-challenge
os.chdir('/content/competitions/imagenet-object-localization-challenge')
for file in os.listdir():
    zip_ref = zipfile.ZipFile(file, 'r')
    zip_ref.extractall()
    zip_ref.close()

Cependant, lors de l'exécution de la dernière commande, j'ai eu l'erreur:

IOError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.

Mon objectif était d'utiliser les commandes suivantes pour obtenir l'ensemble de données de kaggle:

!pip install kaggle

!mkdir .kaggle
!touch .kaggle/kaggle.json

api_token = {"username":"username","key":"api-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

Je ne comprends pas pourquoi l'API kaggle ne trouve pas mon fichier json. Comment puis-je utiliser l'API dans google colab?


0 commentaires

3 Réponses :


7
votes

Comme le dit l'erreur, vous devez mettre kaggle.json au bon endroit.

Essayer:

!mv .kaggle /root/

Ensuite, exécutez à nouveau votre code.


0 commentaires

6
votes

Selon la documentation de l' api de kaggle, l'emplacement où json recherche les informations d'identification est ~/.kaggle/kaggle.json car l'environnement google colab est basé sur Linux. Dans votre extrait de code, vous essayez de configurer le paramètre de path , mais il n'est pas habitué à rechercher des informations d'identification json:

- chemin: dossier dans lequel les fichiers seront téléchargés, par défaut le répertoire de travail actuel

Donc, l'extrait de code complet pour l'environnement google colab serait:

!kaggle datasets download -d datamunge/sign-language-mnist

Et puis certains appels d'API comme

!mkdir ~/.kaggle
!touch ~/.kaggle/kaggle.json

api_token = {"username":"username","key":"api-key"}

import json

with open('/root/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)

!chmod 600 ~/.kaggle/kaggle.json


0 commentaires

0
votes

Dans le cas où vous êtes un utilisateur Windows, déplacez votre kaggle.json dans le dossier .kaggle, afin de pouvoir le trouver à la racine de votre système (qui se trouve dans votre dossier de nom d'utilisateur).


0 commentaires