我想在 c++ 项目中使用 xgboost 进行图像分类。我有特征矩阵 (hist) cv::Mat_ 和标签向量 std::vector,我如何在 C++ 中创建 xgboost::DMatrix?我想我应该使用 DMatrix::Create(),但我不明白我应该传递哪些参数。
std::vector<int> labels; //read this labels from csv
auto features = extract_features(img_ident, dir);
cv::Mat_<float> training_set(features);
xgboost::DMatrix xgb_data = xgboost::DMatrix::Create(????);
Run Code Online (Sandbox Code Playgroud)
小智 0
使用c_api:
DMatrixHandle xgbData;
int success = XGDMatrixCreateFromMat(&features[0], m_nRowCount, m_nColCount, 0, &xgbData);
if(success != 0)
THROW_ERROR("Error creating DMatrix\n");
success = XGDMatrixSetFloatInfo(xgbData, "label", &matrixYLabels[0], m_nRowCount);
if(success != 0)
THROW_ERROR("Error setting Y values in DMatrix\n");
success = XGDMatrixSaveBinary(xgbData, filename, false);
if(success != 0)
THROW_ERROR("Error saving DMatrix\n");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1159 次 |
最近记录: |