Before you begin
To aid your understanding of concepts in this guide, you can download and familiarize yourself with these tools:
- CMSIS. You will use two main areas:
- CMSIS-NN library: Read CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M for a detailed description of CMSIS-NN.
- CMSIS-DSP, a collection of optimized DSP kernels which can be useful in the context of neural networks for:
- Computing the inputs of a neural network (smart features)
- Implementing new neural network layers
- An ML framework on which you will code, train and analyze your network. This guide can be run on any framework.
- Python with NumPy for the few short code examples. We use Python 3.6.0 and NumPy 1.11.3, but other versions should work, too.
- Keyword spotting patterns. This guide uses the keyword spotting example, but the same steps apply to any other network. Read Hello Edge: Keyword Spotting on Microcontrollers for more information on the keyword spotting
A possible network for the keyword spotting is described in the following diagram. We refer to the keyword spotting network because it is the example that is used most in Arm materials. We use this network at the end of this guide when we demonstrate a user interface with speech recognition.
The user needs to setup a network, because the goal of this document is to convert a network into a CMSIS-NN implementation. The dimensions in the right column are the dimensions of the output of each layer.
If you want to use another network to apply the method described in this guide, then you will need to be sure that CMSIS-NN supports the layers that are used by your network.