基本的には公式サイトのガイドに従ってセットアップするだけ。だけなのだが、ちょこちょこ入れ忘れとか落とし穴があったりして、次から手間取らないように備忘録にしておく。
全体の準備
32bit 版のRをインストールしない
わりと嵌まったポイント。LightGBMは64bit版しかサポートしないが、32bit 版のRが入っているとビルドの際に32bit版をビルドしようとして失敗するとのことで、解決方法は、Rのインストール時に32bit版を入れないようにする(ホントにそう書いてある)。
Install CMake
公式サイト からダウンロードアイコンをクリック → インストーラーのダウンロード → セットアップ
Install Rtools
公式サイト からRtools35.exe
をダウンロードしてインストール。
環境変数Pathに、Rtools\bin
とRtools\mingw_64\bin
を設定しておく。
Install Visual Studio
公式サイト からダウンロード。
インストールは、とりあえずC++だけでよい。
Install MS-API
MS-MPI SDK と setup.exe を両方公式サイトからダウンロード
msmpisdk.msi
と msmpisetup.exe
を実行してインストール。
Install git
公式サイト からダウンロード。
設定は適当に。
Install OpenCL
インストールガイドの
- For running on Intel, get Intel SDK for OpenCL.
- For running on AMD, get AMD APP SDK.
- For running on NVIDIA, get CUDA Toolkit.
に従って、今回はCUDA Toolkitをインストール。
今回は、特にカスタマイズしなくてもよかった。
Install Boost Binary
sourceforgeからダウンロード。
Visual Studio 2017 をインストールしたので、 msvc-14.1-64.exe
をインストールする。
Boostの環境設定
BOOST_ROOT
とBOOST_LIBRALYDIR
のパスの設定を行う
環境変数の確認
「コントロール パネル > システムとセキュリティ > システム(Win+Pause/Break)」から「システムの詳細設定→環境変数」をチェック
以下の項目を確認:
- CMake関連のパスがPath変数に追加されている
- Rtools関連のパスがPath変数に追加されている
- MSAPI関連の環境変数がが登録されている
- openCL(CUDA)関連の環境変数が追加されている
- boost関連の環境変数が追加されている
Windows を再起動する
超重要。忘れる。
LightGBMのインストール
lgbdlを使ってインストールする。
lgbdlのインストール
devtools::install_github("Laurae2/lgbdl")
## Downloading GitHub repo Laurae2/lgbdl@master ## from URL https://api.github.com/repos/Laurae2/lgbdl/zipball/master ## Installing lgbdl
## "C:/PROGRA~1/R/R-35~1.1/bin/x64/R" --no-site-file --no-environ --no-save \ ## --no-restore --quiet CMD INSTALL \ ## "C:/Users/MyName/AppData/Local/Temp/Rtmp0SHyaL/devtools43c0670829ab/Laurae2-lgbdl-afff103" \ ## --library="C:/Users/MyName/Documents/R/win-library/3.5" \ ## --install-tests --no-multiarch
インストール
use_gpu = TRUE
を指定する。R 3.5
以降のバージョンではR35 = TRUE
をセットするとご利益があるらしい(ビルドの際の最適化に関する警告が違う)。
lgbdl::lgb.dl(commit = "master", compiler = "vs", # Remove this for MinGW + GPU installation repo = "https://github.com/Microsoft/LightGBM", cores = 4, R35 = TRUE, use_gpu = TRUE)
## Installing package into 'C:/Users/MyName/Documents/R/win-library/3.5' ## (as 'lib' is unspecified)
インストール中のメッセージが大量に表示される。
## [1] TRUE
当初、LoadLibrary failure: %1 is not a valid Win32 application.
というエラーが出て、インストールに失敗したので調べたら、Rのインストールの際に32bit版を入れてしまうと、両方でビルドしようとしてこける(64bit版しかサポートしない)とのこと。
このほか、ビルド中にどこかで止まる場合、チェックポイントのどれかが不十分と思われるので、再確認。
動作確認
library(lightgbm)
## Loading required package: R6
data(agaricus.train, package='lightgbm') train <- agaricus.train dtrain <- lgb.Dataset(train$data, label=train$label)
## Loading required package: Matrix
params <- list(objective="regression", metric="l2") model <- lgb.cv(params, dtrain, 10, nfold=5, min_data=1, learning_rate=1, early_stopping_rounds=10)
## [1]: valid's l2:1.43524e-16+9.92589e-17 ## [2]: valid's l2:6.30955e-32+5.75747e-32 ## [3]: valid's l2:7.50672e-35+1.33422e-34 ## [4]: valid's l2:7.03798e-35+1.35156e-34 ## [5]: valid's l2:6.93275e-35+1.35631e-34 ## [6]: valid's l2:6.91914e-35+1.35695e-34 ## [7]: valid's l2:6.91914e-35+1.35695e-34 ## [8]: valid's l2:6.91914e-35+1.35695e-34 ## [9]: valid's l2:6.91914e-35+1.35695e-34 ## [10]: valid's l2:6.91914e-35+1.35695e-34
(おまけ)install_github()を使って、非GPU版のインストール
GPU使わない場合はOpenCL
とBoost
の準備が不要なので、こちらの方が楽。
library(devtools) options(devtools.install.args = "--no-multiarch") # if you have 64-bit R only, you can skip this install_github("Microsoft/LightGBM", subdir = "R-package")
## Downloading GitHub repo Microsoft/LightGBM@master ## from URL https://api.github.com/repos/Microsoft/LightGBM/zipball/master ## Warning: GitHub repo contains submodules, may not function as expected! ## Installing lightgbm ## "C:/PROGRA~1/R/R-35~1.1/bin/x64/R" --no-site-file --no-environ --no-save \ ## --no-restore --quiet CMD INSTALL \ ## "C:/Users/MyName/AppData/Local/Temp/Rtmp0SHyaL/devtools43c039486000/Microsoft-LightGBM-aac8e8f/R-package" \ ## --library="C:/Users/MyName/Documents/R/win-library/3.5" \ ## --install-tests --no-multiarch ##
本当は、ビルド中にシステムメッセージが大量に表示される 。