一种支持在基于微控制器的低功耗硬件中使用分类模型的工具

embml的Python项目详细描述


EmbML公司

EnbML是用Python编写的工具,将自动训练的板模型自动转换成可以在低功耗微控制器中编译和执行的C++源代码文件。EmbML的主要目标是使用裸机编程,生成专门在无资源硬件系统中运行的分类器源代码。在

此工具将使用WEKA或scikit learn库在台式机或服务器计算机中训练的分类模型作为输入。EMBML负责将输入模型转换成一个精心制作的C++代码,支持嵌入式硬件,例如避免不必要的使用主内存和实现非整数数字的定点操作。在

输入模型

EmbML通过包含其序列化对象的文件接受经过训练的模型。例如,使用WEKA构建的分类模型应使用ObjectOutputStreamFileOutputStream类(在Java中可用)序列化为一个文件。对于scikit学习模型,它们应该使用dump函数从pickle模块保存。在

支持的分类模型

embml支持来自以下类的非车载训练分类器:

  • 来自WEKA:
    • MultilayerPerceptron用于MLP分类器
    • Logistic用于Logistic回归分类器
    • SMO用于支持向量机分类器——具有线性、多项式和RBF核
    • J48用于决策树分类器。在
  • 从scikit了解:
    • mlpclassizer用于MLP分类器
    • LogisticRegression用于logistic回归分类器
    • LinearSVC线性核支持向量机分类器
    • SVC用于支持向量机分类器——具有多项式和RBF核
    • DecisionTreeClassifier用于决策树模型。在

安装

您可以从PyPi安装embml

pipinstallembml

Python2.7和Python3.5版本支持此工具,并依赖于javaobj库。在

如何使用

^{pr2}$

定点库

如果您决定使用定点格式生成一个分类器代码,则需要包括https://github.com/lucastsutsui/EmbML上提供的FixedNum.h库。在

引文

如果您在科学研究中使用此工具,我们恳请您使用以下参考资料:

@inproceedings{da2019embml,
  title={EmbML Tool: supporting the use of supervised learning algorithms in low-cost embedded systems},
  author={da Silva, Lucas Tsutsui and Souza, Vinicius MA and Batista, Gustavo EAPA},
  booktitle={2019 IEEE 31st International Conference on Tools with Artificial Intelligence (ICTAI)},
  pages={1633--1637},
  year={2019},
  organization={IEEE}}

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

推荐PyPI第三方库


热门话题
java在验证检查中改进构建器模式?   java如何定义一个依赖项来获取快照?   java Javafx webview在运行时不显示dashplotly应用程序   java Android kotlin单元测试用例。。?   java Android:SurfaceView,为什么要使用不同的线程   Android/Java“org.apache.http.ProtocolException”,http头应答有问题   反射如何确定类成员是否是静态的以及Java中的字段   java设置EditText以接受双值的问题   类加载器如何使用类加载器将jar从我的网站加载到java应用程序的脚本中   java GWT HTMLTable colaspan功能   java无法删除/重命名文件   java Navigableset vs Navigablemap   php中java加密方法的转换   java为什么加载我的共享对象文件会在Netbeans 8.2中出现“未满足链接”错误?   java JAXRS CXF异常包装   java程序在If语句之后执行Else语句   java将对象转换为JAXBElement<Object>