Meet YOLO26: next-gen vision AI.

Link to this sectionAddestramento del modello con Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Link to this sectionIntroduzione#

L'addestramento di un modello di deep learning consiste nell'alimentarlo con dei dati e nell'adattare i suoi parametri affinché possa effettuare previsioni accurate. La modalità Train in Ultralytics YOLO26 è progettata per un addestramento efficace ed efficiente di modelli di object detection, sfruttando appieno le capacità dell'hardware moderno. Questa guida mira a coprire tutti i dettagli necessari per iniziare ad addestrare i tuoi modelli utilizzando il solido set di funzionalità di YOLO26.



Watch: How to Train a YOLO model on Your Custom Dataset in Google Colab.

Link to this sectionPerché scegliere Ultralytics YOLO per l'addestramento?#

Ecco alcuni validi motivi per scegliere la modalità Train di YOLO26:

  • Efficienza: Sfrutta al massimo il tuo hardware, che tu stia utilizzando una configurazione a singola GPU o scalando su più GPU.
  • Versatilità: Addestra su dataset personalizzati oltre a quelli facilmente disponibili come COCO, VOC e ImageNet.
  • Facilità d'uso: Interfacce CLI e Python semplici ma potenti per un'esperienza di addestramento diretta.
  • Flessibilità degli iperparametri: Un'ampia gamma di iperparametri personalizzabili per ottimizzare le prestazioni del modello. Per un controllo più approfondito, puoi personalizzare il trainer stesso.
  • Addestramento in Cloud: Addestra su GPU in cloud tramite Ultralytics Platform con metriche in tempo reale e checkpoint automatici.

Link to this sectionCaratteristiche principali della modalità Train#

Di seguito sono riportate alcune caratteristiche notevoli della modalità Train di YOLO26:

  • Download automatico del dataset: Dataset standard come COCO, VOC e ImageNet vengono scaricati automaticamente al primo utilizzo.
  • Supporto Multi-GPU: Scala le tue attività di addestramento in modo fluido su più GPU per accelerare il processo.
  • Configurazione degli iperparametri: La possibilità di modificare gli iperparametri tramite file di configurazione YAML o argomenti CLI.
  • Visualizzazione e monitoraggio: Monitoraggio in tempo reale delle metriche di addestramento e visualizzazione del processo di apprendimento per ottenere insight migliori.
Suggerimento
  • I dataset YOLO26 come COCO, VOC, ImageNet e molti altri vengono scaricati automaticamente al primo utilizzo, ad esempio yolo train data=coco.yaml

Link to this sectionEsempi di Utilizzo#

Addestra YOLO26n sul dataset COCO8 per 100 epoch con una dimensione dell'immagine di 640. Il dispositivo di addestramento può essere specificato utilizzando l'argomento device. Se non viene passato alcun argomento, verrà utilizzata la GPU device=0 quando disponibile; altrimenti verrà utilizzato device='cpu'. Vedi la sezione Argomenti qui sotto per un elenco completo degli argomenti di addestramento.

Errore di multi-elaborazione su Windows

Su Windows, potresti ricevere un RuntimeError quando avvii l'addestramento come script. Aggiungi un blocco if __name__ == "__main__": prima del codice di addestramento per risolvere il problema.

Esempio di addestramento su singola GPU e CPU

Il dispositivo viene determinato automaticamente. Se una GPU è disponibile, verrà utilizzata (dispositivo CUDA predefinito 0); altrimenti l'addestramento inizierà sulla CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionAddestramento Multi-GPU#

L'addestramento Multi-GPU consente un utilizzo più efficiente delle risorse hardware disponibili distribuendo il carico di addestramento su più GPU. Questa funzionalità è disponibile sia tramite l'API Python che tramite l'interfaccia a riga di comando. Per abilitare l'addestramento Multi-GPU, specifica gli ID dei dispositivi GPU che desideri utilizzare.

Esempio di addestramento Multi-GPU

Per addestrare con 2 GPU, dispositivi CUDA 0 e 1, usa i seguenti comandi. Espandi ad altre GPU se necessario.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
Addestramento Multi-GPU con codice personalizzato

Quando specifichi più dispositivi (es. device=[0, 1]), Ultralytics avvia internamente una nuova istanza del trainer ed esegue torch.distributed.run sotto il cofano. Questo funziona perfettamente per il normale utilizzo CLI e per gli script Python non modificati.

Tuttavia, se il tuo script contiene componenti personalizzati, come un trainer, un validatore, un dataset o una pipeline di aumentazione personalizzati, questi oggetti non possono essere serializzati e trasferiti automaticamente ai sottoprocessi DDP. In questo caso, devi avviare il tuo script direttamente con torch.distributed.run:

python -m torch.distributed.run --nproc_per_node 2 your_training_script.py

Link to this sectionAddestramento su GPU inattive#

L'addestramento su GPU inattive consente la selezione automatica delle GPU meno utilizzate nei sistemi multi-GPU, ottimizzando l'uso delle risorse senza la selezione manuale della GPU. Questa funzione identifica le GPU disponibili in base alle metriche di utilizzo e alla disponibilità di VRAM.

Esempio di addestramento su GPU inattive

Per selezionare e utilizzare automaticamente la/le GPU più inattiva/e per l'addestramento, usa il parametro del dispositivo -1. Questo è particolarmente utile in ambienti di calcolo condivisi o server con più utenti.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])

L'algoritmo di selezione automatica dà priorità alle GPU con:

  1. Minori percentuali di utilizzo corrente
  2. Maggiore memoria disponibile (VRAM libera)
  3. Minore temperatura e consumo energetico

Questa funzionalità è particolarmente preziosa in ambienti di calcolo condivisi o quando si eseguono più processi di addestramento su diversi modelli. Si adatta automaticamente al cambiamento delle condizioni del sistema, garantendo un'allocazione ottimale delle risorse senza intervento manuale.

Link to this sectionAddestramento MPS su Apple Silicon#

Con il supporto per i chip Apple Silicon integrato nei modelli Ultralytics YOLO, ora è possibile addestrare i modelli su dispositivi che utilizzano il potente framework Metal Performance Shaders (MPS). L'MPS offre un modo ad alte prestazioni per eseguire attività di calcolo ed elaborazione delle immagini sul silicio personalizzato di Apple.

Per abilitare l'addestramento sui chip Apple Silicon, dovresti specificare 'mps' come dispositivo quando avvii il processo di addestramento. Di seguito è riportato un esempio di come puoi farlo in Python e tramite riga di comando:

Esempio di addestramento MPS
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Sfruttando la potenza di calcolo dei chip Apple Silicon, ciò consente un'elaborazione più efficiente delle attività di addestramento. Per una guida più dettagliata e opzioni di configurazione avanzate, fai riferimento alla documentazione PyTorch MPS.

Link to this sectionRiprendere addestramenti interrotti#

Riprendere l'addestramento da uno stato precedentemente salvato è una funzionalità cruciale quando si lavora con modelli di deep learning. Questo può tornare utile in vari scenari, come quando il processo di addestramento è stato inaspettatamente interrotto o quando desideri continuare ad addestrare un modello con nuovi dati o per ulteriori epoche.

Quando l'addestramento viene ripreso, Ultralytics YOLO carica i pesi dall'ultimo modello salvato e ripristina anche lo stato dell'ottimizzatore, lo scheduler del learning rate e il numero di epoche. Questo ti consente di continuare il processo di addestramento senza interruzioni da dove era stato lasciato.

Puoi facilmente riprendere l'addestramento in Ultralytics YOLO impostando l'argomento resume su True quando chiami il metodo train e specificando il percorso del file .pt contenente i pesi del modello parzialmente addestrato.

Di seguito è riportato un esempio di come riprendere un addestramento interrotto utilizzando Python e tramite riga di comando:

Esempio di ripresa dell'addestramento
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

Impostando resume=True, la funzione train continuerà l'addestramento da dove è stato interrotto, utilizzando lo stato salvato nel file 'path/to/last.pt'. Se l'argomento resume viene omesso o impostato su False, la funzione train avvierà una nuova sessione di addestramento.

Ricorda che i checkpoint vengono salvati alla fine di ogni epoca per impostazione predefinita, o a intervalli fissi utilizzando l'argomento save_period, quindi devi completare almeno 1 epoca per riprendere una sessione di addestramento.

Link to this sectionImpostazioni di addestramento#

Le impostazioni di addestramento per i modelli YOLO comprendono vari iperparametri e configurazioni utilizzati durante il processo di addestramento. Queste impostazioni influenzano le prestazioni, la velocità e l'accuratezza del modello. Le impostazioni di addestramento chiave includono la dimensione del batch, il learning rate, il momentum e il weight decay. Inoltre, la scelta dell'ottimizzatore, della loss function e della composizione del dataset di addestramento può influire sul processo. Un'attenta messa a punto e la sperimentazione con queste impostazioni sono cruciali per ottimizzare le prestazioni.

Link to this sectionOttimizzatore MuSGD#

In YOLO26, MuSGD è un ottimizzatore ibrido che combina aggiornamenti SGD standard con aggiornamenti ortogonalizzati in stile Muon.

È consigliato per sessioni di addestramento YOLO26 più lunghe e dataset più grandi, dove gli aggiornamenti ortogonalizzati Muon possono aiutare a stabilizzare l'ottimizzazione.

Solo i parametri con param.ndim >= 2 (come i pesi convoluzionali) ricevono l'aggiornamento in stile Muon insieme a SGD, mentre i parametri a dimensione inferiore come i layer di batch normalization e i termini di bias rimangono su SGD standard.

Quando viene utilizzato optimizer=auto, Ultralytics seleziona automaticamente MuSGD per sessioni di addestramento più lunghe (solitamente quando le iterazioni > 10000). Per sessioni più brevi, il trainer ripiega su AdamW.

Esempio di utilizzo:

yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGD

Vedi l'implementazione in ultralytics/optim/muon.py e la logica di selezione automatica dell'ottimizzatore in BaseTrainer.build_optimizer.

ArgomentoTipoPredefinitoDescrizione
modelstrNoneSpecifica il file del modello per l'addestramento. Accetta un percorso verso un modello pre-addestrato .pt o un file di configurazione .yaml. Essenziale per definire la struttura del modello o inizializzare i pesi.
datastrNonePercorso del file di configurazione del dataset (es. coco8.yaml). Questo file contiene parametri specifici del dataset, inclusi i percorsi verso i dati di addestramento e validazione, i nomi delle classi e il numero di classi.
epochsint100Numero totale di epoche di addestramento. Ogni epoca rappresenta un passaggio completo sull'intero dataset. La regolazione di questo valore può influire sulla durata dell'addestramento e sulle prestazioni del modello.
timefloatNoneTempo massimo di addestramento in ore. Se impostato, sovrascrive l'argomento epochs, consentendo all'addestramento di arrestarsi automaticamente dopo la durata specificata. Utile per scenari di addestramento con vincoli temporali.
patienceint100Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere l'addestramento. Aiuta a prevenire l'overfitting interrompendo l'addestramento quando le prestazioni raggiungono un plateau.
batchint o float16Batch size, con tre modalità: impostata come numero intero (es. batch=16), modalità automatica per il 60% di utilizzo della memoria GPU (batch=-1) o modalità automatica con frazione di utilizzo specificata (batch=0.70).
imgszint640Dimensione target dell'immagine per l'addestramento. Le immagini vengono ridimensionate in quadrati con lati uguali al valore specificato (se rect=False), preservando il rapporto di aspetto per i modelli YOLO ma non per RT-DETR. Influisce sull'accuratezza del modello e sulla complessità computazionale.
saveboolTrueAbilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. Utile per riprendere l'addestramento o per il model deployment.
save_periodint-1Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Un valore di -1 disabilita questa funzione. Utile per salvare modelli intermedi durante lunghe sessioni di addestramento.
cacheboolFalseAbilita la memorizzazione nella cache delle immagini del dataset in memoria (True/ram), su disco (disk) o la disabilita (False). Migliora la velocità di addestramento riducendo l'I/O su disco a costo di un maggiore utilizzo della memoria.
deviceint o str o listNoneSpecifica il/i dispositivo/i computazionale/i per l'addestramento: una singola GPU (device=0), più GPU (device=[0,1]), CPU (device=cpu), MPS per Apple Silicon (device=mps), Huawei Ascend NPU (device=npu o device=npu:0), oppure selezione automatica della GPU più inattiva (device=-1) o di più GPU inattive (device=[-1,-1])
workersint8Numero di thread worker per il caricamento dei dati (per RANK in caso di addestramento Multi-GPU). Influisce sulla velocità di pre-elaborazione dei dati e sull'alimentazione nel modello, particolarmente utile nelle configurazioni Multi-GPU.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente una memorizzazione organizzata dei diversi esperimenti.
namestrNoneNome della sessione di addestramento. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono archiviati i log e gli output dell'addestramento.
exist_okboolFalseSe True, consente la sovrascrittura di una directory progetto/nome esistente. Utile per la sperimentazione iterativa senza dover cancellare manualmente i precedenti output.
pretrainedbool o strTrueDetermina se iniziare l'addestramento da pesi pre-addestrati. Può essere un valore booleano o un percorso di stringa verso i pesi da caricare. pretrained=False addestra da pesi inizializzati casualmente mantenendo l'architettura del modello.
optimizerstr'auto'Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto per la selezione automatica in base alla configurazione del modello. Influisce sulla velocità di convergenza e sulla stabilità.
seedint0Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra sessioni diverse con le stesse configurazioni.
deterministicboolTrueForza l'uso di algoritmi deterministici, garantendo la riproducibilità ma potenzialmente influenzando le prestazioni e la velocità a causa della restrizione su algoritmi non deterministici.
verboseboolTrueAbilita l'output dettagliato durante l'addestramento, visualizzando barre di avanzamento, metriche per epoca e ulteriori informazioni sull'addestramento nella console.
single_clsboolFalseTratta tutte le classi in dataset multi-classe come una singola classe durante l'addestramento. Utile per attività di classificazione binaria o quando ci si concentra sulla presenza di oggetti piuttosto che sulla classificazione.
classeslist[int]NoneSpecifica un elenco di ID classe su cui addestrare. Utile per filtrare e concentrarsi solo su determinate classi durante l'addestramento.
rectboolFalseAbilita la strategia di riempimento minimo: le immagini in un batch vengono riempite minimamente per raggiungere una dimensione comune, con il lato più lungo uguale a imgsz. Può migliorare efficienza e velocità, ma potrebbe influire sull'accuratezza del modello.
multi_scalefloat0.0Varia casualmente imgsz per ogni batch di +/- multi_scale (es. 0.25 -> da 0.75x a 1.25x), arrotondando ai multipli dello stride del modello; 0.0 disabilita l'addestramento multi-scala.
cos_lrboolFalseUtilizza uno scheduler del learning rate a coseno, regolando il learning rate seguendo una curva a coseno nel corso delle epoche. Aiuta nella gestione del learning rate per una migliore convergenza.
close_mosaicint10Disabilita la data augmentation mosaic nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. Impostare a 0 disabilita questa funzione.
resumeboolFalseRiprende l'addestramento dall'ultimo checkpoint salvato. Carica automaticamente pesi del modello, stato dell'ottimizzatore e conteggio delle epoche, continuando l'addestramento senza interruzioni.
ampboolTrueAbilita l'addestramento in Mixed Precision (AMP) automatico, riducendo l'utilizzo di memoria e possibilmente velocizzando l'addestramento con un impatto minimo sull'accuratezza.
fractionfloat1.0Specifica la frazione del dataset da utilizzare per l'addestramento. Consente l'addestramento su un sottoinsieme dell'intero dataset, utile per esperimenti o quando le risorse sono limitate.
profileboolFalseAbilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare il deployment del modello.
freezeint o listNoneBlocca i primi N strati del modello o gli strati specificati per indice, riducendo il numero di parametri addestrabili. Utile per il fine-tuning o transfer learning.
lr0float0.01Learning rate iniziale (es. SGD=1E-2, Adam=1E-3). La regolazione di questo valore è cruciale per il processo di ottimizzazione, influenzando la rapidità con cui vengono aggiornati i pesi del modello.
lrffloat0.01Learning rate finale come frazione del tasso iniziale = (lr0 * lrf), utilizzato insieme agli scheduler per regolare il learning rate nel tempo.
momentumfloat0.937Fattore di momentum per SGD o beta1 per gli Adam optimizers, che influenza l'incorporazione dei gradienti passati nell'aggiornamento corrente.
weight_decayfloat0.0005Termine di regularization L2, che penalizza i pesi grandi per prevenire l'overfitting.
warmup_epochsfloat3.0Numero di epoche per il warmup del learning rate, aumentando gradualmente il learning rate da un valore basso a quello iniziale per stabilizzare l'addestramento nelle prime fasi.
warmup_momentumfloat0.8Momentum iniziale per la fase di warmup, che si adatta gradualmente al momentum impostato durante il periodo di warmup.
warmup_bias_lrfloat0.1Learning rate per i parametri di bias durante la fase di warmup, aiutando a stabilizzare l'addestramento del modello nelle epoche iniziali.
boxfloat7.5Peso della componente di perdita della box nella loss function, che influenza quanta enfasi viene posta sulla previsione accurata delle coordinate della bounding box.
clsfloat0.5Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della previsione corretta della classe rispetto ad altre componenti.
cls_pwfloat0.0Potenza per la ponderazione delle classi per gestire lo squilibrio delle classi utilizzando la frequenza inversa della classe. 0.0 disabilita la ponderazione delle classi, 1.0 applica la ponderazione a frequenza inversa completa. Valori tra 0 e 1 forniscono una ponderazione parziale.
dflfloat1.5Peso della distribution focal loss, utilizzato in alcune versioni di YOLO per la classificazione granulare.
posefloat12.0Peso della perdita di posa nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei keypoint della posa.
kobjfloat1.0Peso della perdita di objectness dei keypoint nei modelli di stima della posa, bilanciando la confidenza di rilevamento con l'accuratezza della posa.
rlefloat1.0Peso della perdita di stima della log-likelihood residua nei modelli di stima della posa, influenzando la precisione della localizzazione dei keypoint.
anglefloat1.0Peso della perdita dell'angolo nei modelli obb, influenzando la precisione delle previsioni dell'angolo della bounding box orientata.
nbsint64Batch size nominale per la normalizzazione della perdita.
overlap_maskboolTrueDetermina se le maschere degli oggetti debbano essere unite in un'unica maschera per l'addestramento o mantenute separate per ogni oggetto. In caso di sovrapposizione, la maschera più piccola viene sovrapposta a quella più grande durante l'unione.
mask_ratioint4Rapporto di downsampling per le maschere di segmentazione, che influisce sulla risoluzione delle maschere utilizzate durante l'addestramento.
dropoutfloat0.0Tasso di dropout per la regolarizzazione nelle attività di classificazione, che previene l'overfitting omettendo casualmente unità durante l'addestramento.
valboolTrueAbilita la validazione durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato.
plotsboolTrueGenera e salva grafici delle metriche di addestramento e validazione, oltre a esempi di previsione, fornendo approfondimenti visivi sulle prestazioni del modello e sul progresso dell'apprendimento.
compilebool o strFalseAbilita la compilazione del grafo PyTorch 2.x torch.compile con backend='inductor'. Accetta True"default", False → disabilita, o una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Ripiega su eager con un avviso se non supportato.
max_detint300Specifica il numero massimo di oggetti conservati durante la fase di validazione dell'addestramento.
Nota sulle impostazioni della batch-size

L'argomento batch può essere configurato in tre modi:

  • Batch Size fissa: Imposta un valore intero (es. batch=16), specificando direttamente il numero di immagini per batch.
  • Modalità automatica (60% memoria GPU): Usa batch=-1 per regolare automaticamente la batch size per circa il 60% dell'utilizzo della memoria CUDA.
  • Modalità automatica con frazione di utilizzo: Imposta un valore di frazione (es. batch=0.70) per regolare la batch size in base alla frazione specificata dell'utilizzo della memoria GPU.
  • Auto-ritentativo in caso di OOM: Se si verifica un errore di esaurimento della memoria CUDA durante la prima epoca, il trainer dimezza automaticamente la batch size e riprova (fino a 3 volte). Questo si applica solo all'addestramento su singola GPU; l'addestramento multi-GPU (DDP) solleverà immediatamente l'errore.

Link to this sectionImpostazioni di aumentazione e iperparametri#

Le tecniche di aumentazione sono essenziali per migliorare la robustezza e le prestazioni dei modelli YOLO introducendo variabilità nei dati di addestramento, aiutando il modello a generalizzare meglio su dati non visti. La seguente tabella delinea lo scopo e l'effetto di ogni argomento di aumentazione:

ArgomentoTipoPredefinitoAttività supportateIntervalloDescrizione
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Regola la tonalità (hue) dell'immagine di una frazione della ruota dei colori, introducendo variabilità cromatica. Aiuta il modello a generalizzare in diverse condizioni di illuminazione.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Altera la saturazione dell'immagine di una frazione, influenzando l'intensità dei colori. Utile per simulare diverse condizioni ambientali.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modifica il valore (luminosità) dell'immagine di una frazione, aiutando il modello a funzionare bene in varie condizioni di luce.
degreesfloat0detect, segment, pose, obb0.0 - 180Ruota l'immagine in modo casuale entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere oggetti con orientamenti diversi.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Trasla l'immagine orizzontalmente e verticalmente di una frazione della dimensione dell'immagine, aiutando a imparare a rilevare oggetti parzialmente visibili.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Scala l'immagine con un fattore di guadagno, simulando oggetti a diverse distanze dalla fotocamera.
shearfloat0detect, segment, pose, obb-180 - +180Inclina (shear) l'immagine di un grado specificato, mimando l'effetto di oggetti visti da angolazioni diverse.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Applica una trasformazione prospettica casuale all'immagine, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Capovolge l'immagine verticalmente (sottosopra) con la probabilità specificata, aumentando la variabilità dei dati senza influenzare le caratteristiche dell'oggetto.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Capovolge l'immagine orizzontalmente con la probabilità specificata, utile per imparare oggetti simmetrici e aumentare la diversità del dataset.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza contro un ordine dei canali errato.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Combina quattro immagini di addestramento in una, simulando diverse composizioni di scena e interazioni tra oggetti. Molto efficace per la comprensione di scene complesse.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Unisci due immagini e le loro etichette, creando un'immagine composita. Migliora la capacità del modello di generalizzare introducendo rumore nelle etichette e variabilità visiva.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina porzioni di due immagini, creando una fusione parziale pur mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione.
copy_pastefloat0segment0.0 - 1.0Copia e incolla oggetti tra le immagini per aumentare le istanze degli oggetti.
copy_paste_modestrflipsegment-Specifica la strategia copy-paste da utilizzare. Le opzioni includono 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Applica una politica di aumento predefinita ('randaugment', 'autoaugment' o 'augmix') per migliorare le prestazioni del modello attraverso la diversità visiva.
erasingfloat0.4classify0.0 - 1.0Cancella casualmente regioni dell'immagine durante l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno ovvie.
augmentationslist``detect, segment, pose, obb-Trasformazioni Albumentations personalizzate per l'aumento avanzato dei dati (solo API Python). Accetta un elenco di oggetti di trasformazione per esigenze di aumento specializzate.

Queste impostazioni possono essere regolate per soddisfare i requisiti specifici del dataset e del compito in questione. Sperimentare con valori diversi può aiutare a trovare la strategia di aumento ottimale che porta alle migliori prestazioni del modello.

Informazioni

Per ulteriori informazioni sulle operazioni di aumento durante l'addestramento, consulta la sezione di riferimento.

Link to this sectionRegistrazione (Logging)#

Durante l'addestramento di un modello YOLO26, potresti trovare utile monitorare le prestazioni del modello nel tempo. È qui che entra in gioco il logging. Ultralytics YOLO fornisce supporto per tre tipi di logger: Comet, ClearML e TensorBoard.

Per utilizzare un logger, selezionalo dal menu a discesa nello snippet di codice qui sopra ed eseguilo. Il logger scelto verrà installato e inizializzato.

Link to this sectionComet#

Comet è una piattaforma che consente a data scientist e sviluppatori di tracciare, confrontare, spiegare e ottimizzare esperimenti e modelli. Offre funzionalità come metriche in tempo reale, differenze nel codice (code diffs) e il tracciamento degli iperparametri.

Per utilizzare Comet:

Esempio
# pip install comet_ml
import comet_ml

comet_ml.init()

Ricordati di accedere al tuo account Comet sul loro sito web e ottenere la tua API key. Dovrai aggiungerla alle tue variabili d'ambiente o al tuo script per registrare i tuoi esperimenti.

Link to this sectionClearML#

ClearML è una piattaforma open-source che automatizza il tracciamento degli esperimenti e aiuta nella condivisione efficiente delle risorse. È progettata per aiutare i team a gestire, eseguire e riprodurre il loro lavoro di ML in modo più efficiente.

Per utilizzare ClearML:

Esempio
# pip install clearml
import clearml

clearml.browser_login()

Dopo aver eseguito questo script, dovrai accedere al tuo account ClearML sul browser e autenticare la tua sessione.

Link to this sectionTensorBoard#

TensorBoard è un toolkit di visualizzazione per TensorFlow. Ti consente di visualizzare il tuo grafo TensorFlow, tracciare metriche quantitative sull'esecuzione del grafo e mostrare dati aggiuntivi come le immagini che lo attraversano.

Per utilizzare TensorBoard in Google Colab:

Esempio
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Per utilizzare TensorBoard localmente, esegui il comando seguente e visualizza i risultati su localhost:6006.

Esempio
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Questo caricherà TensorBoard e lo indirizzerà alla directory in cui sono salvati i log di addestramento.

Dopo aver configurato il logger, puoi procedere con l'addestramento del modello. Tutte le metriche di addestramento verranno registrate automaticamente nella piattaforma scelta e potrai accedere a questi log per monitorare le prestazioni del modello nel tempo, confrontare diversi modelli e identificare le aree di miglioramento.

Link to this sectionFAQ#

Link to this sectionPosso addestrare senza una GPU locale?#

Sì. Ultralytics Platform supporta l'addestramento nel cloud con crediti gratuiti per iniziare. Carica il tuo dataset, seleziona un modello e una GPU e addestra direttamente dal browser. Vedi la guida all'addestramento nel cloud per i dettagli.

Link to this sectionCome posso addestrare un modello di rilevamento oggetti usando Ultralytics YOLO26?#

Per addestrare un modello di rilevamento oggetti usando Ultralytics YOLO26, puoi usare l'API Python o la CLI. Di seguito un esempio per entrambi:

Esempio di addestramento su singola GPU e CPU
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Per maggiori dettagli, consulta la sezione Impostazioni di Addestramento.

Link to this sectionQuali sono le caratteristiche principali della modalità Addestramento (Train) di Ultralytics YOLO26?#

Le caratteristiche principali della modalità Addestramento di Ultralytics YOLO26 includono:

  • Download Automatico del Dataset: Scarica automaticamente dataset standard come COCO, VOC e ImageNet.
  • Supporto Multi-GPU: Scala l'addestramento su più GPU per un'elaborazione più rapida.
  • Configurazione degli Iperparametri: Personalizza gli iperparametri tramite file YAML o argomenti CLI.
  • Visualizzazione e Monitoraggio: Tracciamento in tempo reale delle metriche di addestramento per migliori approfondimenti.

Queste caratteristiche rendono l'addestramento efficiente e personalizzabile secondo le tue esigenze. Per maggiori dettagli, vedi la sezione Caratteristiche Principali della Modalità Addestramento.

Link to this sectionCome posso riprendere l'addestramento da una sessione interrotta in Ultralytics YOLO26?#

Per riprendere l'addestramento da una sessione interrotta, imposta l'argomento resume su True e specifica il percorso all'ultimo checkpoint salvato.

Esempio di ripresa dell'addestramento
from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)

Controlla la sezione su Ripresa di Addestramenti Interrotti per maggiori informazioni.

Link to this sectionCome posso addestrare un modello su un dataset sbilanciato?#

Lo sbilanciamento delle classi si verifica quando alcune classi hanno significativamente meno esempi rispetto ad altre nei dati di addestramento. Ciò può causare prestazioni scadenti del modello sulle classi rare. Ultralytics YOLO supporta la ponderazione delle classi (class weighting) tramite l'argomento cls_pw per affrontare questo problema.

L'argomento cls_pw controlla il potere di ponderazione della classe basato sull'inverso della frequenza della classe:

  • cls_pw=0.0 (predefinito): Disabilita la ponderazione delle classi
  • cls_pw=1.0: Applica la ponderazione completa della frequenza inversa
  • Valori tra 0.0 e 1.0: Forniscono una ponderazione parziale per uno sbilanciamento moderato

I pesi delle classi sono calcolati come (1.0 / class_counts) ^ cls_pw e normalizzati in modo che la loro media sia pari a 1.0.

Addestramento su un Dataset Sbilanciato
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train with full class weighting for severely imbalanced data
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0)

# Or use partial weighting (0.25) for moderate imbalance
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)
Suggerimento

Inizia con cls_pw=0.25 per dataset moderatamente sbilanciati e aumenta fino a 1.0 se le classi rare continuano a dare prestazioni scarse. Puoi controllare i pesi delle classi calcolati nei log di addestramento per verificare la distribuzione dei pesi.

Link to this sectionPosso addestrare i modelli YOLO26 sui chip Apple silicon?#

Sì, Ultralytics YOLO26 supporta l'addestramento sui chip Apple silicon utilizzando il framework Metal Performance Shaders (MPS). Specifica 'mps' come tuo dispositivo di addestramento.

Esempio di addestramento MPS
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Per maggiori dettagli, consulta la sezione Addestramento MPS su Apple Silicon.

Link to this sectionQuali sono le impostazioni comuni di addestramento e come posso configurarle?#

Ultralytics YOLO26 ti permette di configurare una varietà di impostazioni di addestramento come dimensione del batch, tasso di apprendimento (learning rate), epoche e altro tramite argomenti. Ecco una breve panoramica:

ArgomentoPredefinitoDescrizione
modelNonePercorso al file del modello per l'addestramento.
dataNonePercorso al file di configurazione del dataset (es. coco8.yaml).
epochs100Numero totale di epoche di addestramento.
batch16Dimensione del batch, regolabile come numero intero o modalità automatica.
imgsz640Dimensione dell'immagine target per l'addestramento.
deviceNoneDispositivo(i) computazionale(i) per l'addestramento come cpu, 0, 0,1 o mps.
saveTrueAbilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello.

Per una guida approfondita sulle impostazioni di addestramento, controlla la sezione Impostazioni di Addestramento.

Commenti