Ir al contenido

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ónNSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640

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ónNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.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ónNSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.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ónDescripciónNSMLX
muon_wActualización del peso de Muon en MuSGD0.5280.4360.4360.4360.436
sgd_wPonderación de SGD en MuSGD0.6740.4790.4790.4790.479
cls_wPonderación de clasificación interna2.743.483.483.483.48
o2mPérdida de carga de uno a muchos1.00.7050.7050.7050.705
topkAsignación de etiquetas «Top-k»85555

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=MuSGD para 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.5 si la orientación vertical varía
  • Aumento degrees si los objetos aparecen con rotaciones arbitrarias
  • Ajustar hsv_s y hsv_v si 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

ModeloIdeal paraRecomendaciones sobre el tamaño de los lotes
YOLO26nDispositivos periféricos, móviles, en tiempo real en CPULotes grandes (64-128) en GPU de consumo
YOLO26sEquilibrio entre velocidad y precisiónLotes medianos (32-64)
YOLO26mMayor precisión con un consumo moderado de recursos informáticosLotes más pequeños (16-32)
YOLO26lAlta precisión cuando GPU dispone de GPULotes pequeños (8-16) oGPU
YOLO26xMáxima precisión, implementación en servidorLotes 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.



📅 Creado hace 0 días ✏️ Actualizado hace 0 días
raimbekovm

Comentarios