3 ms·
I've been working on a deep learning library in C, and have been thinking about optimizing it for embedded applications specifically. https://github.com/siekma
by siekmanj 8y ago
I've been working on a deep learning library in C, and have been thinking about optimizing it for embedded applications specifically.
https://github.com/siekmanj/sieknet https://github.com/siekmanj/sieknet
Other than that, I'm not sure if there are many libraries for machine learning on microcontrollers. Genann comes to mind:
https://github.com/codeplea/genann https://github.com/codeplea/genann
- jononor 8y agoNice. What are you thinking for optimizing for embedded use? In my opinion the main challenge for neural networks on microcontrollers is the amount of memory needed for weights. - Quantizing the weights to lower precision is an easy gain. CMSISNN (which uTensor will use on Cortex-Mx) uses 8 bit fixed-point. - Utilizing sparse weights from regularization (L1,L0) may also give some gains. But apart from these I think more innovative things will be needed?
- jononor 8y agoLooks like state of the art can achieve up to 120x compression on CNNs for image classification. https://arxiv.org/abs/1802.02271 https://arxiv.org/abs/1802.02271
- fernandoalmeida 8y agoI used quantization of weights and an adaptation of the training, more information on the link above: https://www.researchgate.net/publication/304424659_Performance_Evaluation_of_an_Artificial_Neural_Network_Multilayer_Perceptron_with_Limited_Weights_for_Detecting_Denial_of_Service_Attack_on_Internet_of_Things https://www.researchgate.net/publication/304424659_Performan...