TensorFlow Lite per microcontroller è progettato per eseguire modelli di machine learning su microcontroller e altri dispositivi con solo pochi kilobyte di memoria. Il runtime principale 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, né librerie C o C++ standard o allocazione della memoria dinamica.
Perché i microcontroller sono importanti
I microcontroller sono in genere piccoli dispositivi di elaborazione a bassa potenza incorporati in componenti hardware che richiedono calcoli di base. Portando il machine learning nei piccoli microcontroller, possiamo migliorare l'intelligenza di miliardi di dispositivi che usiamo nella nostra vita, compresi gli elettrodomestici e i dispositivi Internet of Things, senza affidarci a hardware costoso o a connessioni a internet affidabili, che sono spesso soggette a limiti di larghezza di banda e potenza e comportano un'elevata latenza. Questo può anche contribuire a preservare la privacy, dal momento che nessun dato lascia il dispositivo. Immagina elettrodomestici smart in grado di adattarsi alla tua routine quotidiana, sensori industriali intelligenti che comprendono la differenza tra problemi e normale funzionamento e giocattoli magici che possono aiutare i bambini a imparare in modi divertenti e piacevoli.
Piattaforme supportate
TensorFlow Lite for Microcontrollers è scritto in C++ 17 e richiede una piattaforma a 32 bit. È stato testato a fondo con molti processori basati sull'architettura Arm Cortex-M Series ed è stato portato in 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 BLE Sense
- SparkFun Edge
- Kit Discovery STM32F746
- Badge Adafruit Edge
- Kit Adafruit TensorFlow Lite per microcontroller
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminale Wio: ATSAMD51
- Scheda di sviluppo IA per endpoint Himax WE-I Plus EVB
- Piattaforma di sviluppo software ARC EM di Sinopsys DesignWare
- Sony Spresense
Esplora gli esempi
Ogni applicazione di esempio si trova su GitHub e ha un file README.md
che spiega come può essere eseguito il deployment nelle piattaforme supportate. Alcuni esempi includono anche tutorial end-to-end che utilizzano una piattaforma specifica, come indicato di seguito:
- Hello World: dimostra le nozioni di base assoluto dell'utilizzo di TensorFlow Lite per microcontroller
- Micro parlato: acquisisce l'audio con un microfono per rilevare le parole "sì" e "no".
- Rilevamento di persone: acquisisce i dati della videocamera con un sensore fotografico per rilevare la presenza o l'assenza di una persona
Flusso di lavoro
Per eseguire il deployment e l'esecuzione di un modello TensorFlow su un microcontroller, segui questi passaggi:
- Addestra un modello:
- Genera un modello TensorFlow di piccole dimensioni adatto al dispositivo di destinazione e contenente le operazioni supportate.
- Converti in un modello TensorFlow Lite utilizzando il convertitore TensorFlow Lite.
- Converti in un array di byte C utilizzando gli strumenti standard per archiviarlo in una memoria di programma di sola lettura sul dispositivo.
- Esegui l'inferenza sul dispositivo utilizzando la libreria C++ ed elabora i risultati.
Limitazioni
TensorFlow Lite per microcontroller è progettato per i vincoli specifici dello sviluppo dei microcontroller. Se stai lavorando su dispositivi più potenti (ad esempio, un dispositivo Linux incorporato come Raspber Pi), il framework TensorFlow Lite standard potrebbe essere più facile da integrare.
Tieni presente le seguenti limitazioni:
- Supporto per un sottoinsieme limitato di operazioni di TensorFlow
- Supporto per un insieme limitato di dispositivi
- API C++ di basso livello che richiede la gestione manuale della memoria
- L'addestramento sul dispositivo non è supportato
Passaggi successivi
- Inizia a usare i microcontroller per provare l'applicazione di esempio e scoprire come usare l'API.
- Comprendi la libreria C++ per imparare a utilizzarla nel tuo progetto.
- Crea e converti modelli per scoprire di più sull'addestramento e sulla conversione dei modelli per il deployment su microcontroller.