TensorFlow Lite per microcontroller

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:

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:

Flusso di lavoro

Per eseguire il deployment e l'esecuzione di un modello TensorFlow su un microcontroller, segui questi passaggi:

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