Google Cloud Storage (GCS) peut être utilisé avec tfds pour plusieurs raisons :
- Stockage des données prétraitées
- Accéder aux ensembles de données contenant des données stockées sur GCS
Accès via le compartiment TFDS GCS
Certains ensembles de données sont disponibles directement dans notre bucket GCS gs://tfds-data/datasets/
sans aucune authentification :
- Si
tfds.load(..., try_gcs=False)
(par défaut), l'ensemble de données sera copié localement dans~/tensorflow_datasets
pendantdownload_and_prepare
. - Si
tfds.load(..., try_gcs=True)
, l'ensemble de données sera diffusé directement depuis GCS (download_and_prepare
sera ignoré).
Vous pouvez vérifier si un ensemble de données est hébergé sur le compartiment public avec tfds.is_dataset_on_gcs('mnist')
.
Authentification
Avant de commencer, vous devez décider de la manière dont vous souhaitez vous authentifier. Il existe trois options :
- pas d'authentification (c'est-à-dire accès anonyme)
- en utilisant votre compte Google
- en utilisant un compte de service (peut être facilement partagé avec d'autres membres de votre équipe)
Vous pouvez trouver des informations détaillées dans la documentation Google Cloud
Instructions simplifiées
Si vous exécutez depuis Colab, vous pouvez vous authentifier avec votre compte, mais en exécutant :
from google.colab import auth
auth.authenticate_user()
Si vous exécutez sur votre machine locale (ou dans une VM), vous pouvez vous authentifier avec votre compte en exécutant :
gcloud auth application-default login
Si vous souhaitez vous connecter avec un compte de service, téléchargez la clé du fichier JSON et définissez
export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>
Utiliser Google Cloud Storage pour stocker des données prétraitées
Normalement, lorsque vous utilisez TensorFlow Datasets, les données téléchargées et préparées seront mises en cache dans un répertoire local (par défaut ~/tensorflow_datasets
).
Dans certains environnements où le disque local peut être éphémère (un serveur cloud temporaire ou un notebook Colab ) ou où vous avez besoin que les données soient accessibles par plusieurs machines, il est utile de définir data_dir
sur un système de stockage cloud, comme un Google Cloud Storage (GCS). seau.
Comment?
Créez un compartiment GCS et assurez-vous que vous (ou votre compte de service) disposez des autorisations de lecture/écriture sur celui-ci (voir les instructions d'autorisation ci-dessus)
Lorsque vous utilisez tfds
, vous pouvez définir data_dir
sur "gs://YOUR_BUCKET_NAME"
ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")
Mises en garde :
- Cette approche fonctionne pour les ensembles de données qui utilisent uniquement
tf.io.gfile
pour l'accès aux données. Cela est vrai pour la plupart des ensembles de données, mais pas pour tous. - N'oubliez pas qu'accéder à GCS revient à accéder à un serveur distant et à diffuser des données à partir de celui-ci, vous pouvez donc encourir des frais de réseau.
Accéder aux ensembles de données stockés sur GCS
Si les propriétaires de l'ensemble de données autorisent l'accès anonyme, vous pouvez simplement exécuter le code tfds.load - et cela fonctionnera comme un téléchargement Internet normal.
Si l'ensemble de données nécessite une authentification, veuillez utiliser les instructions ci-dessus pour décider quelle option vous souhaitez (compte propre ou compte de service) et communiquer le nom du compte (c'est-à-dire e-mail) au propriétaire de l'ensemble de données. Une fois qu'ils vous ont permis d'accéder au répertoire GCS, vous devriez pouvoir exécuter le code de téléchargement tfds.