0

我已经按照本指南http://lightgbm.readthedocs.io/en/latest/GPU-Windows.html从源代码编译了带有 GPU 支持的 lightgbm

从控制台测试使用成功:

C:\github_repos\LightGBM\examples\binary_classification>"../../lightgbm.exe" config=train.conf data=binary.train valid=binary.test objective=binary device=gpu
[LightGBM] [Warning] objective is set=binary, objective=binary will be ignored. Current value: objective=binary
[LightGBM] [Warning] data is set=binary.train, data=binary.train will be ignored. Current value: data=binary.train
[LightGBM] [Warning] valid is set=binary.test, valid_data=binary.test will be ignored. Current value: valid=binary.test
[LightGBM] [Info] Finished loading parameters
[LightGBM] [Info] Loading weights...

然后我尝试在 Python 中导入,但没有成功。它导入没有 GPU 支持的 anaconda 版本:

from sklearn.datasets import load_iris
iris = load_iris() 

import lightgbm as lgb 
lgtrain = lgb.Dataset(iris.data, iris.target)
lgb_clf = lgb.train(
        {
    'objective' : 'regression',
    'metric' : 'rmse',
    'num_leaves' : 350,
    #'max_depth': 14,
    'learning_rate' : 0.017,
    'feature_fraction' : 0.5,
    'bagging_fraction' : .8,
    'verbosity' : -1 ,
    'device' : 'gpu'

},
        lgtrain,
        num_boost_round=3500,
        verbose_eval=100
    )

LightGBMError: b'GPU Tree Learner 在此版本中未启用。使用 CMake 选项 -DUSE_GPU=1' 重新编译

我相信我必须指定位置,但如何?

4

2 回答 2

0

我认为这可能不是 lightGBM 特有的,而是 Anaconda 虚拟环境的问题。在 Anaconda 虚拟环境中工作时,系统路径会被修改为指向 Anaconda 安装目录。

正如您所指出的,这会导致 Anaconda 加载自己的版本,而不是您配置、编译和测试的外部版本。

有几种方法可以强制 Anaconda 找到您的包,请参阅此相关讨论

涉及运行的建议ln -s仅适用于 Linux 和 Mac,但您可以在 Windows 中执行类似的操作。

您可以先卸载 LightGBM 的 Anaconda 版本,然后在 Anaconda 路径中创建自定义编译版本的副本。您可以使用

import sys
sys.path
于 2018-06-17T07:38:07.033 回答
0

使用以下命令删除以前安装的 Python 包:

pip uninstall lightgbm
or

conda uninstall lightgbm

之后导航到 Python 包目录并使用您编译的库文件安装它:

cd LightGBM/python-package
python setup.py install --precompile
于 2018-06-18T19:00:35.603 回答