Ejemplo de entrenamiento de una red neuronal feedforward (también conocida como red neuronal de alimentación hacia adelante) utilizando TensorFlow.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# Crear datos de entrenamiento (ejemplo: clasificación de puntos en dos clases)
np.random.seed(0)
X = np.random.rand(100, 2) # 100 ejemplos con 2 características
Y = (X[:, 0] + X[:, 1] > 1).astype(int) # Clasificación: 1 si x + y > 1, 0 en caso contrario
# Definir el modelo de la red neuronal
model = tf.keras.Sequential([
tf.keras.layers.Input(shape=(2,)),
tf.keras.layers.Dense(4, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# Compilar el modelo
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# Entrenar el modelo
history = model.fit(X, Y, epochs=100, verbose=0)
# Evaluar el modelo
loss, accuracy = model.evaluate(X, Y)
print(f'Pérdida: {loss:.4f}')
print(f'Precisión: {accuracy*100:.2f}%')
# Visualizar la pérdida durante el entrenamiento
plt.plot(history.history['loss'])
plt.title('Pérdida durante el entrenamiento')
plt.xlabel('Época')
plt.ylabel('Pérdida')
plt.show()
Este código realiza lo siguiente:
- Genera datos de entrenamiento
X
y etiquetasY
para un problema de clasificación binaria. En este ejemplo, se generan aleatoriamente 100 ejemplos con dos características y se clasifican en función de si la suma de las características supera 1. - Define el modelo de la red neuronal utilizando TensorFlow y Keras. El modelo tiene una capa de entrada con dos neuronas, una capa oculta con cuatro neuronas y una función de activación ReLU, y una capa de salida con una neurona y una función de activación sigmoide.
- Compila el modelo, especificando el optimizador (‘adam’) y la función de pérdida (‘binary_crossentropy’) para la clasificación binaria.
- Entrena el modelo en los datos de entrenamiento durante 100 épocas. El historial del entrenamiento se almacena en la variable
history
. - Evalúa el modelo en los mismos datos de entrenamiento y muestra la pérdida y la precisión obtenidas.
- Visualiza la pérdida durante el entrenamiento para observar cómo disminuye con el tiempo.
Pérdida: 0.7018 Precisión: 51.00%

Pérdida: 0.6231 Precisión: 74.00%

One thought on “TensorFlow / Python: Entrenamiento de Redes Neuronales Feedforward”