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.
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