微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LightGBMError:在 Google Colab 中找不到 OpenCL 设备

如何解决LightGBMError:在 Google Colab 中找不到 OpenCL 设备

我想使用 Google Colab 在我的数据集上用 GPU 训练 LightGBM。为此,我使用了以下代码

!pip uninstall lightgbm -y

!git clone --recursive https://github.com/Microsoft/LightGBM

!apt-get install -y -qq libboost-all-dev

%cd /content/LightGBM
!rm -r build
!mkdir build
%cd build
!cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..
!make -j$(nproc)

%cd /content/LightGBM/python-package

!python3 setup.py install --precompile

!mkdir -p /etc/OpenCL/vendors && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
!rm -r LightGBM

import lightgbm as lgb

也在笔记本中,我选择了带超参数的设备 gpu:

param_grid = [
    {
        'reduce_dim__n_components': [0.7,0.9],'classify__learning_rate': [0.0001,0.001],# 'classify__n_estimators': [int(x) for x in np.linspace(start = 100,stop = 2000,num = 8)],# 'classify__num_leaves': [5,10,20,30,50],# 'classify__num_iterations': [10,50,100,500],# 'classify__min_data_in_leaf': [30,100]
    }
]

grid_search = gridsearchcv(
    Pipeline([
        ('reduce_dim',PCA(svd_solver='full')),('classify',lgb.LGBMClassifier(
            objective = 'multiclass',n_jobs = -1,num_class = 7,max_depth = -1,boosting_type = 'gbdt',metric = 'multi_logloss',device = 'gpu'
            ))
    ]),param_grid,cv=5,scoring='accuracy',verbose=1,return_train_score=True,n_jobs=-1)

grid_search = grid_search.fit(train_prepared,y_train)

然后出现这个错误

Fitting 5 folds for each of 4 candidates,totalling 20 fits
[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.
[Parallel(n_jobs=-1)]: Done  20 out of  20 | elapsed:    3.4s finished
---------------------------------------------------------------------------
LightGBMError                             Traceback (most recent call last)
<ipython-input-39-e751db1c8936> in <module>()
     24     ]),n_jobs=-1)
     25 
---> 26 grid_search = grid_search.fit(train_prepared,y_train)

6 frames
/content/LightGBM/python-package/lightgbm/basic.py in _safe_call(ret)
    108     """
    109     if ret != 0:
--> 110         raise LightGBMError(_LIB.LGBM_GetLastError().decode('utf-8'))
    111 
    112 

LightGBMError: No OpenCL device found

我尝试按照此链接 https://www.kaggle.com/kirankunapuli/ieee-fraud-lightgbm-with-gpu 的逐步操作来适应 Google Colab,但没有成功。

在这里做错了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。