单元测试 - 在C++中阅读 XGBoost 模型

unit testing - Reading XGBoost Model in C++

本文关键字:XGBoost 模型 C++ 单元测试      更新时间:2023-10-16

我使用 XGBoost 在 R 中训练了我的模型,现在需要用 C++ 进行预测。我正在尝试使用XGBoosterLoadModel函数加载C++模型文件。

我的

代码编译良好,但在发现我的单元测试函数时失败。当我删除对函数XGBoosterLoadModel的调用时,一切正常,我可以看到我的单元测试。

这是我的单元测试文件中的内容。关于我错过的任何线索将不胜感激:

    #include <xgboost/c_api.h>
    #include "stdafx.h"
    #include <google/gtest/gtest.h>
    namespace UnitTests
    {
        TEST(XGBoost, HysteresisPeakDetection_WithEmptyInput_ReturnsFalse)
        {
            const char *fname;
            BoosterHandle handle;
            int a = XGBoosterLoadModel(handle, fname);
        }
    }

您需要先分配句柄。 这段代码对我有用:

BoosterHandle x;
XGBoosterCreate(0,0,&x);
int y = XGBoosterLoadModel(x,model_filename);