Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@yutaka2487

XGBoost を Windows でビルドする

はじめに

タイトルの通り XGBoost を Windows でビルドしたときの手順(2016年10月)です。正直、結構めんどくさかったので Linux でやったほうがよいと思います。環境は以下。

  • Windows 2012 R2 64bit
  • Anaconda3 4.2.1
  • XGBoost 0.6

準備するもの

Chocolatey

Chocolatey というのは Windows のパッケージマネージャです。
なくても別に何とかなるのですが、あると何かと便利なので導入しておきます。

インストールは上記にもある通り、コマンドプロンプトにワンライナーをコピペ。

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

MSYS2

Chocolatey を使って MSYS2 をインストールします。

choco install -y msys2

MSYS2 は C:\tools\msys64 にインストールされます。

Git と MinGW64

MSYS2 を起動し、MSYS2 のパッケージマネージャである pacman コマンドを使って Git と MinGW64 をインストールします。既に Git Windows などが入っている場合は、あらためて Git をインストールする必要はありません。

pacman -S git mingw-w64-x86_64-toolchain

ビルド作業

引き続き MSYS2 での作業になります。XGBoost のリポジトリをクローンしましょう。

git clone --recursive https://github.com/dmlc/xgboost
...
cd xgboost
git submodule init
git submodule update

make コマンドと g++ コマンドを使えるように、パスを通してエイリアス設定します。
そして MinGW64 用の makefile をコピって make 実行!

export PATH=${PATH}:/c/tools/msys64/mingw64/bin
alias make=mingw32-make.exe
cp make/mingw64.mk config.mk
make -j4

インストール

ビルドが終わったら Anaconda Prompt からインストールします。

cd C:\tools\msys64\home\Administrator\xgboost\python-package
python setup.py install

確認

MinGW64 にパスが通っていないと Dynamic Link に失敗するので気をつけましょう。
環境変数 Path に MinGW64 の bin ディレクトリを追加しておけば OK です!

image

IPython か何かからインポートしてみて、エラーが出なければ成功です!お疲れ様でした!

image

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?