try python
This commit is contained in:
parent
c1223bfdef
commit
2305ea7af7
27
python/Makefile
Normal file
27
python/Makefile
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
export CC = gcc
|
||||||
|
export CXX = g++
|
||||||
|
export CFLAGS = -Wall -O3 -msse2 -Wno-unknown-pragmas -fopenmp
|
||||||
|
|
||||||
|
# specify tensor path
|
||||||
|
SLIB = xgboostpy.so
|
||||||
|
OBJ = xgboost_python.o
|
||||||
|
.PHONY: clean all
|
||||||
|
|
||||||
|
all: $(SLIB)
|
||||||
|
export LDFLAGS= -pthread -lm
|
||||||
|
|
||||||
|
xgboostpy.so: xgboost_python.cpp ../regrank/*.h ../booster/*.h ../booster/*/*.hpp ../booster/*.hpp
|
||||||
|
|
||||||
|
$(SLIB) :
|
||||||
|
$(CXX) $(CFLAGS) $(LDFLAGS) -shared -o $@ $(filter %.cpp %.o %.c, $^)
|
||||||
|
$(BIN) :
|
||||||
|
$(CXX) $(CFLAGS) $(LDFLAGS) -o $@ $(filter %.cpp %.o %.c, $^)
|
||||||
|
|
||||||
|
$(OBJ) :
|
||||||
|
$(CXX) -c $(CFLAGS) -o $@ $(firstword $(filter %.cpp %.c, $^) )
|
||||||
|
|
||||||
|
install:
|
||||||
|
cp -f -r $(BIN) $(INSTALL_PATH)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) $(OBJ) $(BIN) $(SLIB) *~
|
||||||
2
python/README.md
Normal file
2
python/README.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
beta version:
|
||||||
|
python wrapper for xgboost using ctypes
|
||||||
15
python/xgboost.py
Normal file
15
python/xgboost.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# module for xgboost
|
||||||
|
import ctypes
|
||||||
|
|
||||||
|
# load in xgboost library
|
||||||
|
#xglib = ctypes.cdll.LoadLibrary('./libxgboostpy.so')
|
||||||
|
|
||||||
|
# entry type of sparse matrix
|
||||||
|
class REntry(ctypes.Structure):
|
||||||
|
_fields_ = [("findex", ctypes.c_uint), ("fvalue", ctypes.c_float) ]
|
||||||
|
|
||||||
|
|
||||||
|
class DMatrix:
|
||||||
|
def __init__(fname = None):
|
||||||
|
self.__handle = xglib.
|
||||||
|
|
||||||
12
python/xgboost_python.cpp
Normal file
12
python/xgboost_python.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include "xgboost_python.h"
|
||||||
|
|
||||||
|
void* XGDMatrixCreate(void){
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
void XGDMatrixFree(void *handle){
|
||||||
|
}
|
||||||
|
void XGDMatrixLoad(void *handle, const char *fname){
|
||||||
|
}
|
||||||
|
void XGDMatrixSaveBinary( void *handle, const char *fname ){
|
||||||
|
}
|
||||||
|
|
||||||
43
python/xgboost_python.h
Normal file
43
python/xgboost_python.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#ifndef XGBOOST_PYTHON_H
|
||||||
|
#define XGBOOST_PYTHON_H
|
||||||
|
/*!
|
||||||
|
* \file xgboost_regrank_data.h
|
||||||
|
* \brief python wrapper for xgboost, using ctypes,
|
||||||
|
* hides everything behind functions
|
||||||
|
* use c style interface
|
||||||
|
*/
|
||||||
|
#include "../booster/xgboost_data.h"
|
||||||
|
/*! \brief type of row entry */
|
||||||
|
typedef xgboost::booster::FMatrixS::REntry XGEntry;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief create a data matrix
|
||||||
|
* \return a new data matrix
|
||||||
|
*/
|
||||||
|
void* XGDMatrixCreate(void);
|
||||||
|
/*!
|
||||||
|
* \brief free space in data matrix
|
||||||
|
*/
|
||||||
|
void XGDMatrixFree(void *handle);
|
||||||
|
/*!
|
||||||
|
* \brief load a data matrix from text file or buffer(if exists)
|
||||||
|
* \param handle a instance of data matrix
|
||||||
|
* \param fname file name
|
||||||
|
*/
|
||||||
|
void XGDMatrixLoad(void *handle, const char *fname);
|
||||||
|
/*!
|
||||||
|
* \brief load a data matrix into binary file
|
||||||
|
* \param handle a instance of data matrix
|
||||||
|
* \param fname file name
|
||||||
|
*/
|
||||||
|
void XGDMatrixSaveBinary( void *handle, const char *fname );
|
||||||
|
/*!
|
||||||
|
* \brief add row
|
||||||
|
* \param handle a instance of data matrix
|
||||||
|
* \param fname file name
|
||||||
|
* \return a new data matrix
|
||||||
|
*/
|
||||||
|
//void XGDMatrixPush( void *handle, const std::pair<int,> );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user