xgboost系列:windows和linux下xgboost安装指南
Posted xizero00
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xgboost系列:windows和linux下xgboost安装指南相关的知识,希望对你有一定的参考价值。
前言:
帮某人装了一下 xgboost,顺带记录了一下windows下xgboost的安装,考虑到windows下使用pip命令安装下载包速度慢,所以这里是直接下载安装的。linux下不管是编译还是直接安装都很简单,但是windows下的编译就比较麻烦。。。
值得一提的是,很多人都是下载源码来进行编译然后安装,这样的安装不能说不好,但是麻烦,像我们这种偷懒的人,用别人编译好的dll库就好了,没必要自己编译了。不然又要下载mingw来进行编译,此外还需要处理一些依赖问题,本文直接使用别人编译好的dll进行安装,此外也介绍了一些其他安装方法。
一、windows下的使用别人编译好的库文件进行安装(简单)
(0)前提是,你得下载好anaconda,并且安装之,我的下载地址如下(python3 windows 64位)
https://repo.continuum.io/archive/Anaconda3-4.4.0-Windows-x86_64.exe
(1)下载xgboost源码(这里直接用官方最新的源码,这里我们不需要用git clone --recursive,因为用的是编译好的dll,因此不需要下载那么完整,只需要python-package完整即可),你可以通过下面的连接下载源码即可。
https://github.com/dmlc/xgboost/archive/master.zip
(3)解压下载好的源码
解压之后,进入文件夹,找到master\\python-package\\xgboost目录
(4)下载windows下的编译好的xgboost库文件
这里我选择的是2017年6月10号编译的dll,也就是当前源码对应的那一天的dll
http://ssl.picnet.com.au/xgboost/20170610/x64/libxgboost.dll
大家请在页面:http://www.picnet.com.au/blogs/guido/post/2016/09/22/xgboost-windows-x64-binaries-for-download/
选择最新编译的dll,因为最新的dll与xgboost的源码更为适配。
下载好之后将这个库文件放入到master\\python-package\\xgboost目录
注意:如果你有NVIDIA的GPU,可以下载http://ssl.picnet.com.au/xgboost/20170610/x64_gpu/libxgboost.dll,这个是GPU版本的动态链接库
(5)安装xgboost即可
进入master\\python-package目录,执行以下命令行
python setup.py install
即可完成安装
然后你进入python之后import xgboost即可使用。
问题1:我的windows下有其他版本的python,我该怎么办?
这个问题好办,你可以临时设置PATH的环境变量为下面的路径,这样就可以指定使用哪个python了,如果你的python在C:\\Program Files\\Python 3.5目录的话。
原理:因为如果PATH变量中如果有多个版本python的路径的话,最后一个路径就是实际生效的。
set PATH=%PATH%;C:\\Program Files\\Python 3.5
问题2:如何卸载之前安装的xgboost
pip uninstall xgboost
二、windows下源码编译并进行安装(复杂)
为了保持完整性,还是介绍一下windows下通过源码进行编译的步骤,不过我不大喜欢在windows下使用mingw进行编译,主要是windows下没有一个较好的包管理工具,并不能处理一些依赖的包,依赖安装起来较为复杂,可能依赖的包也需要进行编译。这就是为什么我不喜欢在windows下编译一些linux下的工具的原因。
(0)下载好anaconda,并且安装之,我的下载地址如下(python3 windows 64位)
https://repo.continuum.io/archive/Anaconda3-4.4.0-Windows-x86_64.exe
(1)下载git,并安装之(这里我下载的是windows 64位版本的),具体大家可以在这个页面选择。https://git-scm.com/download/win https://github.com/git-for-windows/git/releases/download/v2.13.0.windows.1/Git-2.13.0-64-bit.exe(2)使用git下载代码(这里需要用 git clone --recursive来处理链接) 如果你有shadowsocks代理的话,你可以先给git设置代理,这样下载会快一些。 git config --global http.proxy 'socks5://127.0.0.1:1080'
打开终端,输入 git clone --recursive https://github.com/dmlc/xgboost
然后进入xgboost目录执行 git submodule init
git submodule update
(3)下载mingw,请到如下页面下载 mingw-get-setup.exe https://sourceforge.net/projects/mingw/files/Installer/
三、linux下使用pip直接进行安装(简单)
很简单,一个命令解决问题(注意,这里我考虑到国外的网速使用的是国内USTC的源)
sudo -H pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple xgboost
四、windows下最偷懒的安装方法(支持python3.5和3.6版本,windows 32位和64位系统)(最简单)
(1)首先下载xgboost编译好的whl包
下载路径为:http://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost
请你根据自己python的版本以及你操作系统的版本来下载对应的whl包
如何确定python版本:
进入python之后,就会显示python的版本,比如我的机器是2.7.11的,并且操作系统是64位的(当然,我的python是不被支持的,所以也安装不了:) )
Python 2.7.11 |Anaconda 2.4.1 (64-bit)| (default, Dec 7 2015, 14:10:42) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
xgboost‑0.6‑cp35‑cp35m‑win32.whl 这个是python3.5,windows 32位的包
xgboost‑0.6‑cp35‑cp35m‑win_amd64.whl 这个是python3.5,windows 64位的包
xgboost‑0.6‑cp36‑cp36m‑win32.whl 这个是python3.5,windows 32位的包
xgboost‑0.6‑cp36‑cp36m‑win_amd64.whl 这个是python3.6,windows 64位的包
(2)安装xgboost
下载好后进入whl包的目录下执行,可以将下面的文件名替换为你自己下载的文件名,安装即可。
pip install xgboost‑0.6‑cp36‑cp36m‑win_amd64.whl
五、Linux下开启CUDA和OpenMP进行编译安装(简单)
(1)下载代码 git clone --recursive https://github.com/dmlc/xgboost
(2)配置 进入xgboost/make目录,打开config.mk 1) 开启openmp多线程和CUDA
USE_OPENMP = 1 PLUGIN_UPDATER_GPU ?= ON
2) 配置显卡的计算能力,如果你开启了CUDA的话 返回xgboost/目录,打开Makefile找到如下行,将其中的数值设置为 你自己显卡的计算能力,比如我的显卡是gtx titanx maxwell的,因此计算能力是52 具体查看你自己的显卡是什么计算能力,可以参考 https://developer.nvidia.com/cuda-gpus#collapse4
COMPUTE ?= 52
(3)编译 make all -j$(nproc)
(4)编译python包 make pippack -j $(nproc) make pypack -j $(nproc)
(5)安装python包 进入xgboost/xgboost-python sudo python setup.py install
后续:
谢谢乐乐指出下载代码需要git clone --recursive,这里由于我之前是在linux下是通过确实是通过git clone --recursive下载代码,并复制到windows的,所以没有注意这一点。
下面解释一下git的recursive,它是指处理git上的链接,并从链接上也下载代码,如果不加就会少下载一部分链接的代码。
enjoy it, by xizero00 updated 2017/6/12
http://blog.csdn.net/xizero00
以上是关于xgboost系列:windows和linux下xgboost安装指南的主要内容,如果未能解决你的问题,请参考以下文章