前言
Lightgbm是使用Leaf-wise决策树策略的机器学习算法,由于其准确性和快速(都是相对的)的优点,被很多人用于数据竞赛等领域。
CPU版本的Lightgbm安装较简单,GPU版本的安装需要一些前提,下面以安装文档和自己安装的经历简单介绍下GPU版本lightgbm的安装过程。先附上官方的安装文档地址:https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html#id18
运行环境
-
操作系统:Windows 10 家庭版 i7-7700HQ 16GB
操作系统信息 -
GPU:GTX 1050 4GB(笔记本版本)
-
Python 3.6.6(Annaconda 2 下的Python3环境)
安装
- 安装OPENCL SDK
对于N家显卡来说,就是安装CUDA。INTEL和AMD也有各自对应的SDK。
我的显卡时N家的,所以安装CUDA。注意版本,并不是越高越好,要匹配自己的GPU。
比如GTX 1050要安装9.0版本,而最新的是10.0版本,并不可用。
支持CUDA的显卡列表:
https://developer.nvidia.com/cuda-gpus
CUDA官方的安装说明:
https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
下载地址:
https://developer.nvidia.com/cuda-downloads
安装完成后可以,可以用nvcc --version打印版本信息:
(py36) C:\Users\ZHANG JIZHONG>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:32_Central_Daylight_Time_2017
Cuda compilation tools, release 9.0, V9.0.176
-
安装编译器
编译器可以选择VS或MinGW,这里我选择了VS。
VS需要2015或以上版本,这里我安装了VS 2017 社区版,地址:
https://visualstudio.microsoft.com/zh-hans/vs/community/ -
安装boost库
注意匹配VS版本:
Visual Studio 2015 -> msvc-14.0-64.exe,
Visual Studio 2017 -> msvc-14.1-64.exe.
VS2017对应安装boost 1.64,可以从sourceforge下载:
https://sourceforge.net/projects/boost/files/boost-binaries/
- 安装CMake
安装CMake 3.8以上版本,地址:https://cmake.org/download/
(py36) C:\Users\ZHANG JIZHONG>cmake -version
cmake version 3.13.2
- pip安装lightgbm
pip install lightgbm --install-option=--gpu
通过参数指定GPU版本。至此,GPU版本的lightgbm安装完成。
使用
当要指定使用GPU训练时,需给定参数device='gpu'。如果有多个GPU的(比如还有核显),可以通过GPUCapsViewer查看GPU ID,如下图:
GPUCapsViewer
右上角的“2: NVIDIA CUDA”和稍稍下方的“1: GeForce GTX 1050”分别对应lightgbm中的gpu_platform_id和gpu_device_id。但要注意,GPUCapsViewer中的ID计数从1开始,而python中则从0开始,因此这两个数字都要减去1。也就是说,对于该环境,lightgbm的参数需设置为:
device='gpu', gpu_platform_id=1, gpu_device_id=0
结语
- GPU训练未必一定比CPU快,这取决于训练集大小、CPU和GPU能力等客观因素。
- lightgbm GPU训练不支持过大的max_bin,我试过max_bin=512时报错,但默认255没有问题。
网友评论