Receta de entrenamiento YOLO26
Introducción
Esta guía describe con exactitud entrenamiento receta utilizada para elaborar el YOLO26 puntos de control preentrenados en COCO. Cada hiperparámetro lo que se muestra aquí ya está integrado en la versión publicada .pt ponderaciones y pueden inspeccionarse mediante programación.
Comprender cómo se entrenaron los modelos base te ayuda a tomar mejores decisiones a la hora de realizar el ajuste fino: qué aumentos de datos mantener, qué pesos de la función de pérdida ajustar y qué parámetros del optimizador funcionan mejor para el tamaño de tu conjunto de datos.
¿A quién va dirigida esta guía?
Esta guía está dirigida a los profesionales que deseen comprender los elementos que conforman los puntos de control oficiales de YOLO26: no solo la arquitectura, sino también los esquemas de tasa de aprendizaje, los procesos de aumento de datos y los pesos de pérdida que han determinado su rendimiento. Utiliza esta información para tomar decisiones fundamentadas a la hora de realizar el ajuste fino con tus propios datos.
Comprobación de los argumentos de entrenamiento
Cada Ultralytics almacena la configuración completa del entrenamiento utilizada para generarlo. Puedes consultar estos ajustes en cualquier momento:
Comprobar los argumentos de entrenamiento del punto de control
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch
# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)
# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
print(f"{k}: {v}")
Esto funciona para cualquier .pt checkpoint: tanto las versiones oficiales como tus propios modelos ajustados. Para ver la lista completa de argumentos de entrenamiento configurables, consulta el Referencia de configuración de formación.
Descripción general de la formación
Todos los modelos base de YOLO26 se entrenaron con COCO una resolución de 640x640 utilizando el optimizador MuSGD con un tamaño de lote de 128. Los modelos se inicializaron a partir de pesos preentrenados intermedios y se perfeccionaron con hiperparámetros obtenidos mediante búsqueda evolutiva. Los registros completos de entrenamiento y las métricas para cada tamaño de modelo están disponibles en Ultralytics :
Características de diseño clave en todos los tamaños:
- Formación integral (
end2end=True) con atención individualizada NMS - Optimizador MuSGD que combina SGD actualizaciones ortogonalizadas al estilo Muon para los pesos de las redes convolucionales
- Aumento considerable del mosaico (probabilidad de ~0,9-1,0) desactivado en las últimas 10 épocas (
close_mosaic=10) - Aumento agresivo de la escala (0,56-0,95) para manejar objetos de diferentes tamaños
- Rotación y cizallamiento mínimos en la mayoría de los tamaños, lo que mantiene baja la distorsión geométrica
Hiperparámetros según el tamaño del modelo
Optimizador y tasa de aprendizaje
| Configuración | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
Estrategia de tasa de aprendizaje
El modelo N utilizó una tasa de aprendizaje inicial más alta con una disminución pronunciada (lrf=0.0495), mientras que los modelos S/M/L/X utilizaban un LR inicial mucho más bajo con un programa más gradual (lrf=0.882). Esto refleja las diferentes dinámicas de convergencia entre los modelos más pequeños y los más grandes: los modelos más pequeños necesitan actualizaciones más agresivas para aprender de forma eficaz.
Pesos de pérdida
| Configuración | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
El modelo N da prioridad a la pérdida DFL, mientras que los modelos S/M/L/X centran su atención en la regresión del rectángulo delimitador. La pérdida de clasificación se mantiene relativamente constante en todos los tamaños.
Proceso de ampliación
Para obtener una explicación detallada de cada técnica, consulta la guía de aumentoYOLO .
| Configuración | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
Los modelos más grandes utilizan un aumento más agresivo en general (mayor mezcla, copiar y pegar, y escalado), ya que tienen más capacidad y se benefician de una regularización más fuerte. El modelo N es el único tamaño que presenta un aumento significativo mediante rotación, cizallamiento y BGR.
Parámetros de entrenamiento interno
Avanzado: parámetros internos del proceso
Los puntos de control también contienen parámetros que se utilizaron en el proceso de entrenamiento interno, pero que son no disponibles como opciones configurables por el usuario en default.yaml:
| Configuración | Descripción | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Actualización del peso de Muon en MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | Ponderación de SGD en MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Ponderación de clasificación interna | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Pérdida de carga de uno a muchos | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Asignación de etiquetas «Top-k» | 8 | 5 | 5 | 5 | 5 |
Estos valores se registran para garantizar la reproducibilidad, pero no es necesario configurarlos durante el ajuste fino. Consulte las preguntas frecuentes para obtener más detalles.
Orientaciones para el ajuste fino
Al ajustar YOLO26 a tu propio conjunto de datos, no es necesario que repitas todo el proceso de preentrenamiento. Los pesos preentrenados ya incorporan los conocimientos sobre aumento de datos y optimización adquiridos durante COCO . Para conocer las mejores prácticas generales de entrenamiento, consulta «Consejos para el entrenamiento de modelos».
Empieza por lo sencillo
Ajustar con los valores predeterminados
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640
El ajuste fino con los valores predeterminados es un buen punto de partida. Solo modifica los hiperparámetros si tienes una razón concreta para hacerlo.
Cuándo ajustar
Small datasets (< 1,000 images):
- Reducir la fuerza de aumento:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - Menor tasa de aprendizaje:
lr0=0.001 - Usa menos épocas con paciencia:
epochs=50,patience=20 - Considera la posibilidad de congelar las capas de la red troncal:
freeze=10
Conjuntos de datos de gran tamaño (> 50 000 imágenes):
- Ajustarse mejor a la receta de preentrenamiento
- Ten en cuenta
optimizer=MuSGDpara recorridos más largos - Aumento del aumento:
mosaic=1.0,mixup=0.3,scale=0.9
Imágenes específicas de cada ámbito (aéreas, médicas, submarinas):
- Aumento
flipud=0.5si la orientación vertical varía - Aumento
degreessi los objetos aparecen con rotaciones arbitrarias - Ajustar
hsv_syhsv_vsi las condiciones de iluminación difieren significativamente de las de COCO
Para obtener información sobre la optimización automática de hiperparámetros, consulta la guía de ajuste de hiperparámetros.
Elegir el tamaño del modelo
| Modelo | Ideal para | Recomendaciones sobre el tamaño de los lotes |
|---|---|---|
| YOLO26n | Dispositivos periféricos, móviles, en tiempo real en CPU | Lotes grandes (64-128) en GPU de consumo |
| YOLO26s | Equilibrio entre velocidad y precisión | Lotes medianos (32-64) |
| YOLO26m | Mayor precisión con un consumo moderado de recursos informáticos | Lotes más pequeños (16-32) |
| YOLO26l | Alta precisión cuando GPU dispone de GPU | Lotes pequeños (8-16) oGPU |
| YOLO26x | Máxima precisión, implementación en servidor | Lotes pequeños (4-8) oGPU |
Para conocer las opciones de exportación e implementación, consulta la Guía de exportación y las Opciones de implementación de modelos.
Preguntas frecuentes
¿Cómo puedo ver los hiperparámetros exactos que se han utilizado en cualquier punto de control?
Carga el punto de control con torch.load() y acceder a la train_args tecla, o utiliza model.ckpt["train_args"] con la Ultralytics . Véase Comprobación de los argumentos de entrenamiento para ver ejemplos completos.
¿Por qué varía el número de épocas según el tamaño del modelo?
Los modelos más grandes convergen más rápido en COCO tienen mayor capacidad. El modelo N necesitó 245 épocas, mientras que el modelo X solo necesitó 40. Al realizar el ajuste fino en tu propio conjunto de datos, el número óptimo de épocas depende del tamaño y la complejidad de tu conjunto de datos, no del tamaño del modelo. Utiliza la detención temprana (patience) para encontrar automáticamente el punto de parada adecuado.
¿Debería utilizar MuSGD para el ajuste fino?
Cuándo optimizer=auto (por defecto), Ultralytics selecciona Ultralytics MuSGD para sesiones de entrenamiento más largas (>10 000 iteraciones) y AdamW para los más cortos. Puedes establecer explícitamente optimizer=MuSGD si lo prefieres. Para obtener más información sobre la selección del optimizador, consulta el documentación de formación.
¿Qué son muon_w, sgd_w, cls_w, o2m, y topk ¿En el puesto de control?
Estos son parámetros internos del proceso de entrenamiento que generó los puntos de control básicos. Se almacenan para garantizar la reproducibilidad, pero son no opciones configurables por el usuario en default.yaml. No es necesario configurarlos al realizar el ajuste fino. Véase Parámetros de entrenamiento interno para obtener más detalles.
¿Puedo reproducir el preentrenamiento exacto partiendo de cero?
Los puntos de control se crearon utilizando una rama de formación interna con características adicionales que no se incluyen en el código fuente público (como la configuración o2m pesos y cls_w). Se pueden obtener resultados muy similares utilizando los hiperparámetros descritos en esta página con el Ultralytics público Ultralytics , pero para reproducirlos exactamente es necesario utilizar la rama interna.