C语言调用python训练的机器学习模型(项目需求轻体量)

问题描述

机器学习模型基本上都是python下的实现与使用,有关C如何调用训练好的模型或是C实现模型的相关教程相对较少
同时,项目需求整个模型大小尽可能小,大概在几十Kb
由于是表格类型的数据,因此主要考虑树模型

一般而言,更常见的C语言使用机器学习模型为两种:

  • 一种是下载对应的机器学习模型的库,然后在C语言中部署,然后调用python训练好的模型
  • 一种是下载onnx包,C语言中部署,然后调用python训练好的模型

但是这两种方法都需要下载对应的包,即便是机器学习模型进行了轻体量的优化,这些包的体量却是无法避免的,因此再无进行下去的必要

因此,需要考虑不适用包的方法,也可以分为两种方法:

  • 一种是直接在C中手搓个简单的模型出来,然后进行训练和预测,但是这种方法很考验基础,而且很难进行参数调优
  • 一种是根据python训练后的模型,查看树的结构,然后根据树的结构使用if条件进行复现。这种方法是最暴力的,但是模型的每一次修改将是重复机械的大量工程

而m2cgen是一个python包,可以将你的模型自动转为文本,也就是代替自己手写实现了最后一个方法,简直是神器。

问题解决

接下来就是python对模型进行优化,然后使用m2cgen导出为一个函数文本,不再需要任何多余的安装包,直接复制到c或cpp文件里调用该函数就可以,后续模型更新也只需要把该函数进行替换即可,十分方便。

你可能感兴趣的:(python,机器学习,开发语言)