tfds y almacenamiento en la nube de Google

Google Cloud Storage (GCS) se puede usar con tfds por varias razones:

  • 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 verificar 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, debe decidir cómo desea autenticarse. 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)

Puede encontrar información detallada en la documentación de Google Cloud

Instrucciones simplificadas

Si ejecuta desde colab, puede autenticarse con su 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>

Uso de Google Cloud Storage para almacenar datos preprocesados

Normalmente, cuando usa conjuntos de datos de TensorFlow, los datos descargados y preparados se almacenarán en caché en un directorio local (por defecto, ~/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 varios equipos 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 anteriores)

Cuando usa tfds , puede establecer 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.

Acceso 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ía como una descarga normal de Internet.

Si el conjunto de datos requiere autenticación, use 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 de GCS, debería poder ejecutar el código de descarga de tfds.