💻 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:
- 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.
- ⚡ Velocidad:
- Modelos pequeños → ideales para tiempo real.
- Modelos grandes → más lentos pero más precisos.
- 🎯 Precisión:
nfalla más en detalles.xdetecta mejor objetos pequeños o difíciles.
🎯 ¿Cuál deberías usar?
Depende de tu caso:
- 🔹 Si estás empezando o tienes poca GPU: 👉
yolov8noyolov8s - 🔹 Uso general (lo más común): 👉
yolov8soyolov8m✅ - 🔹 Máxima precisión (y tienes buena GPU): 👉
yolov8loyolov8x - 🔹 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
batchmá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.