Introducing MicroML
MicroML is an attempt to bring Machine Learning algorithms to microcontrollers.
Please refer to this blog post
to an introduction to the topic.
Install
pip install micromlgen
Supported classifiers
micromlgen
can port to plain C many types of classifiers:
- DecisionTree
- RandomForest
- XGBoost
- GaussianNB
- Support Vector Machines (SVC and OneClassSVM)
- Relevant Vector Machines (from
skbayes.rvm_ard_models
package)
- SEFR
- PCA
from micromlgen import port
from sklearn.svm import SVC
from sklearn.datasets import load_iris
if __name__ == '__main__':
iris = load_iris()
X = iris.data
y = iris.target
clf = SVC(kernel='linear').fit(X, y)
print(port(clf))
You may pass a classmap to get readable class names in the ported code
from micromlgen import port
from sklearn.svm import SVC
from sklearn.datasets import load_iris
if __name__ == '__main__':
iris = load_iris()
X = iris.data
y = iris.target
clf = SVC(kernel='linear').fit(X, y)
print(port(clf, classmap={
0: 'setosa',
1: 'virginica',
2: 'versicolor'
}))
PCA
It can export a PCA transformer.
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
from micromlgen import port
if __name__ == '__main__':
X = load_iris().data
pca = PCA(n_components=2, whiten=False).fit(X)
print(port(pca))
SEFR
Read the post about SEFR.
pip install sefr
from sefr import SEFR
from micromlgen import port
clf = SEFR()
clf.fit(X, y)
print(port(clf))
Introducing MicroML
MicroML is an attempt to bring Machine Learning algorithms to microcontrollers. Please refer to this blog post to an introduction to the topic.
Install
pip install micromlgen
Supported classifiers
micromlgen
can port to plain C many types of classifiers:skbayes.rvm_ard_models
package)You may pass a classmap to get readable class names in the ported code
PCA
It can export a PCA transformer.
SEFR
Read the post about SEFR.