7#ifndef XGBOOST_C_API_H_
8#define XGBOOST_C_API_H_
11#define XGB_EXTERN_C extern "C"
22#if defined(_MSC_VER) || defined(_WIN32)
23#define XGB_DLL XGB_EXTERN_C __declspec(dllexport)
25#define XGB_DLL XGB_EXTERN_C __attribute__ ((visibility ("default")))
29typedef uint64_t bst_ulong;
51typedef void *BoosterHandle;
161 const float *data,
size_t nindptr,
size_t nelem,
214 const float *data,
size_t nindptr,
size_t nelem,
242 bst_ulong nrow, bst_ulong ncol,
256 const char ** feature_stypes,
397 const char* cache_info,
511 const char *c_interface_str);
523 const char *c_interface_str);
535 char const *c_interface_str);
549 char const *indices,
char const *data,
554XGB_DLL
int XGImportArrowRecordBatch(
DataIterHandle data_handle,
void *ptr_array,
void *ptr_schema);
615 const char *fname,
int silent);
626 char const* c_interface_str);
650 const unsigned *array,
680 const char **features,
681 const bst_ulong size);
720 const char ***out_features);
746 void const *data, bst_ulong size,
int type);
756 const unsigned *group,
768 const float **out_dptr);
784 const unsigned **out_dptr);
833 bst_ulong *out_indptr,
unsigned *out_indices,
float *out_data);
851 char const **out_indptr,
char const **out_data);
898 int end_layer,
int step,
973 const char *evnames[], bst_ulong len,
const char **out_result);
1016 unsigned ntree_limit,
1019 const float **out_result);
1080 char const *config, bst_ulong
const **out_shape,
1081 bst_ulong *out_dim,
float const **out_result);
1108 bst_ulong *out_dim,
const float **out_result);
1137 char const *values, bst_ulong ncol,
char const *config,
1139 bst_ulong *out_dim,
const float **out_result);
1162 bst_ulong
const **out_shape, bst_ulong *out_dim,
1163 const float **out_result);
1186 bst_ulong
const **out_shape, bst_ulong *out_dim,
1187 const float **out_result);
1269 char const **out_dptr);
1278 const char **out_dptr);
1290 const char **out_dptr);
1301 const void *buf, bst_ulong len);
1334 char const **out_str);
1360 const char ***out_dump_array);
1377 const char ***out_dump_array);
1396 const char ***out_models);
1417 const char ***out_models);
1470 const char **features,
1471 const bst_ulong size);
1494 const char ***out_features);
1522 bst_ulong *out_n_features,
char const ***out_features,
1523 bst_ulong *out_dim, bst_ulong
const **out_shape,
1524 float const **out_scores);
XGB_DLL int XGBoosterUpdateOneIter(BoosterHandle handle, int iter, DMatrixHandle dtrain)
update the model in one round using dtrain
Definition c_api.cc:960
XGB_DLL int XGBoosterEvalOneIter(BoosterHandle handle, int iter, DMatrixHandle dmats[], const char *evnames[], bst_ulong len, const char **out_result)
get evaluation statistics for xgboost
Definition c_api.cc:998
XGB_DLL int XGBoosterSetStrFeatureInfo(BoosterHandle handle, const char *field, const char **features, const bst_ulong size)
Set string encoded feature info in Booster, similar to the feature info in DMatrix.
Definition c_api.cc:1571
XGB_DLL int XGBoosterSetAttr(BoosterHandle handle, const char *key, const char *value)
Set or delete string attribute.
Definition c_api.cc:1531
XGB_DLL int XGBoosterGetStrFeatureInfo(BoosterHandle handle, const char *field, bst_ulong *len, const char ***out_features)
Get string encoded feature info from Booster, similar to feature info in DMatrix.
Definition c_api.cc:1596
XGB_DLL int XGBoosterFree(BoosterHandle handle)
free obj in handle
Definition c_api.cc:896
XGB_DLL int XGBoosterBoostedRounds(BoosterHandle handle, int *out)
Get number of boosted rounds from gradient booster. When process_type is update, this number might dr...
Definition c_api.cc:922
XGB_DLL int XGBoosterDumpModelWithFeatures(BoosterHandle handle, int fnum, const char **fname, const char **ftype, int with_stats, bst_ulong *out_len, const char ***out_models)
dump model, return array of strings representing model dump
Definition c_api.cc:1480
XGB_DLL int XGBoosterDumpModelExWithFeatures(BoosterHandle handle, int fnum, const char **fname, const char **ftype, int with_stats, const char *format, bst_ulong *out_len, const char ***out_models)
dump model, return array of strings representing model dump
Definition c_api.cc:1491
XGB_DLL int XGBoosterFeatureScore(BoosterHandle handle, const char *config, bst_ulong *out_n_features, char const ***out_features, bst_ulong *out_dim, bst_ulong const **out_shape, float const **out_scores)
Calculate feature scores for tree models. When used on linear model, only the weight importance type ...
Definition c_api.cc:1625
XGB_DLL int XGBoosterGetNumFeature(BoosterHandle handle, bst_ulong *out)
get number of features
Definition c_api.cc:912
XGB_DLL int XGBoosterDumpModel(BoosterHandle handle, const char *fmap, int with_stats, bst_ulong *out_len, const char ***out_dump_array)
dump model, return array of strings representing model dump
Definition c_api.cc:1453
XGB_DLL int XGBoosterSlice(BoosterHandle handle, int begin_layer, int end_layer, int step, BoosterHandle *out)
Slice a model using boosting index. The slice m:n indicates taking all trees that were fit during the...
Definition c_api.cc:1412
XGB_DLL int XGBoosterDumpModelEx(BoosterHandle handle, const char *fmap, int with_stats, const char *format, bst_ulong *out_len, const char ***out_dump_array)
dump model, return array of strings representing model dump
Definition c_api.cc:1464
XGB_DLL int XGBoosterGetAttrNames(BoosterHandle handle, bst_ulong *out_len, const char ***out)
Get the names of all attribute from Booster.
Definition c_api.cc:1547
XGB_DLL int XGBoosterCreate(const DMatrixHandle dmats[], bst_ulong len, BoosterHandle *out)
create xgboost learner
Definition c_api.cc:882
XGB_DLL int XGBoosterGetAttr(BoosterHandle handle, const char *key, const char **out, int *success)
Get string attribute from Booster.
Definition c_api.cc:1511
XGB_DLL int XGBoosterSetParam(BoosterHandle handle, const char *name, const char *value)
set parameters
Definition c_api.cc:903
XGB_DLL int XGBoosterBoostOneIter(BoosterHandle handle, DMatrixHandle dtrain, float *grad, float *hess, bst_ulong len)
update the model, by directly specify gradient and second order gradient, this can be used to replace...
Definition c_api.cc:973
XGB_DLL int XGCommunicatorBroadcast(void *send_receive_buffer, size_t size, int root)
Broadcast a memory region to all others from root. This function is NOT thread-safe.
Definition c_api.cc:1741
XGB_DLL int XGCommunicatorFinalize(void)
Finalize the collective communicator.
Definition c_api.cc:1708
XGB_DLL int XGCommunicatorInit(char const *config)
Initialize the collective communicator.
Definition c_api.cc:1700
XGB_DLL int XGCommunicatorAllreduce(void *send_receive_buffer, size_t count, int data_type, int op)
Perform in-place allreduce. This function is NOT thread-safe.
Definition c_api.cc:1747
XGB_DLL int XGCommunicatorIsDistributed(void)
Get if the communicator is distributed.
Definition c_api.cc:1722
XGB_DLL int XGCommunicatorGetRank(void)
Get rank of current process.
Definition c_api.cc:1714
XGB_DLL int XGCommunicatorGetProcessorName(const char **name_str)
Get the name of the processor.
Definition c_api.cc:1732
XGB_DLL int XGCommunicatorGetWorldSize(void)
Get total number of processes.
Definition c_api.cc:1718
XGB_DLL int XGCommunicatorPrint(char const *message)
Print the message to the communicator.
Definition c_api.cc:1726
XGB_DLL int XGDMatrixGetQuantileCut(DMatrixHandle const handle, char const *config, char const **out_indptr, char const **out_data)
Export the quantile cuts used for training histogram-based models like hist and approx.
Definition c_api.cc:831
XGB_DLL int XGDMatrixCreateFromMat(const float *data, bst_ulong nrow, bst_ulong ncol, float missing, DMatrixHandle *out)
create matrix content from dense matrix
Definition c_api.cc:499
XGB_DLL int XGDMatrixCreateFromCudaColumnar(char const *data, char const *config, DMatrixHandle *out)
Create DMatrix from CUDA columnar format. (cuDF)
Definition c_api.cc:283
XGB_DLL int XGDMatrixCreateFromDT(void **data, const char **feature_stypes, bst_ulong nrow, bst_ulong ncol, DMatrixHandle *out, int nthread)
create matrix content from python data table
Definition c_api.cc:522
XGB_DLL int XGDMatrixSetGroup(DMatrixHandle handle, const unsigned *group, bst_ulong len)
(deprecated) Use XGDMatrixSetUIntInfo instead. Set group of the training matrix
Definition c_api.cc:683
XGB_DLL int XGDMatrixNumCol(DMatrixHandle handle, bst_ulong *out)
get number of columns
Definition c_api.cc:730
XGB_DLL int XGDMatrixNumNonMissing(DMatrixHandle handle, bst_ulong *out)
Get number of valid values from DMatrix.
Definition c_api.cc:741
XGB_DLL int XGDMatrixCreateFromFile(const char *fname, int silent, DMatrixHandle *out)
load a data matrix
Definition c_api.cc:233
XGB_DLL int XGDMatrixSliceDMatrixEx(DMatrixHandle handle, const int *idxset, bst_ulong len, DMatrixHandle *out, int allow_groups)
create a new dmatrix from sliced content of existing matrix
Definition c_api.cc:564
XGB_DLL int XGDMatrixGetDataAsCSR(DMatrixHandle const handle, char const *config, bst_ulong *out_indptr, unsigned *out_indices, float *out_data)
Get the predictors from DMatrix as CSR matrix for testing.
Definition c_api.cc:750
XGB_DLL int XGDMatrixGetStrFeatureInfo(DMatrixHandle handle, const char *field, bst_ulong *size, const char ***out_features)
Get string encoded information of all features.
Definition c_api.cc:647
XGB_DLL int XGDMatrixSetUIntInfo(DMatrixHandle handle, const char *field, const unsigned *array, bst_ulong len)
set uint32 vector to a content in info
Definition c_api.cc:626
XGB_DLL int XGDMatrixCreateFromArrowCallback(XGDMatrixCallbackNext *next, char const *config, DMatrixHandle *out)
Construct DMatrix from arrow using callbacks. Arrow related C API is not stable and subject to change...
Definition c_api.cc:542
XGB_DLL int XGDMatrixCreateFromDense(char const *data, char const *config, DMatrixHandle *out)
Create a matrix from dense array.
Definition c_api.cc:451
XGB_DLL int XGDMatrixCreateFromCSREx(const size_t *indptr, const unsigned *indices, const float *data, size_t nindptr, size_t nelem, size_t num_col, DMatrixHandle *out)
create a matrix content from CSR format
Definition c_api.cc:424
XGB_DLL int XGDMatrixSetStrFeatureInfo(DMatrixHandle handle, const char *field, const char **features, const bst_ulong size)
Set string encoded information of all features.
Definition c_api.cc:636
XGB_DLL int XGDMatrixNumRow(DMatrixHandle handle, bst_ulong *out)
get number of rows.
Definition c_api.cc:720
XGB_DLL int XGDMatrixSetInfoFromInterface(DMatrixHandle handle, char const *field, char const *c_interface_str)
Set content in array interface to a content in info.
Definition c_api.cc:616
XGB_DLL int XGDMatrixGetFloatInfo(const DMatrixHandle handle, const char *field, bst_ulong *out_len, const float **out_dptr)
get float info vector from matrix.
Definition c_api.cc:692
XGB_DLL int XGDMatrixCreateFromCSCEx(const size_t *col_ptr, const unsigned *indices, const float *data, size_t nindptr, size_t nelem, size_t num_row, DMatrixHandle *out)
create a matrix content from CSC format
Definition c_api.cc:488
XGB_DLL int XGDMatrixCreateFromURI(char const *config, DMatrixHandle *out)
load a data matrix
Definition c_api.cc:245
XGB_DLL int XGDMatrixCreateFromMat_omp(const float *data, bst_ulong nrow, bst_ulong ncol, float missing, DMatrixHandle *out, int nthread)
create matrix content from dense matrix
Definition c_api.cc:510
XGB_DLL int XGDMatrixSliceDMatrix(DMatrixHandle handle, const int *idxset, bst_ulong len, DMatrixHandle *out)
create a new dmatrix from sliced content of existing matrix
Definition c_api.cc:556
XGB_DLL int XGDMatrixGetUIntInfo(const DMatrixHandle handle, const char *field, bst_ulong *out_len, const unsigned **out_dptr)
get uint32 info vector from matrix
Definition c_api.cc:706
XGB_DLL int XGDMatrixSetDenseInfo(DMatrixHandle handle, const char *field, void const *data, bst_ulong size, int type)
Set meta info from dense matrix. Valid field names are:
Definition c_api.cc:672
XGB_DLL int XGDMatrixCreateFromCSR(char const *indptr, char const *indices, char const *data, bst_ulong ncol, char const *config, DMatrixHandle *out)
Create a matrix from CSR matrix.
Definition c_api.cc:434
XGB_DLL int XGDMatrixCreateFromCSC(char const *indptr, char const *indices, char const *data, bst_ulong nrow, char const *config, DMatrixHandle *out)
Create a matrix from a CSC matrix.
Definition c_api.cc:469
XGB_DLL int XGDMatrixCreateFromCudaArrayInterface(char const *data, char const *config, DMatrixHandle *out)
Create DMatrix from CUDA array.
Definition c_api.cc:289
XGB_DLL int XGDMatrixSetFloatInfo(DMatrixHandle handle, const char *field, const float *array, bst_ulong len)
set float vector to a content in info
Definition c_api.cc:606
XGB_DLL int XGDMatrixFree(DMatrixHandle handle)
free space in data matrix
Definition c_api.cc:585
XGB_DLL int XGDMatrixSaveBinary(DMatrixHandle handle, const char *fname, int silent)
load a data matrix into binary file
Definition c_api.cc:592
XGB_DLL const char * XGBGetLastError()
get string message of the last error
Definition c_api_error.cc:16
XGB_DLL void XGBoostVersion(int *major, int *minor, int *patch)
Return the version of the XGBoost library being currently used.
Definition c_api.cc:59
XGB_DLL int XGBuildInfo(char const **out)
Get compile information of shared library.
Definition c_api.cc:84
XGB_DLL int XGBGetGlobalConfig(char const **out_config)
Get current global configuration (collection of parameters that apply globally).
Definition c_api.cc:195
XGB_DLL int XGBRegisterLogCallback(void(*callback)(const char *))
register callback function for LOG(INFO) messages – helpful messages that are not errors....
Definition c_api.cc:139
XGB_DLL int XGBSetGlobalConfig(char const *config)
Set global configuration (collection of parameters that apply globally). This function accepts the li...
Definition c_api.cc:146
void * DMatrixHandle
handle to DMatrix
Definition c_api.h:49
XGB_DLL int XGBoosterPredictFromCudaArray(BoosterHandle handle, char const *values, char const *config, DMatrixHandle m, bst_ulong const **out_shape, bst_ulong *out_dim, const float **out_result)
Inplace prediction from CUDA Dense matrix (cupy in Python).
XGB_DLL int XGBoosterPredictFromDMatrix(BoosterHandle handle, DMatrixHandle dmat, char const *config, bst_ulong const **out_shape, bst_ulong *out_dim, float const **out_result)
Make prediction from DMatrix, replacing XGBoosterPredict.
Definition c_api.cc:1051
XGB_DLL int XGBoosterPredictFromDense(BoosterHandle handle, char const *values, char const *config, DMatrixHandle m, bst_ulong const **out_shape, bst_ulong *out_dim, const float **out_result)
Inplace prediction from CPU dense matrix.
Definition c_api.cc:1149
XGB_DLL int XGBoosterPredictFromCudaColumnar(BoosterHandle handle, char const *values, char const *config, DMatrixHandle m, bst_ulong const **out_shape, bst_ulong *out_dim, const float **out_result)
Inplace prediction from CUDA dense dataframe (cuDF in Python).
XGB_DLL int XGBoosterPredict(BoosterHandle handle, DMatrixHandle dmat, int option_mask, unsigned ntree_limit, int training, bst_ulong *out_len, const float **out_result)
make prediction based on dmat (deprecated, use XGBoosterPredictFromDMatrix instead)
Definition c_api.cc:1025
XGB_DLL int XGBoosterPredictFromCSR(BoosterHandle handle, char const *indptr, char const *indices, char const *values, bst_ulong ncol, char const *config, DMatrixHandle m, bst_ulong const **out_shape, bst_ulong *out_dim, const float **out_result)
Inplace prediction from CPU CSR matrix.
Definition c_api.cc:1170
XGB_DLL int XGBoosterLoadModel(BoosterHandle handle, const char *fname)
Load model from existing file.
Definition c_api.cc:1212
XGB_DLL int XGBoosterSaveModel(BoosterHandle handle, const char *fname)
Save model into existing file.
Definition c_api.cc:1246
XGB_DLL int XGBoosterSaveRabitCheckpoint(BoosterHandle handle)
Save the current checkpoint to rabit.
Definition c_api.cc:1403
XGB_DLL int XGBoosterLoadRabitCheckpoint(BoosterHandle handle, int *version)
Initialize the booster from rabit checkpoint. This is used in distributed training API.
Definition c_api.cc:1390
XGB_DLL int XGBoosterLoadModelFromBuffer(BoosterHandle handle, const void *buf, bst_ulong len)
load model from in memory buffer
Definition c_api.cc:1277
XGB_DLL int XGBoosterGetModelRaw(BoosterHandle handle, bst_ulong *out_len, const char **out_dptr)
Save booster to a buffer with in binary format.
Definition c_api.cc:1333
XGB_DLL int XGBoosterSaveModelToBuffer(BoosterHandle handle, char const *config, bst_ulong *out_len, char const **out_dptr)
Save model into raw bytes, return header of the array. User must copy the result out,...
Definition c_api.cc:1288
XGB_DLL int XGBoosterLoadJsonConfig(BoosterHandle handle, char const *config)
Load XGBoost's internal configuration from a JSON document. Currently the support is experimental,...
Definition c_api.cc:931
XGB_DLL int XGBoosterUnserializeFromBuffer(BoosterHandle handle, const void *buf, bst_ulong len)
Memory snapshot based serialization method. Loads the buffer returned from XGBoosterSerializeToBuffer...
Definition c_api.cc:1378
XGB_DLL int XGBoosterSerializeToBuffer(BoosterHandle handle, bst_ulong *out_len, const char **out_dptr)
Memory snapshot based serialization method. Saves everything states into buffer.
Definition c_api.cc:1358
XGB_DLL int XGBoosterSaveJsonConfig(BoosterHandle handle, bst_ulong *out_len, char const **out_str)
Save XGBoost's internal configuration into a JSON document. Currently the support is experimental,...
Definition c_api.cc:940
void * DataHolderHandle
handle to a internal data holder.
Definition c_api.h:336
XGB_EXTERN_C typedef int XGDMatrixCallbackNext(DataIterHandle iter)
Callback function prototype for getting next batch of data.
XGB_DLL int XGDMatrixCreateFromCallback(DataIterHandle iter, DMatrixHandle proxy, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, char const *config, DMatrixHandle *out)
Create an external memory DMatrix with data iterator.
Definition c_api.cc:298
XGB_DLL int XGQuantileDMatrixCreateFromCallback(DataIterHandle iter, DMatrixHandle proxy, DataIterHandle ref, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, char const *config, DMatrixHandle *out)
Create a Quantile DMatrix with data iterator.
Definition c_api.cc:330
XGB_DLL int XGProxyDMatrixCreate(DMatrixHandle *out)
Second set of callback functions, used by constructing Quantile DMatrix or external memory DMatrix us...
Definition c_api.cc:359
XGB_EXTERN_C typedef void DataIterResetCallback(DataIterHandle handle)
Callback function prototype for resetting external iterator.
XGB_DLL int XGProxyDMatrixSetDataCudaArrayInterface(DMatrixHandle handle, const char *c_interface_str)
Set data on a DMatrix proxy.
Definition c_api.cc:367
XGB_EXTERN_C typedef int XGBCallbackSetData(DataHolderHandle handle, XGBoostBatchCSR batch)
Callback to set the data to handle,.
void * DataIterHandle
handle to a external data iterator
Definition c_api.h:334
XGB_DLL int XGProxyDMatrixSetDataCSR(DMatrixHandle handle, char const *indptr, char const *indices, char const *data, bst_ulong ncol)
Set data on a DMatrix proxy.
Definition c_api.cc:406
XGB_DLL int XGDMatrixCreateFromDataIter(DataIterHandle data_handle, XGBCallbackDataIterNext *callback, const char *cache_info, DMatrixHandle *out)
Create a DMatrix from a data iterator.
Definition c_api.cc:260
XGB_DLL int XGProxyDMatrixSetDataCudaColumnar(DMatrixHandle handle, const char *c_interface_str)
Set data on a DMatrix proxy.
Definition c_api.cc:380
XGB_EXTERN_C typedef int XGBCallbackDataIterNext(DataIterHandle data_handle, XGBCallbackSetData *set_function, DataHolderHandle set_function_handle)
The data reading callback function. The iterator will be able to give subset of batch in the data.
XGB_DLL int XGDeviceQuantileDMatrixCreateFromCallback(DataIterHandle iter, DMatrixHandle proxy, DataIterResetCallback *reset, XGDMatrixCallbackNext *next, float missing, int nthread, int max_bin, DMatrixHandle *out)
Create a Device Quantile DMatrix with data iterator.
Definition c_api.cc:318
XGB_DLL int XGProxyDMatrixSetDataDense(DMatrixHandle handle, char const *c_interface_str)
Set data on a DMatrix proxy.
Definition c_api.cc:393
Mini batch used in XGBoost Data Iteration.
Definition c_api.h:340
int64_t * offset
row pointer to the rows in the data
Definition c_api.h:351
int * index
feature index
Definition c_api.h:358
float * value
feature values
Definition c_api.h:360
float * weight
weight of each instance, can be NULL
Definition c_api.h:356
size_t size
number of rows in the minibatch
Definition c_api.h:342