带 gpu 的 Lightgbm 分类器

5 gpu lightgbm

model = lgbm.LGBMClassifier(n_estimators=1250, num_leaves=128,learning_rate=0.009,verbose=1)`enter code here`
Run Code Online (Sandbox Code Playgroud)

使用 LGBM 分类器,
现在有没有办法在 GPU 上使用它?

Ser*_*nov 7

首先,您需要为 GPU 构建 LightGBM,例如:

git clone --recursive https://github.com/Microsoft/LightGBM 
cd LightGBM && mkdir build && cd build
cmake -DUSE_GPU=1 ..
make -j4
pip uninstall lightgbm
cd ../python-package/ && python setup.py install
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用device="gpu"in params 在 GPU 上训练您的模型,例如:

lgbm.train(params={'device'='gpu'}, ...)
Run Code Online (Sandbox Code Playgroud)

或者

lgbm.LGBMClassifier(device='gpu')
Run Code Online (Sandbox Code Playgroud)

较大数据集的时差:

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
import lightgbm as lgbm
X,y = make_classification(n_samples=10000000, n_features=100, n_classes=2)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
Run Code Online (Sandbox Code Playgroud)
%%timeit
model = lgbm.LGBMClassifier(device="gpu")
model.fit(X_train, y_train)
19.9 s ± 163 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
Run Code Online (Sandbox Code Playgroud)
%%timeit
model = lgbm.LGBMClassifier(device="cpu")
model.fit(X_train, y_train)
1min 23s ± 46.4 s per loop (mean ± std. dev. of 7 runs, 1 loop each)
Run Code Online (Sandbox Code Playgroud)