Come esportare in TF GraphDef da YOLO11 per la distribuzione
Quando si distribuiscono modelli di computer vision all'avanguardia, come YOLO11, in ambienti diversi, si possono riscontrare problemi di compatibilità. Il TensorFlow GraphDef di Google, o TF GraphDef, offre una soluzione fornendo una rappresentazione serializzata e indipendente dalla piattaforma del modello. Utilizzando il formato di modello TF GraphDef, è possibile distribuire il modello YOLO11 in ambienti in cui l'intero ecosistema TensorFlow potrebbe non essere disponibile, come dispositivi mobili o hardware specializzato.
In questa guida, ti accompagneremo passo dopo passo su come esportare i tuoi modelli Ultralytics YOLO11 nel formato di modello TF GraphDef. Convertendo il tuo modello, puoi semplificare la distribuzione e utilizzare le capacità di computer vision di YOLO11 in una gamma più ampia di applicazioni e piattaforme.
Perché dovresti esportare in TF GraphDef?
TF GraphDef è un componente potente dell'ecosistema TensorFlow sviluppato da Google. Può essere utilizzato per ottimizzare e distribuire modelli come YOLO11. L'esportazione in TF GraphDef ci consente di spostare i modelli dalla ricerca alle applicazioni del mondo reale. Permette ai modelli di funzionare in ambienti senza il framework TensorFlow completo.
Il formato GraphDef rappresenta il modello come un grafo computazionale serializzato. Ciò consente varie tecniche di ottimizzazione come il constant folding, la quantizzazione e le trasformazioni del grafo. Queste ottimizzazioni garantiscono un'esecuzione efficiente, un utilizzo ridotto della memoria e velocità di inferenza più elevate.
I modelli GraphDef possono utilizzare acceleratori hardware come GPU, TPU e chip AI, sbloccando significativi guadagni di prestazioni per la pipeline di inferenza YOLO11. Il formato TF GraphDef crea un pacchetto autonomo con il modello e le sue dipendenze, semplificando la distribuzione e l'integrazione in diversi sistemi.
Caratteristiche principali dei modelli TF GraphDef
TF GraphDef offre funzionalità distinte per semplificare l'implementazione del modello e l'ottimizzazione.
Ecco uno sguardo alle sue caratteristiche principali:
-
Serializzazione del modello: TF GraphDef fornisce un modo per serializzare e archiviare i modelli TensorFlow in un formato indipendente dalla piattaforma. Questa rappresentazione serializzata consente di caricare ed eseguire i modelli senza il codice base python originale, semplificando la distribuzione.
-
Ottimizzazione del grafo: TF GraphDef consente l'ottimizzazione dei grafi computazionali. Queste ottimizzazioni possono aumentare le prestazioni semplificando il flusso di esecuzione, riducendo le ridondanze e adattando le operazioni per adattarsi a hardware specifici.
-
Flessibilità di implementazione: I modelli esportati nel formato GraphDef possono essere utilizzati in vari ambienti, inclusi dispositivi con risorse limitate, browser web e sistemi con hardware specializzato. Ciò apre possibilità per una più ampia implementazione dei tuoi modelli TensorFlow.
-
Focus sulla produzione: GraphDef è progettato per l'implementazione in produzione. Supporta l'esecuzione efficiente, le funzionalità di serializzazione e le ottimizzazioni che si allineano con i casi d'uso del mondo reale.
Opzioni di distribuzione con TF GraphDef
Prima di immergerci nel processo di esportazione dei modelli YOLO11 in TF GraphDef, diamo un'occhiata ad alcune tipiche situazioni di implementazione in cui viene utilizzato questo formato.
Ecco come puoi implementare con TF GraphDef in modo efficiente su varie piattaforme.
-
TensorFlow Serving: Questo framework è progettato per implementare modelli TensorFlow in ambienti di produzione. TensorFlow Serving offre gestione dei modelli, versioning e l'infrastruttura per un efficiente serving dei modelli su larga scala. È un modo semplice per integrare i tuoi modelli basati su GraphDef in servizi web di produzione o API.
-
Dispositivi mobili ed embedded: Con strumenti come TensorFlow Lite, è possibile convertire i modelli TF GraphDef in formati ottimizzati per smartphone, tablet e vari dispositivi embedded. I modelli possono quindi essere utilizzati per l'inferenza on-device, dove l'esecuzione avviene localmente, offrendo spesso vantaggi in termini di prestazioni e funzionalità offline.
-
Browser web: TensorFlow.js consente l'implementazione di modelli TF GraphDef direttamente all'interno dei browser web. Apre la strada ad applicazioni di rilevamento oggetti in tempo reale eseguite lato client, utilizzando le capacità di YOLO11 tramite JavaScript.
-
Hardware specializzato: La natura indipendente dalla piattaforma di TF GraphDef gli consente di indirizzare hardware personalizzato, come acceleratori e TPU (Tensor Processing Units). Questi dispositivi possono fornire vantaggi in termini di prestazioni per modelli computazionalmente intensivi.
Esportazione di modelli YOLO11 in TF GraphDef
Puoi convertire il tuo modello di rilevamento oggetti YOLO11 nel formato TF GraphDef, che è compatibile con vari sistemi, per migliorarne le prestazioni su diverse piattaforme.
Installazione
Per installare il pacchetto richiesto, esegui:
Installazione
# Install the required package for YOLO11
pip install ultralytics
Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Durante l'installazione dei pacchetti richiesti per YOLO11, in caso di difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Tutti i modelli Ultralytics YOLO11 sono progettati per supportare l'export out-of-the-box, rendendo facile la loro integrazione nel tuo flusso di lavoro di deployment preferito. Puoi visualizzare l'elenco completo dei formati di export supportati e le opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
Utilizzo
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF GraphDef format
model.export(format="pb") # creates 'yolo11n.pb'
# Load the exported TF GraphDef model
tf_graphdef_model = YOLO("yolo11n.pb")
# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF GraphDef format
yolo export model=yolo11n.pt format=pb # creates 'yolo11n.pb'
# Run inference with the exported model
yolo predict model='yolo11n.pb' source='https://ultralytics.com/images/bus.jpg'
Argomenti di esportazione
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
format |
str |
'pb' |
Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione. |
imgsz |
int oppure tuple |
640 |
Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche. |
batch |
int |
1 |
Specifica la dimensione del batch di inferenza del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict . |
device |
str |
None |
Specifica il dispositivo per l'esportazione: CPU (device=cpu ), MPS per Apple silicon (device=mps ). |
Per maggiori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Distribuzione di modelli YOLO11 TF GraphDef esportati
Una volta esportato il tuo modello YOLO11 nel formato TF GraphDef, il passo successivo è l'implementazione. Il primo passo principale e raccomandato per l'esecuzione di un modello TF GraphDef è utilizzare il metodo YOLO("model.pb"), come mostrato in precedenza nello snippet di codice di utilizzo.
Tuttavia, per ulteriori informazioni sull'implementazione dei tuoi modelli TF GraphDef, dai un'occhiata alle seguenti risorse:
-
TensorFlow Serving: Una guida su TensorFlow Serving che insegna come implementare e servire modelli di machine learning in modo efficiente in ambienti di produzione.
-
TensorFlow Lite: Questa pagina descrive come convertire i modelli di machine learning in un formato ottimizzato per l'inferenza on-device con TensorFlow Lite.
-
TensorFlow.js: Una guida sulla conversione del modello che insegna come convertire i modelli TensorFlow o Keras in formato TensorFlow.js per l'uso in applicazioni web.
Riepilogo
In questa guida, abbiamo esplorato come esportare i modelli Ultralytics YOLO11 nel formato TF GraphDef. In questo modo, puoi implementare in modo flessibile i tuoi modelli YOLO11 ottimizzati in diversi ambienti.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TF GraphDef.
Per maggiori informazioni sull'integrazione di Ultralytics YOLO11 con altre piattaforme e framework, non dimenticare di consultare la nostra pagina della guida all'integrazione. Contiene ottime risorse e approfondimenti per aiutarti a sfruttare al meglio YOLO11 nei tuoi progetti.
FAQ
Come posso esportare un modello YOLO11 nel formato TF GraphDef?
I modelli Ultralytics YOLO11 possono essere esportati senza problemi nel formato TensorFlow GraphDef (TF GraphDef). Questo formato fornisce una rappresentazione serializzata e indipendente dalla piattaforma del modello, ideale per l'implementazione in diversi ambienti come dispositivi mobili e web. Per esportare un modello YOLO11 in TF GraphDef, segui questi passaggi:
Utilizzo
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF GraphDef format
model.export(format="pb") # creates 'yolo11n.pb'
# Load the exported TF GraphDef model
tf_graphdef_model = YOLO("yolo11n.pb")
# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF GraphDef format
yolo export model="yolo11n.pt" format="pb" # creates 'yolo11n.pb'
# Run inference with the exported model
yolo predict model="yolo11n.pb" source="https://ultralytics.com/images/bus.jpg"
Per ulteriori informazioni sulle diverse opzioni di esportazione, visita la documentazione di Ultralytics sull'esportazione di modelli.
Quali sono i vantaggi dell'utilizzo di TF GraphDef per la distribuzione del modello YOLO11?
L'esportazione di modelli YOLO11 nel formato TF GraphDef offre numerosi vantaggi, tra cui:
- Indipendenza dalla piattaforma: TF GraphDef fornisce un formato indipendente dalla piattaforma, consentendo l'implementazione di modelli in vari ambienti, inclusi browser per dispositivi mobili e web.
- Ottimizzazioni: Il formato consente diverse ottimizzazioni, come il constant folding, la quantizzazione e le trasformazioni del grafo, che migliorano l'efficienza dell'esecuzione e riducono l'utilizzo della memoria.
- Accelerazione hardware: I modelli in formato TF GraphDef possono sfruttare acceleratori hardware come GPU, TPU e chip AI per ottenere miglioramenti delle prestazioni.
Leggi di più sui vantaggi nella sezione TF GraphDef della nostra documentazione.
Perché dovrei usare Ultralytics YOLO11 rispetto ad altri modelli di object detection?
Ultralytics YOLO11 offre numerosi vantaggi rispetto ad altri modelli come YOLOv5 e YOLOv7. Alcuni vantaggi chiave includono:
- Prestazioni all'avanguardia: YOLO11 offre velocità e precisione eccezionali per l'object detection, la segmentazione e la classificazione in tempo reale.
- Facilità d'uso: Dispone di un'API intuitiva per l'addestramento, la convalida, la previsione e l'esportazione di modelli, rendendolo accessibile sia ai principianti che agli esperti.
- Ampia compatibilità: Supporta più formati di esportazione tra cui ONNX, TensorRT, CoreML e TensorFlow, per opzioni di implementazione versatili.
Esplora ulteriori dettagli nella nostra introduzione a YOLO11.
Come posso distribuire un modello YOLO11 su hardware specializzato utilizzando TF GraphDef?
Una volta che un modello YOLO11 viene esportato nel formato TF GraphDef, puoi implementarlo su varie piattaforme hardware specializzate. Gli scenari di implementazione tipici includono:
- TensorFlow Serving: Utilizza TensorFlow Serving per l'implementazione scalabile di modelli in ambienti di produzione. Supporta la gestione dei modelli e un serving efficiente.
- Dispositivi mobili: Converti i modelli TF GraphDef in TensorFlow Lite, ottimizzati per dispositivi mobili ed embedded, consentendo l'inferenza sul dispositivo.
- Browser web: Implementa modelli utilizzando TensorFlow.js per l'inferenza lato client nelle applicazioni web.
- Acceleratori AI: Sfrutta le TPU e i chip AI personalizzati per l'inferenza accelerata.
Consulta la sezione opzioni di implementazione per informazioni dettagliate.
Dove posso trovare soluzioni per problemi comuni durante l'esportazione di modelli YOLO11?
Per la risoluzione dei problemi comuni relativi all'esportazione di modelli YOLO11, Ultralytics fornisce guide e risorse complete. Se riscontri problemi durante l'installazione o l'esportazione del modello, consulta:
- Guida ai problemi comuni: Offre soluzioni ai problemi riscontrati frequentemente.
- Guida all'installazione: Istruzioni dettagliate per la configurazione dei pacchetti richiesti.
Queste risorse dovrebbero aiutarti a risolvere la maggior parte dei problemi relativi all'esportazione e all'implementazione del modello YOLO11.