【问题标题】:GridSearch LightGBM with GPU带 GPU 的 GridSearch LightGBM
【发布时间】: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


【解决方案1】:

LGBMClassifier() 确实有 device/device_type 参数,可以根据 parameter docs 将其设置为“gpu”。

要将其设置为“gpu”,您可以配置基于 GPU 的 LGBM。一些社区成员已经演示了如何做到这一点herehere。第二个资源还有一个名为 glances(在 PyPi.org 上)的东西,用于观察 GPU 使用情况,以解决提出的 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2019-06-02
    • 2017-02-15
    • 2021-12-08
    相关资源
    最近更新 更多