• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

5 – Clasificación con Redes Neuronales

Lección 5 del curso PyTorch Nivel Básico.

En la lección anterior vimos cómo realizar la carga de datos en PyTorch, que involucra la creación de un dato tipo «Dataset» seguida del uso de un «Dataloader». Esta es la lógica que usualmente tendremos que seguir al momento de alimentar un modelo de Deep Learning en Pytorch.

Así que en este punto ya estamos listos para ver cómo usar PyTorch para implementar diferentes tipos de modelos de Deep Learning. Entonces, en esta lección veremos cómo crear, entrenar, validar y generar predicciones con una Red Neuronal en PyTorch para una tarea de clasificación.

En particular, veremos cómo implementar una Red Neuronal capaz de clasificar imágenes que contengan dígitos escritos a mano en una de 10 posibles categorías (del 0 al 9). Y con este sencillo ejemplo tendremos claro el procedimiento que tendremos que llevar a cabo al momento de entrenar modelos de PyTorch independientemente de su complejidad.

Es importante tener varios conceptos asociados a la creación y entrenamiento de Redes Neuronales que hemos visto en detalle en el curso Fundamentos de Deep Learning con Python. En particular, sugiero revisar estas lecciones:

  • El algoritmo del Gradiente Descendente
  • La entropía cruzada
  • Las funciones de activación
  • Los algoritmos de forward y backward propagation para el entrenamiento de una Red Neuronal
  • La introducción a las Redes Neuronales

A continuación veremos cómo aplicar todos estos conceptos de forma práctica para implementar la Red Neuronal en mención.

Comencemos hablando en detalle del problema a resolver y veamos además cómo realizar la lectura y preparación del set de datos:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Bien. En esta primera parte de la lección vimos cómo realizar la lectura del set de datos original y cómo convertirlo en un «Dataset» de PyTorch, realizando a la vez dos transformaciones: el escalamiento de los pixeles de cada imagen y su redimensionamiento a vectores de 784 elementos.

Veamos ahora el elemento central de esta lección, es decir la creación, entrenamiento y validación de la Red Neuronal:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, la creación de la Red Neuronal (y, en general, de cualquier modelo de Deep Learning de PyTorch) implica la creación de una sub-clase (hija de la clase «nn.Module») en donde definiremos la arquitectura del modelo. Esta sub-clase debe contener dos métodos: «init()» (que contendrá como tal la arquitectura) y «forward()» (que definirá la manera como el modelo generará predicciones).

Posteriormente, definimos los hiper-parámetros del modelo (como por ejemplo la tasa de aprendizaje, el tamaño del lote y el número de iteraciones de entrenamiento), creamos el «Dataloader» y posteriormente creamos instancias de la función de pérdida y del optimizador.

Y luego, escribimos las funciones para realizar el entrenamiento y la validación del modelo, que luego usaremos en un bloque «for» para entrenar y validar nuestro modelo de forma iterativa.

Así que al final de este procedimiento tendremos una Red Neuronal que logra un desempeño bastante aceptable al momento de clasificar los dígitos presentes en las imágenes del set de datos (exactitud cercana al 91%).

Con esto, lo único que nos resta es tomar la Red Neuronal que acabamos de entrenar para generar predicciones sobre imágenes que no ha visto previamente:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

¡Perfecto! Y con este ejemplo detallado ya hemos visto todos los pasos que usualmente tendremos que llevar a cabo al momento de crear, entrenar, validar y poner a prueba una Red Neuronal para una tarea de clasificación en PyTorch.

Y lo más importante de todo esto es que la misma lógica que acabamos de ver se puede utilizar para cualquier modelo de Deep Learning que queramos desarrollar.

Así que teniendo claro todo esto, en la próxima lección tomaremos este procedimiento como punto de partida para resolver una tarea de regresión usando Redes Neuronales en PyTorch.

Todas las lecciones del curso PyTorch Nivel Básico

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }