在Win10上安装和运行XGBoost的GPU版本
2017-05-23 00:00
671 查看
摘要: XGBoost的GPU版本 Win10
XGBoost以前对windo平台支持不太好,GPU版本都没有,所以以前没装它。不过,现在它已经能在Windows平台上跑GPU版本了。所以,就把它装上了。
XGBoost关于GPU版本的信息请参考:https://github.com/dmlc/xgboost/tree/master/plugin/updater_gpu
1、安装
XGBoost的Windows平台GPU版本有两种方式:
1)偷懒方法。直接下编译好的包进行安装。安装包请这里下载:http://www.picnet.com.au/blogs/guido/post/2016/09/22/xgboost-windows-x64-binaries-for-download/
git clone https://github.com/dmlc/xgboost.git xgboost_install_dir
copy libxgboost.dll (downloaded from this page) into the xgboost_install_dir\python-package\xgboost\ directory
cd xgboost_install_dir\python-package\
python setup.py install
2)下载源代码自己编译安装。
git clone --recursive https://github.com/dmlc/xgboost
然后,启动cmake,给下载的xgboost目录生成相关的vs2013工程目录文件。注意:这里记得要把plugin_updater_gpu的选项要加上。不然的话,编译出来的还是CPU版本的。
To use the plugin xgboost must be built using cmake specifying the option PLUGIN_UPDATER_GPU=ON. The location of the CUB library must also be specified with the cmake variable CUB_DIRECTORY. CMake will prepare a build system depending on which platform you are on.
这里的CUB是指: CUB 1.6.4 - https://nvlabs.github.io/cub/ 。 这个最好装一下,不然后面编译会报错。
生成VS2013工程文件后,后面就可以用vs2013编译了。
2、运行测试。
XGBoost有一个专门测试例子:xgboost\demo\gpu_acceleration\bosch.py。这个例子用的是最近Kaggle比赛里的一个数据集进行训练,然后分成5份做交叉校验。如果用CPU执行的话,我的机器每轮要23秒左右,换成GPU最快的算法,每轮只要3秒多。官网的bosch.py有些问题,没法在新的sklearn下跑。我做了些修改,代码如下:
本来后面还想做个mnist数据集的测试,结果一跑程序,我的GPU就报显存不够的错误。本来还想写个分批读入内存的例子的,只是最近太忙了。算了,以后有空再做一个例子吧。对XGBoost的GPU版本感兴趣的可以继续阅读相关信息:https://github.com/dmlc/xgboost/tree/master/plugin/updater_gpu
以上。
XGBoost以前对windo平台支持不太好,GPU版本都没有,所以以前没装它。不过,现在它已经能在Windows平台上跑GPU版本了。所以,就把它装上了。
XGBoost关于GPU版本的信息请参考:https://github.com/dmlc/xgboost/tree/master/plugin/updater_gpu
1、安装
XGBoost的Windows平台GPU版本有两种方式:
1)偷懒方法。直接下编译好的包进行安装。安装包请这里下载:http://www.picnet.com.au/blogs/guido/post/2016/09/22/xgboost-windows-x64-binaries-for-download/
git clone https://github.com/dmlc/xgboost.git xgboost_install_dir
copy libxgboost.dll (downloaded from this page) into the xgboost_install_dir\python-package\xgboost\ directory
cd xgboost_install_dir\python-package\
python setup.py install
2)下载源代码自己编译安装。
git clone --recursive https://github.com/dmlc/xgboost
然后,启动cmake,给下载的xgboost目录生成相关的vs2013工程目录文件。注意:这里记得要把plugin_updater_gpu的选项要加上。不然的话,编译出来的还是CPU版本的。
To use the plugin xgboost must be built using cmake specifying the option PLUGIN_UPDATER_GPU=ON. The location of the CUB library must also be specified with the cmake variable CUB_DIRECTORY. CMake will prepare a build system depending on which platform you are on.
这里的CUB是指: CUB 1.6.4 - https://nvlabs.github.io/cub/ 。 这个最好装一下,不然后面编译会报错。
生成VS2013工程文件后,后面就可以用vs2013编译了。
2、运行测试。
XGBoost有一个专门测试例子:xgboost\demo\gpu_acceleration\bosch.py。这个例子用的是最近Kaggle比赛里的一个数据集进行训练,然后分成5份做交叉校验。如果用CPU执行的话,我的机器每轮要23秒左右,换成GPU最快的算法,每轮只要3秒多。官网的bosch.py有些问题,没法在新的sklearn下跑。我做了些修改,代码如下:
#encoding=utf-8 import pandas as pd import xgboost as xgb import time import random from sklearn.model_selection import StratifiedKFold import numpy as np #For sampling rows from input file random_seed = 9 subset = 0.3# The original subset number is 0.4 . To run on my pc ,we drcrease it into 0.3 root_dir="H:/github_samples/data/datasets/" n_rows = 1183747;#这个是要跳过的行数。跳过的行数越大,我们所使用的数据集就越小,同时所需内存也越小。 train_rows = int(n_rows * subset) random.seed(random_seed) skip = sorted(random.sample(xrange(1,n_rows + 1),n_rows-train_rows)) data = pd.read_csv(root_dir+"train_numeric.csv", index_col=0, dtype=np.float32, skiprows=skip) y = data['Response'].values # y=np.load("y.npy") print(y.shape) # np.save("y",y) del data['Response'] X = data.values # X=np.load("X.npy") print(X.shape) # np.save("X",X) param = {} param['objective'] = 'binary:logistic' param['eval_metric'] = 'auc' param['max_depth'] = 5 param['eta'] = 0.3 param['silent'] = 0 # param['nthread']=7 # cpu 线程数 param['updater'] = 'grow_gpu_hist' # param['updater'] = 'grow_gpu' #param['updater'] = 'grow_colmaker' num_round = 20 # cv = StratifiedKFold(y, n_folds=5) cv = StratifiedKFold(n_splits=5) print (cv.get_n_splits(X,y)) for i, (train, test) in enumerate(cv.split(X,y)): print (len(train),len(test)) dtrain = xgb.DMatrix(X[train], label=y[train]) tmp = time.time() bst = xgb.train(param, dtrain, num_round) boost_time = time.time() - tmp res = bst.eval(xgb.DMatrix(X[test], label=y[test])) print("Fold {}: {}, Boost Time {}".format(i, res, str(boost_time))) del bst
本来后面还想做个mnist数据集的测试,结果一跑程序,我的GPU就报显存不够的错误。本来还想写个分批读入内存的例子的,只是最近太忙了。算了,以后有空再做一个例子吧。对XGBoost的GPU版本感兴趣的可以继续阅读相关信息:https://github.com/dmlc/xgboost/tree/master/plugin/updater_gpu
以上。
相关文章推荐
- windows(64位)下用GPU版本的mxnet配置(绑定python)+xgboost快速安装使用
- 64位win10下安装xgboost python包的教程
- 解决:win10_x64 xgboost python安装所遇到问题
- win10 下xgboost的安装----终极版
- win10 64位,anacoda2,python 2.7 下安装xgboost
- 终于在pycharm下(Python3.6.1版本)安装完成机器学习相关库文件(sklearn scikit-learn gensim xgboost tensorflow nltk )
- xgboost在win10 安装的we
- windows 新版xgboost Python包安装教程 win10 64
- 在WIN10下使用anaconda2安装xgboost
- Win10+64位+python2.7+Xgboost安装
- win10下安装xgboost
- Win10-64位系统安装xgboost(使用MinGW编译)
- 64位win10下安装xgboost python包的教程
- win10安装xgboost python版
- 在Window平台下安装xgboost的Python版本
- Win/Osx下安装xgboost (win10 64 / Osx 10.11)
- win10环境下安装caffe并且调用python接口成功运行--无GPU版
- Win10 安装Tensorflow-GPU版本
- Python2.7+Win10 安装Xgboost
- Win10下安装TensorFlow(GPU版本)