uTensor
FreeAI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow.
About uTensor
uTensor is an extremely lightweight machine learning inference framework built on TensorFlow and optimized for Arm targets. It consists of a runtime library and an offline tool that translates trained TensorFlow models into C++11 code (.cpp and .hpp files) for embedded inferencing. The core runtime is only about 2KB in size, with a memory footprint of approximately 1275 bytes of text, 4 bytes of data, and 28 bytes of BSS. The framework emphasizes system safety through dedicated memory regions for tensor metadata and data, eliminating heap sharing and enabling safe remote model updates. It also prioritizes compile-time error checking to catch mismatched inputs, outputs, and invalid memory accesses. uTensor includes tutorials for error handling and custom operators, and its rearchitecture focuses on low power consumption, small dynamic footprint, and debuggable code.
Key Features
Pros & Cons
- Extremely small memory footprint (~2KB core runtime) suitable for constrained devices
- Safe runtime design prevents memory collisions and enables reliable remote updates
- Compile-time error detection reduces runtime bugs and debugging effort
- Easy integration with existing Arm-based embedded projects via generated C++ files
- Open source and free to use (MIT license)
- Only supports Arm target architectures (no other MCU families)
- Requires TensorFlow for model training and export; no alternative frontends
- Relatively small community and ecosystem compared to larger frameworks like TensorFlow Lite Micro
- May have a limited set of built-in operators; custom operators may be needed for some models