Panoramica sulla conversione del modello

I modelli di machine learning (ML) che utilizzi con TensorFlow Lite sono originariamente creati e addestrati utilizzando le librerie e gli strumenti principali di TensorFlow. Dopo aver 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 di conversione

La conversione dei modelli TensorFlow nel formato TensorFlow Lite può richiedere alcuni percorsi a seconda del contenuto del modello ML. Come primo passo di questo processo, dovresti valutare il tuo modello per determinare se può essere convertito direttamente. Questa valutazione determina se il contenuto del modello è supportato dagli ambienti runtime TensorFlow Lite standard in base alle operazioni TensorFlow che utilizza. Se il tuo modello utilizza operazioni esterne al set supportato, hai la possibilità di effettuare il refactoring del modello o utilizzare tecniche di conversione avanzate.

Il diagramma seguente mostra i passaggi di alto livello nella conversione di un modello.

Flusso di lavoro di conversione TFLite

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

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

Formati del modello di input

È possibile utilizzare il convertitore con i seguenti formati di modello di input:

È possibile salvare sia il modello Keras che quello della funzione concreta come SavedModel e convertirli 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 durante la modalità sperimentale.

Valutazione della conversione

La valutazione del modello è un passaggio importante prima di tentare di convertirlo. Durante la valutazione, desideri determinare se il contenuto del tuo modello è compatibile con il formato TensorFlow Lite. Dovresti anche determinare se il tuo modello è adatto all'uso su dispositivi mobili e periferici in termini di dimensioni dei dati utilizzati dal modello, requisiti di elaborazione hardware e dimensioni e complessità complessive 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, il che significa che alcuni modelli potrebbero richiedere passaggi aggiuntivi prima della conversione a TensorFlow Lite. Inoltre, alcune operazioni supportate da TensorFlow Lite hanno requisiti di utilizzo limitati per motivi di prestazioni. Consulta la guida alla compatibilità dell'operatore per determinare se è necessario eseguire il refactoring del modello per la conversione.

Conversione del modello

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

Il convertitore accetta 3 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ù comunemente utilizzata è la quantitizzazione post-training .
  3. I flag dei metadati consentono di aggiungere metadati al modello convertito, semplificando la creazione di codice wrapper specifico della piattaforma durante la distribuzione di modelli sui dispositivi.

Puoi convertire il tuo modello utilizzando l' API Python o lo strumento da riga di comando . Consulta la guida del modello Convert TF per istruzioni passo passo su come eseguire il convertitore sul tuo modello.

In genere dovresti convertire il tuo modello per l' ambiente runtime TensorFlow Lite standard o l' ambiente 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 nel processo di conversione. Per ulteriori indicazioni, vedere la sezione relativa all'ambiente di runtime avanzato della panoramica di Android.

Conversione avanzata

Se riscontri errori durante l'esecuzione del convertitore sul tuo modello, è molto probabile che si tratti di un problema di compatibilità con l'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 runtime personalizzato per quel modello.

Prossimi passi