Este tutorial es el segundo de una serie relacionada con TensorFlow. Si quieres puedes empezar por el principio:
- Cómo se instala TensorFlow y Python en MS Visual Studio. Aquí trato una revisión de los ejemplos de TensorFlow con código en MS Visual Studio Code y Notebooks Jupyter en colab.
Antes de empezar a hacer cosas propias con una tecnología, creo que es mejor simplemente seguir las guías oficiales, adquirir porciones reutilizadas de código y leerse los manuales para coger contexto.
Casi seguro que lo que luego tengamos que hacer inicialmente, será una combinación de ideas y ejemplos existentes.
Uno de los primeros ejemplos que podemos encontrar es una clasificación de imágenes de moda: en base a una catalogación amplia inicial (aprendizaje guiado) podemos obtener la probabilidad de pertenencia a una etiqueta en la catalogación de imágenes nuevas. El tutorial original lo podéis encontrar en este enlace.
El tutorial tiene multitud de explicaciones (mejor leerlas) y sólo me voy a centrar en la configuración del entorno y la visualización en las herramientas disponibles (y extensiones).
Antes de utilizar un ejemplo más complejo, vamos a utilizar uno simple para asegurarnos que toda la instalación de nuestro entorno en MS Studio y TensorFlow funcionan.
En MS Visual Studio Code simplemente lo ejecutamos.
Ahora vamos a utilizar el ejemplo de clasificación que nos hemos descargado (o copiado y pegado porciones).
La primera porción de código descarga una colección de imágenes y etiquetas que cualifican esas imágenes.
Lo interesante de este ejemplo es verificar que las comunicaciones funcionan correctamente (se descargan los ficheros de imágenes). Como podemos comprobar, nos da un error de certificados.
Si revisamos la carpeta de instalación de Python (recordar que es la 3.8 aunque haya más modernas), veremos que hay un script para instalar los certificados necesario.
Simplemente lo ejecutamos. Aquí tendría un poquito de cuidado si no funcionase con los entornos virtuales y los ámbitos. A mí, ejecutado globalmente me ha funcionado (no me he parado a investigar más).
Vemos que funcione correctamente.
Ampliando el ejemplo podemos verificar que pinta correctamente la imagen de entrenamiento (con índice) 0.
Ampliamos la funcionalidad y podemos comprobar una rejilla de imágenes de prueba.
Este es el aspecto que tiene la pantalla de salida.
Lo siguiente que hacemos es entrenar el modelo diciendo que las imágenes corresponden a las etiquetas para que el sistema infiera.
Los epochs (ver https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9) o pasadas del dataset por la red neuronal están limitadas a 10.
Los ejemplos los podemos seguir ejecutando en nuestra plataforma local (MS Visual Studio) o utilizar los notebooks de Jupyter que son una mezcla de documentación y de código. Podéis descargarlo aquí.
Dentro de nuestro entornos podemos instalar extensiones, como Anaconda (u otros), para utilizar el fichero Jupyter. El fichero puede utilizarse en local o en remoto.
Y al abrir el fichero se formatea correctamente en pequeñas células. Ojo que tenemos que ejecutarlo secuencialmente para que tenga sentido (cada célula) dentro del contexto.
Dentro de los notebooks están las celdas (porciones) donde podemos ver los datos directamente. También podemos cambiar los valores para ver qué sucede.
El sistema nos va pidiendo la instalación de las dependencias adecuadas.
Esto nos permite hacer visualizaciones intermedias de los resultados simplemente invocando las variables.
También recordad que no es necesario instalar nada para correr y modificar los ejemplos, ya que se puede usar colab (de Google) para visualizar los ficheros Jupyter.
Simplemente tenéis que seguir este enlace.
Con esto ya tenemos los conocimientos para manipular los ejemplos tanto en la herramienta de código cómo en las plataformas interactivas. Lo siguiente será seguir los tutoriales para entender todos los conceptos involucrados: atributos, etiquetas, modelos, funciones de perdida, etc.
Si quieres, puedes continuar con el siguiente tutorial: Principios de aprendizaje automático supervisado.