Vai al contenuto

Capire come esportare in formato TF SavedModel da YOLOv8

La distribuzione di modelli di apprendimento automatico può essere impegnativa. Tuttavia, l'utilizzo di un formato di modello efficiente e flessibile può rendere il tuo lavoro più semplice. TF SavedModel è un framework open-source per l'apprendimento automatico utilizzato 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ò aiutarti a distribuire facilmente i modelli su diverse piattaforme e ambienti. Ultralytics YOLOv8 può aiutarti a distribuire facilmente i modelli su piattaforme e ambienti diversi. In questa guida ti spiegheremo 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 su 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 di 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 la formazione in ambienti diversi.

TF SavedModel

TF SavedModel ha un vantaggio fondamentale: la sua compatibilità. Funziona bene con TensorFlow Serving, TensorFlow Lite e TensorFlow.js. Questa compatibilità rende più facile condividere e distribuire i 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 tuoi modelli, garantendo 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. Consente a sistemi e strumenti di livello superiore di produrre, consumare e trasformare i modelli di 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 di YOLOv8 nel formato TF SavedModel , esploriamo alcuni scenari tipici di implementazione in cui questo formato viene utilizzato.

TF SavedModel offre una serie di opzioni per distribuire i tuoi 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 i SavedModels di TF , semplificando la distribuzione e il servizio dei tuoi modelli su piattaforme cloud, server on-premises o dispositivi edge.

  • Cloud Platforms: Major cloud providers like Google Cloud Platform (GCP), Amazon Web Services (AWS), and Microsoft Azure offer services for deploying and running TensorFlow models, including TF SavedModels. These services provide scalable and managed infrastructure, allowing you to deploy and scale your models easily.

  • Dispositivi mobili ed embedded: 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. Questo ti permette di distribuire i tuoi modelli su un'ampia gamma di dispositivi, da smartphone e tablet a microcontrollori e dispositivi edge.

  • TensorFlow Tempo di esecuzione: TensorFlow Runtime (tfrt) è un runtime ad alte prestazioni per l'esecuzione di TensorFlow Grafici. Fornisce API di livello inferiore per il caricamento e l'esecuzione TF SavedModels in ambienti C++. TensorFlow Runtime offre prestazioni migliori rispetto allo standard TensorFlow Runtime. È adatto per scenari di distribuzione che richiedono inferenza a bassa latenza e una stretta integrazione con le codebase C++ esistenti.

Esportare i modelli di YOLOv8 in TF SavedModel

Esportando i modelli di YOLOv8 nel formato TF SavedModel , ne migliori l'adattabilità e la facilità di distribuzione su diverse piattaforme.

Installazione

Per installare il pacchetto richiesto, esegui:

Installazione

# Install the required package for YOLOv8
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consulta la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare delle difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLOv8 sono disponibili per l'esportazione, ma qui puoi assicurarti che il modello che hai scelto supporti la funzionalità di esportazione.

Utilizzo

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TF SavedModel format
model.export(format="saved_model")  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolov8n_saved_model")

# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TF SavedModel format
yolo export model=yolov8n.pt format=saved_model  # creates '/yolov8n_saved_model'

# Run inference with the exported model
yolo predict model='./yolov8n_saved_model' source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sulle opzioni di esportazione supportate, visita la pagina di documentazione diUltralytics sulle opzioni di distribuzione.

Distribuzione di modelli esportati YOLOv8 TF SavedModel

Ora che hai esportato il tuo modello YOLOv8 nel formato TF SavedModel , il passo successivo è quello di distribuirlo. Il primo passo primario e consigliato per eseguire un modello TF GraphDef è utilizzare il metodo YOLO("./yolov8n_saved_model"), come mostrato in precedenza nel frammento di codice d'uso.

Tuttavia, per istruzioni approfondite sulla distribuzione dei modelli TF SavedModel , consulta le seguenti risorse:

  • TensorFlow Servizio: Ecco la documentazione per gli sviluppatori su come distribuire i tuoi modelli TF SavedModel utilizzando TensorFlow Serving.

  • Esegui 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 blog post di TensorFlow sulla distribuzione di un modello TensorFlow SavedModel sulla Cloud AI Platform.

Sommario

In questa guida abbiamo analizzato come esportare i modelli Ultralytics YOLOv8 nel formato TF SavedModel . Esportando in formato TF SavedModel , ottieni la flessibilità necessaria per ottimizzare, distribuire e scalare i tuoi modelli YOLOv8 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 YOLOv8 con altre piattaforme e framework, non dimenticare di dare un'occhiata alla nostra guida all'integrazione. È ricca di ottime risorse per aiutarti a sfruttare al meglio YOLOv8 nei tuoi progetti.

DOMANDE FREQUENTI

Come posso esportare un modello Ultralytics YOLO nel formato TensorFlow SavedModel ?

Esportare un modello Ultralytics YOLO nel formato TensorFlow SavedModel è semplice. Per farlo puoi utilizzare Python o CLI :

Esportazione di YOLOv8 in TF SavedModel

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TF SavedModel format
model.export(format="saved_model")  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolov8n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLOv8 model to TF SavedModel format
yolo export model=yolov8n.pt format=saved_model  # creates '/yolov8n_saved_model'

# Run inference with the exported model
yolo predict model='./yolov8n_saved_model' source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli, consulta la documentazione di Ultralytics Export.

Perché dovrei 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, rendendo più semplice 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, dai un'occhiata alle opzioni di implementazione del modelloUltralytics YOLO .

Quali sono gli scenari tipici di implementazione di TF SavedModel ?

TF SavedModel può essere utilizzato in diversi ambienti, tra cui:

  • TensorFlow Serving: Ideale per gli ambienti di produzione che richiedono un model serving scalabile e ad alte prestazioni.
  • Cloud Platforms: Supports major cloud services like Google Cloud Platform (GCP), Amazon Web Services (AWS), and Microsoft Azure for scalable model deployment.
  • Dispositivi mobili ed embedded: L'utilizzo di TensorFlow Lite per convertire i SavedModel di TF consente di utilizzare i dispositivi mobili, i dispositivi IoT e i 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, visita le guide ufficiali sulla distribuzione dei modelli TensorFlow .

Come posso installare i pacchetti necessari per esportare i modelli di YOLOv8 ?

Per esportare i modelli di YOLOv8 , devi installare il programma ultralytics pacchetto. Esegui il seguente comando nel tuo terminale:

pip install ultralytics

Per istruzioni più dettagliate sull'installazione e sulle migliori pratiche, consulta la nostra guida all'installazione diUltralytics . Se riscontri dei problemi, consulta la nostra guida sui problemi comuni.

Quali sono le caratteristiche principali del formato TensorFlow SavedModel ?

TF SavedModel Il formato è vantaggioso per gli sviluppatori di AI grazie alle seguenti caratteristiche:

  • Portabilità: Permette 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 le risorse esterne come i vocabolari, assicurandosi che siano disponibili quando il modello viene caricato.

Per maggiori dettagli, consulta la documentazione ufficiale di TensorFlow .



Creato 2024-03-23, Aggiornato 2024-07-05
Autori: glenn-jocher (5), Burhan-Q (1), abirami-vina (1)

Commenti