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?
3 Réponses :
Comme le dit l'erreur, vous devez mettre kaggle.json au bon endroit.
Essayer:
!mv .kaggle /root/
Ensuite, exécutez à nouveau votre code.
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
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).