LiteRT per microcontroller

LiteRT per microcontroller è progettato per eseguire modelli di machine learning su microcontroller e altri dispositivi con pochi kilobyte di memoria. La il core runtime si inserisce solo in 16 KB su un Arm Cortex M3 e può eseguire molti di grandi dimensioni. Non richiede il supporto del sistema operativo, né lo standard C o C++ librerie o l'allocazione dinamica della memoria.

Perché i microcontroller sono importanti

I microcontroller sono in genere dispositivi di elaborazione di piccole dimensioni e a basso consumo integrati in hardware che richiedono calcolo di base. Portando il computer imparare a microcontrollori minuscoli, possiamo dare impulso all'intelligenza di miliardi di dispositivi che usiamo nelle nostre vite, compresi gli elettrodomestici e la connessione dispositivi mobili, senza dipendere da hardware costoso o da internet affidabile spesso soggette a limitazioni di larghezza di banda e alimentazione. comporta un'elevata latenza. Ciò contribuisce anche a preservare la privacy, dato che nessun dato esce dal dispositivo. Immagina elettrodomestici smart in grado di adattarsi alle tue attività quotidiane sensori industriali di routine e intelligenti che capiscono la differenza problemi e il normale funzionamento, nonché giocattoli magici che possono aiutare i bambini a imparare divertendosi e simpaticissime.

Piattaforme supportate

LiteRT per microcontrollori è scritto in C++ 17 e richiede un completamente gestita. È stato testato a fondo con molti processori basati sui Serie Arm Cortex-M ed è stato trasferito ad altre architetture, tra cui ESP32. La è disponibile come libreria Arduino. Può anche generare progetti di sviluppo software 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 è attiva GitHub e include un file README.md che spiega come eseguirne il deployment piattaforme di terze parti. Alcuni esempi includono anche tutorial end-to-end che utilizzano un modello piattaforma, come indicato di seguito:

Flusso di lavoro

Per eseguire il deployment e l'esecuzione di un modello TensorFlow su una microcontroller:

  1. Addestra un modello:
      .
    • Genera un modello TensorFlow di piccole dimensioni adatto al dispositivo di destinazione e contiene le operazioni supportate.
    • Converti in un modello LiteRT utilizzando il metodo Convertitore LiteRT.
    • Converti in un array di byte C utilizzando strumenti standard per archiviarli memoria del programma di sola lettura sul dispositivo.
  2. Esegui l'inferenza sul dispositivo utilizzando la libreria C++ ed elabora il relativo processo. i risultati.

Limitazioni

LiteRT per microcontroller è progettato per i vincoli specifici di lo sviluppo di un microcontroller. Se lavori su dispositivi più potenti (ad esempio ad esempio un dispositivo Linux incorporato come il Raspberry Pi), lo standard Potrebbe essere più semplice integrare il framework LiteRT.

È necessario considerare le seguenti limitazioni:

  • Supporto per un sottoinsieme limitato di Operazioni di TensorFlow
  • Supporto per un gruppo limitato di dispositivi
  • L'API C++ di basso livello che richiede la gestione manuale della memoria
  • L'addestramento sul dispositivo non è supportato

Passaggi successivi