Machine Learning on 2KB of RAM [pdf]
manikvarma.org
manikvarma.org
Nice to see another group in Microsoft is targeting smaller 8/16 bit processors, they can still be useful for very limited power budget applications, low cost devices, and some odd applications where they are built in to a specific purpose IC (e.g. a flash drive controller). There aren't many other alternatives in this space I think, other than manually porting your model to C and running unit tests against it, does anyone know of any competitors?
[1]https://github.com/Microsoft/ELL [2]https://github.com/uTensor/uTensor
https://github.com/jonnor/emtrees https://github.com/jonnor/embayes
These are likely to be consolidated into one library/framework in some weeks, along with some other models and tools I have lying around. Like simple neural networks and audio feature extraction.
https://github.com/nok/sklearn-porter/blob/master/readme.md#...
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:
- 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?
https://www.researchgate.net/publication/304424659_Performan...
The platforms in question doesn't have hardware for floating point, any floating point support needs to be emulated in software (slow).