使用GPU进行GridSearch LightGBM

3
如何使用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文档建议你可以传递额外的关键字参数(与train()中的params字典相同),但我无法测试,因为我没有GPU。 - Vivek Kumar
我认为你的意思是 lgb.LGBMClassifier(device='gpu'),这样不会出现任何错误,但似乎没有激活GPU。 - tgordon18
是的,我确实是这个意思。而且我刚刚读到页面下面的注释,即“**kwargs在sklearn中不受支持,可能会导致意外问题。”经过进一步检查,看起来已经正确处理并应该可以工作。你是如何检测它没有激活的? - Vivek Kumar
你使用GridSearchCV和不使用它有什么区别吗?这个库是否已经编译以使用GPU? - Vivek Kumar
1
我可以确认'device'参数已成功传递给train()方法,该方法在此处被调用。因此,请确保您使用的是最新版本的lgbm和scikit。 - Vivek Kumar
显示剩余2条评论
1个回答

0

LGBMClassifier()确实有device/device_type参数,可以根据参数文档设置为'gpu'。

要将其设置为'gpu',您可以配置基于GPU的LGBM。一些社区成员已经演示了如何在这里这里进行设置。第二个资源还有一个叫做glances(在PyPi.org上)的工具,可以观察GPU使用情况,以解决提出的评论。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接