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
durantedownload_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.