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 precostruiti e personalizzabili per eseguire modelli su Android in modo rapido ed efficiente, comprese opzioni per l'accelerazione hardware.

Tabella di marcia per l'apprendimento

Progettazione del codice Impara i concetti e la progettazione del codice per creare app Android con TensorFlow Lite, continua a leggere .
Codice Avvio rapido Inizia subito a programmare un'app Android con TensorFlow Lite con Quickstart .
Modelli ML Scopri come scegliere e utilizzare i modelli ML con TensorFlow Lite, consulta la documentazione 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 ed 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 tratta la creazione, l'addestramento, il test o la conversione di modelli. Scopri di più 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, li elabora e genera una previsione basata sulla logica del modello. Un modello TensorFlow Lite richiede un ambiente runtime speciale per essere eseguito e i dati passati al modello devono essere in un formato dati specifico, chiamato tensore . Quando un modello elabora i dati, operazione nota 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 logica aziendale aggiuntiva.

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 runtime TensorFlow Lite per l'esecuzione del modello
  • Modella il gestore 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 il modo in cui 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 nella tua app Android. Dovresti prestare la massima attenzione alle sezioni dell'ambiente 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 runtime per l'esecuzione di modelli nella tua app Android. Queste sono le opzioni preferite:

In generale, dovresti utilizzare l'ambiente di runtime fornito da Google Play Services perché è più efficiente in termini di spazio rispetto all'ambiente standard poiché si carica dinamicamente, mantenendo le dimensioni dell'app più piccole. I servizi Google Play utilizzano automaticamente anche la versione più recente e stabile del runtime TensorFlow Lite, offrendoti funzionalità aggiuntive e prestazioni migliorate nel tempo. Se offri la tua app su dispositivi che non includono Google Play Services o hai bisogno di gestire da vicino il tuo ambiente 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 ML nella tua app al costo di aumentare le dimensioni di download dell'app.

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

API e librerie di sviluppo

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 TensorFlow Lite Task racchiude l'API Interpreter e fornisce un'interfaccia di programmazione di livello superiore per eseguire attività comuni 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 Task o all'API Interpreter utilizzando i servizi Google Play . Puoi anche utilizzare le librerie autonome per TensorFlow Lite Tasks o le librerie core e di supporto di TensorFlow Lite nella tua app Android. Per dettagli sulla programmazione sull'utilizzo delle librerie TensorFlow Lite e degli ambienti runtime, consulta 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 trasferiti in un modello ML devono essere un tensore con una struttura dati specifica, spesso denominata forma del tensore. Per elaborare i dati con un modello, il codice dell'app deve trasformare i dati dal formato nativo, ad esempio dati di immagine, testo o audio, in un tensore nella forma richiesta per il tuo 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 attraverso 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 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 elaborazione 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 unità di elaborazione grafica (GPU) e unità di elaborazione tensore (TPU), utilizzando 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 dall'app Android intraprendendo un'azione o visualizzando un risultato all'utente. I risultati di output del modello possono essere semplici come un numero corrispondente a un singolo risultato (0 = cane, 1 = gatto, 2 = uccello) per una classificazione di immagini, fino a risultati molto più complessi, come più riquadri di delimitazione per diversi oggetti classificati in un immagine, con livelli di confidenza della previsione compresi 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 agli ambienti runtime standard e agli ambienti runtime di Google Play Services per TensorFlow Lite, sono disponibili ambienti runtime aggiuntivi che puoi utilizzare con la tua app Android. L'utilizzo più probabile di questi ambienti è se disponi di un modello di machine learning che utilizza operazioni ML che non sono supportate dall'ambiente runtime standard per TensorFlow Lite.

Il runtime TensorFlow Lite Flex ti consente di includere operatori specifici richiesti per il tuo modello. Come opzione avanzata per l'esecuzione del tuo modello, puoi creare TensorFlow Lite per Android per includere operatori e altre funzionalità necessarie per l'esecuzione del tuo modello di machine learning TensorFlow. Per ulteriori informazioni, consulta Compilare TensorFlow Lite per Android .

API C e C++

TensorFlow Lite fornisce anche un'API per l'esecuzione di modelli utilizzando 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 desideri essere in grado di condividere il codice tra più piattaforme. Per ulteriori informazioni su questa opzione di sviluppo, consulta la pagina Strumenti di sviluppo .

Esecuzione del modello basato 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 raggiungere dimensioni adatte ai dispositivi Android dei tuoi utenti o che può essere eseguito con prestazioni ragionevoli su tali dispositivi. Questo approccio potrebbe anche essere la soluzione preferita se la massima priorità è la coerenza delle prestazioni del modello su un'ampia gamma di dispositivi.

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'utilizzo 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, consulta Best practice sulle prestazioni nella sezione Modelli.

Prossimi passi