ML Community Day è il 9 novembre! Unisciti a noi per gli aggiornamenti da tensorflow, JAX, e più Per saperne di più

TensorFlow Lite per microcontrollori

TensorFlow Lite per microcontrollori è progettato per eseguire modelli di apprendimento automatico su microcontrollori e altri dispositivi con solo pochi kilobyte di memoria. Il runtime di base 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, alcuna libreria standard C o C++ o allocazione dinamica della memoria.

Perché i microcontrollori sono importanti

I microcontrollori sono in genere piccoli dispositivi di elaborazione a bassa potenza incorporati all'interno di hardware che richiedono calcoli di base. Portando l'apprendimento automatico su minuscoli microcontrollori, possiamo potenziare l'intelligenza di miliardi di dispositivi che usiamo 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 capiscono 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. E 'stato testato estensivamente con molti processori basati su ARM Cortex-M Series architettura, ed è stato portato su altre architetture compreso 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 esempio di applicazione è su Github e ha un README.md di file che spiega come può essere distribuito ai suoi piattaforme supportate. Alcuni esempi hanno anche tutorial end-to-end che utilizzano una piattaforma specifica, come indicato di seguito:

Flusso di lavoro

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

  1. Addestrare un modello:
    • Generare un piccolo modello tensorflow che può andare bene il dispositivo di destinazione e contiene operazioni supportate .
    • Conversione in un modello tensorflow Lite utilizzando il convertitore tensorflow Lite .
    • Convertire in una matrice C byte utilizzando strumenti standard per memorizzare in una memoria di programma di sola lettura del dispositivo.
  2. Inferenza eseguire sul dispositivo utilizzando la libreria C ++ ed elaborare 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 integrato come Raspberry Pi), il framework standard TensorFlow Lite 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 richiede la gestione manuale della memoria
  • L'allenamento sul dispositivo non è supportato

Prossimi passi