Vai al contenuto

Addestramento del modello con Ultralytics YOLO

Ecosistema e integrazioni Ultralytics YOLO

Introduzione

L'addestramento di un modello di deep learning comporta l'inserimento di dati e la regolazione dei suoi parametri in modo che possa fare previsioni accurate. La modalità Train in Ultralytics YOLO11 è progettata per un addestramento efficace ed efficiente dei modelli di rilevamento oggetti, sfruttando appieno le moderne capacità hardware. Questa guida ha lo scopo di coprire tutti i dettagli necessari per iniziare ad addestrare i tuoi modelli utilizzando il robusto set di funzionalità di YOLO11.



Guarda: Come addestrare un modello YOLO sul tuo set di dati personalizzato in Google Colab.

Perché scegliere Ultralytics YOLO per l'addestramento?

Ecco alcuni motivi convincenti per optare per la modalità Train di YOLO11:

  • Efficienza: Ottieni il massimo dal tuo hardware, sia che tu stia utilizzando una configurazione a singola GPU sia che tu stia scalando su più GPU.
  • Versatilità: Esegui l'addestramento su set di dati 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 training immediata.
  • Flessibilità degli iperparametri: Un'ampia gamma di iperparametri personalizzabili per ottimizzare le prestazioni del modello.

Caratteristiche principali della modalità Train

Di seguito sono riportate alcune caratteristiche principali della modalità Train di YOLO11:

  • Download automatico del dataset: I dataset standard come COCO, VOC e ImageNet vengono scaricati automaticamente al primo utilizzo.
  • Supporto multi-GPU: Scala i tuoi sforzi di training senza problemi su più GPU per accelerare il processo.
  • Configurazione degli iperparametri: Possibilità di modificare gli iperparametri tramite file di configurazione YAML o argomenti CLI.
  • Visualizzazione e monitoraggio: Monitoraggio in tempo reale delle metriche di training e visualizzazione del processo di apprendimento per una migliore comprensione.

Suggerimento

  • I dataset YOLO11 come COCO, VOC, ImageNet e molti altri vengono scaricati automaticamente al primo utilizzo, ovvero yolo train data=coco.yaml

Esempi di utilizzo

Esegui il training di YOLO11n sul dataset COCO8 per 100 epoche con una dimensione dell'immagine di 640. Il dispositivo di training può essere specificato utilizzando l'argomento device . Se non viene passato alcun argomento, verrà utilizzata la GPU device=0 se disponibile, altrimenti verrà utilizzata la device='cpu' CPU. Consulta la sezione Argomenti di seguito per un elenco completo degli argomenti di training.

Errore di Multi-Processing di Windows

Su Windows, potresti ricevere un RuntimeError quando si avvia il training come script. Aggiungi un if __name__ == "__main__": aggiungi questo blocco prima del tuo codice di training per risolverlo.

Esempio di training su singola GPU e CPU

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

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Training multi-GPU

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

Esempio di training multi-GPU

Per eseguire il training con 2 GPU, dispositivi CUDA 0 e 1, utilizza i seguenti comandi. Espandi a GPU aggiuntive secondo necessità.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

# Use the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

Addestramento GPU inattiva

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

Esempio di addestramento GPU inattiva

Per selezionare e utilizzare automaticamente le GPU più inattive per il training, usa il -1 parametro device. Ciò è particolarmente utile in ambienti di calcolo condivisi o server con più utenti.

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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])
# Start training using the single most idle GPU
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=-1,-1

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

  1. Percentuali di utilizzo della corrente inferiori
  2. Maggiore memoria disponibile (VRAM libera)
  3. Temperatura e consumo energetico inferiori

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

Addestramento MPS su Apple Silicon

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

Per abilitare il training sui chip Apple Silicon, è necessario specificare 'mps' come dispositivo quando si avvia il processo di training. Di seguito è riportato un esempio di come è possibile farlo in python e tramite la riga di comando:

Esempio di training MPS

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

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

Ripresa di addestramenti interrotti

La ripresa del training da uno stato precedentemente salvato è una funzionalità cruciale quando si lavora con modelli di deep learning. Questo può essere utile in vari scenari, come quando il processo di training è stato interrotto inaspettatamente o quando si desidera continuare a eseguire il training di un modello con nuovi dati o per più epoche.

Quando il training 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 epoca. Ciò consente di continuare il processo di training senza interruzioni da dove era stato interrotto.

È possibile riprendere facilmente l'addestramento in Ultralytics YOLO impostando l'argomento resume a True quando si richiama 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 la 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)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

Impostando resume=True, la funzione train continuerà l'addestramento da dove era stato interrotto, utilizzando lo stato memorizzato nel file 'path\/to\/last.pt'. Se l'argomento resume viene omesso o impostato su False, la funzione train , la funzione 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 è necessario completare almeno 1 epoca per riprendere un'esecuzione di addestramento.

Impostazioni di Training

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 chiave dell'addestramento includono la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento del peso. Inoltre, la scelta dell'ottimizzatore, della funzione di perdita e della composizione del set di dati di addestramento può influire sul processo di addestramento. Un'attenta messa a punto e la sperimentazione con queste impostazioni sono fondamentali per ottimizzare le prestazioni.

Argomento Tipo Predefinito Descrizione
model str None Specifica il file del modello per il training. Accetta un percorso verso un .pt modello pre-addestrato oppure un .yaml file di configurazione. Essenziale per definire la struttura del modello o inizializzare i pesi.
data str None Percorso del file di configurazione del dataset (ad esempio, coco8.yaml ). Questo file contiene parametri specifici del dataset, inclusi i percorsi per il training e i dati di validazione, i nomi delle classi e il numero di classi.
epochs int 100 Numero totale di epoche di training. Ogni epoca rappresenta un passaggio completo sull'intero dataset. La regolazione di questo valore può influire sulla durata del training e sulle prestazioni del modello.
time float None Tempo massimo di training in ore. Se impostato, questo sovrascrive l'argomento epochs , consentendo al training di arrestarsi automaticamente dopo la durata specificata. Utile per scenari di training con vincoli di tempo.
patience int 100 Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere anticipatamente il training. Aiuta a prevenire l'overfitting interrompendo il training quando le prestazioni si stabilizzano.
batch int oppure float 16 Dimensione del batch, con tre modalità: impostata come numero intero (ad es. batch=16), modalità automatica per l'utilizzo del 60% della memoria della GPU (batch=-1), oppure modalità automatica con frazione di utilizzo specificata (batch=0.70).
imgsz int oppure list 640 Dimensione target dell'immagine per il training. Tutte le immagini vengono ridimensionate a questa dimensione prima di essere inserite nel modello. Influisce sull'accuratezza del modello e sulla complessità computazionale.
save bool True Abilita il salvataggio dei checkpoint di training e dei pesi finali del modello. Utile per riprendere il training o l'implementazione del modello.
save_period int -1 Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Un valore di -1 disabilita questa funzionalità. Utile per salvare modelli provvisori durante lunghe sessioni di training.
cache bool False Abilita la memorizzazione nella cache delle immagini del dataset in memoria (True/ram), su disco (disk), oppure la disabilita (False). Migliora la velocità di training riducendo l'I/O del disco a costo di un maggiore utilizzo della memoria.
device int oppure str oppure list None Specifica i dispositivi di calcolo per l'addestramento: una singola GPU (device=0), GPU multiple (device=[0,1]), CPU (device=cpu), MPS per Apple silicon (device=mps), o la selezione automatica della GPU più inattiva (device=-1) o più GPU inattive (device=[-1,-1])
workers int 8 Numero di thread worker per il caricamento dei dati (per RANK se addestramento Multi-GPU). Influisce sulla velocità di preelaborazione dei dati e di alimentazione nel modello, particolarmente utile in configurazioni multi-GPU.
project str None Nome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente di archiviare in modo organizzato diversi esperimenti.
name str None Nome dell'esecuzione dell'addestramento. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, in cui vengono memorizzati i log e gli output dell'addestramento.
exist_ok bool False Se True, consente di sovrascrivere una directory progetto/nome esistente. Utile per la sperimentazione iterativa senza la necessità di cancellare manualmente gli output precedenti.
pretrained bool oppure str True Determina se iniziare l'addestramento da un modello pre-addestrato. Può essere un valore booleano o un percorso stringa a un modello specifico da cui caricare i pesi. Migliora l'efficienza dell'addestramento e le prestazioni del modello.
optimizer str 'auto' Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, Adam, AdamW, NAdam, RAdam, RMSProp ecc., o auto per la selezione automatica in base alla configurazione del modello. Influisce sulla velocità e sulla stabilità della convergenza.
seed int 0 Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra le esecuzioni con le stesse configurazioni.
deterministic bool True Forza l'uso di algoritmi deterministici, garantendo la riproducibilità ma può influire sulle prestazioni e sulla velocità a causa della restrizione sugli algoritmi non deterministici.
single_cls bool False Considera tutte le classi nei set di dati multi-classe come una singola classe durante l'addestramento. Utile per attività di classificazione binaria o quando ci si concentra sulla presenza dell'oggetto piuttosto che sulla classificazione.
classes list[int] None Specifica un elenco di ID di classe su cui eseguire il training. Utile per filtrare e concentrarsi solo su determinate classi durante il training.
rect bool False Abilita l'addestramento rettangolare, ottimizzando la composizione del batch per un padding minimo. Può migliorare l'efficienza e la velocità, ma può influire sulla precisione del modello.
multi_scale bool False Abilita l'addestramento multi-scala aumentando/diminuendo imgsz fino a un fattore di 0.5 durante il training. Addestra il modello per essere più preciso con molteplici imgsz durante l'inferenza.
cos_lr bool False Utilizza uno scheduler del learning rate coseno, regolando il learning rate seguendo una curva coseno nel corso delle epoche. Aiuta a gestire il learning rate per una migliore convergenza.
close_mosaic int 10 Disabilita l'aumento dei dati a mosaico nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. L'impostazione su 0 disabilita questa funzionalità.
resume bool False Riprende l'addestramento dall'ultimo checkpoint salvato. Carica automaticamente i pesi del modello, lo stato dell'ottimizzatore e il conteggio delle epoche, continuando l'addestramento senza interruzioni.
amp bool True Abilita l'addestramento Automatic Mixed Precision (AMP), riducendo l'utilizzo della memoria e possibilmente accelerando l'addestramento con un impatto minimo sulla precisione.
fraction float 1.0 Specifica la frazione del set di dati da utilizzare per l'addestramento. Consente l'addestramento su un sottoinsieme del set di dati completo, utile per esperimenti o quando le risorse sono limitate.
profile bool False Abilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare l'implementazione del modello.
freeze int oppure list None Congela i primi N livelli del modello o i livelli specificati per indice, riducendo il numero di parametri addestrabili. Utile per il fine-tuning o il transfer learning.
lr0 float 0.01 Learning rate iniziale (i.e. SGD=1E-2, Adam=1E-3). Regolare questo valore è fondamentale per il processo di ottimizzazione, influenzando la velocità con cui vengono aggiornati i pesi del modello.
lrf float 0.01 Tasso di apprendimento finale come frazione del tasso iniziale = (lr0 * lrf), utilizzato in combinazione con gli scheduler per regolare il tasso di apprendimento nel tempo.
momentum float 0.937 Fattore di momentum per SGD o beta1 per gli ottimizzatori Adam, che influenza l'incorporazione dei gradienti passati nell'aggiornamento corrente.
weight_decay float 0.0005 Termine di regolarizzazione L2, che penalizza i pesi elevati per prevenire l'overfitting.
warmup_epochs float 3.0 Numero di epoche per il warmup del tasso di apprendimento, aumentando gradualmente il tasso di apprendimento da un valore basso al tasso di apprendimento iniziale per stabilizzare l'addestramento nelle prime fasi.
warmup_momentum float 0.8 Momentum iniziale per la fase di warmup, che si adatta gradualmente al momentum impostato durante il periodo di warmup.
warmup_bias_lr float 0.1 Tasso di apprendimento per i parametri di bias durante la fase di warmup, contribuendo a stabilizzare l'addestramento del modello nelle epoche iniziali.
box float 7.5 Peso della componente di perdita della box nella funzione di perdita, che influenza l'importanza attribuita alla previsione accurata delle coordinate della bounding box.
cls float 0.5 Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della corretta previsione della classe rispetto ad altri componenti.
dfl float 1.5 Peso della distribution focal loss, utilizzata in alcune versioni di YOLO per la classificazione fine-grained.
pose float 12.0 Peso della pose loss nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei keypoint della posa.
kobj float 2.0 Peso della keypoint objectness loss nei modelli di stima della posa, bilanciando l'affidabilità del rilevamento con l'accuratezza della posa.
nbs int 64 Dimensione nominale del batch per la normalizzazione della perdita.
overlap_mask bool True Determina se le maschere degli oggetti devono essere unite in un'unica maschera per il training o mantenute separate per ciascun oggetto. In caso di sovrapposizione, la maschera più piccola viene sovrapposta a quella più grande durante l'unione.
mask_ratio int 4 Rapporto di downsample per le maschere di segmentazione, che influisce sulla risoluzione delle maschere utilizzate durante l'addestramento.
dropout float 0.0 Tasso di dropout per la regolarizzazione nelle attività di classificazione, prevenendo l'overfitting omettendo casualmente le unità durante l'addestramento.
val bool True Abilita la convalida durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato.
plots bool False Genera e salva grafici delle metriche di addestramento e convalida, nonché esempi di previsione, fornendo informazioni visive sulle prestazioni del modello e sulla progressione dell'apprendimento.

Nota sulle impostazioni della dimensione del batch

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

  • Dimensione fissa del batch: Imposta un valore intero (ad es. batch=16), specificando direttamente il numero di immagini per batch.
  • Modalità automatica (60% di memoria GPU): Usa batch=-1 per regolare automaticamente la dimensione del batch per un utilizzo della memoria CUDA di circa il 60%.
  • Modalità automatica con frazione di utilizzo: Imposta un valore di frazione (ad esempio, batch=0.70) per regolare la dimensione del batch in base alla frazione specificata di utilizzo della memoria GPU.

Impostazioni di aumento dati e iperparametri

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

Argomento Tipo Predefinito Intervallo Descrizione
hsv_h float 0.015 0.0 - 1.0 Regola la tonalità dell'immagine di una frazione della ruota dei colori, introducendo variabilità cromatica. Aiuta il modello a generalizzare in diverse condizioni di illuminazione.
hsv_s float 0.7 0.0 - 1.0 Altera la saturazione dell'immagine di una frazione, influenzando l'intensità dei colori. Utile per simulare diverse condizioni ambientali.
hsv_v float 0.4 0.0 - 1.0 Modifica il valore (luminosità) dell'immagine di una frazione, aiutando il modello a funzionare bene in varie condizioni di illuminazione.
degrees float 0.0 0.0 - 180 Ruota l'immagine in modo casuale entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere oggetti a vari orientamenti.
translate float 0.1 0.0 - 1.0 Trasla l'immagine orizzontalmente e verticalmente di una frazione della dimensione dell'immagine, aiutando ad apprendere a rilevare oggetti parzialmente visibili.
scale float 0.5 >=0.0 Scala l'immagine di un fattore di guadagno, simulando oggetti a diverse distanze dalla fotocamera.
shear float 0.0 -180 - +180 Deforma l'immagine di un grado specificato, imitando l'effetto di oggetti visti da diverse angolazioni.
perspective float 0.0 0.0 - 0.001 Applica una trasformazione prospettica casuale all'immagine, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D.
flipud float 0.0 0.0 - 1.0 Capovolge l'immagine con la probabilità specificata, aumentando la variabilità dei dati senza influire sulle caratteristiche dell'oggetto.
fliplr float 0.5 0.0 - 1.0 Capovolge l'immagine da sinistra a destra con la probabilità specificata, utile per apprendere oggetti simmetrici e aumentare la diversità del set di dati.
bgr float 0.0 0.0 - 1.0 Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza a un ordinamento errato dei canali.
mosaic float 1.0 0.0 - 1.0 Combina quattro immagini di addestramento in una, simulando diverse composizioni di scena e interazioni tra oggetti. Altamente efficace per la comprensione di scene complesse.
mixup float 0.0 0.0 - 1.0 Combina due immagini e le loro etichette, creando un'immagine composita. Migliora la capacità del modello di generalizzare introducendo rumore di etichetta e variabilità visiva.
cutmix float 0.0 0.0 - 1.0 Combina porzioni di due immagini, creando una fusione parziale pur mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione.
copy_paste float 0.0 0.0 - 1.0 Solo segmentazione. Copia e incolla oggetti tra le immagini per aumentare le istanze degli oggetti.
copy_paste_mode str flip - Solo segmentazione. Specifica il copy-paste strategia da utilizzare. Le opzioni includono 'flip' e 'mixup'.
auto_augment str randaugment - Solo classificazione. Applica una politica di aumento predefinita ('randaugment', 'autoaugment', oppure 'augmix') per migliorare le prestazioni del modello attraverso la diversità visiva.
erasing float 0.4 0.0 - 0.9 Solo classificazione. Cancella casualmente regioni dell'immagine durante l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno ovvie.

Queste impostazioni possono essere regolate per soddisfare i requisiti specifici del set di dati e dell'attività da svolgere. Sperimentare con valori diversi può aiutare a trovare la strategia di augmentation ottimale che porta alle migliori prestazioni del modello.

Info

Per ulteriori informazioni sulle operazioni di aumento dell'addestramento, consultare la sezione di riferimento.

Logging

Durante l'addestramento di un modello YOLO11, potrebbe essere utile tenere traccia delle 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 tendina nello snippet di codice qui sopra ed eseguilo. Il logger scelto verrà installato e inizializzato.

Comet

Comet è una piattaforma che consente a data scientist e sviluppatori di tracciare, confrontare, spiegare e ottimizzare esperimenti e modelli. Fornisce funzionalità come metriche in tempo reale, differenze di codice e 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 di ottenere la tua chiave API. Dovrai aggiungerla alle tue variabili d'ambiente o al tuo script per registrare i tuoi esperimenti.

ClearML

ClearML è una piattaforma open-source che automatizza il tracciamento degli esperimenti e aiuta a condividere le risorse in modo efficiente. È progettata per aiutare i team a gestire, eseguire e riprodurre il proprio 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.

TensorBoard

TensorBoard è un toolkit di visualizzazione per TensorFlow. Ti permette di visualizzare il tuo grafo TensorFlow, tracciare metriche quantitative sull'esecuzione del tuo 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 http://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 training.

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

FAQ

Come posso addestrare un modello di object detection usando Ultralytics YOLO11?

Per addestrare un modello di object detection usando Ultralytics YOLO11, puoi usare l'API Python o la CLI. Di seguito è riportato un esempio per entrambi:

Esempio di training su singola GPU e CPU

from ultralytics import YOLO

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

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

Per maggiori dettagli, consulta la sezione Impostazioni di addestramento.

Quali sono le caratteristiche principali della modalità Train di Ultralytics YOLO11?

Le caratteristiche principali della modalità Train di Ultralytics YOLO11 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: Monitoraggio in tempo reale delle metriche di addestramento per una migliore comprensione.

Queste funzionalità rendono l'addestramento efficiente e personalizzabile in base alle tue esigenze. Per maggiori dettagli, consulta la sezione Funzionalità chiave della modalità Train.

Come posso riprendere l'addestramento da una sessione interrotta in Ultralytics YOLO11?

Per riprendere l'addestramento da una sessione interrotta, imposta il parametro resume a True e specifica il percorso dell'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)
yolo train resume model=path/to/last.pt

Consulta la sezione su Ripresa di addestramenti interrotti per maggiori informazioni.

Posso addestrare modelli YOLO11 su chip Apple Silicon?

Sì, Ultralytics YOLO11 supporta l'addestramento su chip Apple Silicon utilizzando il framework Metal Performance Shaders (MPS). Specifica 'mps' come dispositivo di addestramento.

Esempio di training MPS

from ultralytics import YOLO

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

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

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

Quali sono le impostazioni di addestramento comuni e come posso configurarle?

Ultralytics YOLO11 ti consente di configurare una varietà di impostazioni di addestramento come la dimensione del batch, il learning rate, le epoche e altro tramite argomenti. Ecco una breve panoramica:

Argomento Predefinito Descrizione
model None Percorso del file del modello per l'addestramento.
data None Percorso del file di configurazione del dataset (ad esempio, coco8.yaml).
epochs 100 Numero totale di epoche di addestramento.
batch 16 Dimensione del batch, regolabile come numero intero o in modalità automatica.
imgsz 640 Dimensione dell'immagine target per l'addestramento.
device None Dispositivo/i di calcolo per l'addestramento come cpu, 0, 0,1, oppure mps.
save True Abilita il salvataggio dei checkpoint di addestramento e dei pesi del modello finale.

Per una guida approfondita sulle impostazioni di training, consulta la sezione Impostazioni di training.



📅 Creato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti