Passer au contenu

Programme d'entraînement YOLO26

Introduction

Ce guide décrit en détail formation recette utilisée pour élaborer le produit officiel YOLO26 points de contrôle pré-entraînés sur COCO. Chaque hyperparamètre Ce qui est présenté ici est déjà intégré dans la version publiée .pt leurs pondérations et peuvent être consultées par programmation.

Comprendre comment les modèles de base ont été entraînés vous aide à prendre de meilleures décisions lors du réglage fin: quelles augmentations de données conserver, quels poids de la fonction de perte ajuster et quels paramètres d'optimiseur conviennent le mieux à la taille de votre ensemble de données.

À qui s'adresse ce guide ?

Ce guide s'adresse aux professionnels qui souhaitent comprendre les éléments qui ont été intégrés aux checkpoints officiels de YOLO26 — non seulement l'architecture, mais aussi les programmes de taux d'apprentissage, les pipelines d'augmentation et les pondérations de perte qui ont déterminé leurs performances. Utilisez ces informations pour faire des choix éclairés lors du réglage fin sur vos propres données.

Vérification des arguments de formation

Chaque Ultralytics conserve la configuration d'entraînement complète utilisée pour sa création. Vous pouvez consulter ces paramètres à tout moment :

Vérifier les arguments de formation des points de contrôle

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}")

Cela fonctionne pour n'importe quel .pt point de contrôle — qu'il s'agisse des versions officielles ou de vos propres modèles optimisés. Pour obtenir la liste complète des paramètres d'entraînement configurables, consultez le Guide de configuration de la formation.

Présentation de la formation

Tous les modèles de base YOLO26 ont été entraînés sur COCO une résolution de 640 × 640, à l'aide de l'optimiseur MuSGD avec une taille de lot de 128. Les modèles ont été initialisés à partir de poids pré-entraînés intermédiaires, puis affinés à l'aide d'hyperparamètres déterminés par une recherche évolutive. Les journaux d'entraînement complets et les métriques pour chaque taille de modèle sont disponibles sur Ultralytics :

Principaux choix de conception pour toutes les tailles :

  • Formation complète (end2end=True) avec un système de contrôle de la tête individuel NMS
  • Optimiseur MuSGD combinant SGD des mises à jour orthogonalisées de type Muon pour les poids des réseaux convolutifs
  • Augmentation importante de la mosaïque (probabilité d'environ 0,9 à 1,0) désactivé au cours des 10 dernières époques (close_mosaic=10)
  • Agrandissement agressif (0,56-0,95) pour traiter des objets de différentes tailles
  • Rotation et cisaillement minimaux pour la plupart des dimensions, ce qui permet de limiter la distorsion géométrique

Hyperparamètres en fonction de la taille du modèle

Optimiseur et taux d'apprentissage

ParamètreNSMLX
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

Stratégie de taux d'apprentissage

Le modèle N utilisait un taux d'apprentissage initial plus élevé avec une décroissance rapide (lrf=0.0495), tandis que les modèles S/M/L/X utilisaient un LR initial bien plus faible avec un programme plus progressif (lrf=0.882). Cela reflète les différences dans la dynamique de convergence entre les petits modèles et les grands modèles : les petits modèles nécessitent des mises à jour plus fréquentes pour apprendre efficacement.

Poids perdus

ParamètreNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Le modèle N privilégie la perte DFL, tandis que les modèles S/M/L/X mettent davantage l'accent sur la régression du cadre de détection. La perte de classification reste relativement constante pour toutes les tailles.

Pipeline d'augmentation

Pour une explication détaillée de chaque technique, consultez le guide sur l'augmentationYOLO .

ParamètreNSMLX
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

Les modèles de plus grande taille recourent globalement à des techniques d'augmentation plus agressives ( mixup, copier-coller et mise à l'échelle plus poussés), car ils disposent d'une plus grande capacité et bénéficient d'une régularisation plus forte. Le modèle N est la seule taille à utiliser de manière significative les augmentations par rotation, cisaillement et BGR.

Paramètres de formation interne

Avancé : paramètres internes du pipeline

Les points de contrôle contiennent également des paramètres qui ont été utilisés dans le pipeline d'entraînement interne, mais qui sont pas proposés sous forme de paramètres configurables par l'utilisateur dans default.yaml:

ParamètreDescriptionNSMLX
muon_wMise à jour du poids des muons dans MuSGD0.5280.4360.4360.4360.436
sgd_wSGD du poids SGD dans MuSGD0.6740.4790.4790.4790.479
cls_wPondération interne2.743.483.483.483.48
o2mPoids de la perte de charge « un-à-plusieurs »1.00.7050.7050.7050.705
topkAttribution des étiquettes « Top-k »85555

Ces paramètres sont enregistrés à des fins de reproductibilité, mais il n'est pas nécessaire de les définir lors du réglage fin. Consultez la FAQ pour plus de détails.

Conseils pour affiner les réglages

Lorsque vous affinez YOLO26 sur votre propre ensemble de données, il n'est pas nécessaire de reproduire intégralement la procédure de pré-entraînement. Les poids pré-entraînés intègrent déjà les connaissances en matière d'augmentation et d'optimisation issues de COCO . Pour connaître les meilleures pratiques générales en matière d'entraînement, consultez la section « Conseils pour l'entraînement des modèles ».

Commencez simplement

Régler avec les paramètres par défaut

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

Le réglage fin à partir des valeurs par défaut constitue une excellente base de départ. Ne modifiez les hyperparamètres que si vous avez une raison précise de le faire.

Quand procéder à un réglage

Small datasets (< 1,000 images):

  • Réduire la force d'augmentation : mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Taux d'apprentissage plus faible : lr0=0.001
  • Utilisez moins epochs avec patience : epochs=50, patience=20
  • Envisagez de geler les couches de base : freeze=10

Ensembles de données volumineux (> 50 000 images) :

  • Suivre plus fidèlement la recette de pré-entraînement
  • Réfléchissez optimizer=MuSGD pour les courses plus longues
  • Augmentation de la taille : mosaic=1.0, mixup=0.3, scale=0.9

Images spécifiques à certains domaines (aériennes, médicales, sous-marines) :

  • Augmenter flipud=0.5 si l'orientation verticale varie
  • Augmenter degrees si les objets apparaissent avec des rotations arbitraires
  • Régler hsv_s et hsv_v si les conditions d'éclairage diffèrent considérablement de celles de COCO

Pour l'optimisation automatisée des hyperparamètres, consultez le guide « Réglage des hyperparamètres ».

Choisir la taille d'un modèle

ModèleIdéal pourRecommandations concernant la taille des lots
YOLO26nAppareils en périphérie, mobiles, en temps réel sur CPUGrands lots (64 à 128) sur des cartes graphiques grand public
YOLO26sUn équilibre entre vitesse et précisionLot de taille moyenne (32 à 64)
YOLO26mUne plus grande précision avec une puissance de calcul modéréePetits lots (16 à 32)
YOLO26lHaute précision lorsque GPU disponiblePetits lots (8 à 16) ou configurationGPU
YOLO26xPrécision maximale, déploiement sur serveurPetits lots (4 à 8) ou configurationGPU

Pour en savoir plus sur les options d'exportation et de déploiement, consultez le guide d'exportation et les options de déploiement des modèles.

FAQ

Comment puis-je consulter les hyperparamètres exacts utilisés pour un point de contrôle donné ?

Charger le point de contrôle avec torch.load() et accéder à la train_args touche, ou utilisez model.ckpt["train_args"] avec l'Ultralytics . Voir Vérification des arguments de formation pour des exemples complets.

Pourquoi le nombre d'époques diffère-t-il selon la taille du modèle ?

Les modèles plus volumineux convergent plus rapidement sur COCO ils disposent d'une plus grande capacité. Le modèle N a nécessité 245 époques, tandis que le modèle X n'en a nécessité que 40. Lors du réglage fin sur votre propre ensemble de données, le nombre optimal d'époques dépend de la taille et de la complexité de votre ensemble de données, et non de la taille du modèle. Utilisez l'arrêt précoce (patience) pour déterminer automatiquement le point d'arrêt approprié.

Dois-je utiliser MuSGD pour le réglage fin ?

Quand optimizer=auto (par défaut), Ultralytics sélectionne Ultralytics MuSGD pour les sessions d'entraînement plus longues (>10 000 itérations) et AdamW pour les plus courts. Vous pouvez définir explicitement optimizer=MuSGD si vous préférez. Pour en savoir plus sur le choix de l'optimiseur, consultez le documentation de formation.

Quels sont muon_w, sgd_w, cls_w, o2m, et topk au poste de contrôle ?

Il s'agit de paramètres internes issus du pipeline d'entraînement qui a généré les points de contrôle de base. Ils sont conservés à des fins de reproductibilité, mais sont pas paramètres configurables par l'utilisateur dans default.yaml. Il n'est pas nécessaire de les définir lors du réglage fin. Voir Paramètres de formation interne pour plus de détails.

Puis-je reproduire exactement le pré-entraînement en partant de zéro ?

Les points de contrôle ont été créés à partir d'une branche de développement interne comportant des fonctionnalités supplémentaires qui ne figurent pas dans le code source public (telles que la configuration o2m les poids et cls_w). Vous pouvez obtenir des résultats très proches en utilisant les hyperparamètres décrits sur cette page avec le Ultralytics public Ultralytics , mais une reproduction exacte nécessite la branche interne.



📅 Créé il y a 0 jours ✏️ Mis à jour il y a 0 jours
raimbekovm

Commentaires