Panoramica della conversione del modello

I modelli di machine learning (ML) utilizzati con TensorFlow Lite sono stati originariamente creati e addestrati utilizzando le librerie e gli strumenti di base 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 una guida per la conversione dei 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 passaggio di tale processo, dovresti valutare il tuo modello per determinare se può essere convertito direttamente. Questa valutazione determina se il contenuto del modello è supportato dagli ambienti di runtime TensorFlow Lite standard in base alle operazioni TensorFlow che utilizza. Se il tuo modello utilizza operazioni al di fuori del set supportato, hai la possibilità di rifattorizzare il tuo 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 di 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 Keras che i modelli di funzioni concrete 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 tuo modello è un passaggio importante prima di tentare di convertirlo. Durante la valutazione, si desidera determinare se il contenuto del modello è compatibile con il formato TensorFlow Lite. Dovresti anche determinare se il tuo modello è adatto per l'uso su dispositivi mobili e perimetrali 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 incorporata di TensorFlow Lite supporta un sottoinsieme di operatori principali di TensorFlow, il che significa che alcuni modelli potrebbero richiedere passaggi aggiuntivi prima della conversione in 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 il tuo modello deve essere rifattorizzato per la conversione.

Conversione del modello

Il convertitore TensorFlow Lite prende 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 che crei 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-allenamento .
  3. I flag di 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 della riga di comando. Consulta la guida al modello Converti TF per istruzioni dettagliate sull'esecuzione del convertitore sul tuo modello.

In genere convertiresti il ​​tuo modello per l' ambiente di runtime TensorFlow Lite standard o per l' ambiente di runtime dei servizi Google Play 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 tu abbia un problema di compatibilità con l'operatore. Non tutte le operazioni di TensorFlow sono supportate da TensorFlow Lite. È possibile aggirare questi problemi effettuando il refactoring del modello o utilizzando opzioni di conversione avanzate che consentono di creare un modello in formato TensorFlow Lite modificato e un ambiente di runtime personalizzato per quel modello.

Prossimi passi

  • Consulta la guida alla conversione dei modelli TF per iniziare rapidamente a convertire il tuo modello.
  • Consulta la panoramica dell'ottimizzazione per indicazioni su come ottimizzare il tuo modello convertito utilizzando tecniche come la quantitizzazione post-formazione .
  • Consulta la panoramica sull'aggiunta di metadati per informazioni su come aggiungere metadati ai tuoi modelli. I metadati forniscono per altri usi una descrizione del tuo modello e informazioni che possono essere sfruttate dai generatori di codice.