Cuando trabajes con datasets encontrarás bases de datos ya generadas y listas para consumo, pero eventualmente te toparás con la necesidad de crear tus propios datos, por lo que deberás encontrar una manera de cargarlos.

En el momento que cargas datos a memoria, lo haces directamente a la memoria RAM del sistema, por lo que si cargas un dataset pesado de golpe, es probable que termines colapsando tu entorno de trabajo por saturación de recursos.

Para evitar este problema, se crean los generadores, una estructura de datos que generará datos solo si es recorrida, optimizando memoria.

Descargando el dataset de lenguaje de señas

Descargaremos el repositorio desde GCP.

!wget --no-check-certificate <https://storage.googleapis.com/platzi-tf2/sign-language-img.zip> \\
    -O /tmp/sign-language-img.zip

Descomprimiremos el archivo, para esto usaremos los módulos de os y zipfile.

import os
import zipfile

local_zip = "/tmp/sign-language-img.zip"
zip_ref = zipfile.ZipFile(local_zip, "r")
zip_ref.extractall("/tmp/sign-language-img")
zip_ref.close()

La estructura del dataset constará en 2 directorios principales: Test y Train, donde para cada clase (letra en señas) tendremos un directorio con sus respectivos ejemplos.

sign-language-image/
├── Test/
│   └── A-Z/
│       └── examples.jpg
└── Train/
    └── A-Z/
        └── examples.jpg