TensorFlow Lite for Microcontrollers è progettato per eseguire modelli di machine learning su microcontroller e altri dispositivi con pochi kilobyte di memoria. Il core runtime si adatta solo a 16 KB su un Arm Cortex M3 e può eseguire molti modelli di base. Non richiede il supporto del sistema operativo, librerie C o C++ standard o allocazione dinamica della memoria.
Perché i microcontrollori sono importanti
I microcontrollori sono in genere piccoli dispositivi informatici a bassa potenza incorporati all'interno di hardware che richiedono un calcolo di base. Portando l'apprendimento automatico su piccoli microcontrollori, possiamo potenziare 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 vincoli di potenza e si traduce in una latenza elevata. 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 piacevoli.
Piattaforme supportate
TensorFlow Lite per microcontrollori è scritto in C++ 11 e richiede una piattaforma a 32 bit. È stato ampiamente testato con molti processori basati sull'architettura Arm Cortex-M Series 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++ 11.
Sono supportate le seguenti schede di sviluppo:
- Arduino Nano 33 BLE Senso
- Bordo SparkFun
- STM32F746 Kit di scoperta
- Adafruit EdgeBadge
- Kit Adafruit TensorFlow Lite per microcontrollori
- Parco giochi del circuito Adafruit Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminale Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Piattaforma di sviluppo software Synopsys DesignWare ARC EM
- Sony Spense
Esplora gli esempi
Ogni applicazione di esempio si trova su Github e dispone di un file README.md
che spiega come può essere distribuita 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 microcontrollori
- Micro discorso : acquisisce l'audio con un microfono per rilevare le parole "sì" e "no"
- Bacchetta magica - Acquisisce i dati dell'accelerometro per classificare tre diversi gesti fisici
- Rilevamento persone : acquisisce i dati della fotocamera 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 si adatti al tuo dispositivo di destinazione e contenga 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 incorporato come Raspberry Pi), il framework TensorFlow Lite standard potrebbe essere più facile da integrare.
Vanno 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'allenamento sul dispositivo non è supportato
Prossimi passi
- Inizia con i microcontrollori per provare l'applicazione di esempio e imparare a usare l'API.
- Comprendere la libreria C++ per imparare a utilizzare la libreria nel proprio progetto.
- Crea e converti modelli per saperne di più sull'addestramento e sulla conversione di modelli per la distribuzione su microcontrollori.