Google Cloud Storage (GCS) se puede utilizar con tfds por varios motivos:
- Almacenamiento de datos preprocesados
- Acceder a conjuntos de datos que tienen datos almacenados en GCS
Acceso a través del depósito TFDS GCS
Algunos conjuntos de datos están disponibles directamente en nuestro depósito GCS gs://tfds-data/datasets/
sin ninguna autenticación:
- Si
tfds.load(..., try_gcs=False)
(predeterminado), el conjunto de datos se copiará localmente en~/tensorflow_datasets
durantedownload_and_prepare
. - Si
tfds.load(..., try_gcs=True)
, el conjunto de datos se transmitirá directamente desde GCS (se omitirádownload_and_prepare
).
Puede comprobar si un conjunto de datos está alojado en el depósito público con tfds.is_dataset_on_gcs('mnist')
.
Autenticación
Antes de comenzar, debes decidir cómo quieres autenticarte. Hay tres opciones:
- sin autenticación (también conocido como acceso anónimo)
- usando tu cuenta de Google
- usando una cuenta de servicio (se puede compartir fácilmente con otros miembros de su equipo)
Puedes encontrar información detallada en la documentación de Google Cloud.
Instrucciones simplificadas
Si ejecutas desde colab, puedes autenticarte con tu cuenta, pero ejecutando:
from google.colab import auth
auth.authenticate_user()
Si ejecuta en su máquina local (o en VM), puede autenticarse con su cuenta ejecutando:
gcloud auth application-default login
Si desea iniciar sesión con una cuenta de servicio, descargue la clave del archivo JSON y configure
export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>
Usar Google Cloud Storage para almacenar datos preprocesados
Normalmente, cuando usa TensorFlow Datasets, los datos descargados y preparados se almacenarán en caché en un directorio local (de forma predeterminada ~/tensorflow_datasets
).
En algunos entornos donde el disco local puede ser efímero (un servidor temporal en la nube o una computadora portátil Colab ) o necesita que varias máquinas puedan acceder a los datos, es útil configurar data_dir
en un sistema de almacenamiento en la nube, como Google Cloud Storage (GCS). balde.
¿Cómo?
Cree un depósito de GCS y asegúrese de que usted (o su cuenta de servicio) tenga permisos de lectura/escritura (consulte las instrucciones de autorización más arriba)
Cuando usas tfds
, puedes configurar data_dir
en "gs://YOUR_BUCKET_NAME"
ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")
Advertencias:
- Este enfoque funciona para conjuntos de datos que solo usan
tf.io.gfile
para acceder a los datos. Esto es cierto para la mayoría de los conjuntos de datos, pero no para todos. - Recuerde que acceder a GCS es acceder a un servidor remoto y transmitir datos desde él, por lo que puede incurrir en costos de red.
Acceder a conjuntos de datos almacenados en GCS
Si los propietarios del conjunto de datos permitieron el acceso anónimo, puede continuar y ejecutar el código tfds.load, y funcionará como una descarga normal de Internet.
Si el conjunto de datos requiere autenticación, utilice las instrucciones anteriores para decidir qué opción desea (cuenta propia o cuenta de servicio) y comunique el nombre de la cuenta (también conocido como correo electrónico) al propietario del conjunto de datos. Después de que le permitan acceder al directorio GCS, debería poder ejecutar el código de descarga de tfds.