TensorFlow is a dedicated platform for the further development of Machine Learning (ML) across different industries, including AI and IoTs. Now, TensorFlow can be deployed to the Microcontrollers (MCUs) market too.
This article highlights how this can be done, as well as some of the constraints that may kick against it.
What is TensorFlow Lite FPGA?
It is the lighter version of TensorFlow optimized for Microcontrollers (MCUs). We also want to point out that TensorFlow Lite FPGA is designed to facilitate the deployment and running of Machine Learning (ML) algorithms and models on both the devices and Microcontrollers (MCUs) that have a lower kilobyte of memory.
Multi-Board Support
TensorFlow Lite for FPGAs supports several (configurable) boards, including Sony Spresense, Adafruit Circuit Playground Bluefruit and Arduino Nano 33 BLE Sense. It also supports Adafruit EdgeBadge, SparkFun Edge, Espressif ESP-EYE and STM32F746 Discovery Kit.
The supported platforms also extend to the programs configurable with the C++ 11 programming language.
Although the TensorFlow Lite FPGA was originally designed for devices based on the Arm Cortex-M Series architecture, it has been later been made flexible to accommodate the ESP32-based processors.
Benefits of the TensorFlow Lite FPGA
Here are some of the advantages or benefits of working with the TensorFlow Lite FPGA:
1. Non-Standardized OS
As a framework for FPGAs, TensorFlow doesn’t require a specific Operating System (OS). Basically, it can be programmed with just about any OS, provided that the Operating System is compatible with both the dynamic memory allocation and supported C and C++ programming language libraries.
2. Streamlined Workflow for the TensorFlow Lite FPGA
The process of working with the TensorFlow for deployment on a Microcontroller (MCU) includes:
Model Training
The model must first be trained with the generation of the right TensorFlow model that fits into the targeted application or device. The trained model must also possess most of the supported operations for this to work.
After that, the model will be converted to the TensorFlow Lite model by using the TensorFlow Lite converter.
The last process in the model training process is to use a set of standard tools to convert the trained model into a C byte array. Thereafter, the array would be stored in a read-only program memory on the targeted device.
Inference Running
The inference for the TensorFlow Lite FPGA would then be run by using the C++ programming language library to run the processes.
Importance of Using TensorFlow Lite Model on FPGAs and MCUs
Using TensorFlow Lite model on either the FPGAs or MCUs helps to prevent external data access, as the data or bit stream doesn’t leave the device.
It also comes in handy when enabling the right computations for Microcontrollers (MCUs) and Field Programmable Gate Arrays (FPGAs). As MCUs are compact and low-powered, they typically require basic computation, which is one of the many attributes that TensorFlow Lite possesses.
Conclusion
TensorFlow Lite FPGA helps both FPGAs and MCUs to reduce latency, use lower power and enable dynamic memory allocation that boosts the performance of the targeted devices.