Overview Before you begin Define the problem and the model Set up environment Build basic camera application Transform pre-trained Caffe model Build image recognition application CMSIS-NN Deploy transformed model on Cortex-M MCU Troubleshooting Webinar questions and answers Next steps
Webinar questions and answers
What processors support CMSIS-NN?
All Arm Cortex-M processors support CMSIS-NN. The ones with SIMD will have an overall better performance.
Does the CMSIS-NN library use dedicated hardware? What MCU, if so?
Just a standard MCU, no dedicated hardware.
How do you choose the right microcontroller for specific applications? For example, an activity recognition problem?
This is a very good question - given a range of microcontrollers and the flexibility of neural network sizes, how do you pick the right one? I recommend first training a network of any size to solve your problem to the accuracy you require. Then begin simplifying that network whilst maintaining the desired accuracy. Finally you can compare memory and FLOP counts to get an approximate sizing before benchmarking on hardware. A good example of this in practice is our keyword search paper: Machine Learning on Arm Cortex-M Microcontrollers.
Is Arm Cortex-M4 good enough for motion sensor applications? Would Arm Cortex-M7 be an overkill?
It depends on your requirements in terms of latency, accuracy and throughput. You can do some level of motion recognition on Arm Cortex-M4, and you can expect to run larger, more accurate versions of those networks on Arm Cortex-M7.
Is it possible to use CMSIS-NN library without Mbed OS?
Yes, Mbed OS is not required.
Does CMSIS-NN support MobileNet?
CMSIS-NN has all the optimized functions required to run MobileNet model. The main challenge is whether you have enough memory along with the Arm Cortex-M core to fit the MobileNet weights and layer outputs.
Can the weights be provided at run time rather than hard coded at compile time?
CMSIS-NN provides optimized functions, but whether the weights are hard coded at compile time vs. provided at run time depends on the use case. For example, OpenMV cam uses CMSIS-NN back end with weights provided at run time. The examples provided in CMSIS GitHub repo use weights that are hard coded during binary compilation.
Is training supported by CMSIS-NN?
CMSIS-NN is an inference library and does not support training.
How much memory is necessary to fit the CIFAR-10 example model on device?
The CIFAR-10 object recognition model requires 77KB for the weights that are stored in Flash memory and 40KB for the activation's that get stored in RAM.
Can I run TensorFlow models on Cortex-M processors?
Yes, it is possible to run TensorFlow models on Arm Cortex-M by using TensorFlow Lite Micro. Click here for more information.