TensorFlow Lite è una serie di strumenti che consentono il machine learning on-device aiutando gli sviluppatori a eseguire i propri modelli su dispositivi mobili, incorporati e periferici.
Funzionalità principali
- Ottimizzato per il machine learning sul dispositivo, soddisfacendo cinque vincoli chiave: latenza (non è previsto un round trip al server), privacy (nessun dato personale lascia il dispositivo), connettività (non è necessaria la connettività a internet), dimensioni (modello e dimensioni binarie ridotte) e consumo energetico (inferenza efficiente e assenza di connessioni di rete).
- Supporto di più piattaforme per dispositivi Android e iOS, Linux incorporato e microcontroller.
- Supporto di linguaggi diversi, che include Java, Swift, Objective-C, C++ e Python.
- Prestazioni elevate, con accelerazione hardware e ottimizzazione del modello.
Flusso di lavoro di sviluppo
La seguente guida illustra ogni passaggio del flusso di lavoro e fornisce link 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 diversi vantaggi rispetto al formato del modello di buffer di protocollo di TensorFlow, come dimensioni ridotte (impronta di codice ridotta) e inferenza più rapida (accesso diretto ai dati senza ulteriori passaggi di analisi/decompressione), grazie ai quali TensorFlow Lite può essere eseguito in modo efficiente su dispositivi con risorse di calcolo e memoria limitate.
Facoltativamente, un modello TensorFlow Lite può includere metadati contenenti una descrizione del modello leggibile e dati leggibili dalle macchine per la generazione automatica di pipeline di pre- e post-elaborazione durante l'inferenza sul dispositivo. Per ulteriori dettagli, consulta la sezione Aggiungere metadati.
Puoi generare un modello TensorFlow Lite nei seguenti modi:
Utilizza un modello TensorFlow Lite esistente: consulta gli esempi di TensorFlow Lite per scegliere un modello esistente. I modelli possono contenere o meno metadati.
Conversione di un modello TensorFlow in un modello TensorFlow Lite:utilizza il convertitore di 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 accuratezza minima o nulla. Per impostazione predefinita, tutti i modelli non contengono metadati.
2. Esegui l'inferenza
L'inferenza è il processo di esecuzione di un modello TensorFlow Lite sul dispositivo per effettuare previsioni in base ai dati di input. Puoi eseguire l'inferenza nei seguenti modi in base al tipo di modello:
Modelli senza metadati: utilizza l'API TensorFlow Lite Interpreter. Supportato su più piattaforme e linguaggi come Java, Swift, C++, Objective-C e Python.
Modelli con metadati: puoi creare pipeline di inferenza personalizzate con la libreria di assistenza TensorFlow Lite. Sui dispositivi Android, gli utenti possono generare automaticamente wrapper di codice utilizzando l'associazione di modelli ML di Android Studio o il generatore di codice di TensorFlow Lite. Supporto solo su Java (Android), mentre Swift (iOS) e C++ sono in fase di sviluppo.
Sui dispositivi Android e iOS, puoi migliorare le prestazioni utilizzando l'accelerazione hardware. In entrambe le piattaforme puoi utilizzare un delegato GPU, mentre su iOS puoi utilizzare un delegato ML. Per aggiungere il supporto per nuovi acceleratori hardware, puoi definire un delegato personalizzato.
Inizia
In base al dispositivo di destinazione, puoi consultare le seguenti guide:
Android e iOS: consulta la guida rapida per Android e la guida rapida per iOS.
Linux incorporato: esplora la guida rapida di Python per i dispositivi incorporati come Raspber Pi e dispositivi corallo con Edge TPU o le istruzioni di build C++ per ARM.
Microcontroller: esplora la libreria di TensorFlow Lite per microcontroller per microcontroller e DSP che contengono solo pochi kilobyte di memoria.
Vincoli tecnici
- Tutti i modelli TensorFlow non possono essere convertiti in modelli TensorFlow Lite, consulta la sezione Compatibilità degli operatori.