Construir tu propio modelo de reconocimiento de dígitos

Has llegado al ejercicio final del curso: ¡ya sabes todo lo que necesitas para construir un modelo preciso para reconocer dígitos manuscritos!

Ya hemos hecho la manipulación básica del conjunto de datos MNIST que se muestra en el vídeo, así que tienes X y y cargados y listos para modelarlos. Sequential y Dense de tensorflow.keras también están preimportados.

Para añadir un reto adicional, hemos cargado sólo 2500 imágenes, en lugar de las 60000 que verás en algunos resultados publicados. Los modelos de aprendizaje profundo funcionan mejor con más datos, sin embargo, también tardan más en entrenarse, especialmente cuando empiezan a ser más complejos.

Si tienes un ordenador con una GPU compatible con CUDA, puedes aprovecharla para mejorar el tiempo de cálculo. Si no tienes GPU, ¡no hay problema! Puedes configurar un entorno de aprendizaje profundo en la nube que pueda ejecutar tus modelos en una GPU. Aquí tienes una entrada del blog de Dan que explica cómo hacerlo - ¡consúltala después de completar este ejercicio! Es un gran paso siguiente mientras continúas tu viaje de aprendizaje profundo.

¿Listo para llevar tu aprendizaje profundo al siguiente nivel? Visita Advanced Deep Learning with Keras para ver cómo la API funcional de Keras te permite construir conocimiento de dominio para resolver nuevos tipos de problemas. Una vez que sepas utilizar la API funcional, echa un vistazo a Procesamiento de imágenes con Keras en Python para aprender aplicaciones específicas de Keras para imágenes.

Este ejercicio forma parte del curso

Introducción al Aprendizaje Profundo en Python

Ver curso

Instrucciones de ejercicio

  • Crea un objeto Sequential para iniciar tu modelo. Llama a este model.
  • Añade la primera capa oculta Dense de unidades 50 a tu modelo con activación 'relu'. Para estos datos, el input_shape es (784,).
  • Añade una segunda capa oculta Dense con unidades 50 y una función de activación 'relu'.
  • Añade la capa de salida. Tu función de activación debe ser 'softmax', y el número de nodos de esta capa debe ser el mismo que el número de salidas posibles en este caso: 10.
  • Compila model como has hecho con los modelos anteriores: Utilizando 'adam' como optimizer, 'categorical_crossentropy' para la pérdida, y metrics=['accuracy'].
  • Ajusta el modelo con X y y utilizando una validation_split de 0.3 y 10 épocas.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Create the model: model
model = ____

# Add the first hidden layer
____

# Add the second hidden layer
____

# Add the output layer
____

# Compile the model
____

# Fit the model
____