TensorFlow Lite per microcontrollori

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:

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:

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