2 usuarios conectados

Aprendizaje automático en Python.Librerías.Keras

Comparte esto

Ahora vamos a enfocarnos en Keras, que como mencionamos, es una API de alto nivel para construir y entrenar redes neuronales. Originalmente desarrollada como una librería independiente, Keras se ha integrado profundamente en TensorFlow (a partir de la versión 2.0) y también tiene implementaciones que pueden correr sobre otros backends como PyTorch y Theano (aunque TensorFlow es el backend recomendado).

Keras: Simplicidad y Productividad en el Deep Learning

El objetivo principal de Keras es hacer que el desarrollo de redes neuronales sea más accesible y rápido. Se centra en la experiencia del usuario, ofreciendo una interfaz intuitiva y consistente que reduce la complejidad de construir incluso arquitecturas de redes neuronales sofisticadas.

Características Clave de Keras:

Un Ejemplo Básico de Red Neuronal para Clasificación con Keras (TensorFlow Backend):

Este es el mismo ejemplo que vimos con TensorFlow, pero ahora enfatizando el uso de la API Keras:

Python
 
import tensorflow as tf
from tensorflow import keras
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_mnist
from sklearn.preprocessing import StandardScaler

# Cargar el dataset MNIST
(x_train, y_train), (x_test, y_test) = load_mnist()

# Preprocesar los datos
x_train = x_train.reshape(60000, 784).astype('float32') / 255.0
x_test = x_test.reshape(10000, 784).astype('float32') / 255.0
y_train = keras.utils.to_categorical(y_train, num_classes=10)
y_test = keras.utils.to_categorical(y_test, num_classes=10)

# Dividir para validación
x_train, x_val, y_train, y_val = train_test_split(x_train, y_train, test_size=0.2, random_state=42)

# Definir el modelo usando la API Secuencial de Keras
model = keras.Sequential([
    keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
])

# Compilar el modelo
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# Entrenar el modelo
history = model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val))

# Evaluar el modelo
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f'Pérdida en el conjunto de prueba: {loss:.4f}')
print(f'Precisión en el conjunto de prueba: {accuracy:.4f}')

# El modelo se puede guardar y cargar fácilmente con Keras
# model.save('mi_modelo.h5')
# loaded_model = keras.models.load_model('mi_modelo.h5')

Ejemplo de Construcción de un Modelo más Complejo con la API Funcional de Keras:

Python
 
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

# Definir las capas de entrada
input_tensor = keras.Input(shape=(784,))

# Capas intermedias
x = layers.Dense(64, activation='relu')(input_tensor)
x = layers.Dropout(0.2)(x)
output_tensor = layers.Dense(10, activation='softmax')(x)

# Crear el modelo conectando la entrada y la salida
model_functional = keras.Model(inputs=input_tensor, outputs=output_tensor)

# Compilar el modelo
model_functional.compile(optimizer='adam',
                         loss='categorical_crossentropy',
                         metrics=['accuracy'])

# (El entrenamiento y la evaluación serían similares al ejemplo secuencial)

Ventajas de Usar Keras:

Cuándo Usar Keras:

En resumen, Keras es una herramienta poderosa y accesible para el deep learning en Python, especialmente a través de su integración con TensorFlow. Su enfoque en la simplicidad y la productividad lo ha convertido en una de las APIs más populares para construir y entrenar redes neuronales. ¿Te gustaría que exploremos algún tipo específico de capa (como convolucional o recurrente) o la API funcional de Keras con más detalle?