Come addestrare, validare, prevedere, esportare e fare benchmark con i modelli Ultralytics YOLO

24 luglio 2024
Imparate come addestrare, validare, prevedere, esportare e fare benchmark con i modelliYOLO Ultralytics !

24 luglio 2024
Imparate come addestrare, validare, prevedere, esportare e fare benchmark con i modelliYOLO Ultralytics !
Immergiamoci nel mondo di Ultralytics ed esploriamo le diverse modalità disponibili per i vari modelli YOLO . Sia che stiate addestrando modelli di rilevamento di oggetti personalizzati o che stiate lavorando sulla segmentazione, la comprensione di queste modalità è un passo fondamentale. Facciamo un salto nel buio!
Nelladocumentazione di Ultralytics troverete diverse modalità che potete utilizzare per i vostri modelli, che si tratti di addestramento, validazione, previsione, esportazione, benchmark o monitoraggio. track. Ognuna di queste modalità ha uno scopo unico e aiuta a ottimizzare le prestazioni e la distribuzione del modello.
Per prima cosa, diamo un'occhiata alla modalità train. Qui è dove costruisci e perfezioni il tuo modello. Puoi trovare istruzioni dettagliate e guide video nella documentazione, rendendo facile iniziare ad addestrare i tuoi modelli personalizzati.
L'addestramento del modello consiste nel fornire a un modello un nuovo set di dati, consentendogli di apprendere vari modelli. Una volta addestrato, il modello può essere utilizzato in tempo reale per detect nuovi oggetti su cui è stato addestrato. Prima di iniziare il processo di addestramento, è essenziale annotare il dataset in formato YOLO .
Passiamo quindi alla modalità di convalida. La convalida è essenziale per mettere a punto gli iperparametri e garantire il buon funzionamento del modello. Ultralytics offre una serie di opzioni di validazione, tra cui impostazioni automatiche, supporto multimetrico e compatibilità con l'API Python . È anche possibile eseguire la convalida direttamente attraverso l'interfaccia a riga di comandoCLI) con il comando seguente.
La convalida è fondamentale per:
Ultralytics fornisce anche esempi utente che possono essere copiati e incollati nei propri script Python . Questi esempi includono parametri come la dimensione dell'immagine, la dimensione del batch, il dispositivoCPU o GPU) e l'intersezione su unioneIoU).
Una volta che il modello è stato addestrato e convalidato, è il momento di fare previsioni. La modalità Predict consente di eseguire l'inferenza su nuovi dati e di vedere il modello in azione. Questa modalità è perfetta per testare le prestazioni del modello su dati reali.
Con il frammento di codice python qui sotto sarete in grado di eseguire previsioni sulle vostre immagini!
Dopo la convalida e la previsione, è possibile distribuire il modello. La modalità di esportazione consente di convertire il modello in vari formati, come ONNX o TensorRT, rendendo più facile la distribuzione su diverse piattaforme.
Infine, abbiamo la modalità benchmark. Il benchmarking è essenziale per valutare le prestazioni del tuo modello in vari scenari. Questa modalità ti aiuta a prendere decisioni informate sull'allocazione delle risorse, l'ottimizzazione e l'efficienza dei costi.
Per eseguire un benchmark, è possibile utilizzare gli esempi utente forniti nella documentazione. Questi esempi coprono le metriche chiave e i formati di esportazione, compresi ONNX e TensorRT. È inoltre possibile specificare parametri come la quantizzazione in numeri interi (INT8) o in virgola mobile (FP16) per vedere l'impatto delle diverse impostazioni sulle prestazioni.
Vediamo un esempio reale di benchmark. Quando eseguiamo il benchmark del nostro modello PyTorch , notiamo una velocità di inferenza di 68 millisecondi su una GPU RTX 3070. Dopo l'esportazione in TorchScript, la velocità di inferenza scende a 4 millisecondi, evidenziando un miglioramento significativo.
Per i modelli ONNX , otteniamo una velocità di inferenza di 21 millisecondi. Testando questi modelli su una CPU (un Intel i9 di 13a generazione), vediamo risultati diversi. TorchScript funziona a 115 millisecondi, mentre ONNX ottiene risultati migliori con 84 millisecondi. Infine, OpenVINO , ottimizzato per l'hardware Intel , raggiunge uno straordinario 23 millisecondi.

Il benchmarking dimostra come diversi hardware e formati di esportazione possono influire sulle prestazioni del tuo modello. È fondamentale eseguire il benchmark dei tuoi modelli, soprattutto se prevedi di distribuirli su hardware personalizzato o dispositivi edge. Questo processo garantisce che il tuo modello sia ottimizzato per l'ambiente di destinazione, fornendo le migliori prestazioni possibili.
In sintesi, le modalità presenti nella documentazione di Ultralytics sono strumenti potenti per la formazione, la convalida, la previsione, l'esportazione e il benchmarking dei modelli YOLO . Ogni modalità svolge un ruolo fondamentale nell'ottimizzazione del modello e nella sua preparazione per la distribuzione.
Non dimenticare di esplorare e unirti alla nostra community e di provare i frammenti di codice forniti nei tuoi progetti. Con questi strumenti, puoi creare modelli ad alte prestazioni e assicurarti che funzionino in modo efficiente in qualsiasi ambiente.