【发布时间】:2018-11-30 01:15:33
【问题描述】:
如何使用 GPU 和 LightGBM 进行 GridSearch?如果你只是想用默认参数训练一个 lgb 模型,你可以这样做:
dataset = lgb.Dataset(X_train, y_train)
lgb.train({'device': 'gpu'}, dataset)
要进行 GridSearch,最好这样做:
lgbm_classifier = lgb.LGBMClassifier()
param_grid = {
'learning_rate': [...],
'n_estimators': [...],
}
GridSearchCV(lgbm_classifier, param_grid)
但看起来lgb.LGBMClassifier() 不像lgb.train() 那样有device 的参数。如何设置它以使用 GPU?
【问题讨论】:
-
您是否尝试过使用
lgb.LGBMClassifier('device': 'gpu')? scikit API docs 建议您可以传递额外的关键字参数(与train()中的 params dict 相同),但我无法测试,因为我没有 GPU。 -
我想你的意思是
lgb.LGBMClassifier(device='gpu'),它没有给出任何错误但似乎没有激活GPU -
是的。确实我是这个意思。而且我刚刚阅读了该页面下方的注释,
"**kwargs is not supported in sklearn, it may cause unexpected issues."经过进一步检查,它看起来已经正确处理并且应该可以工作。您如何检测到它没有激活? -
使用 GridSearchCV 和不使用 GridSearchCV 有什么不同吗?库是否已编译为使用 GPU?
-
我可以确认
'device'参数已成功传递给train()方法,即called under the hood here。因此,请确保您使用的是最新版本的 lgbm 和 scikit。
标签: python gpu grid-search lightgbm