This guide shows you how to convert a neural network from any framework into an implementation on an Arm Cortex-M-based device, using the Arm CMSIS-NN library.

Popular frameworks, for example TensorFlow, PyTorch, and Caffe, are designed differently. This means that there is not a unified method for converting neural networks for a range of applications across all of these frameworks to run on Arm Cortex-M.

Neural networks are still implemented with floating point numbers. Because CMSIS-NN targets embedded devices, it focuses on fixed-point arithmetic. This means that a neural network cannot simply be reused. Instead, it needs to be converted to a fixed-point format that will run on a Cortex-M device.

CMSIS-NN provides a unified target for conversion. This guide discusses the key challenges that you face when converting a network with CMSIS-NN from any application, and how to approach and overcome those challenges.

At the end of this guide, you will understand the issues involved with the conversion, and how to implement the network with CMSIS-NN by developing efficient and accurate code.