TFDS e Google Cloud Storage

Google Cloud Storage (GCS) può essere utilizzato con tfds per diversi motivi:

  • Memorizzazione dei dati preelaborati
  • Accesso ai set di dati che contengono dati archiviati su GCS

Accesso tramite il bucket GCS TFDS

Alcuni set di dati sono disponibili direttamente nel nostro bucket GCS gs://tfds-data/datasets/ senza alcuna autenticazione:

  • Se tfds.load(..., try_gcs=False) (impostazione predefinita), il set di dati verrà copiato localmente in ~/tensorflow_datasets durante download_and_prepare .
  • Se tfds.load(..., try_gcs=True) , il set di dati verrà trasmesso direttamente da GCS ( download_and_prepare verrà ignorato).

Puoi verificare se un set di dati è ospitato sul bucket pubblico con tfds.is_dataset_on_gcs('mnist') .

Autenticazione

Prima di iniziare, dovresti decidere come autenticarti. Ci sono tre opzioni:

  • nessuna autenticazione (ovvero accesso anonimo)
  • utilizzando il tuo account Google
  • utilizzando un account di servizio (può essere facilmente condiviso con altri membri del tuo team)

Puoi trovare informazioni dettagliate nella documentazione di Google Cloud

Istruzioni semplificate

Se esegui da Colab, puoi autenticarti con il tuo account, ma eseguendo:

from google.colab import auth
auth.authenticate_user()

Se esegui sul tuo computer locale (o in VM), puoi autenticarti con il tuo account eseguendo:

gcloud auth application-default login

Se desideri accedere con un account di servizio, scarica la chiave del file JSON e imposta

export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>

Utilizzo di Google Cloud Storage per archiviare dati preelaborati

Normalmente quando si utilizza TensorFlow Datasets, i dati scaricati e preparati verranno memorizzati nella cache in una directory locale (per impostazione predefinita ~/tensorflow_datasets ).

In alcuni ambienti in cui il disco locale può essere effimero (un server cloud temporaneo o un notebook Colab ) o è necessario che i dati siano accessibili da più macchine, è utile impostare data_dir su un sistema di archiviazione cloud, come Google Cloud Storage (GCS) secchio.

Come?

Crea un bucket GCS e assicurati che tu (o il tuo account di servizio) disponiate delle autorizzazioni di lettura/scrittura (vedi le istruzioni di autorizzazione sopra)

Quando usi tfds , puoi impostare data_dir su "gs://YOUR_BUCKET_NAME"

ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")

Avvertenze:

  • Questo approccio funziona per i set di dati che utilizzano solo tf.io.gfile per l'accesso ai dati. Questo è vero per la maggior parte dei set di dati, ma non per tutti.
  • Ricorda che accedere a GCS significa accedere a un server remoto e trasmettere dati da esso, quindi potresti dover sostenere costi di rete.

Accesso ai set di dati archiviati su GCS

Se i proprietari del set di dati consentono l'accesso anonimo, puoi semplicemente procedere ed eseguire il codice tfds.load e funzionerà come un normale download da Internet.

Se il set di dati richiede l'autenticazione, utilizza le istruzioni sopra per decidere quale opzione desideri (account proprio o account di servizio) e comunica il nome dell'account (ovvero l'e-mail) al proprietario del set di dati. Dopo averti consentito l'accesso alla directory GCS, dovresti essere in grado di eseguire il codice di download di tfds.