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 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.

  • Piattaforme cloud: I principali provider 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 , tra cui TF SavedModels. Questi servizi forniscono un'infrastruttura scalabile e gestita che ti permette di distribuire e scalare facilmente i tuoi modelli.

  • 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 Runtime: TensorFlow Runtime (tfrt) è un runtime ad alte prestazioni per l'esecuzione dei grafi di TensorFlow . Fornisce API di livello inferiore per il caricamento e l'esecuzione di TF SavedModels in ambienti C++. TensorFlow 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.

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.



Creato 2024-03-23, Aggiornato 2024-04-02
Autori: Burhan-Q (1), abirami-vina (1)

Commenti