0Pricing
Learn AI with Python · Lección

Proyecto de clasificación de imágenes

Creación de un modelo CNN básico.

Proyecto de clasificación de imágenes es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 5 lecciones en total.

Proyecto de clasificación de imágenes

Proyecto de clasificación de imágenes

En este proyecto, crearemos una CNN sencilla para clasificar imágenes en distintas categorías. La clasificación de imágenes consiste en predecir la categoría o etiqueta de una imagen de entrada.

Proyecto de clasificación de imágenes — ilustración 1

Conjunto de datos para la clasificación

Conjunto de datos para la clasificación

Utilizaremos el conjunto de datos CIFAR-10, que consta de 60.000 imágenes distribuidas en 10 categorías, como aviones, automóviles, aves y gatos. Cada imagen tiene 32×32 píxeles y 3 canales de color (RGB).

Carga del conjunto de datos

Carga del conjunto de datos

Cargaremos el conjunto de datos CIFAR-10 mediante TensorFlow:

import tensorflow as tf
from tensorflow.keras.datasets import cifar10

# Load dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# Normalize the pixel values to [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0

print("Training data shape:", x_train.shape)

Construcción del modelo CNN

Construcción del modelo CNN

Definiremos una arquitectura CNN con capas convolucionales, de pooling y totalmente conectadas:

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

# Define the CNN model
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D((2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

Compilación del modelo

Compilación del modelo

Compilamos el modelo con:

  • Función de pérdida: Entropía cruzada categórica para la clasificación multiclase.
  • Optimizador: Optimizador Adam para un aprendizaje eficiente.
  • Métricas: Exactitud para evaluar el rendimiento.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

Entrenamiento del modelo

Entrenamiento del modelo

Entrenamos el modelo con los datos de entrenamiento durante 10 épocas. Durante el entrenamiento, el modelo aprende a clasificar imágenes en distintas categorías.

# Train the model
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Evaluación del modelo

Evaluación del modelo

Después del entrenamiento, evaluamos el modelo con los datos de prueba para comprobar su precisión:

# Evaluate the model
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Accuracy: {accuracy * 100:.2f}%")

Realización de predicciones

Realización de predicciones

Podemos utilizar el modelo entrenado para realizar predicciones sobre imágenes nuevas:

# Predict the category of a test image
import numpy as np

sample_image = x_test[0]
sample_label = y_test[0]

prediction = np.argmax(model.predict(sample_image[np.newaxis, ...]))
print(f"Predicted Label: {prediction}, Actual Label: {sample_label[0]}")

Desafíos de la clasificación de imágenes

Desafíos de la clasificación de imágenes

Entre los desafíos habituales se incluyen:

  • Sobreajuste: El modelo funciona bien con los datos de entrenamiento, pero mal con datos nuevos.
  • Desequilibrio de clases: Representación desigual de las categorías en el conjunto de datos.
  • Coste computacional: Entrenar redes profundas requiere muchos recursos.

Resumen y próximos pasos

Resumen y próximos pasos

En este proyecto:

  • Crearemos y entrenaremos una CNN para la clasificación de imágenes mediante el conjunto de datos CIFAR-10.
  • Aprendimos a cargar, preprocesar y evaluar el conjunto de datos.
  • Analizamos los desafíos de las tareas de clasificación de imágenes.

A continuación, exploraremos técnicas de aumento de datos para mejorar el rendimiento del modelo mediante la generación de variaciones de las imágenes de entrenamiento.

Proyecto de clasificación de imágenes — ilustración 10

Preguntas frecuentes

¿La lección «Proyecto de clasificación de imágenes» es gratis?

Sí — el texto completo de «Proyecto de clasificación de imágenes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 5 lecciones en total.

¿Qué aprenderé en «Proyecto de clasificación de imágenes»?

Creación de un modelo CNN básico. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 5.

¿Cuánto tiempo toma la lección «Proyecto de clasificación de imágenes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué son los datos de imagen?
  2. Procesamiento de imágenes con OpenCV
  3. Redes neuronales convolucionales (CNN)
  4. Proyecto de clasificación de imágenes
  5. Técnicas de aumento de datos
← Volver a Learn AI with Python