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.
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:
- SavedModel (consigliato): un modello TensorFlow salvato come insieme di file su disco.
- Modello Keras: Un modello creato utilizzando l'API Keras di alto livello.
- Formato Keras H5: Un'alternativa leggera al formato SavedModel supportata dall'API Keras.
- Modelli creati da funzioni concrete: Un modello creato utilizzando l'API TensorFlow di basso livello.
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:
- I flag di compatibilità consentono di specificare se la conversione deve consentire operatori personalizzati.
- 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.
- 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
- Per iniziare rapidamente, consulta la guida alla conversione di modelli TF nella conversione del modello.
- Consulta la panoramica dell'ottimizzazione per indicazioni su come ottimizzare il modello convertito utilizzando tecniche come quanitizzazione post-addestramento.
- Per informazioni su come aggiungere metadati, consulta la pagina Panoramica sull'aggiunta dei metadati i tuoi modelli. I metadati forniscono anche una descrizione del modello per altri utilizzi informazioni che possono essere sfruttate dai generatori di codice.