1chipML - Embedded ML Library

Hey everyone, here is a project that we've been working on and wanted to share it with the community. 1chipML is an open-source library for basic numerical crunching and machine learning algorithms for microcontrollers. We've tried to make the library as user-friendly as possible. Some examples and tests are provided for people to experiment with.

Hope you find it useful! Feel free to contribute :slight_smile:

3 Likes

Since according to the documentation, very few methods have actually been implemented in the library, how about posting an example application of something that might actually be useful, and works as expected?

How will this library differ from any other of the many standard libraries, where all the below have been implemented and tested?

Capture

Thank you for your interest!

Indeed, this library is still in development.

Thus far, we have implemented half a dozen algorithms. These algorithms are optimized to run on an mcu, to my knowledge, there are no mcu optimized standard libraries that regroup these algorithms.

As for the application examples, there is a prototype folder in the library that implements Arduino sketches using these algorithms. For example, an anomaly detection program is made using the gradient descent and image compression is achieved using the Jacobi algorithm. Each prototype has its own README to explain its usage.

2 Likes

What optimizations have been implemented?

Here are a few examples of the optimizations that were done:
The data types for most of the algorithms are variable in order to let the user control the amount of memory used.
We have implemented fastsin and fastcos in this library because the math.h implementation of those operations is extremely slow on a MCU.
Our genetic algorithm has a parameter for a low memory version, which is is slower but greatly reduces the necessary memory for its execution. The precision of this algorithm can also be controlled by the user depending on the available ressources that they have.
Lastly, all of the implemented algorithms can be executed on a MCU with only 2KB of RAM.

2 Likes

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.