Panoramica delle conversioni dei modelli

I modelli di machine learning (ML) che utilizzi con TensorFlow Lite sono originariamente creati e addestrati utilizzando gli strumenti e le librerie di base di TensorFlow. Una volta creato un modello con TensorFlow Core, puoi convertirlo in un formato di modello ML più piccolo ed efficiente, chiamato modello TensorFlow Lite. Questa sezione fornisce indicazioni per convertire i modelli TensorFlow nel formato del modello TensorFlow Lite.

Flusso di lavoro della conversione

La conversione dei modelli TensorFlow nel formato TensorFlow Lite può richiedere alcuni percorsi, a seconda dei contenuti del modello ML. Come prima fase, devi valutare il modello per capire se può essere convertito direttamente. Questa valutazione determina se il contenuto del modello è supportato dagli ambienti di runtime standard di TensorFlow Lite in base alle operazioni TensorFlow che utilizza. Se il tuo modello utilizza operazioni non incluse nel set supportato, puoi scegliere di eseguire il refactoring del modello o utilizzare tecniche di conversione avanzate.

Il diagramma seguente mostra i passaggi generali della conversione di un modello.

Flusso di lavoro della conversione TFLite

Figura 1. Flusso di lavoro della conversione su TensorFlow Lite.

Le seguenti sezioni descrivono il processo di valutazione e conversione dei modelli da utilizzare con TensorFlow Lite.

Formati modello di input

Puoi utilizzare il convertitore con i seguenti formati dei modelli di input:

Puoi salvare sia il modello di funzione Keras che quello concreto come SaveModel e convertirlo utilizzando il percorso consigliato.

Se disponi di un modello Jax, puoi utilizzare l'API TFLiteConverter.experimental_from_jax per convertirlo nel formato TensorFlow Lite. Tieni presente che questa API è soggetta a modifiche in modalità sperimentale.

Valutazione delle conversioni

La valutazione del modello è un passaggio importante prima di tentare di convertirlo. Durante la valutazione, devi determinare se i contenuti del modello sono compatibili con il formato TensorFlow Lite. Devi inoltre determinare se il modello è adatto all'utilizzo su dispositivi mobili e periferici in termini di dimensioni dei dati utilizzati, requisiti di elaborazione hardware, dimensioni complessive e complessità del modello.

Per molti modelli, il convertitore dovrebbe funzionare immediatamente. Tuttavia, la libreria di operatori integrata di TensorFlow Lite supporta un sottoinsieme di operatori principali di TensorFlow, pertanto alcuni modelli potrebbero richiedere passaggi aggiuntivi prima di essere convertiti in TensorFlow Lite. Inoltre, alcune operazioni supportate da TensorFlow Lite hanno requisiti di utilizzo limitati per motivi di prestazioni. Consulta la guida alla compatibilità degli operatori per determinare se il tuo modello deve essere sottoposto a refactoring per la conversione.

Conversione del modello

Il convertitore TensorFlow Lite utilizza un modello TensorFlow e genera un modello TensorFlow Lite (un formato FlatBuffer ottimizzato identificato dall'estensione del file .tflite). Puoi caricare un modello SaveModel o convertire direttamente un modello creato nel codice.

Il convertitore utilizza tre flag (o opzioni) principali che personalizzano la conversione per il tuo modello:

  1. I flag di compatibilità consentono di specificare se la conversione deve consentire operatori personalizzati.
  2. I flag di ottimizzazione consentono di specificare il tipo di ottimizzazione da applicare durante la conversione. La tecnica di ottimizzazione più utilizzata è la quanitizzazione post-addestramento.
  3. I flag dei metadati consentono di aggiungere metadati al modello convertito, semplificando la creazione di codice wrapper specifico per la piattaforma durante il deployment dei modelli sui dispositivi.

Puoi convertire il tuo modello utilizzando l'API Python o lo strumento Riga di comando. Consulta la guida Converti modello TF per istruzioni dettagliate su come eseguire il convertitore sul tuo modello.

In genere, convertiresti il modello per l'ambiente di runtime standard di TensorFlow Lite o per l'ambiente di runtime di Google Play Services per TensorFlow Lite (beta). Alcuni casi d'uso avanzati richiedono la personalizzazione dell'ambiente di runtime del modello, che richiede passaggi aggiuntivi nella procedura di conversione. Per ulteriori indicazioni, consulta la sezione relativa all'ambiente di runtime avanzato della panoramica di Android.

Conversione avanzata

Se si verificano errori durante l'esecuzione del convertitore sul tuo modello, è molto probabile che tu abbia un problema di compatibilità dell'operatore. Non tutte le operazioni TensorFlow sono supportate da TensorFlow Lite. Puoi risolvere questi problemi eseguendo il refactoring del modello o utilizzando opzioni di conversione avanzate che ti consentono di creare un modello in formato TensorFlow Lite modificato e un ambiente di runtime personalizzato per quel modello.

Passaggi successivi