Panoramica delle conversioni dei modelli

I modelli di machine learning (ML) che utilizzi con LiteRT sono vengono creati e addestrati utilizzando le librerie e gli strumenti principali di TensorFlow. Dopo aver creato un modello con TensorFlow Core, puoi convertirlo in un modello un formato di modello ML efficiente chiamato modello LiteRT. Questa sezione fornisce indicazioni per effettuare una conversione dai tuoi modelli TensorFlow al formato di modello LiteRT.

Flusso di lavoro delle conversioni

La conversione dei modelli TensorFlow in formato LiteRT può richiedere alcuni percorsi a seconda dei contenuti del modello ML. Come primo passaggio di questo processo, è necessario valutare il modello per determinare se può essere convertito direttamente. Questa valutazione determina se il contenuto del modello è supportato ambienti di runtime LiteRT standard basati sulle operazioni TensorFlow che utilizza. Se il modello utilizza operazioni al di fuori del set supportato, hai l'opzione di refactoring del modello o utilizzare tecniche di conversione avanzate.

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

Flusso di lavoro della conversione TFLite

Figura 1. Flusso di lavoro della conversione LiteRT.

Le seguenti sezioni descrivono il processo di valutazione e conversione dei modelli. per l'uso con LiteRT.

Formati del modello di input

Puoi utilizzare il convertitore con i seguenti formati di modello di input:

Puoi salvare sia i modelli Keras sia i modelli di funzioni concrete come SavedModel e convertirlo utilizzando il percorso consigliato.

Se hai un modello Jax, puoi usare TFLiteConverter.experimental_from_jax API per convertirlo nel formato LiteRT. Tieni presente che questa API è soggetta per cambiare in modalità sperimentale.

Valutazione delle conversioni

La valutazione del modello è un passaggio importante prima di tentare di convertirlo. Durante la valutazione, vuoi stabilire se i contenuti del tuo modello sono compatibili LiteRT. Dovresti anche determinare se il tuo modello è adatto per i dispositivi mobili e periferici in termini di dimensioni dei dati usati dal modello, i suoi requisiti di elaborazione hardware, nonché le dimensioni complessive complessità.

Per molti modelli, il convertitore dovrebbe funzionare subito. Tuttavia, La libreria di operatori integrata LiteRT supporta un sottoinsieme di Operatori principali di TensorFlow, il che significa che alcuni modelli potrebbero richiedere passaggi prima della conversione in LiteRT. Inoltre, alcune operazioni supportate da LiteRT hanno requisiti di utilizzo limitati per motivi legati alle prestazioni. Consulta le guida alla compatibilità con gli operatori per determinare se il modello deve essere sottoposto a refactoring per la conversione.

Conversione del modello

Il convertitore LiteRT prende un modello TensorFlow e genera Modello LiteRT (un modello FlatBuffer identificato dal .tflite). Puoi caricare un SavedModel 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ù comunemente utilizzata è quanitizzazione post-addestramento.
  3. I flag di metadati consentono di aggiungere metadati al modello convertito che semplifica la creazione di un codice wrapper specifico per la piattaforma durante il deployment modelli sui dispositivi.

Puoi convertire il modello utilizzando l'API Python oppure lo strumento Riga di comando. Consulta le Guida passo passo alla conversione modello TF su come eseguire il convertitore sul modello.

Di solito, convertiresti il modello per il modello LiteRT standard ambiente di runtime o Ambiente di runtime di Google Play Services per LiteRT (beta). Alcuni casi d'uso avanzati richiedono dell'ambiente di runtime del modello, che richiedono passaggi aggiuntivi la procedura di conversione. Consulta le ambiente di runtime avanzato dell'interfaccia panoramica per ulteriori indicazioni.

Conversione avanzata

Se riscontri errori durante l'esecuzione del convertitore sul modello, è molto probabile che problema di compatibilità con gli operatori. Non tutte le operazioni TensorFlow supportato da TensorFlow Lite. Puoi aggirare questi problemi eseguendo il refactoring del modello oppure utilizzando opzioni di conversione avanzate che ti consentono di creare un file LiteRT modificato e un ambiente di runtime personalizzato per quel modello.

  • Consulta la panoramica sulla compatibilità dei modelli per ulteriori informazioni sulla compatibilità dei modelli TensorFlow e LiteRT diverse considerazioni.
  • Gli argomenti della panoramica della compatibilità dei modelli trattano le tecniche avanzate per refactoring del modello, ad esempio utilizzando gli operatori di selezione guida.
  • Per l'elenco completo delle operazioni e delle limitazioni, vedi Pagina Ops di LiteRT.

Passaggi successivi