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 esaminare il codice per l'esportazione YOLOv8 modelli al TorchScript formato, capiamo dove TorchScript normalmente vengono utilizzati modelli.

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 su dispositivi mobili. PyTorch Mobile offre un runtime per l'esecuzione di questi modelli all'interno delle app 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.

DOMANDE FREQUENTI

Che cos'è Ultralytics YOLOv8 modello di esportazione verso TorchScript?

L'esportazione di un modello Ultralytics YOLOv8 in TorchScript consente una distribuzione flessibile e multipiattaforma. TorchScript PyTorch , parte dell'ecosistema , facilita la serializzazione dei modelli, che possono essere eseguiti anche in ambienti che non supportano Python . Questo lo rende ideale per distribuire i modelli su sistemi embedded, ambienti C++, applicazioni mobili e persino browser web. L'esportazione in TorchScript consente prestazioni efficienti e una maggiore applicabilità dei modelli YOLOv8 su diverse piattaforme.

Come posso esportare il mio modello YOLOv8 in TorchScript utilizzando Ultralytics?

Per esportare un modello YOLOv8 in TorchScript, puoi utilizzare il seguente esempio di codice:

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, consulta la documentazione diUltralytics sull'esportazione.

Perché dovrei usare TorchScript per distribuire i modelli di YOLOv8 ?

L'utilizzo di TorchScript per la distribuzione dei modelli di YOLOv8 offre diversi vantaggi:

  • Portabilità: I modelli esportati possono essere eseguiti in ambienti che non necessitano di Python, come applicazioni C++, sistemi embedded o dispositivi mobili.
  • Ottimizzazione: TorchScript supporta l'esecuzione statica dei grafi e la compilazione Just-In-Time (JIT), che possono ottimizzare le prestazioni dei modelli.
  • Integrazione cross-lingua: i modelli di TorchScript possono essere integrati in altri linguaggi di programmazione, migliorando la flessibilità e l'espandibilità.
  • Serializzazione: I modelli possono essere serializzati, consentendo il caricamento e l'inferenza indipendenti dalla piattaforma.

Per ulteriori informazioni sulla distribuzione, visita la Documentazione diPyTorch Mobile, la Documentazione di TorchServe e la Guida alla distribuzione di C++.

Quali sono i passaggi di installazione per esportare i modelli di YOLOv8 in TorchScript?

Per installare il pacchetto necessario per esportare i modelli di YOLOv8 , usa il seguente comando:

Installazione

# Install the required package for YOLOv8
pip install ultralytics

Per istruzioni dettagliate, visita la guida all'installazione diUltralytics . In caso di problemi durante l'installazione, consulta la guida ai problemi comuni.

Come faccio a distribuire i miei modelli esportati da TorchScript YOLOv8 ?

Dopo aver esportato i modelli di YOLOv8 nel formato TorchScript , puoi distribuirli su diverse piattaforme:

  • API C++: Ideale per ambienti di produzione a basso costo e ad alta efficienza.
  • Distribuzione mobile: Usa PyTorch Mobile per le applicazioni iOS e Android .
  • Distribuzione nel cloud: Utilizza servizi come TorchServe per una distribuzione scalabile sul lato server.

Esplora le linee guida complete per l'implementazione dei modelli in questi contesti per sfruttare al meglio le capacità di TorchScript.



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

Commenti