Scopri come esportare in formato TF SavedModel da YOLO26#
La distribuzione dei modelli di machine learning può essere complessa. Tuttavia, l'utilizzo di 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 di machine learning in modo coerente. È come una valigia per i modelli TensorFlow, che li rende facili da trasportare e utilizzare su dispositivi e sistemi diversi.
Imparare a esportare i modelli Ultralytics YOLO26 in TF SavedModel può aiutarti a distribuire facilmente i modelli su piattaforme e ambienti diversi. In questa guida vedremo come convertire i tuoi modelli nel formato TF SavedModel, semplificando il processo di esecuzione delle inferenze sui tuoi modelli su dispositivi diversi.
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 senza problemi i modelli TensorFlow. Incapsula tutti i dettagli dei modelli, come architettura, pesi e persino le informazioni sulla compilazione. Questo semplifica la condivisione, la distribuzione e la prosecuzione dell'addestramento in ambienti diversi.
TF SavedModel offre un vantaggio fondamentale: la compatibilità. Funziona bene con TensorFlow Serving, LiteRT (in precedenza TensorFlow Lite) e TensorFlow.js. Questa compatibilità semplifica la condivisione e la distribuzione dei modelli su diverse piattaforme, incluse le applicazioni web e mobili. Il formato TF SavedModel è utile sia per la ricerca sia per la produzione. Offre un modo unificato per gestire i tuoi modelli, assicurandoti che siano pronti per qualsiasi applicazione.
Funzionalità principali di TF SavedModel#
Ecco le funzionalità principali che rendono TF SavedModel un'ottima opzione per gli sviluppatori di AI:
-
Portabilità: TF SavedModel offre un formato di serializzazione indipendente dal linguaggio, ripristinabile ed ermetico. Consente ai sistemi e agli strumenti di livello superiore di produrre, utilizzare e trasformare i modelli TensorFlow. I SavedModel possono essere condivisi e distribuiti facilmente su piattaforme e ambienti diversi.
-
Facilità di distribuzione: TF SavedModel raggruppa il grafo computazionale, i parametri addestrati e i metadati necessari in un unico pacchetto. Può essere caricato e utilizzato facilmente per l'inferenza senza richiedere il codice originale con cui è stato creato il modello. Questo rende la distribuzione dei modelli TensorFlow semplice ed efficiente in diversi ambienti di produzione.
-
Gestione degli asset: TF SavedModel supporta l'inclusione di asset esterni come vocabolari, embedding o tabelle di ricerca. Questi asset vengono memorizzati insieme alla definizione del grafo e alle variabili, assicurandone la disponibilità quando il modello viene caricato. Questa funzionalità semplifica la gestione e la distribuzione dei modelli che dipendono da risorse esterne.
Opzioni di distribuzione con TF SavedModel#
Prima di entrare nel processo di esportazione dei modelli YOLO26 nel formato TF SavedModel, esploriamo alcuni scenari tipici di distribuzione in cui questo formato viene utilizzato.
TF SavedModel offre diverse opzioni per distribuire i tuoi modelli di machine learning:
-
TensorFlow Serving: TensorFlow Serving è un sistema di serving flessibile e ad alte prestazioni, progettato per gli ambienti di produzione. Supporta nativamente i TF SavedModel, semplificando la distribuzione e il serving dei tuoi modelli su piattaforme cloud, server on-premise 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 SavedModel. Questi servizi forniscono un'infrastruttura scalabile e gestita, permettendoti di distribuire e scalare facilmente i tuoi modelli.
-
Dispositivi mobili ed embedded: LiteRT (in precedenza TensorFlow Lite), una soluzione leggera per eseguire modelli di machine learning su dispositivi mobili, embedded e IoT, supporta la conversione dei TF SavedModel nel formato LiteRT. Questo ti permette di distribuire i tuoi modelli su un'ampia gamma di dispositivi, dagli smartphone e tablet ai microcontrollori e ai dispositivi edge.
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt) è un runtime ad alte prestazioni per l'esecuzione dei grafi TensorFlow. Offre API di livello inferiore per caricare ed eseguire TF SavedModel in ambienti C++. TensorFlow Runtime garantisce prestazioni migliori rispetto al runtime TensorFlow standard. È adatto agli scenari di distribuzione che richiedono inferenze a bassa latenza e una stretta integrazione con basi di codice C++ esistenti.
Attività supportate#
L'esportazione in TF SavedModel supporta tutte e sette le attività di Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste head.
| Attività | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Rilevamento | ✅ | ✅ | ✅ |
| Segmentazione | ✅ | ✅ | ✅ |
| Semantica | ❌ | ❌ | ✅ |
| Profondità | ❌ | ❌ | ✅ |
| Classificazione | ✅ | ✅ | ✅ |
| Posa | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Esportazione dei modelli YOLO26 in TF SavedModel#
Esportando i modelli YOLO26 nel formato TF SavedModel, ne migliori l'adattabilità e la facilità di distribuzione su diverse 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, consulta la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti necessari per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.
Utilizzo#
Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione senza configurazioni aggiuntive, semplificando l'integrazione nel flusso di distribuzione che preferisci. Puoi consultare l'elenco completo dei formati di esportazione supportati e delle opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
Il formato TF SavedModel supporta le modalità Export, Predict e Validate. Esporta il tuo modello, quindi carica il modello esportato per eseguire inferenze o verificarne l'accuratezza.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates 'yolo26n_saved_model'from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'saved_model' | Formato di destinazione del modello esportato, che definisce la compatibilità con diversi ambienti di distribuzione. |
imgsz | int o tuple | 640 | Dimensione desiderata dell'immagine 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, offrendo compatibilità con il serving e le API TensorFlow. |
quantize | int o str | None | Precisione della quantizzazione: 8 (INT8/PTQ; richiede la calibrazione data/fraction) oppure 32/non impostato (FP32). FP16 non è supportato per l'esportazione in SavedModel. Sostituisce il flag deprecato int8. |
opset | int | None | Specifica la versione dell'opset ONNX per il grafo ONNX intermedio. Se non impostata, viene utilizzata la versione supportata più recente. |
nms | bool, facoltativo | None | Seleziona l'output grezzo (None, predefinito), l'NMS integrato (True) o la testa senza NMS (False). |
batch | int | 1 | Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
data | str | None | Percorso al file YAML del dataset, essenziale per la quantizzazione; la classificazione richiede invece una directory del dataset o il nome di un dataset integrato. Se omesso con quantize=8, Ultralytics seleziona il dataset di calibrazione predefinito per l'attività del modello. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione espresso come rapporto, numero di immagini oppure rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo salta. |
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 Ultralytics sull'esportazione.
Distribuzione dei modelli YOLO26 TF SavedModel esportati#
Ora che hai esportato il tuo modello YOLO26 nel formato TF SavedModel, il passaggio successivo è distribuirlo. Il primo passaggio principale e consigliato per eseguire un modello TF SavedModel consiste nell'utilizzare il metodo YOLO("yolo26n_saved_model/"), come mostrato in precedenza nello snippet di codice d'uso.
Tuttavia, per istruzioni dettagliate sulla distribuzione dei tuoi modelli TF SavedModel, consulta le 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 del blog TensorFlow sull'esecuzione diretta di un TensorFlow SavedModel in Node.js senza conversione.
-
Distribuzione sul cloud: un post del blog TensorFlow sulla distribuzione di un modello TensorFlow SavedModel sulla Cloud AI Platform.
Riepilogo#
In questa guida abbiamo illustrato come esportare i modelli Ultralytics YOLO26 nel formato TF SavedModel. Esportando in TF SavedModel, ottieni la flessibilità necessaria per ottimizzare, distribuire e scalare i tuoi modelli YOLO26 su un'ampia gamma di piattaforme.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TF SavedModel.
Per maggiori informazioni sull'integrazione di Ultralytics YOLO26 con altre piattaforme e framework, non dimenticare di consultare la nostra pagina della guida alle integrazioni. Contiene numerose risorse utili per aiutarti a sfruttare al meglio YOLO26 nei tuoi progetti.
FAQ#
Esportare un modello Ultralytics YOLO nel formato TensorFlow SavedModel è semplice. Puoi utilizzare Python o la CLI:
Esportazione di YOLO26 in TF SavedModelfrom ultralytics import YOLO # Load a 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 Ultralytics sull'esportazione per maggiori dettagli.
Il formato TensorFlow SavedModel offre diversi vantaggi per la distribuzione dei modelli:
- Portabilità: offre un formato indipendente dal linguaggio, semplificando la condivisione e la distribuzione dei modelli in ambienti diversi.
- Compatibilità: si integra perfettamente con strumenti come TensorFlow Serving, LiteRT e TensorFlow.js, essenziali per distribuire modelli su diverse piattaforme, incluse le applicazioni web e mobili.
- Incapsulamento completo: codifica l'architettura del modello, i pesi e le informazioni sulla compilazione, consentendo di condividere facilmente il modello e proseguire l'addestramento.
Per ulteriori vantaggi e opzioni di distribuzione, consulta le opzioni di distribuzione dei modelli Ultralytics YOLO.
TF SavedModel può essere distribuito in diversi ambienti, tra cui:
- TensorFlow Serving: ideale per gli 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 una distribuzione scalabile dei modelli.
- Dispositivi mobili ed embedded: l'utilizzo di LiteRT (in precedenza TensorFlow Lite) per convertire i TF SavedModel consente la distribuzione su dispositivi mobili, dispositivi IoT e microcontrollori.
- TensorFlow Runtime: per gli ambienti C++ che richiedono inferenze a bassa latenza e prestazioni migliori.
Per informazioni dettagliate sulle opzioni di distribuzione, visita le guide ufficiali sulla distribuzione dei modelli TensorFlow.
Per esportare i modelli YOLO26, devi installare il pacchetto
ultralytics. Esegui il seguente comando nel 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.
Il formato TF SavedModel è vantaggioso per gli sviluppatori di AI grazie alle seguenti funzionalità:
- Portabilità: consente di condividere e distribuire facilmente i modelli in diversi ambienti.
- Facilità di distribuzione: incapsula il grafo computazionale, i parametri addestrati e i metadati in un unico pacchetto, semplificando il caricamento e l'inferenza.
- Gestione degli asset: supporta asset esterni come i vocabolari, assicurandone la disponibilità al caricamento del modello.
Per ulteriori dettagli, consulta la documentazione ufficiale di TensorFlow.