Comprendere come esportare in formato TF SavedModel da YOLO11
L'implementazione di modelli di machine learning può essere impegnativa. Tuttavia, l'utilizzo di un formato di modello efficiente e flessibile può semplificare il tuo lavoro. TF SavedModel è un framework di machine learning open source utilizzato da TensorFlow per caricare modelli di machine learning in modo coerente. È come una valigia per i modelli TensorFlow, che li rende facili da trasportare e utilizzare su diversi dispositivi e sistemi.
Imparare come esportare in TF SavedModel dai modelli Ultralytics YOLO11 può aiutarti a implementare facilmente i modelli su diverse piattaforme e ambienti. In questa guida, ti guideremo attraverso la conversione dei tuoi modelli nel formato TF SavedModel, semplificando il processo di esecuzione di inferenze con i tuoi modelli su diversi dispositivi.
Perché esportare in TF SavedModel?
Il formato TensorFlow SavedModel fa parte dell'ecosistema TensorFlow sviluppato da Google, come mostrato di seguito. È progettato per salvare e serializzare i modelli TensorFlow senza problemi. Incapsula i dettagli completi dei modelli come l'architettura, i pesi e persino le informazioni di compilazione. Ciò rende semplice la condivisione, l'implementazione e la continuazione dell'addestramento in diversi ambienti.
Il TF SavedModel ha un vantaggio chiave: la sua compatibilità. Funziona bene con TensorFlow Serving, TensorFlow Lite e TensorFlow.js. Questa compatibilità semplifica la condivisione e l'implementazione di modelli su varie piattaforme, incluse applicazioni web e mobile. Il formato TF SavedModel è utile sia per la ricerca che per la produzione. Fornisce un modo unificato per gestire i tuoi modelli, assicurando che siano pronti per qualsiasi applicazione.
Caratteristiche principali di TF SavedModel
Ecco le caratteristiche principali che rendono TF SavedModel un'ottima opzione per gli sviluppatori di IA:
-
Portabilità: TF SavedModel fornisce un formato di serializzazione ermetico, recuperabile e indipendente dalla lingua. Consentono a sistemi e strumenti di livello superiore di produrre, utilizzare e trasformare i modelli TensorFlow. I SavedModel possono essere facilmente condivisi e implementati su diverse piattaforme e ambienti.
-
Facilità di deployment: TF SavedModel raggruppa il grafo computazionale, i parametri addestrati e i metadati necessari in un unico pacchetto. Possono essere facilmente caricati e utilizzati per l'inferenza senza richiedere il codice originale che ha creato il modello. Ciò rende l'implementazione dei modelli TensorFlow semplice ed efficiente in vari ambienti di produzione.
-
Gestione degli asset: TF SavedModel supporta l'inclusione di asset esterni come vocabolari, incorporamenti o tabelle di ricerca. Questi asset sono archiviati insieme alla definizione del grafo e alle variabili, garantendo che siano disponibili quando il modello viene caricato. Questa funzionalità semplifica la gestione e la distribuzione di modelli che si basano su risorse esterne.
Opzioni di deployment con TF SavedModel
Prima di immergerci nel processo di esportazione dei modelli YOLO11 nel formato TF SavedModel, esploriamo alcuni tipici scenari di deployment in cui viene utilizzato questo formato.
TF SavedModel offre una serie di opzioni per distribuire i tuoi modelli di machine learning:
-
TensorFlow Serving: TensorFlow Serving è un sistema di serving flessibile e ad alte prestazioni progettato per ambienti di produzione. Supporta nativamente i modelli TF SavedModel, semplificando la distribuzione e il serving dei modelli su piattaforme cloud, server on-premise o dispositivi edge.
-
Piattaforme cloud: I principali fornitori di servizi cloud come Google Cloud Platform (GCP), Amazon Web Services (AWS) e Microsoft Azure offrono servizi per la distribuzione e l'esecuzione di modelli TensorFlow, inclusi i TF SavedModel. Questi servizi forniscono un'infrastruttura scalabile e gestita, consentendoti di distribuire e scalare facilmente i tuoi modelli.
-
Dispositivi mobili ed embedded: TensorFlow Lite, una soluzione leggera per l'esecuzione di modelli di machine learning su dispositivi mobili, embedded e IoT, supporta la conversione di TF SavedModels nel formato TensorFlow Lite. Ciò consente di implementare i modelli su un'ampia gamma di dispositivi, da smartphone e tablet a microcontrollori e dispositivi edge.
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt
) è un runtime ad alte prestazioni per l'esecuzione di TensorFlow grafi. Fornisce API di livello inferiore per il caricamento e l'esecuzione di TF SavedModel in ambienti C++. TensorFlow Runtime offre prestazioni migliori rispetto al runtime TensorFlow standard. È adatto per scenari di distribuzione che richiedono inferenza a bassa latenza e una stretta integrazione con codebase C++ esistenti.
Esportazione di modelli YOLO11 in TF SavedModel
Esportando i modelli YOLO11 nel formato TF SavedModel, ne migliori l'adattabilità e la facilità di distribuzione su varie 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 SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Argomenti di esportazione
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
format |
str |
'saved_model' |
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. |
keras |
bool |
False |
Abilita l'esportazione in formato Keras, fornendo compatibilità con TensorFlow serving e API. |
int8 |
bool |
False |
Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita di accuratezza minima, principalmente per i dispositivi edge. |
nms |
bool |
False |
Aggiunge la Non-Maximum Suppression (NMS), essenziale per una post-elaborazione del rilevamento accurata ed efficiente. |
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.
Deployment di modelli YOLO11 TF SavedModel esportati
Ora che hai esportato il tuo modello YOLO11 nel formato TF SavedModel, il passo successivo è implementarlo. Il primo passo principale e raccomandato per eseguire un modello TF SavedModel è usare il YOLO("yolo11n_saved_model/")
metodo, come mostrato in precedenza nello snippet di codice di utilizzo.
Tuttavia, per istruzioni approfondite sulla distribuzione dei tuoi modelli TF SavedModel, dai un'occhiata alle seguenti risorse:
-
TensorFlow Serving: Ecco la documentazione per sviluppatori su come distribuire i tuoi modelli TF SavedModel utilizzando TensorFlow Serving.
-
Eseguire un TensorFlow SavedModel in Node.js: Un articolo del blog di TensorFlow sull'esecuzione di un TensorFlow SavedModel in Node.js direttamente senza conversione.
-
Distribuzione su Cloud: Un articolo del blog di TensorFlow sulla distribuzione di un modello TensorFlow SavedModel sulla Cloud AI Platform.
Riepilogo
In questa guida, abbiamo esplorato come esportare i modelli Ultralytics YOLO11 nel formato TF SavedModel. Esportando in TF SavedModel, ottieni la flessibilità di ottimizzare, distribuire e scalare i tuoi modelli YOLO11 su una vasta gamma di piattaforme.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TF SavedModel.
Per ulteriori informazioni sull'integrazione di Ultralytics YOLO11 con altre piattaforme e framework, non dimenticare di consultare la nostra pagina della guida all'integrazione. È ricca di ottime risorse per aiutarti a sfruttare al meglio YOLO11 nei tuoi progetti.
FAQ
Come posso esportare un modello Ultralytics YOLO in formato TensorFlow SavedModel?
Esportare un modello Ultralytics YOLO nel formato TensorFlow SavedModel è semplice. Puoi utilizzare python o la CLI per raggiungere questo obiettivo:
Esportazione di YOLO11 in TF SavedModel
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLO11 model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Fare riferimento alla documentazione di esportazione di Ultralytics per maggiori dettagli.
Perché dovrei usare il formato TensorFlow SavedModel?
Il formato TensorFlow SavedModel offre diversi vantaggi per la distribuzione del modello:
- Portabilità: Fornisce un formato indipendente dal linguaggio, semplificando la condivisione e la distribuzione di modelli in diversi ambienti.
- Compatibilità: Si integra perfettamente con strumenti come TensorFlow Serving, TensorFlow Lite e TensorFlow.js, essenziali per la distribuzione di modelli su varie piattaforme, incluse applicazioni web e mobili.
- Incapsulamento completo: Codifica l'architettura del modello, i pesi e le informazioni di compilazione, consentendo una condivisione semplice e la continuazione dell'addestramento.
Per ulteriori vantaggi e opzioni di distribuzione, consulta le opzioni di distribuzione del modello Ultralytics YOLO.
Quali sono i tipici scenari di deployment per TF SavedModel?
Il formato TF SavedModel può essere implementato in vari ambienti, tra cui:
- TensorFlow Serving: Ideale per ambienti di produzione che richiedono un serving del modello scalabile e ad alte prestazioni.
- Piattaforme Cloud: Supporta i principali servizi cloud come Google Cloud Platform (GCP), Amazon Web Services (AWS) e Microsoft Azure per un'implementazione scalabile del modello.
- Dispositivi mobili ed embedded: L'utilizzo di TensorFlow Lite per convertire TF SavedModels consente l'implementazione su dispositivi mobili, dispositivi IoT e microcontrollori.
- TensorFlow Runtime: Per ambienti C++ che necessitano di inferenza a bassa latenza con prestazioni migliori.
Per informazioni dettagliate sulle opzioni di implementazione, visitare le guide ufficiali sull'implementazione dei modelli TensorFlow.
Come posso installare i pacchetti necessari per esportare i modelli YOLO11?
Per esportare i modelli YOLO11, è necessario installare il ultralytics
pacchetto. Esegui il seguente comando nel tuo terminale:
pip install ultralytics
Per istruzioni di installazione più dettagliate e best practice, consulta la nostra guida all'installazione di Ultralytics. In caso di problemi, consulta la nostra guida ai problemi comuni.
Quali sono le caratteristiche principali del formato TensorFlow SavedModel?
Il formato TF SavedModel è vantaggioso per gli sviluppatori di IA grazie alle seguenti caratteristiche:
- Portabilità: Consente la condivisione e l'implementazione in vari ambienti senza sforzo.
- Facilità di implementazione: Incapsula il grafo computazionale, i parametri addestrati e i metadati in un unico pacchetto, il che semplifica il caricamento e l'inferenza.
- Gestione degli asset: Supporta asset esterni come i vocabolari, assicurando che siano disponibili quando il modello viene caricato.
Per ulteriori dettagli, esplora la documentazione ufficiale di TensorFlow.