Scopri come esportare nel formato TF SavedModel da YOLO26
Distribuire modelli di machine learning può essere una sfida. Tuttavia, utilizzare un formato di modello efficiente e flessibile può semplificarti il lavoro. TF SavedModel è un framework di machine learning open source utilizzato da TensorFlow per caricare i modelli in modo coerente. È come una valigia per i modelli TensorFlow, che li rende facili da trasportare e utilizzare su diversi dispositivi e sistemi.
Imparare a esportare in TF SavedModel dai modelli Ultralytics YOLO26 può aiutarti a distribuire i modelli facilmente su diverse piattaforme e ambienti. In questa guida, vedremo come convertire i tuoi modelli nel formato TF SavedModel, semplificando il processo di esecuzione delle inferenze con i tuoi modelli su diversi dispositivi.
Perché dovresti 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. Questo rende semplice condividere, distribuire e continuare l'addestramento in ambienti diversi.
Il TF SavedModel ha un vantaggio chiave: la sua compatibilità. Funziona bene con TensorFlow Serving, TensorFlow Lite e TensorFlow.js. Questa compatibilità rende più semplice condividere e distribuire i modelli su varie piattaforme, incluse applicazioni web e mobili. Il formato TF SavedModel è utile sia per la ricerca che per la produzione. Fornisce un modo unificato per gestire i tuoi modelli, assicurandoti che siano pronti per qualsiasi applicazione.
Caratteristiche principali di TF SavedModels
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 dal linguaggio. Consentono a sistemi e strumenti di livello superiore di produrre, consumare e trasformare i modelli TensorFlow. I SavedModels possono essere facilmente condivisi e distribuiti su diverse piattaforme e ambienti.
-
Facilità di distribuzione: TF SavedModel racchiude 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. Questo rende la distribuzione dei modelli TensorFlow semplice ed efficiente in vari ambienti di produzione.
-
Gestione delle risorse: TF SavedModel supporta l'inclusione di risorse esterne come vocabolari, embeddings o tabelle di ricerca. Queste risorse vengono archiviate 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 dei modelli che si basano su risorse esterne.
Opzioni di distribuzione con TF SavedModel
Prima di immergerci nel processo di esportazione dei modelli YOLO26 nel formato TF SavedModel, esploriamo alcuni scenari di distribuzione tipici in cui viene utilizzato questo formato.
TF SavedModel fornisce una gamma 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 TF SavedModels, rendendo facile distribuire e servire i tuoi modelli su piattaforme cloud, server on-premises o dispositivi edge.
-
Piattaforme cloud: I principali provider cloud come Google Cloud Platform (GCP), Amazon Web Services (AWS) e Microsoft Azure offrono servizi per distribuire ed eseguire modelli TensorFlow, inclusi i TF SavedModels. 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. Questo ti consente di distribuire i tuoi modelli su una vasta 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 grafi TensorFlow. Fornisce API di livello inferiore per caricare ed eseguire TF SavedModels in ambienti C++. TensorFlow Runtime offre prestazioni migliori rispetto al runtime TensorFlow standard. È adatto a scenari di distribuzione che richiedono inferenza a bassa latenza e una stretta integrazione con basi di codice C++ esistenti.
Esportazione di modelli YOLO26 in TF SavedModel
Esportando i modelli YOLO26 nel formato TF SavedModel, ne aumenti l'adattabilità e la facilità di distribuzione su varie piattaforme.
Installazione
Per installare il pacchetto richiesto, esegui:
# Install the required package for YOLO26
pip install ultralyticsPer istruzioni dettagliate e best practice relative al processo di installazione, controlla la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione nativamente, rendendo semplice integrarli nel tuo flusso di lavoro di distribuzione preferito. Puoi visualizzare l'elenco completo dei formati di esportazione supportati e delle opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
# Run inference
results = tf_savedmodel_model("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 o 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 nel formato Keras, fornendo compatibilità con TensorFlow Serving e API. |
int8 | bool | False | Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di accuratezza, principalmente per i dispositivi edge. |
nms | bool | False | Aggiunge la Non-Maximum Suppression (NMS), essenziale per un post-elaborazione del rilevamento accurato ed efficiente. |
batch | int | 1 | Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
data | str | 'coco8.yaml' | Percorso del file di configurazione del dataset (default: coco8.yaml), essenziale per la quantizzazione. |
fraction | float | 1.0 | Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente di calibrare su un sottoinsieme dell'intero dataset, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset. |
device | str | None | Specifica il dispositivo per l'esportazione: CPU (device=cpu), MPS per Apple silicon (device=mps). |
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Distribuzione di modelli YOLO26 TF SavedModel esportati
Ora che hai esportato il tuo modello YOLO26 nel formato TF SavedModel, il passo successivo è distribuirlo. Il primo passaggio principale e consigliato per eseguire un modello TF SavedModel è utilizzare il metodo YOLO("yolo26n_saved_model/"), 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 post sul blog di TensorFlow sull'esecuzione diretta di un TensorFlow SavedModel in Node.js senza conversione.
-
Distribuzione sul cloud: Un post sul 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 YOLO26 nel formato TF SavedModel. Esportando in TF SavedModel, ottieni la flessibilità per ottimizzare, distribuire e scalare i tuoi modelli YOLO26 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 YOLO26 con altre piattaforme e framework, non dimenticare di controllare la nostra pagina della guida all'integrazione. È ricca di ottime risorse per aiutarti a sfruttare al meglio YOLO26 nei tuoi progetti.
FAQ
Come posso esportare un modello Ultralytics YOLO nel formato TensorFlow SavedModel?
Esportare un modello Ultralytics YOLO nel formato TensorFlow SavedModel è semplice. Puoi utilizzare Python o la CLI per farlo:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")Consulta la 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, rendendo facile condividere e distribuire i modelli in diversi ambienti.
- Compatibilità: Si integra perfettamente con strumenti come TensorFlow Serving, TensorFlow Lite e TensorFlow.js, che sono essenziali per distribuire i 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, dai un'occhiata alle opzioni di distribuzione del modello Ultralytics YOLO.
Quali sono gli scenari di distribuzione tipici per TF SavedModel?
TF SavedModel può essere distribuito in vari ambienti, tra cui:
- TensorFlow Serving: Ideale per ambienti di produzione che richiedono un serving dei modelli 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 la distribuzione scalabile dei modelli.
- Dispositivi mobili ed embedded: L'utilizzo di TensorFlow Lite per convertire i TF SavedModels consente la distribuzione su dispositivi mobili, dispositivi IoT e microcontrollori.
- TensorFlow Runtime: Per ambienti C++ che necessitano di inferenza a bassa latenza con prestazioni migliori.
Per opzioni di distribuzione dettagliate, visita le guide ufficiali sulla distribuzione di modelli TensorFlow.
Come posso installare i pacchetti necessari per esportare i modelli YOLO26?
Per esportare i modelli YOLO26, devi installare il pacchetto ultralytics. Esegui il comando seguente nel tuo terminale:
pip install ultralyticsPer istruzioni di installazione più dettagliate e best practice, consulta la nostra guida all'installazione di Ultralytics. Se riscontri problemi, consulta la nostra guida ai problemi comuni.
Quali sono le caratteristiche chiave del formato TensorFlow SavedModel?
Il formato TF SavedModel è vantaggioso per gli sviluppatori di IA grazie alle seguenti funzionalità:
- Portabilità: Consente la condivisione e la distribuzione senza sforzo in vari ambienti.
- Facilità di distribuzione: Incapsula il grafo computazionale, i parametri addestrati e i metadati in un unico pacchetto, il che semplifica il caricamento e l'inferenza.
- Gestione delle risorse: Supporta risorse esterne come vocabolari, garantendo che siano disponibili quando il modello viene caricato.
Per ulteriori dettagli, esplora la documentazione ufficiale di TensorFlow.