TensorFlow Lite per microcontrollori

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:

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:

Flusso di lavoro

I seguenti passaggi sono necessari per distribuire ed eseguire un modello TensorFlow su un microcontrollore:

  1. 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.
  2. 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