TensorFlow Lite per Android

TensorFlow Lite ti consente di eseguire modelli di machine learning (ML) TensorFlow nelle tue app Android. Il sistema TensorFlow Lite fornisce ambienti di esecuzione predefiniti e personalizzabili per l'esecuzione di modelli su Android in modo rapido ed efficiente, comprese le opzioni per l'accelerazione hardware.

Tabella di marcia per l'apprendimento

Impara concetti e progettazione del codice per la creazione di app Android con TensorFlow Lite, continua a leggere .
Inizia subito a codificare un'app Android con TensorFlow Lite con Quickstart .
Scopri come scegliere e utilizzare i modelli ML con TensorFlow Lite, consulta i documenti sui modelli .

Modelli di apprendimento automatico

TensorFlow Lite utilizza modelli TensorFlow che vengono convertiti in un formato di modello di machine learning più piccolo, portatile e più efficiente. Puoi utilizzare modelli predefiniti con TensorFlow Lite su Android oppure creare i tuoi modelli TensorFlow e convertirli nel formato TensorFlow Lite.

Questa pagina illustra l'utilizzo di modelli di machine learning già creati e non copre la creazione, l'addestramento, il test o la conversione di modelli. Ulteriori informazioni su selezione, modifica, creazione e conversione di modelli di machine learning per TensorFlow Lite nella sezione Modelli .

Esegui modelli su Android

Un modello TensorFlow Lite in esecuzione all'interno di un'app Android acquisisce dati, elabora i dati e genera una previsione basata sulla logica del modello. Un modello TensorFlow Lite richiede uno speciale ambiente di runtime per essere eseguito e i dati che vengono passati nel modello devono essere in un formato dati specifico, chiamato tensor . Quando un modello elabora i dati, noto come esecuzione di un'inferenza , genera risultati di previsione come nuovi tensori e li passa all'app Android in modo che possa intraprendere azioni, ad esempio mostrare il risultato a un utente o eseguire logiche di business aggiuntive.

Flusso di esecuzione funzionale per i modelli TensorFlow Lite nelle app Android

Figura 1. Flusso di esecuzione funzionale per i modelli TensorFlow Lite nelle app Android.

A livello di progettazione funzionale, la tua app Android necessita dei seguenti elementi per eseguire un modello TensorFlow Lite:

  • Ambiente di runtime TensorFlow Lite per l'esecuzione del modello
  • Modellatore di input per trasformare i dati in tensori
  • Modella il gestore di output per ricevere i tensori dei risultati di output e interpretarli come risultati di previsione

Le sezioni seguenti descrivono come le librerie e gli strumenti TensorFlow Lite forniscono questi elementi funzionali.

Crea app con TensorFlow Lite

Questa sezione descrive il percorso consigliato e più comune per l'implementazione di TensorFlow Lite nell'app Android. Dovresti prestare la massima attenzione alle sezioni dell'ambiente di runtime e delle librerie di sviluppo . Se hai sviluppato un modello personalizzato, assicurati di rivedere la sezione Percorsi di sviluppo avanzati .

Opzioni dell'ambiente di runtime

Esistono diversi modi per abilitare un ambiente di runtime per l'esecuzione di modelli nell'app Android. Queste sono le opzioni preferite:

In generale, dovresti utilizzare l'ambiente di runtime fornito dai servizi di Google Play perché è più efficiente in termini di spazio rispetto all'ambiente standard poiché si carica in modo dinamico, riducendo le dimensioni dell'app. I servizi di Google Play utilizzano inoltre automaticamente la versione più recente e stabile del runtime di TensorFlow Lite, offrendoti funzionalità aggiuntive e prestazioni migliorate nel tempo. Se offri la tua app su dispositivi che non includono i servizi Google Play o devi gestire da vicino il tuo ambiente di runtime ML, dovresti utilizzare il runtime TensorFlow Lite standard. Questa opzione raggruppa codice aggiuntivo nella tua app, consentendoti di avere un maggiore controllo sul runtime di ML nella tua app al costo di aumentare le dimensioni del download della tua app.

Puoi accedere a questi ambienti di runtime nella tua app Android aggiungendo le librerie di sviluppo TensorFlow Lite al tuo ambiente di sviluppo app. Per informazioni su come utilizzare gli ambienti di runtime standard nell'app, vedere la sezione successiva.

API di sviluppo e librerie

Esistono due API principali che puoi utilizzare per integrare i modelli di machine learning TensorFlow Lite nella tua app Android:

L' API Interpreter fornisce classi e metodi per eseguire inferenze con i modelli TensorFlow Lite esistenti. L' API Task TensorFlow Lite racchiude l'API Interpreter e fornisce un'interfaccia di programmazione di livello superiore per l'esecuzione di comuni attività di machine learning sulla gestione di dati visivi, audio e di testo. Dovresti utilizzare l'API Task a meno che non trovi che non supporti il ​​tuo caso d'uso specifico.

Biblioteche

Puoi accedere alle API delle attività o all'API dell'interprete utilizzando i servizi di Google Play . Puoi anche utilizzare le librerie autonome per TensorFlow Lite Tasks o il core TensorFlow Lite e le librerie di supporto nella tua app Android. Per i dettagli sulla programmazione sull'utilizzo delle librerie TensorFlow Lite e degli ambienti di runtime, vedere Strumenti di sviluppo per Android .

Ottieni modelli

L'esecuzione di un modello in un'app Android richiede un modello in formato TensorFlow Lite. Puoi utilizzare modelli predefiniti o crearne uno con TensorFlow e convertirlo nel formato Lite. Per ulteriori informazioni su come ottenere modelli per la tua app Android, consulta la sezione Modelli TensorFlow Lite.

Gestire i dati di input

Tutti i dati che si passano in un modello ML devono essere un tensore con una struttura dati specifica, spesso chiamata forma del tensore. Per elaborare i dati con un modello, il codice dell'app deve trasformare i dati dal formato nativo, come immagini, testo o dati audio, in un tensore della forma richiesta per il modello.

La libreria TensorFlow Lite Task fornisce la logica di gestione dei dati per trasformare dati visivi, di testo e audio in tensori con la forma corretta per essere elaborati da un modello TensorFlow Lite.

Esegui inferenze

L'elaborazione dei dati tramite un modello per generare un risultato di previsione è nota come esecuzione di un'inferenza . L'esecuzione di un'inferenza in un'app Android richiede un ambiente di runtime TensorFlow Lite, un modello e dati di input .

La velocità con cui un modello può generare un'inferenza su un particolare dispositivo dipende dalla dimensione dei dati elaborati, dalla complessità del modello e dalle risorse di calcolo disponibili come memoria e CPU, o processori specializzati chiamati acceleratori . I modelli di machine learning possono essere eseguiti più velocemente su questi processori specializzati come le unità di elaborazione grafica (GPU) e le unità di elaborazione tensoriale (TPU), utilizzando i driver hardware TensorFlow Lite chiamati delegati . Per ulteriori informazioni sui delegati e sull'accelerazione hardware dell'elaborazione del modello, vedere Panoramica sull'accelerazione hardware .

Gestire i risultati di output

I modelli generano risultati di previsione come tensori, che devono essere gestiti dalla tua app Android agendo o visualizzando un risultato per l'utente. I risultati dell'output del modello possono essere semplici come un numero corrispondente a un singolo risultato (0 = cane, 1 = gatto, 2 = uccello) per una classificazione di immagine, a risultati molto più complessi, come più riquadri di delimitazione per diversi oggetti classificati in un immagine, con valutazioni di affidabilità delle previsioni comprese tra 0 e 1.

Percorsi di sviluppo avanzati

Quando si utilizzano modelli TensorFlow Lite più sofisticati e personalizzati, potrebbe essere necessario utilizzare approcci di sviluppo più avanzati rispetto a quanto descritto sopra. Le sezioni seguenti descrivono le tecniche avanzate per eseguire modelli e svilupparli per TensorFlow Lite nelle app Android.

Ambienti di runtime avanzati

Oltre al runtime standard e agli ambienti di runtime dei servizi Google Play per TensorFlow Lite, sono disponibili ambienti di runtime aggiuntivi che puoi utilizzare con la tua app Android. L'uso più probabile per questi ambienti è se si dispone di un modello di machine learning che utilizza operazioni ML non supportate dall'ambiente di runtime standard per TensorFlow Lite.

Il runtime TensorFlow Lite Flex consente di includere operatori specifici richiesti per il proprio modello. Come opzione avanzata per eseguire il tuo modello, puoi creare TensorFlow Lite per Android per includere operatori e altre funzionalità necessarie per eseguire il tuo modello di apprendimento automatico TensorFlow. Per ulteriori informazioni, consulta Creazione di TensorFlow Lite per Android .

API C e C++

TensorFlow Lite fornisce anche un'API per l'esecuzione di modelli che utilizzano C e C++. Se la tua app utilizza Android NDK , dovresti prendere in considerazione l'utilizzo di questa API. Potresti anche prendere in considerazione l'utilizzo di questa API se vuoi essere in grado di condividere il codice tra più piattaforme. Per ulteriori informazioni su questa opzione di sviluppo, vedere la pagina Strumenti di sviluppo .

Esecuzione del modello basata su server

In generale, dovresti eseguire i modelli nella tua app su un dispositivo Android per sfruttare una latenza inferiore e una migliore privacy dei dati per i tuoi utenti. Tuttavia, ci sono casi in cui l'esecuzione di un modello su un server cloud, fuori dal dispositivo, è una soluzione migliore. Ad esempio, se disponi di un modello di grandi dimensioni che non si comprime facilmente fino a una dimensione adatta ai dispositivi Android dei tuoi utenti o può essere eseguito con prestazioni ragionevoli su tali dispositivi. Questo approccio può anche essere la tua soluzione preferita se le prestazioni coerenti del modello su un'ampia gamma di dispositivi sono la priorità assoluta.

Google Cloud offre una suite completa di servizi per l'esecuzione di modelli di machine learning TensorFlow. Per ulteriori informazioni, consulta la pagina dei prodotti di intelligenza artificiale e machine learning di Google Cloud.

Sviluppo e ottimizzazione di modelli personalizzati

È probabile che percorsi di sviluppo più avanzati includano lo sviluppo di modelli di machine learning personalizzati e l'ottimizzazione di tali modelli per l'uso su dispositivi Android. Se prevedi di creare modelli personalizzati, assicurati di considerare l'applicazione di tecniche di quantizzazione ai modelli per ridurre i costi di memoria e di elaborazione. Per ulteriori informazioni su come creare modelli ad alte prestazioni da utilizzare con TensorFlow Lite, vedere Best practice per le prestazioni nella sezione Modelli.

Prossimi passi