Vai al contenuto

YOLOv8 Esportazione del modello in TorchScript per una distribuzione rapida

La distribuzione di modelli di computer vision in ambienti diversi, tra cui sistemi embedded, browser web o piattaforme con supporto limitato a Python , richiede una soluzione flessibile e portatile. TorchScript si concentra sulla portabilità e sulla possibilità di eseguire modelli in ambienti in cui l'intero framework Python non è disponibile. Questo lo rende ideale per gli scenari in cui devi distribuire le tue capacità di computer vision su vari dispositivi o piattaforme.

Esportazione in Torchscript per serializzare i tuoi Ultralytics YOLOv8 per ottenere una compatibilità multipiattaforma e una distribuzione semplificata. In questa guida ti mostreremo come esportare i tuoi modelli YOLOv8 nel formato TorchScript , rendendo più facile il loro utilizzo in una vasta gamma di applicazioni.

Perché dovresti esportare su TorchScript?

Torchscript Panoramica

Sviluppato dai creatori di PyTorch, TorchScript è un potente strumento per ottimizzare e distribuire i modelli di PyTorch su diverse piattaforme. Esportare i modelli di YOLOv8 in TorchScript è fondamentale per passare dalla ricerca alle applicazioni reali. TorchScript PyTorch , che fa parte del framework , aiuta a rendere più fluida questa transizione consentendo di utilizzare i modelli PyTorch in ambienti che non supportano Python.

Il processo prevede due tecniche: il tracciamento e lo scripting. Il tracciamento registra le operazioni durante l'esecuzione del modello, mentre lo scripting permette di definire i modelli utilizzando un sottoinsieme di Python. Queste tecniche garantiscono che i modelli come YOLOv8 possano continuare a fare la loro magia anche al di fuori del loro ambiente abituale Python .

TorchScript Script e Trace

TorchScript I modelli possono anche essere ottimizzati attraverso tecniche come la fusione degli operatori e il perfezionamento dell'uso della memoria, garantendo un'esecuzione efficiente. Un altro vantaggio dell'esportazione in TorchScript è la possibilità di accelerare l'esecuzione del modello su diverse piattaforme hardware. Crea una rappresentazione autonoma e pronta per la produzione del modello PyTorch che può essere integrata in ambienti C++, sistemi embedded o distribuita in applicazioni web o mobili.

Caratteristiche principali dei modelli TorchScript

TorchScript, una parte fondamentale dell'ecosistema PyTorch , offre potenti funzioni per ottimizzare e distribuire modelli di deep learning.

TorchScript Caratteristiche

Ecco le caratteristiche principali che rendono TorchScript uno strumento prezioso per gli sviluppatori:

  • Esecuzione statica del grafo: TorchScript utilizza una rappresentazione statica del grafo di calcolo del modello, che è diversa dall'esecuzione dinamica del grafo di PyTorch. Nell'esecuzione statica del grafo, il grafo computazionale viene definito e compilato una volta prima dell'esecuzione vera e propria, migliorando le prestazioni durante l'inferenza.

  • Serializzazione dei modelli: TorchScript ti permette di serializzare i modelli PyTorch in un formato indipendente dalla piattaforma. I modelli serializzati possono essere caricati senza richiedere il codice originale di Python , consentendo la distribuzione in diversi ambienti di runtime.

  • Compilazione JIT: TorchScript utilizza la compilazione Just-In-Time (JIT) per convertire i modelli PyTorch in una rappresentazione intermedia ottimizzata. JIT compila il grafico computazionale del modello, consentendo un'esecuzione efficiente sui dispositivi di destinazione.

  • Integrazione tra linguaggi: Con TorchScript, puoi esportare i modelli di PyTorch in altri linguaggi come C++, Java e JavaScript. In questo modo è più facile integrare i modelli di PyTorch in sistemi software esistenti scritti in linguaggi diversi.

  • Conversione graduale: TorchScript offre un approccio di conversione graduale che ti permette di convertire in modo incrementale parti del tuo modello PyTorch in TorchScript. Questa flessibilità è particolarmente utile quando si tratta di modelli complessi o quando si desidera ottimizzare parti specifiche del codice.

Opzioni di distribuzione in TorchScript

Prima di vedere il codice per esportare i modelli YOLOv8 nel formato TorchScript , cerchiamo di capire dove vengono normalmente utilizzati i modelli TorchScript .

TorchScript offre diverse opzioni di distribuzione per i modelli di apprendimento automatico, come ad esempio:

  • API C++: Il caso d'uso più comune di TorchScript è la sua API C++, che consente di caricare ed eseguire i modelli ottimizzati di TorchScript direttamente all'interno di applicazioni C++. Questa soluzione è ideale per gli ambienti di produzione in cui Python potrebbe non essere adatto o disponibile. L'API C++ offre un'esecuzione efficiente e a basso costo dei modelli di TorchScript , massimizzando il potenziale delle prestazioni.

  • Distribuzione mobile: TorchScript offre strumenti per convertire i modelli in formati facilmente distribuibili sui dispositivi mobili. PyTorch Mobile fornisce un runtime per l'esecuzione di questi modelli all'interno di applicazioni iOS e Android. Questo permette di ottenere funzionalità di inferenza offline e a bassa latenza, migliorando l'esperienza dell'utente e la privacy dei dati.

  • Distribuzione nel cloud: i modelli di TorchScript possono essere distribuiti su server basati sul cloud utilizzando soluzioni come TorchServe. Fornisce funzionalità come il versioning dei modelli, il batching e il monitoraggio delle metriche per un deployment scalabile in ambienti di produzione. La distribuzione nel cloud con TorchScript può rendere i tuoi modelli accessibili tramite API o altri servizi web.

Esportazione in TorchScript: Conversione del modello YOLOv8

Esportare i modelli di YOLOv8 in TorchScript rende più facile il loro utilizzo in luoghi diversi e li aiuta a funzionare in modo più veloce ed efficiente. È un'ottima soluzione per tutti coloro che vogliono utilizzare i modelli di deep learning in modo più efficace nelle applicazioni del mondo reale.

Installazione

Per installare il pacchetto richiesto, esegui:

Installazione

# Install the required package for YOLOv8
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consulta la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare delle difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLOv8 sono disponibili per l'esportazione, ma qui puoi assicurarti che il modello che hai scelto supporti la funzionalità di esportazione.

Utilizzo

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TorchScript format
model.export(format='torchscript')  # creates 'yolov8n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO('yolov8n.torchscript')

# Run inference
results = torchscript_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

# Run inference with the exported model
yolo predict model=yolov8n.torchscript source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sul processo di esportazione, visita la pagina di documentazione diUltralytics sull'esportazione.

Distribuzione dei modelli esportati di YOLOv8 TorchScript

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLOv8 nel formato TorchScript , ora puoi distribuirli. Il primo passo principale e consigliato per eseguire un modello TorchScript è quello di utilizzare il metodo YOLO("model.torchscript"), come indicato nel precedente frammento di codice. Tuttavia, per istruzioni approfondite su come distribuire i modelli TorchScript in varie altre impostazioni, consulta le seguenti risorse:

  • Esplora la distribuzione mobile: La documentazione di PyTorch Mobile fornisce linee guida complete per la distribuzione dei modelli sui dispositivi mobili, assicurando che le tue applicazioni siano efficienti e reattive.

  • Distribuzione master lato server: Impara a distribuire i modelli lato server con TorchServe, offrendo un tutorial passo dopo passo per un servizio di modelli scalabile ed efficiente.

  • Implementare la distribuzione del C++: Scopri il tutorial sul caricamento di un modello TorchScript in C++, che facilita l'integrazione dei tuoi modelli TorchScript nelle applicazioni C++ per migliorare le prestazioni e la versatilità.

Sommario

In questa guida abbiamo esplorato il processo di esportazione dei modelli Ultralytics YOLOv8 nel formato TorchScript . Seguendo le istruzioni fornite, potrai ottimizzare i modelli YOLOv8 per le prestazioni e ottenere la flessibilità necessaria per distribuirli su diverse piattaforme e ambienti.

Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale diTorchScript.

Inoltre, se vuoi saperne di più su altre integrazioni di Ultralytics YOLOv8 , visita la pagina della nostra guida alle integrazioni. Troverai molte risorse e approfondimenti utili.



Creato 2024-03-01, Aggiornato 2024-03-03
Autori: glenn-jocher (1), abirami-vina (2)

Commenti