加载中…
个人资料
裴大帅2020
裴大帅2020
  • 博客等级:
  • 博客积分:0
  • 博客访问:697,185
  • 关注人气:63
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Windows下编译xgboost源码

(2020-10-12 09:14:33)
标签:

xgboost

windows

编译

分类: 机器学习
一、xgboost官方说明文档
https://xgboost.readthedocs.io/en/latest/build.html#compile-xgboost-with-microsoft-visual-studio

1、下载xgboost源码
git clone --recursive https://github.com/dmlc/xgboost
git submodule init
git submodule update
xgboost工程使用git submodules管理依赖,所以在下载库时需要添加--recursive选项。

2、编译xgboost
主要使用cmake工具进行编译
mkdir build
cd build
cmake .. -G"Visual Studio 14 2015 Win64"
# for VS15: cmake .. -G"Visual Studio 15 2017" -A x64
# for VS16: cmake .. -G"Visual Studio 16 2019" -A x64
cmake --build . --config Release
根据vs对应的版本信息切换-G的选项。
编译成功后,会在根目录的lib目录下生成xgboost.dll文件

二、网上编译不成功的案例
1、特别说明:针对2020.10月份左右的xgboost是编译不成功的方法。
2、举例案例:https://www.cnblogs.com/stAr-1/p/8777773.html
网上很多文档都采用如下的方式编译xgboost源码:
$ cd dmlc-core  
$ make -j4  
$ cd ../rabit  
$ make lib/librabit_empty.a -j4  
$ cd ..  
$ cp make/mingw64.mk config.mk  
$ make -j4
我试了下是不成功的。
主要是找不到lib/librabit_empty.a 和make/mingw64.mk两个文件,导致执行命令时报错。使用这种方法的文章基本上是2017、2018年写的,所以很可能当时的xgboost源码是有这些文件。

编译xgboost源码的方法,一切以官网为准。

三、官网下编译时相关工具下载
1、下载最新版的visual studio,当前是2019版,下载community版本即可。
下载地址为:https://visualstudio.microsoft.com/zh-hans/vs/
下载visual studio community 2019。
这个版本是免费的,千万不要在国内社区下载精简版,精简版中有些功能是没有的,导致无法正确配置cmake。
cmake执行命令时会报错误:could not find any instance of Visual Studio

2、下载choco工具
它是安装步骤包管理工具,类似python里面的pip工具。
安装方法:使用管理员权限打开powershell,然后执行命令:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

3、下载vswhere工具
主要是为了检查vs工具是否安装正确。
执行命令:
choco install vswhere
校验vs2019是否安装成功:
Windows下编译xgboost源码



以下内容参考:https://blog.csdn.net/diaodaa/article/details/106122943
4、修改vs的环境变量:
VS160COMNTOOLS:D:\programs\Visual Studio2019\Common7\Tools(后面的根据实际情况进行修改)

5、使用visual studio installer安装工具

(1)“工作负载”中的以下3个工具
  • 使用c++的桌面开发
  • 通用windows平台开发
  • visual studio扩展开发
(2)“单个组件”中与cmake相关的几个选项,全部勾选。
Windows下编译xgboost源码
Windows下编译xgboost源码

下面参考文档:https://blog.csdn.net/black_max_wang/article/details/56272669
四、安装xgboost
1、如果已安装xgboost的,先卸载掉已有的xgboost
pip uninstall xgboost

2、查看python依赖包的位置:
import sys
print(sys.path)
检查打印出来的lib\site-packages下的各个package,xgboost是否已经删除掉了。

3、pycharm中引入xgboost包
import xgboost as xgb
查看是否报错,提示找不到包

4、安装python的xgboost模块
进入xgboost源码的python-package目录下面
python setup.py install
查看第2步中的lib\site-packages下面是否生成了xgboost目录,比如:
Windows下编译xgboost源码


5、运行实例
import xgboost as xgb
import numpy as np

data = np.random.rand(5,10) # 5 entities, each contains 10 features
label = np.random.randint(2, size=5) # binary target
dtrain = xgb.DMatrix( data, label=label)

dtest = dtrain

param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'binary:logistic' }
param['nthread'] = 4
param['eval_metric'] = 'auc'

evallist  = [(dtest,'eval'), (dtrain,'train')]

num_round = 10
bst = xgb.train( param, dtrain, num_round, evallist )

bst.dump_model('dump.raw.txt')

如果成功运行,则表示安装成功。
Windows下编译xgboost源码

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有