Programma di allenamento YOLO26
Introduzione
Questa guida descrive in dettaglio addestramento ricetta utilizzata per la produzione del prodotto ufficiale YOLO26 checkpoint preaddestrati su COCO. Ogni iperparametro quello che vedete qui è già integrato nella versione rilasciata .pt pesi e possono essere controllati a livello di programmazione.
Capire come sono stati addestrati i modelli di base ti aiuta a prendere decisioni più oculate durante la fase di fine-tuning: quali tecniche di aumento dei dati mantenere, quali pesi della funzione di perdita regolare e quali impostazioni dell'ottimizzatore funzionano meglio in base alle dimensioni del tuo set di dati.
A chi è rivolta questa guida?
Questa guida è destinata ai professionisti che desiderano comprendere gli elementi alla base dei checkpoint ufficiali di YOLO26: non solo l'architettura, ma anche i programmi di regolazione del tasso di apprendimento, le pipeline di augmentation e i pesi di perdita che ne hanno determinato le prestazioni. Utilizzate queste informazioni per compiere scelte consapevoli durante la messa a punto sui vostri dati.
Verifica degli argomenti di formazione
Ogni Ultralytics memorizza la configurazione completa dell'allenamento utilizzata per generarlo. È possibile controllare queste impostazioni in qualsiasi momento:
Controlla gli argomenti di addestramento dei checkpoint
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}")
Questo funziona per qualsiasi .pt checkpoint — sia le versioni ufficiali che i modelli personalizzati. Per l'elenco completo degli argomenti di addestramento configurabili, consultare il Riferimento alla configurazione della formazione.
Panoramica sulla formazione
Tutti i modelli base YOLO26 sono stati addestrati su COCO una risoluzione di 640x640 utilizzando l'ottimizzatore MuSGD con una dimensione del batch pari a 128. I modelli sono stati inizializzati a partire da pesi intermedi preaddestrati e perfezionati con iperparametri individuati tramite ricerca evolutiva. I log completi dell'addestramento e le metriche relative a ogni dimensione del modello sono disponibili sulla Ultralytics :
Caratteristiche principali comuni a tutte le taglie:
- Formazione completa (
end2end=True) con testa individuale NMS - Ottimizzatore MuSGD che combina SGD aggiornamenti ortogonalizzati in stile Muon per i pesi delle reti convoluzionali
- Aumento massiccio del mosaico (probabilità ~0,9-1,0) disabilitato nelle ultime 10 epoche (
close_mosaic=10) - Aumento aggressivo della scala (0,56-0,95) per gestire oggetti di diverse dimensioni
- Rotazione e taglio minimi per la maggior parte delle dimensioni, con una distorsione geometrica ridotta
Iperparametri in base alle dimensioni del modello
Ottimizzatore e tasso di apprendimento
| Impostazione | 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 |
Strategia del tasso di apprendimento
Il modello N utilizzava un tasso di apprendimento iniziale più elevato con un calo rapido (lrf=0.0495), mentre i modelli S/M/L/X utilizzavano un LR iniziale molto più basso con un programma più graduale (lrf=0.882). Ciò riflette le diverse dinamiche di convergenza tra modelli più piccoli e modelli più grandi: i modelli più piccoli necessitano di aggiornamenti più intensi per apprendere in modo efficace.
Pesi di perdita
| Impostazione | 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 |
Il modello N dà priorità alla perdita DFL, mentre i modelli S/M/L/X concentrano l'attenzione sulla regressione del bounding box. La perdita di classificazione rimane relativamente costante per tutte le dimensioni.
Pipeline di potenziamento
Per una spiegazione dettagliata di ciascuna tecnica, consultare la guida all'aumentoYOLO .
| Impostazione | 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 |
I modelli più grandi utilizzano in generale tecniche di aumento dei dati più aggressive (maggiore mixup, copia-incolla e ridimensionamento), poiché dispongono di una maggiore capacità e traggono vantaggio da una regolarizzazione più forte. Il modello N è l'unico a utilizzare tecniche significative di rotazione, shear e aumento BGR.
Parametri di addestramento interni
Avanzate: parametri interni della pipeline
I checkpoint contengono anche parametri che sono stati utilizzati nella pipeline di addestramento interna, ma che sono non disponibili come impostazioni configurabili dall'utente in default.yaml:
| Impostazione | Descrizione | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Aggiornamento del peso del muone in MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | SGD del peso SGD in MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Peso di classificazione interno | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Peso della perdita di carico uno-a-molti | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Assegnazione dell'etichetta Top-k | 8 | 5 | 5 | 5 | 5 |
Questi valori vengono registrati a fini di riproducibilità, ma non è necessario impostarli durante la regolazione di precisione. Per ulteriori dettagli, consultare le Domande frequenti.
Linee guida per la messa a punto
Quando si ottimizza YOLO26 sul proprio set di dati, non è necessario ripetere l'intera procedura di pre-addestramento. I pesi pre-addestrati incorporano già le tecniche di aumento dei dati e le conoscenze di ottimizzazione acquisite durante COCO . Per ulteriori best practice generali sull'addestramento, consultare la sezione " Suggerimenti per l'addestramento dei modelli".
Inizia in modo semplice
Ottimizzare con le impostazioni predefinite
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
La messa a punto utilizzando i valori predefiniti costituisce un ottimo punto di partenza. Modifica gli iperparametri solo se hai un motivo specifico per farlo.
Quando regolare
Small datasets (< 1,000 images):
- Ridurre la forza di aumento:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - Ritmo di apprendimento più lento:
lr0=0.001 - Usane meno epoche con pazienza:
epochs=50,patience=20 - Si consiglia di congelare i livelli di base:
freeze=10
Set di dati di grandi dimensioni (> 50.000 immagini):
- Adattare meglio la ricetta di pre-addestramento
- Prendi in considerazione
optimizer=MuSGDper percorsi più lunghi - Aumento dell'aumento:
mosaic=1.0,mixup=0.3,scale=0.9
Immagini relative a settori specifici (aeree, mediche, subacquee):
- Aumento
flipud=0.5se l'orientamento verticale varia - Aumento
degreesse gli oggetti appaiono con rotazioni arbitrarie - Regolare
hsv_sehsv_vse le condizioni di illuminazione differiscono in modo significativo da quelle di COCO
Per l'ottimizzazione automatica degli iperparametri, consultare la guida alla regolazione degli iperparametri.
Scegliere la taglia del modello
| Modello | Ideale per | Linee guida sulle dimensioni dei lotti |
|---|---|---|
| YOLO26n | Dispositivi edge, dispositivi mobili, elaborazione in tempo reale sulla CPU | Lotti di grandi dimensioni (64-128) su GPU consumer |
| YOLO26s | Equilibrio tra velocità e precisione | Lotti medi (32-64) |
| YOLO26m | Maggiore precisione con una potenza di calcolo moderata | Lotti più piccoli (16-32) |
| YOLO26l | Elevata precisione quando GPU disponibile GPU | Piccoli lotti (8-16) oGPU |
| YOLO26x | Massima precisione, implementazione su server | Piccoli lotti (4-8) oGPU |
Per le opzioni di esportazione e distribuzione, consultare la Guida all'esportazione e le Opzioni di distribuzione dei modelli.
FAQ
Come posso visualizzare gli iperparametri esatti utilizzati per un determinato checkpoint?
Carica il punto di salvataggio con torch.load() e accedere al train_args tasto, oppure utilizzare model.ckpt["train_args"] con Ultralytics . Vedi Verifica degli argomenti di formazione per esempi completi.
Perché il numero di epoche varia a seconda delle dimensioni del modello?
I modelli più grandi convergono più rapidamente su COCO hanno una maggiore capacità. Il modello N ha richiesto 245 epoche, mentre il modello X ne ha necessarie solo 40. Quando si esegue la messa a punto su un proprio set di dati, il numero ottimale di epoche dipende dalle dimensioni e dalla complessità del set di dati, non dalle dimensioni del modello. Utilizzare l'early stopping (patience) per individuare automaticamente il punto di arresto corretto.
È consigliabile utilizzare MuSGD per la messa a punto?
Quando optimizer=auto (impostazione predefinita), Ultralytics seleziona Ultralytics MuSGD per sessioni di addestramento più lunghe (>10.000 iterazioni) e AdamW per quelli più brevi. È possibile impostare esplicitamente optimizer=MuSGD se preferisci. Per ulteriori informazioni sulla scelta dell'ottimizzatore, consulta il documentazione relativa alla formazione.
Cosa sono muon_w, sgd_w, cls_w, o2m, e topk al posto di blocco?
Si tratta di parametri interni della pipeline di addestramento che ha generato i checkpoint di base. Sono memorizzati a fini di riproducibilità, ma sono non impostazioni configurabili dall'utente in default.yaml. Non è necessario impostarli durante la regolazione di precisione. Vedi Parametri di addestramento interni per i dettagli.
Posso riprodurre esattamente il pre-addestramento partendo da zero?
I checkpoint sono stati creati utilizzando un ramo di sviluppo interno dotato di funzionalità aggiuntive non presenti nel codice pubblico (come la possibilità di configurare o2m pesi e cls_w). È possibile ottenere risultati molto simili utilizzando gli iperparametri descritti in questa pagina con il Ultralytics pubblico Ultralytics , ma per una riproduzione esatta è necessario il ramo interno.