Paso 1: Configuración del Entorno

Antes de comenzar, asegúrate de tener TensorFlow y otras bibliotecas necesarias instaladas. Este paso se encarga de importar las bibliotecas esenciales y cargar el conjunto de datos CIFAR-10.

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import cifar10
import matplotlib.pyplot as plt

# Cargar y normalizar el conjunto de datos CIFAR-10
(train_images, train_labels), (test_images, test_labels) = cifar10.load_data()
train_images, test_images = train_images / 255.0, test_images / 255.0


import: Importa las bibliotecas necesarias, incluyendo TensorFlow y Matplotlib para visualización.
cifar10.load_data(): Carga el conjunto de datos CIFAR-10, que contiene imágenes de 10 clases diferentes.

 

Paso 2: Visualización de Ejemplos del Conjunto de Datos

Este paso visualiza algunas imágenes del conjunto de datos CIFAR-10.

# Visualizar algunas imágenes del conjunto de datos
class_names = ['Avión', 'Automóvil', 'Pájaro', 'Gato', 'Ciervo', 'Perro', 'Rana', 'Caballo', 'Barco', 'Camión']

plt.figure(figsize=(10, 10))
for i in range(25):
    plt.subplot(5, 5, i + 1)
    plt.imshow(train_images[i])
    plt.title(class_names[train_labels[i][0]])
    plt.axis('off')
plt.show()

class_names: Etiquetas de las clases correspondientes a los índices de las imágenes.
plt.imshow(): Visualiza las imágenes del conjunto de datos.
plt.title(): Etiqueta cada imagen con su clase correspondiente.

 

Paso 3: Construcción del Modelo

Construye un modelo de red neuronal convolucional (CNN) utilizando capas de convolución y pooling.

# Construir el modelo de red neuronal convolucional (CNN)
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')
])

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

layers.Conv2D: Capa de convolución que aprende patrones en las imágenes.
layers.MaxPooling2D: Capa de pooling que reduce la dimensionalidad de la representación.
layers.Flatten: Capa que aplanará la salida para la capa densa.
layers.Dense: Capas densas que realizan la clasificación final.

 

Paso 4: Entrenamiento del Modelo

Entrena el modelo con el conjunto de datos de entrenamiento.

# Entrenar el modelo
history = model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))

model.fit(): Entrena el modelo con los datos de entrenamiento y valida con los datos de prueba.

 

Paso 5: Evaluación del Modelo y Visualización de Métricas
Evalúa el rendimiento del modelo y visualiza métricas de precisión.

 

# Evaluar el modelo con el conjunto de prueba
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'\nPrecisión en el conjunto de prueba: {test_acc}')

# Visualizar las métricas de entrenamiento y validación a lo largo del tiempo
plt.plot(history.history['accuracy'], label='Precisión en entrenamiento')
plt.plot(history.history['val_accuracy'], label='Precisión en validación')
plt.xlabel('Épocas')
plt.ylabel('Precisión')
plt.legend()
plt.show()


model.evaluate(): Evalúa el modelo con el conjunto de prueba y devuelve la pérdida y precisión.
Visualiza las métricas a lo largo de las épocas.

 

Paso 6: Hacer Predicciones y Visualizar Resultados
Hace predicciones con el modelo entrenado y visualiza las imágenes con las etiquetas predichas.

 

# Hacer predicciones con el modelo entrenado
predictions = model.predict(test_images[:5])

# Imprimir las predicciones
for i in range(5):
    predicted_label = tf.argmax(predictions[i])
    actual_label = test_labels[i][0]
    print(f'\nImagen {i + 1}:')
    print(f'Etiqueta predicha: {class_names[predicted_label.numpy()]}')
    print(f'Etiqueta real: {class_names[actual_label]}')

# Visualizar las imágenes y las predicciones
plt.figure(figsize=(10, 5))
for i in range(5):
    plt.subplot(1, 5, i + 1)
    plt.imshow(test_images[i])
    plt.title(f'Predicción: {class_names[tf.argmax(predictions[i])]}')
    plt.axis('off')
plt.show()

 

model.predict(): Realiza predicciones con el conjunto de prueba.
Visualiza las imágenes junto con las etiquetas predichas y reales.


Recuerda personalizar las URL, descripciones y demás según tu contenido específico. 




Deja un Comentario

Tu dirección de correo no sera publicado. Los campos obligatorios están marcados con *

Nombre *
Correo *
Web