Keras es una de las bibliotecas de aprendizaje profundo más populares en Python. Es una interfaz de alto nivel para TensorFlow, CNTK y Theano que facilita la creación y entrenamiento de redes neuronales. En este tutorial básico de Keras, aprenderás a construir y entrenar una red neuronal utilizando esta biblioteca.
Paso 1: Instalación de Keras
Antes de comenzar, primero debes asegurarte de tener instalada la biblioteca de Keras en tu entorno de Python. Puedes instalar Keras utilizando pip, el administrador de paquetes de Python. Simplemente ejecuta el siguiente comando en tu terminal:
pip install keras
Paso 2: Importar las bibliotecas necesarias
Una vez que tengas Keras instalado, el siguiente paso es importar las bibliotecas necesarias en tu script de Python. Para crear y entrenar una red neuronal con Keras, necesitarás importar keras
y numpy
, que es una biblioteca de Python para el cálculo numérico. También es útil importar otras bibliotecas como matplotlib
para visualización y sklearn
para dividir el conjunto de datos en entrenamiento y prueba.
import keras
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
Paso 3: Cargar y preprocesar los datos
Para este tutorial, utilizaremos un conjunto de datos de dígitos escritos a mano llamado MNIST. Este conjunto de datos contiene imágenes de dígitos del 0 al 9 escritos a mano, y el objetivo es construir un modelo que pueda identificar qué dígito se muestra en la imagen.
Keras proporciona una función conveniente para cargar el conjunto de datos MNIST. Puedes cargar los datos de la siguiente manera:
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
Una vez que hayas cargado los datos, es importante preprocesarlos antes de entrenar la red neuronal. En este caso, normalizaremos las imágenes dividiendo los valores de píxeles por 255 (el valor máximo de píxel). También reformatearemos las imágenes para que tengan la forma (número de imágenes, ancho de la imagen, altura de la imagen, número de canales)
.
x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
También convertiremos las etiquetas de las clases en formato one-hot encoding. Esto significa que cada etiqueta se convertirá en un vector binario donde un valor es 1 y el resto son 0.
from keras.utils import to_categorical
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
Paso 4: Construir el modelo de la red neuronal
Ahora que hemos cargado y preprocesado los datos, es hora de construir el modelo de nuestra red neuronal. En este ejemplo, utilizaremos un modelo secuencial de Keras, que es una pila lineal de capas neuronales.
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
En este modelo, hemos utilizado capas convolucionales para extraer características de las imágenes, seguidas de capas de pooling para reducir la dimensionalidad. Luego hemos aplanado las características extraídas para alimentarlas a la capa de salida, que tiene 10 neuronas correspondientes a las 10 clases de dígitos.
Paso 5: Compilar y entrenar el modelo
Una vez que hayas construido el modelo, es importante compilarlo antes de entrenarlo. Durante la compilación, debes especificar la función de pérdida, el optimizador y las métricas que se utilizarán para evaluar el rendimiento del modelo.
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Después de compilar el modelo, puedes entrenarlo utilizando el método fit
de Keras. Especifica el conjunto de datos de entrenamiento, el número de épocas y el tamaño del lote.
model.fit(x_train, y_train, epochs=5, batch_size=128)
Paso 6: Evaluar el rendimiento del modelo
Una vez que hayas entrenado el modelo, es importante evaluar su rendimiento en un conjunto de datos de prueba. Puedes hacerlo utilizando el método evaluate
de Keras.
loss, accuracy = model.evaluate(x_test, y_test)
print(f'Loss: {loss}, Accuracy: {accuracy}')
También puedes hacer predicciones en un conjunto de datos de prueba utilizando el método predict
.
predictions = model.predict(x_test)
Paso 7: Visualización de resultados
Una vez que hayas evaluado el rendimiento del modelo, es útil visualizar las predicciones para comprender mejor cómo se comporta el modelo en datos de prueba.
for i in range(10):
plt.imshow(x_test[i].reshape(28, 28), cmap='gray')
plt.title(f'Predicted: {np.argmax(predictions[i])}, Actual: {np.argmax(y_test[i])}')
plt.show()
¡Y eso es todo! Has completado este tutorial básico de Keras, donde has aprendido a construir, entrenar y evaluar una red neuronal utilizando esta biblioteca popular en Python. Ahora estás listo para explorar más complejidades en el mundo del aprendizaje profundo con Keras. ¡Buena suerte!
🔥🔥Academia Online🔥🔥: https://cursos.codificandobits.com/
🔥🔥Asesorías y formación personalizada🔥🔥: https://www.codificandobits.com/servicios/
me ha gustado te lo agradesco enormemente amigo +1
Que genial este tutorial lo voy a seguir para aprender lo básico.. luego que tanto me costo instalar el tensorflow y el keras.. jajaja Saludos!!!!
Cómo puedo ver los valores de los pesos ? o hay alguna forma de guardarlos en *.txt ???
Muy buen video.
Una pregunta , sa la hora de preporceso usando StandarScaler mis datos de entrada es las variables dependientes(X) , es necesario hacerlo para las variables independientes(Y)?
Saludos.
Gracias por el video
hola, gran video, no se si tengas algo sobre keras RL de momento fue interesante porque en menos de 10 minutos dijiste todo, sería interesante saber si se pueden utilizar ademas de regresiones lineales algo mas complejo como maquinas de soporte vectorial svn para tratar problemas de clasificación, y cosas así para poder identificar caracteristicas automaticamente :p, gracias un saludo. ahh lo unico que creo que la gente habla de la estrucutra de excel o de cualquier dato que usaste con panda, y supongo que el archivo está en la carpeta raiz del proyecto y como no se hace visual el entorno que usas y todo el proceso a lo mejor por eso nos confundimos y pensamos de donde saca los datos es magia :p, y supongo que con la misma libreria de pandas se puede exportar datos en vivo de una base de datos o habría que consumir una api que nos diera los datos, es que es para usar una api de terceros que da datos de acciones en vivo se podría hacer un modelo que cogiera esos datos los convirtiera y la salida que diera fuera un evento? digamos de compra o venta o algo así? hasta otra.
Exelente tutorial, me genera una duda, es posible editar los modulos de las librerías ?
Muy bueno el video. Suscrito. Saludos
Como raalizo la lectura del set de datos usando la librería Pandas de Python?
me joden los archivos csv no se q michi hacer con eso
me jode el csv
Hola estoy empezando a programar y quiero crear un programa que me elija por algoritmo 6 números del 0 al 46 cargando datos pasados y el algoritmo me large 6 números que puedan salir a futuro. Cómo lo podría hacer y que algoritmo necesitaría emplementar. Desde ya muchas gracias
Hola, me da muchos errores en las librerías.
Tengo el python 3.7.9 y la versión de tensor flow 2.3 y de keras 2.4.3 y al ejecutar el programa me dice que necesito una versión de tensor flow 2.2 o superior (cuando ya la tengo).
Me gustaría saber que versiones tienes tú de cada cosa para que te funcione y así te copio.
Gracias y un saludo!
Gracias por Compartir. Vídeo Genial. Como TODOS. FANTÁSTICO.
Muchas gracias, ya tengo mas claro como manejar keras. podrías hacer un video explicando sobre los layers de activation, como relum softmax.etc
no es obligatorio usar tensorflow?
Me encanta este video! Hace unos años comencé en este mundo de los datos y el Machine Learning, acabo de lanzar un canal donde contar con mi experiencia y consejos, todo el apoyo y soporte es bienvenido! https://www.youtube.com/channel/UCOTvJ5F6tfTWq-oNnaVWdbA/
Excelentes tutoriales, siendo honesto mereces que mucha más gente aprenda de esto.
¿Por que me sale en loss: nan?