0Pricing
Python Academy · Lección

Proyecto de clasificación de imágenes

Construcción de un modelo CNN básico

Proyecto de clasificación de imágenes es una lección gratuita de Python Academy 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 Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy 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 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 un tamaño de 32×32 píxeles y cuenta con 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

Compilaremos 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

Entrenaremos el modelo con los datos de entrenamiento durante 10 épocas. Durante el entrenamiento, el modelo aprenderá a clasificar imágenes en 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, evaluaremos el modelo con los datos de prueba para comprobar su exactitud:

# 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 en la clasificación de imágenes

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

Entre los desafíos habituales se incluyen:

  • Sobreajuste: El modelo tiene un buen rendimiento con los datos de entrenamiento, pero uno deficiente con datos nuevos.
  • Desequilibrio de clases: Representación desigual de las categorías en el conjunto de datos.
  • Coste computacional: El entrenamiento de redes profundas requiere recursos considerables.

Resumen y próximos pasos

Resumen y próximos pasos

En este proyecto:

  • Construimos y entrenamos 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 Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 5 lecciones en total.

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

Construcción de un modelo CNN básico Practicas Python Academy 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 Python Academy?

No se requiere experiencia previa. Python Academy 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 Python Academy?

Sí. Cada lección de Python Academy 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 Python Academy