TensorFlow Lite è un set di strumenti che abilita l'apprendimento automatico sul dispositivo aiutando gli sviluppatori a eseguire i loro modelli su dispositivi mobili, embedded ed edge.
Caratteristiche principali
- Ottimizzato per l'apprendimento automatico sul dispositivo , affrontando 5 vincoli chiave: latenza (non c'è andata e ritorno verso un server), privacy (nessun dato personale lascia il dispositivo), connettività (non è richiesta la connettività a Internet), dimensioni (modello ridotto e dimensione binaria) e consumo energetico (inferenza efficiente e mancanza di connessioni di rete).
- Supporto per più piattaforme , che copre dispositivi Android e iOS , Linux embedded e microcontrollori .
- Supporto per diverse lingue , che include Java, Swift, Objective-C, C++ e Python.
- Alte prestazioni , con accelerazione hardware e ottimizzazione del modello .
- Esempi end-to-end , per attività comuni di machine learning come classificazione di immagini, rilevamento di oggetti, stima di pose, risposta a domande, classificazione di testi, ecc. su più piattaforme.
Flusso di lavoro di sviluppo
La seguente guida illustra ogni fase del flusso di lavoro e fornisce collegamenti a ulteriori istruzioni:
1. Genera un modello TensorFlow Lite
Un modello TensorFlow Lite è rappresentato in uno speciale formato portatile efficiente noto come FlatBuffers (identificato dall'estensione del file .tflite ). Ciò offre numerosi vantaggi rispetto al formato del modello di buffer del protocollo di TensorFlow, come dimensioni ridotte (ingombro ridotto del codice) e inferenza più rapida (accesso diretto ai dati senza un ulteriore passaggio di analisi/decompressione) che consente a TensorFlow Lite di funzionare in modo efficiente su dispositivi con risorse di calcolo e memoria limitate .
Un modello TensorFlow Lite può includere facoltativamente metadati con una descrizione del modello leggibile dall'uomo e dati leggibili dalla macchina per la generazione automatica di pipeline di pre e post-elaborazione durante l'inferenza sul dispositivo. Fare riferimento a Aggiungere metadati per maggiori dettagli.
È possibile generare un modello TensorFlow Lite nei seguenti modi:
Utilizzare un modello TensorFlow Lite esistente: fare riferimento a Esempi di TensorFlow Lite per selezionare un modello esistente. I modelli possono contenere o meno metadati.
Crea un modello TensorFlow Lite: utilizza TensorFlow Lite Model Maker per creare un modello con il tuo set di dati personalizzato. Per impostazione predefinita, tutti i modelli contengono metadati.
Convertire un modello TensorFlow in un modello TensorFlow Lite: utilizzare il convertitore TensorFlow Lite per convertire un modello TensorFlow in un modello TensorFlow Lite. Durante la conversione, puoi applicare ottimizzazioni come la quantizzazione per ridurre le dimensioni e la latenza del modello con una perdita di precisione minima o nulla. Per impostazione predefinita, tutti i modelli non contengono metadati.
2. Eseguire l'inferenza
L' inferenza si riferisce al processo di esecuzione di un modello TensorFlow Lite sul dispositivo per effettuare previsioni basate sui dati di input. È possibile eseguire l'inferenza nei seguenti modi in base al tipo di modello:
Modelli senza metadati : utilizzare l'API dell'interprete TensorFlow Lite . Supportato su più piattaforme e linguaggi come Java, Swift, C++, Objective-C e Python.
Modelli con metadati : puoi sfruttare le API predefinite utilizzando la libreria di attività TensorFlow Lite o creare pipeline di inferenza personalizzate con la libreria di supporto TensorFlow Lite . Sui dispositivi Android, gli utenti possono generare automaticamente wrapper di codice utilizzando Android Studio ML Model Binding o TensorFlow Lite Code Generator . Supportato solo su Java (Android) mentre Swift (iOS) e C++ sono in lavorazione.
Sui dispositivi Android e iOS, puoi migliorare le prestazioni utilizzando l'accelerazione hardware. Su entrambe le piattaforme è possibile utilizzare un delegato GPU , su Android è possibile utilizzare il delegato NNAPI (per i dispositivi più recenti) o il delegato Hexagon (su dispositivi meno recenti) e su iOS è possibile utilizzare il delegato Core ML . Per aggiungere il supporto per i nuovi acceleratori hardware, puoi definire il tuo delegato .
Iniziare
È possibile fare riferimento alle seguenti guide in base al dispositivo di destinazione:
Android e iOS: esplora la guida introduttiva di Android e la guida introduttiva di iOS .
Linux incorporato: esplora la guida introduttiva di Python per i dispositivi embedded come i dispositivi Raspberry Pi e Coral con Edge TPU o le istruzioni di compilazione C++ per ARM .
Microcontrollori: esplora la libreria TensorFlow Lite per microcontrollori per microcontrollori e DSP che contengono solo pochi kilobyte di memoria.
Vincoli tecnici
Tutti i modelli TensorFlow non possono essere convertiti in modelli TensorFlow Lite , fare riferimento a Compatibilità con l'operatore .
Formazione sul dispositivo non supportata , tuttavia è sulla nostra tabella di marcia .