EdgeAI explores the whole pipeline of an edge AI project from creating and training a neural network to pruning and quantizing it. Also, it creates embedded code to deploy the network on an edge device. Edge AI is predicted to be used in billions of electronic devices to add more advanced AI capabilities to those devices. Certain additional steps are needed to run these memory and computationally intensive algorithms on edge devices. Hence, we created a complete pipeline right from model creation and training, to pruning and quantizing it and finally automatic embedded code generation. We explored various existing techniques for each of these steps and also proposed some novel design ideas and pruning techniques.
EdgeAI is a web-based tool that offers state-of-the-art methods for pruning and quantising a neural network in a user-friendly manner:
1D convolution with parallel networks combined in the classification layer to keep the neural network light.
Magnitude based pruning for each layer.
Novel scoring method for pruning neurons based on their effectiveness at the task at hand.
Integer quantization into Q formats using the range of possible values.
Illustrative examples: heartbeat signal classification.
Creating embedded code: Using CMSIS-NN embedded library to generate C code.
The tool serves to demonstrate the design of a whole edge AI pipeline and companies working on embedded hardware like microcontrollers, microprocessors, SoC (system on a chip) can use the pipeline to explore how a neural network could be designed and coded into their hardware.