Come addestrare, convalidare, prevedere, esportare e valutare i modelli Ultralytics YOLO

24 luglio 2024
Scopri come eseguire training, convalida, predizione, esportazione e benchmarking con i modelli Ultralytics YOLO!

24 luglio 2024
Scopri come eseguire training, convalida, predizione, esportazione e benchmarking con i modelli Ultralytics YOLO!
Immergiamoci nel mondo di Ultralytics ed esploriamo le diverse modalità disponibili per i diversi modelli YOLO. Che tu stia addestrando modelli personalizzati di object detection o lavorando alla segmentazione, comprendere queste modalità è un passo cruciale. Iniziamo subito!
Attraverso la documentazione di Ultralytics, troverai diverse modalità che puoi utilizzare per i tuoi modelli, che si tratti di addestrare, convalidare, prevedere, esportare, benchmarkare o tracciare. Ciascuna di queste modalità ha uno scopo specifico e ti aiuta a ottimizzare le prestazioni e il deployment del tuo 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 prevede la fornitura di un nuovo set di dati a un modello, consentendogli di apprendere vari schemi. Una volta addestrato, il modello può essere utilizzato in tempo reale per rilevare nuovi oggetti su cui è stato addestrato. Prima di iniziare il processo di addestramento, è essenziale annotare il set di dati in formato YOLO.
Successivamente, approfondiamo la modalità validate. La convalida è essenziale per la messa a punto degli iperparametri e per garantire che il modello funzioni bene. Ultralytics offre una varietà di opzioni di convalida, tra cui impostazioni automatizzate, supporto multi-metrica e compatibilità con l'API Python. Puoi anche eseguire la convalida direttamente tramite l'interfaccia della riga di comando (CLI) con il comando seguente.
La convalida è fondamentale per:
Ultralytics fornisce anche esempi utente che puoi copiare e incollare nei tuoi script Python. Questi esempi includono parametri come la dimensione dell'immagine, la dimensione del batch, il dispositivo (CPU o GPU) e l'intersezione sull'unione (IoU).
Una volta che il modello è stato addestrato e convalidato, è il momento di fare previsioni. La modalità Predict ti consente di eseguire l'inferenza su nuovi dati e vedere il tuo modello in azione. Questa modalità è perfetta per testare le prestazioni del tuo modello su dati del mondo reale.
Con lo snippet di codice Python qui sotto sarai in grado di eseguire previsioni sulle tue immagini!
Dopo la convalida e la predizione, potresti voler effettuare il deploy del tuo modello. La modalità di esportazione ti consente di convertire il tuo modello in vari formati, come ONNX o TensorRT, semplificandone il deploy 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, puoi utilizzare gli esempi utente forniti nella documentazione. Questi esempi coprono metriche chiave e formati di esportazione, inclusi ONNX e TensorRT. Puoi anche specificare parametri come la quantizzazione intera (INT8) o la quantizzazione a virgola mobile (FP16) per vedere come diverse impostazioni influiscono sulle prestazioni.
Diamo un'occhiata a un esempio reale di benchmarking. 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, mostrando 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 variabili. TorchScript viene eseguito a 115 millisecondi, mentre ONNX funziona meglio a 84 millisecondi. Infine, OpenVINO ottimizzato per hardware Intel raggiunge un incredibile risultato di 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à nella documentazione di Ultralytics sono strumenti potenti per l'addestramento, la convalida, la predizione, l'esportazione e il benchmarking dei tuoi modelli YOLO. Ogni modalità svolge un ruolo fondamentale nell'ottimizzazione del tuo modello e nella preparazione per il deploy.
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.