web-dev-qa-db-fra.com

charger un jeu de données d'image (dossier ou Zip) situé dans Google Drive vers Google Colab?

J'ai un ensemble de données d'images sur mon Google Drive. J'ai cet ensemble de données à la fois dans une version compressée. Zip et un dossier non compressé.

Je souhaite former un CNN avec Google Colab. Comment puis-je dire à Colab où se trouvent les images dans mon Google Drive?

  1. Le tutoriel officiel ne m’aide pas car il montre seulement comment télécharger des fichiers individuels, pas un dossier contenant 10000 images comme dans mon cas.

  2. Puis j'ai trouvé cette réponse, mais la solution n'est pas finie, ou du moins je ne comprenais pas comment procéder à partir de la décompression. Malheureusement, je suis incapable de commenter cette réponse car je n'ai pas assez de "points de superposition"

  3. J'ai aussi trouvé ce fil, mais ici toute la réponse utilise d'autres outils, tels que Github ou dropbox

J'espère que quelqu'un pourra m'expliquer ce que je dois faire ou me dire où trouver de l'aide.

Edit1: 

J'ai trouvé encore un autre fil posant la même question que la mienne: Malheureusement, sur les 3 réponses, deux font référence à Kaggle, que je ne connais pas et que je n'utilise pas. La troisième réponse fournit deux liens. Le premier lien fait référence au 3ème thread que j'ai lié et le second lien explique uniquement comment télécharger des fichiers individuels manuellement.

6
charel-f

Pour mettre à jour la réponse. Vous pouvez dès maintenant le faire depuis Google Colab

# Load the Drive helper and mount
from google.colab import drive

# This will Prompt for authorization.
drive.mount('/content/drive')

!ls "/content/drive/My Drive"

Documentation Google

7

Comme mentionné par @yl_low ici

Étape 1:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse Fuse

Étape 2:

from google.colab import auth
auth.authenticate_user()

Étape 3:

from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

Les étapes 2 et 3 exigeront à la fois le code de vérification fourni par les URL.

Étape 4:

!mkdir -p drive
!google-drive-ocamlfuse drive

Étape 5:

print('Files in Drive:')
!ls drive/
6
VeilEclipse

Les autres réponses sont excellentes, mais elles nécessitent à chaque fois une authentification dans Google Drive, ce qui n'est pas très confortable si vous souhaitez utiliser votre ordinateur de haut en bas.

J'avais le même besoin, je voulais télécharger un seul fichier Zip contenant un jeu de données de Drive vers Colab. J'ai préféré obtenir le lien partageable de ce fichier et exécuter la cellule suivante (remplacez drive_url par votre lien partagé):

import urllib

drive_url = 'https://drive.google.com/uc?export=download&id=1fBVMX66SlvrYa0oIau1lxt1_Vy-XYZWG'
file_name = 'downloaded.Zip'

urllib.request.urlretrieve(drive_url, file_name)
print('Download completed!')
1
RomRoc