Capire come esportare in formato TF SavedModel da YOLO11
La distribuzione dei modelli di apprendimento automatico può essere impegnativa. Tuttavia, l'uso di un formato di modello efficiente e flessibile può rendere il lavoro più facile. TF SavedModel è un framework open-source per l'apprendimento automatico usato da TensorFlow per caricare i modelli di apprendimento automatico in modo coerente. È come una valigia per i modelli di TensorFlow , che li rende facili da trasportare e da usare su dispositivi e sistemi diversi.
Imparare a esportare in TF SavedModel dai modelli può aiutare a distribuire facilmente i modelli su diverse piattaforme e ambienti. Ultralytics YOLO11 può aiutare a distribuire facilmente i modelli su piattaforme e ambienti diversi. In questa guida spiegheremo come convertire i modelli nel formato TF SavedModel , semplificando il processo di esecuzione delle inferenze con i 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. È stato 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. In questo modo è facile condividere, distribuire e continuare l'addestramento in ambienti diversi.
Il TF SavedModel ha un vantaggio fondamentale: la sua compatibilità. Funziona bene con TensorFlow Serving, TensorFlow Lite e TensorFlow.js. Questa compatibilità facilita la condivisione e la distribuzione dei modelli su varie piattaforme, comprese le applicazioni web e mobili. Il formato TF SavedModel è utile sia per la ricerca che per la produzione. Offre un modo unificato di gestire i modelli, assicurando 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 intelligenza artificiale:
-
Portabilità: TF SavedModel fornisce un formato di serializzazione ermetico, recuperabile e neutrale dal punto di vista linguistico. 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 piattaforme e ambienti diversi.
-
Facilità di distribuzione: 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 costruito il modello. Questo rende la distribuzione dei modelli di 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 memorizzate insieme alla definizione del grafo e alle variabili, assicurando che siano disponibili quando il modello viene caricato. Questa funzione semplifica la gestione e la distribuzione dei modelli che si basano su risorse esterne.
Opzioni di distribuzione con TF SavedModel
Prima di addentrarci nel processo di esportazione dei modelli YOLO11 nel formato TF SavedModel , analizziamo alcuni scenari di distribuzione tipici in cui si utilizza questo formato.
TF SavedModel offre una serie di opzioni per distribuire i modelli di apprendimento automatico:
-
TensorFlow Serving: TensorFlow Serving è un sistema di serving flessibile e ad alte prestazioni progettato per gli ambienti di produzione. Supporta in modo nativo TF SavedModels, semplificando la distribuzione e il servizio dei modelli su piattaforme cloud, server on-premises o dispositivi edge.
-
Piattaforme cloud: I principali fornitori di cloud come Google Cloud Platform (GCP), Amazon Web Services (AWS) e Microsoft Azure offrono servizi per la distribuzione e l'esecuzione di modelli TensorFlow , compresi i TF SavedModels. Questi servizi forniscono un'infrastruttura scalabile e gestita, che consente di distribuire e scalare facilmente i modelli.
-
Dispositivi mobili e incorporati: TensorFlow Lite, una soluzione leggera per l'esecuzione di modelli di apprendimento automatico su dispositivi mobili, embedded e IoT, supporta la conversione di TF SavedModels nel formato TensorFlow Lite. Ciò consente di distribuire i modelli su un'ampia gamma di dispositivi, da smartphone e tablet a microcontrollori e dispositivi edge.
-
TensorFlow Tempo di esecuzione: TensorFlow Tempo di esecuzione (
tfrt
) è un runtime ad alte prestazioni per l'esecuzione di TensorFlow grafici. Fornisce API di livello inferiore per il caricamento e l'esecuzione di TF SavedModels in ambienti C++. TensorFlow Il runtime offre prestazioni migliori rispetto al runtime standard di TensorFlow . È adatto a scenari di distribuzione che richiedono un'inferenza a bassa latenza e una stretta integrazione con le basi di codice C++ esistenti.
Esportazione dei modelli YOLO11 in TF SavedModel
Esportando i modelli di YOLO11 nel formato TF SavedModel , ne migliorate l'adattabilità e la facilità di distribuzione su diverse piattaforme.
Installazione
Per installare il pacchetto richiesto, eseguire:
Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consultare la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLO11, se si incontrano difficoltà, consultare la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.
Utilizzo
Prima di immergersi nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLO11 sono disponibili per l'esportazione, ma è possibile assicurarsi che il modello selezionato supporti la funzionalità di esportazione qui.
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")
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 desiderata dell'immagine per l'input del modello. Può essere un numero intero per le immagini quadrate o una tupla (height, width) per le dimensioni specifiche. |
keras |
bool |
False |
Consente l'esportazione in formato Keras, garantendo la compatibilità con i servizi e le API di TensorFlow . |
int8 |
bool |
False |
Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di precisione, soprattutto per i dispositivi edge. |
nms |
bool |
False |
Aggiunge la soppressione non massima (NMS), essenziale per una post-elaborazione accurata ed efficiente del rilevamento. |
batch |
int |
1 |
Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in predict modalità. |
Per maggiori dettagli sul processo di esportazione, visitare la pagina di documentazioneUltralytics sull'esportazione.
Distribuzione di modelli esportati YOLO11 TF SavedModel
Dopo aver esportato il modello YOLO11 nel formato TF SavedModel , il passo successivo consiste nel distribuirlo. Il primo passo principale e consigliato per eseguire un modello TF SavedModel è utilizzare il metodo YOLO("yolo11n_saved_model/")
come mostrato in precedenza nel frammento di codice d'uso.
Tuttavia, per istruzioni approfondite sulla distribuzione dei modelli TF SavedModel , consultate le seguenti risorse:
-
TensorFlow Servizio: Ecco la documentazione per gli sviluppatori su come distribuire i modelli di TF SavedModel utilizzando TensorFlow Serving.
-
Eseguire un TensorFlow SavedModel in Node.js: Un post del blog TensorFlow sull'esecuzione di un TensorFlow SavedModel in Node.js direttamente senza conversione.
-
Distribuzione su Cloud: Un post del blog TensorFlow sulla distribuzione di un modello TensorFlow SavedModel sulla Cloud AI Platform.
Sintesi
In questa guida abbiamo analizzato come esportare i modelli Ultralytics YOLO11 nel formato TF SavedModel . Esportando in TF SavedModel , si ottiene la flessibilità necessaria per ottimizzare, distribuire e scalare i modelli YOLO11 su un'ampia gamma di piattaforme.
Per ulteriori dettagli sull'uso, visitate la documentazione ufficiale di TF SavedModel .
Per ulteriori informazioni sull'integrazione di Ultralytics YOLO11 con altre piattaforme e framework, non dimenticate di consultare la nostra pagina della guida all'integrazione. È ricca di ottime risorse per aiutarvi a sfruttare al meglio YOLO11 nei vostri progetti.
FAQ
Come si esporta un modello Ultralytics YOLO in formato TensorFlow SavedModel ?
L'esportazione di un modello Ultralytics YOLO nel formato TensorFlow SavedModel è semplice. A tale scopo si può usare Python o CLI :
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")
Per ulteriori dettagli, consultare la documentazione di Ultralytics Export.
Perché utilizzare il formato TensorFlow SavedModel ?
Il formato TensorFlow SavedModel offre diversi vantaggi per la distribuzione dei modelli:
- Portabilità: Fornisce un formato neutro rispetto al linguaggio, che facilita la condivisione e la distribuzione dei modelli in ambienti diversi.
- Compatibilità: Si integra perfettamente con strumenti come TensorFlow Serving, TensorFlow Lite e TensorFlow.js, essenziali per distribuire i modelli su varie piattaforme, comprese le 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 della formazione.
Per ulteriori vantaggi e opzioni di implementazione, consultate le opzioni di implementazione del modelloUltralytics YOLO .
Quali sono gli scenari tipici di implementazione di TF SavedModel ?
TF SavedModel può essere distribuito in vari ambienti, tra cui:
- TensorFlow Serving: Ideale per gli ambienti di produzione che richiedono un model serving 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 di modelli scalabili.
- Dispositivi mobili e incorporati: L'uso di TensorFlow Lite per convertire i SavedModel TF consente di distribuirli su dispositivi mobili, dispositivi IoT e microcontrollori.
- TensorFlow Runtime: Per gli ambienti C++ che necessitano di un'inferenza a bassa latenza con prestazioni migliori.
Per informazioni dettagliate sulle opzioni di distribuzione, visitate le guide ufficiali sulla distribuzione dei modelli TensorFlow .
Come posso installare i pacchetti necessari per esportare i modelli di YOLO11 ?
Per esportare i modelli di YOLO11 , è necessario installare il programma ultralytics
pacchetto. Eseguite il seguente comando nel vostro terminale:
Per istruzioni più dettagliate sull'installazione e sulle migliori pratiche, consultare la guida all'installazione diUltralytics . In caso di problemi, consultare la nostra guida ai problemi comuni.
Quali sono le caratteristiche principali del formato TensorFlow SavedModel ?
TF SavedModel Il formato è vantaggioso per gli sviluppatori di IA grazie alle seguenti caratteristiche:
- Portabilità: Consente la condivisione e la distribuzione in diversi ambienti senza alcuno sforzo.
- Facilità di distribuzione: Incapsula il grafo computazionale, i parametri addestrati e i metadati in un unico pacchetto, semplificando il caricamento e l'inferenza.
- Gestione delle risorse: Supporta asset esterni come i vocabolari, assicurando che siano disponibili al momento del caricamento del modello.
Per ulteriori dettagli, consultate la documentazione ufficiale di TensorFlow .