LiteRT cho Vi điều khiển được thiết kế để chạy các mô hình học máy
trên bộ vi điều khiển và các thiết bị khác chỉ có vài kilobyte bộ nhớ. Chiến lược phát hành đĩa đơn
thời gian chạy cốt lõi chỉ vừa với 16 KB trên Arm Cortex M3 và có thể chạy nhiều cơ bản
người mẫu. Phiên bản này không yêu cầu hệ điều hành hỗ trợ, mọi ngôn ngữ C hoặc C++ tiêu chuẩn
hoặc phân bổ bộ nhớ động.
Tại sao vi điều khiển lại quan trọng
Vi điều khiển thường là thiết bị tính toán nhỏ, công suất thấp
nhúng trong phần cứng yêu cầu phép tính cơ bản. Bằng cách đưa máy móc
học các bộ vi điều khiển nhỏ bé, chúng ta có thể nâng cao trí tuệ của hàng tỷ
mà chúng ta sử dụng trong cuộc sống, bao gồm cả thiết bị gia dụng và Internet của
Sử dụng thiết bị mà không cần dựa vào phần cứng đắt tiền hay Internet ổn định
thường bị hạn chế về băng thông, nguồn điện và
dẫn đến độ trễ cao. Việc này cũng có thể giúp bảo vệ quyền riêng tư vì không có dữ liệu
rời khỏi thiết bị. Hãy tưởng tượng các thiết bị thông minh có thể thích ứng với hoạt động hằng ngày của bạn
các cảm biến công nghiệp thông minh, thông minh hiểu được sự khác biệt giữa
các vấn đề và hoạt động bình thường cũng như những đồ chơi phép thuật có thể giúp trẻ học tập một cách vui vẻ
và thú vị.
Nền tảng được hỗ trợ
LiteRT cho vi điều khiển được viết bằng C++ 17 và yêu cầu phải có 32 bit
chủ. API này đã được thử nghiệm rộng rãi với nhiều bộ xử lý dựa trên
Dòng Arm Cortex-M
và đã được chuyển sang các kiến trúc khác bao gồm
ESP32. Chiến lược phát hành đĩa đơn
khung có sẵn dưới dạng thư viện Arduino. Nền tảng này cũng có thể tạo các dự án cho
phát triển ứng dụng như Mbed. Đây là mã nguồn mở và có thể được đưa vào
bất kỳ dự án C++ 17 nào.
Mỗi ứng dụng mẫu đang được bật
GitHub
và có một tệp README.md giải thích cách triển khai cho ứng dụng được hỗ trợ
nền tảng. Một số ví dụ cũng có hướng dẫn toàn diện sử dụng
nền tảng, như được cung cấp dưới đây:
Hello World (Xin chào mọi người) –
Minh hoạ kiến thức cơ bản tuyệt đối về việc sử dụng LiteRT cho
Vi điều khiển
Chuyển đổi sang mảng byte C bằng
các công cụ tiêu chuẩn để lưu trữ mã này trong
bộ nhớ chương trình chỉ có thể đọc trên thiết bị.
Chạy suy luận trên thiết bị bằng cách sử dụng thư viện C++ và quy trình
kết quả.
Các điểm hạn chế
LiteRT cho Vi điều khiển được thiết kế cho những hạn chế cụ thể của
phát triển bộ vi điều khiển. Nếu bạn đang làm việc trên các thiết bị mạnh hơn (cho
ví dụ: thiết bị Linux được nhúng như Raspberry Pi),
Khung LiteRT có thể dễ tích hợp hơn.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-24 UTC."],[],[],null,["# LiteRT for Microcontrollers is designed to run machine learning models\non microcontrollers and other devices with only a few kilobytes of memory. The\ncore runtime just fits in 16 KB on an Arm Cortex M3 and can run many basic\nmodels. It doesn't require operating system support, any standard C or C++\nlibraries, or dynamic memory allocation.\n| **Note:** The [LiteRT for Microcontrollers Experiments](https://experiments.withgoogle.com/collection/tfliteformicrocontrollers) features work by developers combining Arduino and TensorFlow to create awesome experiences and tools. Check out the site for inspiration to create your own TinyML projects.\n\nWhy microcontrollers are important\n----------------------------------\n\nMicrocontrollers are typically small, low-powered computing devices that are\nembedded within hardware that requires basic computation. By bringing machine\nlearning to tiny microcontrollers, we can boost the intelligence of billions of\ndevices that we use in our lives, including household appliances and Internet of\nThings devices, without relying on expensive hardware or reliable internet\nconnections, which is often subject to bandwidth and power constraints and\nresults in high latency. This can also help preserve privacy, since no data\nleaves the device. Imagine smart appliances that can adapt to your daily\nroutine, intelligent industrial sensors that understand the difference between\nproblems and normal operation, and magical toys that can help kids learn in fun\nand delightful ways.\n\nSupported platforms\n-------------------\n\nLiteRT for Microcontrollers is written in C++ 17 and requires a 32-bit\nplatform. It has been tested extensively with many processors based on the\n[Arm Cortex-M Series](https://developer.arm.com/ip-products/processors/cortex-m)\narchitecture, and has been ported to other architectures including\n[ESP32](https://www.espressif.com/en/products/hardware/esp32/overview). The\nframework is available as an Arduino library. It can also generate projects for\ndevelopment environments such as Mbed. It is open source and can be included in\nany C++ 17 project.\n\nThe following development boards are supported:\n\n- [Arduino Nano 33 BLE Sense](https://store-usa.arduino.cc/products/arduino-nano-33-ble-sense-with-headers)\n- [SparkFun Edge](https://www.sparkfun.com/products/15170)\n- [STM32F746 Discovery kit](https://www.st.com/en/evaluation-tools/32f746gdiscovery.html)\n- [Adafruit EdgeBadge](https://www.adafruit.com/product/4400)\n- [Adafruit LiteRT for Microcontrollers Kit](https://www.adafruit.com/product/4317)\n- [Adafruit Circuit Playground Bluefruit](https://learn.adafruit.com/tensorflow-lite-for-circuit-playground-bluefruit-quickstart?view=all)\n- [Espressif ESP32-DevKitC](https://www.espressif.com/en/products/hardware/esp32-devkitc/overview)\n- [Espressif ESP-EYE](https://www.espressif.com/en/products/hardware/esp-eye/overview)\n- [Wio Terminal: ATSAMD51](https://www.seeedstudio.com/Wio-Terminal-p-4509.html)\n- [Himax WE-I Plus EVB Endpoint AI Development Board](https://www.sparkfun.com/products/17256)\n- [Synopsys DesignWare ARC EM Software Development Platform](https://www.synopsys.com/dw/ipdir.php?ds=arc-em-software-development-platform)\n- [Sony Spresense](https://developer.sony.com/develop/spresense/)\n\nExplore the examples\n--------------------\n\nEach example application is on\n[GitHub](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples)\nand has a `README.md` file that explains how it can be deployed to its supported\nplatforms. Some examples also have end-to-end tutorials using a specific\nplatform, as given below:\n\n- [Hello World](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/hello_world) - Demonstrates the absolute basics of using LiteRT for Microcontrollers\n - [Tutorial using any supported device](./get_started)\n- [Micro speech](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/micro_speech) - Captures audio with a microphone to detect the words \"yes\" and \"no\"\n - [Tutorial using SparkFun Edge](https://codelabs.developers.google.com/codelabs/sparkfun-tensorflow/#0)\n- [Person detection](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/examples/person_detection) - Captures camera data with an image sensor to detect the presence or absence of a person\n\nWorkflow\n--------\n\nThe following steps are required to deploy and run a TensorFlow model on a\nmicrocontroller:\n\n1. **Train a model** :\n - *Generate a small TensorFlow model* that can fit your target device and contains [supported operations](./build_convert#operation_support).\n - *Convert to a LiteRT model* using the [LiteRT converter](./build_convert#model_conversion).\n - *Convert to a C byte array* using [standard tools](./build_convert#convert_to_a_c_array) to store it in a read-only program memory on device.\n2. **Run inference** on device using the [C++ library](./library) and process the results.\n\nLimitations\n-----------\n\nLiteRT for Microcontrollers is designed for the specific constraints of\nmicrocontroller development. If you are working on more powerful devices (for\nexample, an embedded Linux device like the Raspberry Pi), the standard\nLiteRT framework might be easier to integrate.\n\nThe following limitations should be considered:\n\n- Support for a [limited subset](./build_convert#operation_support) of TensorFlow operations\n- Support for a limited set of devices\n- Low-level C++ API requiring manual memory management\n- On device training is not supported\n\nNext steps\n----------\n\n- [Get started with microcontrollers](./get_started) to try the example application and learn how to use the API.\n- [Understand the C++ library](./library) to learn how to use the library in your own project.\n- [Build and convert models](./build_convert) to learn more about training and converting models for deployment on microcontrollers."]]