LiteRT per Android

LiteRT consente di eseguire modelli di machine learning (ML) TensorFlow in App per Android. Il sistema LiteRT offre modelli di ML per l'esecuzione di modelli su Android in modo rapido ed efficiente, incluse le opzioni per l'accelerazione hardware.

Modelli di machine learning

LiteRT utilizza modelli TensorFlow che vengono convertiti in un modello più efficiente e portabile di modello di machine learning. Puoi usare modelli di ML modelli con LiteRT su Android o creare i tuoi modelli TensorFlow e convertirle nel formato LiteRT.

Questa pagina illustra l'uso di modelli di machine learning già creati riguardano creazione, addestramento, test o conversione dei modelli. Scopri di più su scegliere, modificare, creare e convertire i modelli di machine learning LiteRT nella pagina Modelli.

Esegui modelli su Android

Un modello LiteRT in esecuzione all'interno di un'app Android acquisisce dati, elabora i dati e genera una previsione basata sulla logica del modello. TensorFlow Il modello Lite richiede uno speciale ambiente di runtime per essere eseguito, mentre i dati trasmessi nel modello devono essere in un formato di dati specifico, chiamato tensore. Quando un modello elabora l'esecuzione di un'inferenza, genera risultati della previsione come nuovi tensori e li passa all'app per Android affinché possa agire, come che mostra il risultato a un utente o esegue una logica di business aggiuntiva.

Flusso di esecuzione funzionale per i modelli LiteRT in Android
app

Figura 1. Flusso di esecuzione funzionale per i modelli LiteRT in Android app.

A livello di design funzionale, la tua app per Android richiede i seguenti elementi per esegui un modello LiteRT:

  • Ambiente di runtime LiteRT per l'esecuzione del modello
  • Gestore di input del modello per trasformare i dati in tensori
  • Modello di gestore degli output per ricevere i tensori dei risultati di output e interpretarli come risultati della previsione

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

Crea app con LiteRT

Questa sezione descrive il percorso consigliato e più comune per l'implementazione LiteRT nella tua app Android. Dovresti prestare la massima attenzione ambiente di runtime e librerie di sviluppo. Se hai sviluppato un modello personalizzato, ricordati di consultare la sezione Sviluppo avanzato della rete di ricerca.

Opzioni dell'ambiente di runtime

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

In generale, dovresti usare l'ambiente di runtime fornito da Google Play. perché è più efficiente in termini di spazio rispetto all'ambiente standard poiché il caricamento avviene in modo dinamico, riducendo le dimensioni dell'app. Google Play Services anche utilizza automaticamente la release stabile più recente di LiteRT un runtime, offrendo funzionalità aggiuntive e prestazioni migliori nel tempo. Se offri la tua app su dispositivi che non includono Google Play Services o tu gestire attentamente l'ambiente di runtime ML, allora dovresti usare il runtime LiteRT standard. Questa opzione raggruppa codice aggiuntivo che ti consente di avere un maggiore controllo sul runtime ML nella tua app costo dell'aumento delle dimensioni di download dell'app.

Puoi accedere a questi ambienti di runtime nella tua app per Android aggiungendo TensorFlow Rendi disponibili le librerie di sviluppo nell'ambiente di sviluppo delle tue app. Per informazioni su come utilizzare gli ambienti di runtime standard nella tua app, vedi le .

Biblioteche

Puoi accedere all'API Interpreter tramite Google Play Google Cloud. Puoi utilizzare lo LiteRT core e supportare le librerie nella tua app per Android. Per dettagli di programmazione sull'utilizzo delle librerie LiteRT e del runtime ambienti, consulta la pagina Strumenti di sviluppo per Android.

Ottenere i modelli

L'esecuzione di un modello in un'app Android richiede un modello in formato LiteRT. Tu utilizzare modelli predefiniti o crearne uno con TensorFlow per poi convertirlo in un formato. Per ulteriori informazioni su come ottenere modelli per la tua app per Android, vedi le Pagina Modelli LiteRT.

Gestire i dati di input

Tutti i dati passati in un modello ML devono essere un tensore con dati specifici struttura, spesso chiamata forma del tensore. Per elaborare i dati con un modello, il codice dell'app deve trasformare i dati rispetto al formato nativo, ad esempio immagine, testo dati audio o audio in un tensore nella forma richiesta per il modello.

Esegui inferenze

L'elaborazione dei dati tramite un modello per generare il risultato di una previsione è nota come eseguendo un'inferenza. L'esecuzione di un'inferenza in un'app Android richiede un Ambiente di runtime LiteRT, un modello e input dati.

La velocità con cui un modello può generare un'inferenza su un determinato dispositivo dipende dalla dimensione dei dati elaborati, dalla complessità del modello 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 come le GPU (Graphics Processing Unit) e i processori (TPU), utilizzando driver hardware LiteRT chiamati delegati. Per ulteriori informazioni sui delegati e sull'accelerazione hardware di dell'elaborazione del modello, vedi la sezione sull'accelerazione hardware Panoramica.

Gestire i risultati di output

I modelli generano i risultati della previsione sotto forma di tensori, che devono essere gestiti dal tuo App per Android tramite un'azione o mostrando un risultato all'utente. Output del modello i risultati possono essere semplici come un numero corrispondente a un singolo risultato (0 = cane, 1 = gatto, 2 = uccello) per una classificazione delle immagini, a risultati molto più complessi, ad esempio più riquadri di delimitazione per diversi oggetti classificati in un'immagine, con le valutazioni di affidabilità delle previsioni comprese tra 0 e 1.

Percorsi di sviluppo avanzati

Quando utilizzi modelli LiteRT più sofisticati e personalizzati, puoi usare approcci di sviluppo più avanzati rispetto a quelli descritti sopra. Le seguenti sezioni descrivono le tecniche avanzate per l'esecuzione di modelli e svilupparle per LiteRT nelle app per Android.

Ambienti di runtime avanzati

Oltre al runtime standard e al runtime di Google Play Services per LiteRT, esistono altri ambienti di runtime che puoi usare con la tua app per Android. L'utilizzo più probabile per questi ambienti è hai un modello di machine learning che utilizza operazioni ML non supportate dall'ambiente di runtime standard per LiteRT.

Il runtime Flex di LiteRT consente di includere e operatori specifici richiesti per il tuo modello. Come opzione avanzata per l'esecuzione il tuo modello, puoi creare LiteRT per Android in modo da includere operatori per eseguire il modello di machine learning TensorFlow. Per maggiori informazioni, vedi Build LiteRT per Android.

API C e C++

LiteRT fornisce anche un'API per eseguire i modelli utilizzando C e C++. Se le tue utilizza Android NDK, dovresti valuta la possibilità di utilizzare 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, consulta la sezione Sviluppi degli strumenti.

Esecuzione del modello basato su server

In generale, dovresti eseguire modelli nella tua app su un dispositivo Android per e usufruire di una minore latenza e di una migliore privacy dei dati per i tuoi utenti. Tuttavia, a volte l'esecuzione di un modello su un server cloud, fuori dal dispositivo, è soluzione. Ad esempio, se hai un modello di grandi dimensioni che non consente di comprimere facilmente fino a una dimensione adatta alle tue esigenze sui dispositivi Android o possono essere eseguite ragionevoli. Questo approccio potrebbe essere soluzione preferita se le prestazioni sono coerenti del modello su un'ampia gamma dispositivi sono la massima priorità.

Google Cloud offre una suite completa di servizi per l'esecuzione di macchine TensorFlow di machine learning. Per saperne di più, consulta la sezione IA e machine learning di Google Cloud prodotti per l'apprendimento.

Sviluppo e ottimizzazione di modelli personalizzati

È probabile che i percorsi di sviluppo più avanzati includano lo sviluppo di macchine personalizzate di machine learning e l'ottimizzazione di questi modelli per l'uso sui dispositivi Android. Se creare modelli personalizzati, considera l'applicazione della quantizzazione tecniche ai modelli per ridurre di memoria e di elaborazione. Per ulteriori informazioni su come creare modelli ad alte prestazioni da utilizzare con LiteRT, consulta Prestazioni migliori pratiche nella sezione Modelli.