微控制器和嵌入式系统的机器学习

emlearn的Python项目详细描述


Travis CI Build StatusAppveyor Build status

emlearn

微控制器和嵌入式系统的机器学习。 使用python进行训练,然后使用c99编译器在任何设备上进行推理。

主要功能

嵌入式友好推理

  • 便携式C99代码
  • 无需libc
  • 无动态分配
  • 支持整数/定点数学
  • 单头文件包括

方便的培训

  • scikit-learnKeras一起使用python
  • 生成的c分类器也可以在python中访问

MIT licensed

可以作为Matlab分类树的开源替代品, 决策树使用Matlab编码器实现C/C++代码生成。 fitctreefitcensembleTreeBaggerClassificationEnsembleCompactTreeBagger

地位

最少有用

分类器:

  • eml_trees:sklearn.randomForestClassifier、sklearn.extratreeClassifier、sklearn.decisionTreeClassifier
  • eml_net:sklearn.MultiLayerPerceptron,Keras.Sequential与完全连接的层
  • eml_bayes:sklearn.gaussiannaivebayes

特征提取:

  • eml_audio:质谱图

测试运行在avr atmega、esp8266和linux上。

安装

从pypi安装

pip install --user emlearn

用法

  1. 用python训练模型
fromsklearn.ensembleimportRandomForestClassifierestimator=RandomForestClassifier(n_estimators=10,max_depth=10)estimator.fit(X_train,Y_train)...
  1. 将其转换为C代码
importemlearncmodel=emlearn.convert(estimator,method='inline')cmodel.save(file='sonar.h')
  1. 使用C代码
#include"sonar.h"constint32_tlength=60;int32_tvalues[length]={...};constint32_tpredicted_class=sonar_predict(values,length):

有关完整示例代码,请参见examples/digits.pyemlearn.ino

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从WSDL创建请求-响应XML   java在清单文件中使用外部BundleLocalization路径   在producerconsumer场景中,java LinkedBlockingQueue与多个生产者的线程安全性   调用对话框时java Android应用程序崩溃   使用java在mac上控制macos麦克风的声级   java如何在多个活动中使用ViewModel和LiveData观察者?   Java使用XPath拆分XML,但带有其父标记   java SAXParser“&”连接问题   java安装leiningen   java在主程序中调用方法   java流字节数组到Google应用程序引擎servlet   spring是否有一种工具或方法可以基于POST JSON数据在Java的controller中自动生成所有GET-fetch请求API端点   未映射java Mybatis继承的属性   java如何根据URL前缀以不同的方式验证shiro   java使用Selenium从弹出窗口中提取文本