TensorFlow Lite per microcontrollori è progettato per eseguire modelli di machine learning su microcontrollori e altri dispositivi con solo pochi kilobyte di memoria. Il core runtime si adatta a soli 16 KB su un Arm Cortex M3 e può eseguire molti modelli di base. Non richiede il supporto del sistema operativo, alcuna libreria C o C++ standard o l'allocazione dinamica della memoria.
Perché i microcontrollori sono importanti
I microcontrollori sono in genere dispositivi informatici di piccole dimensioni ea bassa potenza incorporati all'interno di hardware che richiede un calcolo di base. Portando l'apprendimento automatico su minuscoli microcontrollori, possiamo aumentare l'intelligenza di miliardi di dispositivi che utilizziamo nella nostra vita, inclusi elettrodomestici e dispositivi Internet of Things, senza fare affidamento su hardware costoso o connessioni Internet affidabili, che sono spesso soggette a larghezza di banda e limiti di potenza e si traduce in un'elevata latenza. Questo può anche aiutare a preservare la privacy, poiché nessun dato lascia il dispositivo. Immagina elettrodomestici intelligenti in grado di adattarsi alla tua routine quotidiana, sensori industriali intelligenti che comprendono la differenza tra problemi e funzionamento normale e giocattoli magici che possono aiutare i bambini a imparare in modi divertenti e deliziosi.
Piattaforme supportate
TensorFlow Lite per microcontrollori è scritto in C++ 17 e richiede una piattaforma a 32 bit. È stato ampiamente testato con molti processori basati sull'architettura della serie Arm Cortex-M ed è stato portato su altre architetture, tra cui ESP32 . Il framework è disponibile come libreria Arduino. Può anche generare progetti per ambienti di sviluppo come Mbed. È open source e può essere incluso in qualsiasi progetto C++ 17.
Sono supportate le seguenti schede di sviluppo:
- Arduino Nano 33 Senso BLE
- Bordo Spark Fun
- STM32F746 Kit di scoperta
- Adafruit EdgeBadge
- Kit Adafruit TensorFlow Lite per microcontrollori
- Parco giochi del circuito di Adafruit Bluefruit
- Expressif ESP32-DevKitC
- Espressivo ESP-EYE
- Terminale Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint Scheda di sviluppo AI
- Sinossi Piattaforma di sviluppo software DesignWare ARC EM
- Sony Spresense
Esplora gli esempi
Ogni applicazione di esempio si trova su Github e dispone di un file README.md
che spiega come può essere distribuito sulle piattaforme supportate. Alcuni esempi hanno anche tutorial end-to-end che utilizzano una piattaforma specifica, come indicato di seguito:
- Hello World - Dimostra le basi assolute dell'utilizzo di TensorFlow Lite per i microcontrollori
- Micro parlato : acquisisce l'audio con un microfono per rilevare le parole "sì" e "no"
- Rilevamento di persone : acquisisce i dati della telecamera con un sensore di immagine per rilevare la presenza o l'assenza di una persona
Flusso di lavoro
I seguenti passaggi sono necessari per distribuire ed eseguire un modello TensorFlow su un microcontrollore:
- Addestra un modello :
- Genera un piccolo modello TensorFlow che possa adattarsi al tuo dispositivo di destinazione e contenga le operazioni supportate .
- Converti in un modello TensorFlow Lite utilizzando il convertitore TensorFlow Lite .
- Converti in un array di byte C utilizzando strumenti standard per archiviarlo in una memoria di programma di sola lettura sul dispositivo.
- Esegui l'inferenza sul dispositivo usando la libreria C++ ed elabora i risultati.
Limitazioni
TensorFlow Lite per microcontrollori è progettato per i vincoli specifici dello sviluppo di microcontrollori. Se stai lavorando su dispositivi più potenti (ad esempio, un dispositivo Linux embedded come Raspberry Pi), il framework TensorFlow Lite standard potrebbe essere più facile da integrare.
Devono essere considerate le seguenti limitazioni:
- Supporto per un sottoinsieme limitato di operazioni TensorFlow
- Supporto per un set limitato di dispositivi
- API C++ di basso livello che richiedono la gestione manuale della memoria
- L'addestramento sul dispositivo non è supportato
Prossimi passi
- Inizia con i microcontrollori per provare l'applicazione di esempio e imparare a utilizzare l'API.
- Comprendi la libreria C++ per imparare a usare la libreria nel tuo progetto.
- Crea e converti modelli per saperne di più sull'addestramento e la conversione di modelli per la distribuzione su microcontroller.