Skip to main content
29 noviembre, 2024

Keras Tutorial

29 noviembre, 2024

: Guía Completa para Iniciar en Deep Learning



Keras es una biblioteca de Python ampliamente utilizada para construir y entrenar modelos de machine learning, especialmente en el ámbito del deep learning. Desde su creación, se ha convertido en una de las herramientas más populares debido a su facilidad de uso y su capacidad para integrarse con otras bibliotecas como TensorFlow. En este tutorial, exploraremos los conceptos básicos de Keras, desde la instalación hasta la construcción de modelos, validación y predicción.

¿Qué es Keras?



Keras es una biblioteca de alto nivel para el desarrollo de modelos de deep learning que está diseñada para facilitar la creación de redes neuronales. Permite a los desarrolladores crear modelos de aprendizaje profundo de manera simple y rápida, utilizando sus componentes básicos: capas, modelos y optimizadores. Keras es modular, lo que significa que puedes combinar diferentes capas y modelos de manera flexible.

Instalación de Keras



Antes de empezar, necesitas tener Python instalado en tu sistema. Para instalar Keras, se recomienda usar pip. Podrás instalar Keras junto con TensorFlow, que es el backend predeterminado para Keras:

bash
pip install tensorflow


Esto instalará tanto TensorFlow como Keras, ya que Keras ahora forma parte de TensorFlow. También puedes verificar tu instalación ejecutando:

python
import keras
print(keras.version)


Estructura básica de un modelo en Keras



Un modelo en Keras se puede crear de dos maneras: secuencial y funcional. La forma más sencilla para principiantes es usar el modelo secuencial. A continuación, veremos cómo construir tu primer modelo usando el enfoque secuencial.

Creando un modelo secuencial



Un modelo secuencial es una pila lineal de capas. Por ejemplo, si deseas construir un modelo de clasificación de imágenes, puedes definirlo de la siguiente manera:

python
from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D

Crear el modelo secuencial


model = Sequential()

Añadir capas


model.add(Conv2D(32, kernelsize=(3, 3), activation='relu', inputshape=(28, 28, 1)))
model.add(MaxPooling2D(poolsize=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))


En este ejemplo, hemos construido un modelo simple de red neuronal convolucional (CNN) destinado a la clasificación de imágenes de 28×28 píxeles.

Compilación del modelo



Una vez que has definido tu modelo, debes compilarlo. Este paso implica elegir un optimizador, una función de pérdida y una métrica. Aquí tienes un ejemplo de cómo compilar el modelo:

python
model.compile(optimizer='adam', loss='categorical
crossentropy', metrics=['accuracy'])



  • optimizer: Este es el método que se utilizará para ajustar los pesos del modelo. Se recomienda utilizar adam para la mayoría de los problemas.

  • loss: La función de pérdida se usa para evaluar qué tan bien se está desempeñando el modelo. En el caso de clasificación múltiple, categoricalcrossentropy es una excelente opción.

  • metrics: Aquí especificamos que queremos rastrear la precisión del modelo durante el entrenamiento.



Entrenamiento del modelo



Para entrenar el modelo, necesitarás un conjunto de datos. A continuación, mostraremos cómo usar el conjunto de datos MNIST para el entrenamiento. Este conjunto contiene dígitos manuscritos del 0 al 9 y es ideal para principiantes.

Preparación de los datos



Primero, deberás cargar los datos. Keras facilita esto con su módulo de datos:

python
from keras.datasets import mnist
from keras.utils import to
categorical

Cargar los datos


(xtrain, ytrain), (xtest, ytest) = mnist.loaddata()

Normalizar los datos


x
train = xtrain.reshape((60000, 28, 28, 1)).astype('float32') / 255
x
test = xtest.reshape((10000, 28, 28, 1)).astype('float32') / 255

Convertir las etiquetas a categorías


y
train = tocategorical(ytrain, 10)
ytest = tocategorical(ytest, 10)


Entrenando el modelo



Ahora que tenemos nuestros datos listos, podemos entrenar nuestro modelo. Utilizaremos el método fit de Keras, que permite llevar a cabo el proceso de entrenamiento:

python
model.fit(x
train, ytrain, validationdata=(xtest, ytest), epochs=10, batchsize=32)



  • validationdata: Esto te permite ver cómo se desempeña el modelo en datos de prueba durante el entrenamiento.

  • epochs: El número de veces que el modelo pasará por todo el conjunto de entrenamiento.

  • batchsize: El número de muestras que se procesarán antes de actualizar el modelo.



Evaluación del modelo



Después del entrenamiento, es importante evaluar el rendimiento del modelo. Esto se puede hacer usando el método evaluate:

python
test
loss, testaccuracy = model.evaluate(xtest, ytest)
print(f'Test accuracy: {test
accuracy}')


Predicción con el modelo



Una vez que el modelo ha sido entrenado y evaluado, puedes hacer predicciones usando el método predict. Aquí te mostramos cómo hacerlo:

python
import numpy as np

predictions = model.predict(xtest)
predicted
classes = np.argmax(predictions, axis=-1)

Por ejemplo, predecir la clase de la primera imagen de prueba


print(f'Predicción para la primera imagen: {predictedclasses[0]}')


Guardar y cargar modelos



Keras permite guardar y cargar modelos fácilmente. Esto es útil si deseas almacenar un modelo entrenado para usarlo más tarde. Puedes guardar un modelo usando:

python
model.save('mi
modelo.h5')


Y cargarlo de la siguiente manera:

python
from keras.models import loadmodel

loaded
model = loadmodel('mimodelo.h5')


Conclusiones



Keras es una biblioteca poderosa que facilita el trabajo con redes neuronales y modelos de deep learning en general. Este tutorial ha cubierto los aspectos fundamentales para comenzar a trabajar con Keras, desde la instalación hasta la creación, entrenamiento y evaluación de un modelo básico.

A medida que te familiarices con Keras, puedes explorar más opciones avanzadas, como el uso de callbacks, la creación de modelos funcionales y la manipulación de pesos. Con su enfoque modular y su integración con TensorFlow, Keras es una herramienta esencial para cualquier científico de datos o ingeniero que desee adentrarse en el aprendizaje profundo. ¡Así que empieza a experimentar y a construir tus propios modelos!