当前环境:Ubuntu,xgboost==1.7.4
过程介绍:
首先用python训练XGBoost模型,在训练完成后注意使用
xgb_model.save_model('checkpoint.model')
进行模型的保存。
找到xgboost的动态链接库和头文件
动态链接库:如果你在conda环境下面安装了xgboost,那么到你的环境中去找libxgboost.so以及libgomp-a34b3233.so.1.0.0这两个动态链接库
头文件:可直接从该链接中下载https://github.com/dmlc/xgboost/tree/master/include
下载Eigen,Eigen是一个用于线性代数计算的c++模板库:矩阵、向量、数值求解器和相关算法。我们利用Eigen在C++中定义XGBoost模型的输入特征。https://gitlab.com/libeigen/eigen/-/releases/3.3.7
基于XGBoost的c_api编写推理的头文件和c++代码
编写CMake用于编译链接运行
整个过程的代码以及依赖均放在:https://github.com/Outliers1106/XGBoost-py2cpp,大家可以直接使用。