tfds y almacenamiento en la nube de Google

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:

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 su 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 en la nube temporal 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 seguir adelante 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.