微控制器和嵌入式系统的机器学习
emlearn的Python项目详细描述
emlearn
微控制器和嵌入式系统的机器学习。 使用python进行训练,然后使用c99编译器在任何设备上进行推理。
主要功能
嵌入式友好推理
- 便携式C99代码
- 无需libc
- 无动态分配
- 支持整数/定点数学
- 单头文件包括
方便的培训
- 与scikit-learn或Keras一起使用python
- 生成的c分类器也可以在python中访问
可以作为Matlab分类树的开源替代品,
决策树使用Matlab编码器实现C/C++代码生成。
fitctree
,fitcensemble
,TreeBagger
,ClassificationEnsemble
,CompactTreeBagger
地位
最少有用
分类器:
eml_trees
:sklearn.randomForestClassifier、sklearn.extratreeClassifier、sklearn.decisionTreeClassifiereml_net
:sklearn.MultiLayerPerceptron,Keras.Sequential与完全连接的层eml_bayes
:sklearn.gaussiannaivebayes
特征提取:
eml_audio
:质谱图
测试运行在avr atmega、esp8266和linux上。
安装
从pypi安装
pip install --user emlearn
用法
- 用python训练模型
fromsklearn.ensembleimportRandomForestClassifierestimator=RandomForestClassifier(n_estimators=10,max_depth=10)estimator.fit(X_train,Y_train)...
- 将其转换为C代码
importemlearncmodel=emlearn.convert(estimator,method='inline')cmodel.save(file='sonar.h')
- 使用C代码
#include"sonar.h"constint32_tlength=60;int32_tvalues[length]={...};constint32_tpredicted_class=sonar_predict(values,length):
有关完整示例代码,请参见examples/digits.py 和emlearn.ino