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?
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.
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?
The platforms in question doesn't have hardware for floating point, any floating point support needs to be emulated in software (slow).