Ici, nous allons voir comment charger des fichiers d’un drive public sur Google Colab, sans clé d’accès et sans se connecter à son drive.
Lorsqu’on fait du Machine Learning sur Jupyter Notebook et Google Colab on est amener à charger des fichiers sur notre session. On peut les importer en local lorsqu’on travaille seul mais dès qu’on travaille à plusieurs se pose la question du chargement des données.
Ces données peuvent être très volumineuses surtout quand il s’agit de modèles pré-entraînés ou de checkpoints.
Nombreux sont ceux qui stock ces fichiers sur Google Drive ou d’autres plateforme de stockage. Cela permet de gagner du temps et de l’espace sur son disque local.
Python nous donne la possibilité de charger ce type de fichiers stocker sur le cloud directement sur notre session que ces fichiers soit en privée, au sein d’une équipe, ou en public, accessible à tous.
Plus besoin de télécharger soi-même des modèles, Python le fait pour nous !
Nous allons voir dans cet article comment faire !
Charger les fichiers de son répertoire Google Drive
Google Colab possède une librairie permettant d’importer son propre Drive:
from google.colab import drive
drive.mount('/content/drive')
Après avoir exécuter le code, Python nous donne un lien sur lequel trouver notre clé d’accès.
Il suffit d’entrer la clé dans le champs correspondant pour avoir accès a l’ensemble des fichiers de notre Drive sur notre session. Ce champs devrait être comme cela:
C’est une solution facile si l’on veut accéder aux fichiers de son drive mais qu’en est-il des fichiers d’un répertoire public auquel on voudrait accéder sans avoir la clé d’accès ?
Le problème peut se poser, surtout s’il l’on travail en collaboration avec d’autre qui n’ont pas accès au mot de passe de notre drive ou si l’on veut rendre public notre algorithme de Machine Learning tout frais sorti du four !
Ne vous inquiétez pas, il y a une solution pour charger des fichiers drive public ! Et ça marche même pour les gros fichiers !
Charger les fichiers d’un répertoire public Google Drive
Google Colab permet d’utiliser des commandes Shell comme pip, ls ou encore wget.. c’est ce dernier qui nous intéresse 😉
On va utiliser wget pour charger le fichier d’un répertoire public de Google Drive que l’on veut mais avant ça il faut qu’on récupère l’iD de ce fichier.
Pour ça, il faut aller sur le lien Drive où se trouve le fichier par exemple celui-ci.
Puis faire un clic droit sur le fichier qui nous intéresse et cliquer sur Obtenir le lien, ici:
Au fait, si ton objectif est d'apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.
7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :
- Planifie ton apprentissage
- Structure tes projets
- Développe tes algorithmes d’Intelligence Artificielle
J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.
Pour y accéder, clique ici :
À présent, on peut revenir à ce que je mentionnais précédemment.
Une fois fait vous devriez obtenir un lien comme celui-ci: ‘https://drive.google.com/file/d/1ML-Rpeaftox3z7b1GThUZtl1Ql_lGUrb/view?usp=sharing’
L’iD que vous devez récupérer ce situe entre ‘https://drive.google.com/file/d/’ et ‘/view?usp=sharing’.
Dans notre cas l’iD est: 1ML-Rpeaftox3z7b1GThUZtl1Ql_lGUrb
Ensuite, selon la taille du fichier, nous avons deux options :
Avec des fichiers peu volumineux
On utilise la commande:
!wget -q --show-progress --no-check-certificate 'https://docs.google.com/uc?export=download&id=iD' -O Nom_fichier_sortie
Avec:
- iD: l’iD du fichier
- Nom_fichier_sortie: le nom que l’on veut donner fichier que l’on aura téléchargé avec l’extension associée(ex: .txt, .png, .pdf, .zip, .tar, … )
Dans notre cas:
!wget q --show-progress --no-check-certificate 'https://docs.google.com/uc?export=download&id=1ML-Rpeaftox3z7b1GThUZtl1Ql_lGUrb' -O fichier.tar
Avec des fichiers volumineux
On utilise la commande:
!wget -q --show-progress --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=iD' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=iD" -O Nom_fichier_sortie && rm -rf /tmp/cookies.txt
Avec:
- iD: l’iD du fichier
- Nom_fichier_sortie: le nom que l’on veut donner fichier que l’on aura téléchargé avec l’extension associée(ex: .txt, .png, .pdf, .zip, .tar, … )
Dans notre cas:
!wget -q --show-progress --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1ML-Rpeaftox3z7b1GThUZtl1Ql_lGUrb' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1ML-Rpeaftox3z7b1GThUZtl1Ql_lGUrb" -O fichier.tar && rm -rf /tmp/cookies.txt
Tu as réussi à uploader un fichier public sur ton notebook.
Grâce à ça tu pourras sûrement entraîner un réseau de neurones géant ! 🐼
Aujourd’hui, c’est grâce au Deep Learning que les leaders de la tech peuvent créer les Intelligences Artificielles les plus puissantes.
Si tu veux approfondir tes connaissances dans le domaine, tu peux accéder à mon Plan d’action pour Maîtriser les Réseaux de neurones.
Un programme de 7 cours gratuits que j’ai préparé pour te guider dans ton parcours pour apprendre le Deep Learning.
Si ça t’intéresse, clique ici :
sources :
- Medium
- Photo by David Marcu on Unsplash
Un dernier mot, si tu veux aller plus loin et apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.
7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :
- Planifie ton apprentissage
- Structure tes projets
- Développe tes algorithmes d’Intelligence Artificielle
J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.
Pour y accéder, clique ici :