💻 Parámetros Clave en Entrenamiento.

🧠 Tipos de Modelos YOLO

Los modelos pre-entrenados vienen en diferentes tamaños, afectando el equilibrio entre velocidad y precisión.

Modelo Nombre Tamaño Velocidad Precisión
yolo...n Nano 🔹 Muy pequeño ⚡ Muy rápido ❌ Menos preciso
yolo...s Small 🔹 Pequeño ⚡ Rápido 🔸 Balanceado
yolo...m Medium (NORMAL) 🔸 Medio ⚖️ Medio ✅ Bueno
yolo...l Large 🔶 Grande 🐢 Más lento ✅ Muy bueno
yolo...x Extra 🔴 Muy grande 🐢🐢 Lento 🏆 Máxima precisión

⚙️ ¿Qué cambia entre ellos?

Principalmente:

  1. Número de parámetros:
    • n → pocos parámetros.
    • x → millones de parámetros.
    • 👉 Más parámetros = más capacidad de aprender patrones complejos.
  2. ⚡ Velocidad:
    • Modelos pequeños → ideales para tiempo real.
    • Modelos grandes → más lentos pero más precisos.
  3. 🎯 Precisión:
    • n falla más en detalles.
    • x detecta mejor objetos pequeños o difíciles.

🎯 ¿Cuál deberías usar?

Depende de tu caso:

  • 🔹 Si estás empezando o tienes poca GPU: 👉 yolov8n o yolov8s
  • 🔹 Uso general (lo más común): 👉 yolov8s o yolov8m
  • 🔹 Máxima precisión (y tienes buena GPU): 👉 yolov8l o yolov8x
  • 🔹 Tiempo real (ej: webcam, robótica): 👉 yolov8n

🔄 epochs (Épocas)

El parámetro epochs indica: 👉 cuántas veces el modelo va a ver TODO tu dataset completo durante el entrenamiento.

🧠 ¿Qué significa exactamente?

  • epochs = 1: El modelo recorre todas las imágenes una vez.
  • epochs = 50: Repite ese proceso 50 veces.
  • epochs = 100: Aprende durante 100 pasadas completas.

⚖️ ¿Qué pasa si subes o bajas epochs?

Pocos epochs (ej: 10–30) ✅ Entrenamiento rápido ❌ El modelo puede no aprender lo suficiente (underfitting)

Muchos epochs (ej: 100–300) ✅ Mejor aprendizaje (hasta cierto punto) ❌ Riesgo de overfitting (memoriza en vez de generalizar) ❌ Más tiempo de entrenamiento


🎯 Recomendaciones prácticas

  • 🔸 Valores típicos:
Tamaño del dataset Epochs recomendados
Muy pequeño (<1k imágenes) 100 – 300
Mediano (1k–10k) 50 – 150
Grande (>10k) 30 – 100

🔢 batch (Tamaño del Lote)

El parámetro batch durante train se refiere a: cuántas imágenes se procesan al mismo tiempo antes de actualizar los pesos del modelo.


🧠 ¿Qué significa en la práctica?

  • batch = 1: El modelo aprende imagen por imagen.
  • batch = 8: Procesa 8 imágenes y luego ajusta los pesos.
  • batch = 32: Procesa 32 imágenes en paralelo.

⚖️ ¿Qué cambia al subir o bajar el batch?

Batch grande (ej: 16–64) ✅ Entrenamiento más estable ✅ Mejor uso de GPU ❌ Necesita mucha VRAM ❌ Puede generalizar peor si es demasiado grande

Batch pequeño (ej: 1–8) ✅ Usa menos memoria ✅ Puede generalizar mejor en datasets pequeños ❌ Entrenamiento más ruidoso/inestable ❌ Más lento


🎯 Recomendaciones prácticas

Depende sobre todo de tu GPU (VRAM):

  • 🔹 Regla simple: Usa el batch más grande que tu GPU aguante sin error (CUDA out of memory).
  • 🔸 Valores típicos:
RAM GPU Batch recomendado
4 GB 4 – 8
6–8 GB 8 – 16
10–12 GB 16 – 32
16+ GB 32 – 64
  • 🔹 Truco útil de: Puedes poner batch = -1 👉 Y visualia ajusta automáticamente el máximo posible.

🖼️ imgsz (Tamaño de Imagen)

Define la resolución con la que se procesarán las imágenes.

Impacto: * ⬆ Más grande → más precisión (especialmente objetos pequeños). * ⬇ Más pequeño → más rápido.

🔹 Recomendación: * General: 640 * Objetos pequeños: 832 o 1024


patience (Parada Temprana)

patience: Cuántos epochs espera sin mejorar antes de detener el entrenamiento.

  • Ejemplo: Si se pone patience = 20, el modelo continuará entrenando hasta que sus métricas mejoren por lo menos una vez en las siguientes 20 épocas.
  • 🔹 Muy útil para:
    • Evitar overfitting.
    • No perder tiempo calculando sin mejora significativa.