tfds y Google Cloud Storage
Se puede usar Google Cloud Storage (GCS) con tfds por varios motivos:
Almacenamiento de datos preprocesados
Acceso a conjuntos de datos con datos almacenados en GCS
Acceder a través del depósito de GCS de TFDS
Algunos conjuntos de datos están disponibles directamente en nuestro depósito de 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
).
Se 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, debe decidir cómo quiere realizar la autenticación. Hay tres opciones:
sin autenticación (también conocido como acceso anónimo)
con su cuenta de Google
con 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 el código desde colab, puede realizar la autenticación con su cuenta, pero debe ejecutar:
Si ejecuta el código en su máquina local (o en VM), puede realizar la autenticación con su cuenta al ejecutar:
Si desea iniciar sesión con una cuenta de servicio, descargue la clave del archivo JSON y establezca
Usar Google Cloud Storage para almacenar datos preprocesados
Normalmente, cuando se usan conjuntos de datos de TensorFlow, los datos descargados y preparados se almacenan 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 un bloc de notas de Colab) o cuando se necesita que varias máquinas puedan acceder a los datos, es útil configurar data_dir
en un sistema de almacenamiento en la nube, como el depósito de Google Cloud Storage (GCS).
¿Cómo?
Cree un depósito de GCS y asegúrese de que usted (o su cuenta de servicio) tenga los permisos de lectura/escritura (consulte las instrucciones de autorización que se mencionan anteriormente)
Cuando usa tfds
, puede configurar data_dir
en "gs://YOUR_BUCKET_NAME"
Precauciones:
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 al acceder a GCS se accede a un servidor remoto y se transmiten 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, siga 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.