LiteRT untuk Microcontroller

LiteRT untuk Microcontrollers dirancang untuk menjalankan model machine learning pada mikrokontroler dan perangkat lain yang memiliki memori beberapa kilobita. Tujuan Core runtime hanya sesuai dalam 16 KB pada Arm Cortex M3 dan dapat menjalankan banyak jaringan. Tidak memerlukan dukungan sistem operasi, standar C atau C++ {i>library<i}, atau alokasi memori dinamis.

Alasan pentingnya mikrokontroler

{i>Microcontroller<i} biasanya merupakan perangkat komputasi kecil bertenaga rendah yang yang tertanam di dalam perangkat keras yang membutuhkan komputasi dasar. Dengan menghadirkan mesin belajar melalui mikrokontroler kecil, kita dapat meningkatkan kecerdasan miliaran perangkat yang kita gunakan dalam hidup, termasuk peralatan rumah tangga dan internet Perangkat Things, tanpa mengandalkan hardware mahal atau internet yang andal koneksi internet, yang sering kali mengalami keterbatasan {i>bandwidth<i} dan daya dan menghasilkan latensi tinggi. Hal ini juga dapat membantu menjaga privasi, karena tidak ada data meninggalkan perangkat. Bayangkan peralatan pintar yang dapat beradaptasi dengan pekerjaan Anda sehari-hari sensor industri cerdas rutin yang memahami perbedaan antara masalah dan operasi normal, serta mainan ajaib yang dapat membantu anak belajar dengan menyenangkan dengan cara yang menyenangkan.

Platform yang didukung

LiteRT untuk Microcontrollers ditulis dalam C++ 17 dan membutuhkan arsitektur terkelola sepenuhnya. Ini telah diuji secara ekstensif dengan banyak prosesor berdasarkan Seri Arm Cortex-M arsitektur, dan telah dipindahkan ke arsitektur lain termasuk ESP32. Tujuan framework tersedia sebagai perpustakaan Arduino. Alat ini juga dapat menghasilkan proyek untuk lingkungan pengembangan seperti Mbed. Ini adalah {i>open source<i} dan dapat dimasukkan dalam project C++ 17 apa pun.

Papan pengembangan berikut didukung:

Mempelajari contohnya

Setiap aplikasi contoh aktif GitHub dan memiliki file README.md yang menjelaskan cara deployment dapat dilakukan ke di berbagai platform Google. Beberapa contoh juga memiliki tutorial {i>end-to-end<i} menggunakan platform ini, seperti yang dijelaskan di bawah ini:

Alur kerja

Langkah-langkah berikut diperlukan untuk men-deploy dan menjalankan model TensorFlow pada mikrokontroler:

  1. Melatih model:
    • Buat model TensorFlow kecil yang sesuai dengan perangkat target dan berisi operasi yang didukung.
    • Konversikan ke model LiteRT menggunakan Konverter LiteRT.
    • Konversikan ke array C byte menggunakan alat standar untuk menyimpannya dalam {i>read-only program memory<i} di perangkat.
  2. Menjalankan inferensi di perangkat menggunakan library C++ dan proses hasilnya.

Batasan

LiteRT untuk {i>Microcontrollers<i} dirancang untuk batasan tertentu dari pengembangan mikrokontroler. Jika Anda mengerjakan perangkat yang lebih canggih (untuk misalnya, perangkat Linux yang tertanam seperti Raspberry Pi), model Framework LiteRT mungkin lebih mudah diintegrasikan.

Batasan berikut harus dipertimbangkan:

  • Dukungan untuk subset terbatas Operasi TensorFlow
  • Dukungan untuk serangkaian perangkat terbatas
  • C++ API level rendah memerlukan manajemen memori manual
  • Pelatihan di perangkat tidak didukung

Langkah berikutnya