Construyendo redes neuronales con Keras y TensorFlow

20.4. Construyendo redes neuronales con Keras y TensorFlow

El desarrollo de redes neuronales se ha vuelto más accesible con la introducción de bibliotecas de alto nivel como Keras, que opera sobre TensorFlow, una potente biblioteca de aprendizaje automático. En este capítulo, exploraremos cómo construir modelos secuenciales en Keras, permitiendo la creación de redes neuronales profundas de una manera simplificada y eficiente.

Introducción a Keras

Keras es una API de red neuronal de alto nivel escrita en Python que es capaz de ejecutarse sobre TensorFlow, CNTK o Theano. Fue desarrollado centrándose en la experimentación rápida y la productividad, permitiendo que las ideas se transformen en resultados con un retraso mínimo. La simplicidad y facilidad de uso de Keras la han convertido en una de las herramientas más populares entre los científicos de datos y los ingenieros de aprendizaje automático.

Modelos secuenciales en Keras

Un modelo secuencial en Keras es una pila lineal de capas. Es el tipo de modelo más simple y adecuado para la mayoría de los problemas de aprendizaje profundo. Con él, puedes crear una red neuronal agregando capas una tras otra de forma secuencial.

Instalación de Keras y TensorFlow

Antes de comenzar a construir un modelo, debe instalar Keras y TensorFlow. Esto se puede hacer fácilmente usando pip, el administrador de paquetes de Python:


instalación de pip tensorflow
pip instalar keras

Después de la instalación, puedes importar Keras y verificar la versión de TensorFlow para asegurarte de que todo esté configurado correctamente:


importar tensorflow como tf
importar keras
imprimir(tf.__versión__)
imprimir(keras.__versión__)

Construyendo un modelo secuencial

Para construir un modelo secuencial en Keras, comience importando la clase Sequential y agregando capas usando el método add(). Construyamos un modelo simple para la clasificación de imágenes:


desde keras.models importar secuencial
desde keras.layers importe Dense, Flatten, Conv2D, MaxPooling2D

# Inicializar el modelo secuencial
modelo = Secuencial()

# Agregar una capa convolucional
model.add(Conv2D(32, (3, 3), activación='relu', input_shape=(28, 28, 1)))

# Agregar una capa de agrupación
modelo.add(MaxPooling2D((2, 2)))

# Aplanar la salida para proporcionar entrada a las capas densas
model.add(Aplanar())

# Agrega una capa densa (completamente conectada)
model.add(Denso(100, activación='relu'))

# Agregar capa de salida
model.add(Denso(10, activación='softmax'))

Este modelo consta de una capa convolucional seguida de una capa de agrupación, una capa de aplanamiento y dos capas densas. La última capa densa utiliza la función de activación softmax para obtener probabilidades de clasificación para cada una de las 10 clases posibles.

Compilando el modelo

Después de construir el modelo, es necesario compilarlo. Esto se hace usando el método compile(), donde defines la función de pérdida, el optimizador y las métricas de evaluación:


model.compile(optimizador='adam',
              pérdida = 'categorical_crossentropy',
              métricas = ['precisión'])

La función de pérdida categorical_crossentropy se usa comúnmente en problemas de clasificación multiclase. El optimizador adam es una opción popular debido a su eficiencia y ajuste automático de la tasa de aprendizaje.

Entrenando el modelo

Con el modelo compilado, puedes entrenarlo usando el método fit(). Deberá proporcionar los datos de entrenamiento, las etiquetas, la cantidad de épocas y el tamaño del lote:


historial = model.fit(train_data, train_labels, épocas=10, lote_size=32)

El objeto history contiene información sobre el proceso de entrenamiento, como la pérdida y la precisión en cada época, que se puede utilizar para análisis y ajuste del modelo.

Evaluar y guardar el modelo

Después del entrenamiento, puede evaluar el rendimiento del modelo en los datos de prueba utilizando el método evaluate():


test_loss, test_acc = model.evaluate(test_data, test_labels)
print('Precisión de la prueba:', test_acc)

Si está satisfecho con el rendimiento del modelo, puede guardarlo usando el método save(), lo que le permitirá cargarlo más tarde para hacer predicciones o continuar entrenando:


modelo.save('mi_modelo.h5')

Conclusión

Construir redes neuronales con Keras y TensorFlow es un proceso sencillo y eficiente. La API secuencial de Keras le permite crear modelos capa por capa, mientras que TensorFlow proporciona la solidez y escalabilidad necesarias para entrenar modelos complejos. con la portadaCapaz de compilar, entrenar, evaluar y guardar modelos fácilmente, Keras es una herramienta indispensable para cualquier persona interesada en el aprendizaje profundo con Python.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la función de activación utilizada en la última capa densa del modelo secuencial construido con Keras, según el texto?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Construyendo redes neuronales con Keras y TensorFlow: trabajando con capas densas, convolucionales y recurrentes

Siguiente página del libro electrónico gratuito:

72Construyendo redes neuronales con Keras y TensorFlow: trabajando con capas densas, convolucionales y recurrentes

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.