博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最简便的lightGBM GPU支持的安装、验证方法
阅读量:2158 次
发布时间:2019-05-01

本文共 2204 字,大约阅读时间需要 7 分钟。

以下基于ubuntu 16.04 python 3.6.5安装测试成功

1、安装软件依赖

sudo apt-get install --no-install-recommends git cmake build-essential libboost-dev libboost-system-dev libboost-filesystem-dev

2、安装python库

pip install setuptools wheel numpy scipy scikit-learn -U

3、安装lightGBM-GPU

sudo pip3.6 install lightgbm --install-option=--gpu --install-option="--opencl-include-dir=/usr/local/cuda/include/" --install-option="--opencl-library=/usr/local/cuda/lib64/libOpenCL.so"

4、测试

先下载测试文件并且进行文件转化

git clone https://github.com/guolinke/boosting_tree_benchmarks.gitcd boosting_tree_benchmarks/datawget "https://archive.ics.uci.edu/ml/machine-learning-databases/00280/HIGGS.csv.gz"gunzip HIGGS.csv.gzpython higgs2libsvm.py

编写测试脚本

import lightgbm as lgbimport timeparams = {'max_bin': 63,'num_leaves': 255,'learning_rate': 0.1,'tree_learner': 'serial','task': 'train','is_training_metric': 'false','min_data_in_leaf': 1,'min_sum_hessian_in_leaf': 100,'ndcg_eval_at': [1,3,5,10],'sparse_threshold': 1.0,'device': 'gpu','gpu_platform_id': 0,'gpu_device_id': 0}dtrain = lgb.Dataset('data/higgs.train')t0 = time.time()gbm = lgb.train(params, train_set=dtrain, num_boost_round=10,          valid_sets=None, valid_names=None,          fobj=None, feval=None, init_model=None,          feature_name='auto', categorical_feature='auto',          early_stopping_rounds=None, evals_result=None,          verbose_eval=True,          keep_training_booster=False, callbacks=None)t1 = time.time()print('gpu version elapse time: {}'.format(t1-t0))params = {'max_bin': 63,'num_leaves': 255,'learning_rate': 0.1,'tree_learner': 'serial','task': 'train','is_training_metric': 'false','min_data_in_leaf': 1,'min_sum_hessian_in_leaf': 100,'ndcg_eval_at': [1,3,5,10],'sparse_threshold': 1.0,'device': 'cpu'}t0 = time.time()gbm = lgb.train(params, train_set=dtrain, num_boost_round=10,          valid_sets=None, valid_names=None,          fobj=None, feval=None, init_model=None,          feature_name='auto', categorical_feature='auto',          early_stopping_rounds=None, evals_result=None,          verbose_eval=True,          keep_training_booster=False, callbacks=None)t1 = time.time()print('cpu version elapse time: {}'.format(t1-t0))

测试结果如下,可见gpu版确实比cpu快

你可能感兴趣的文章
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机11:Java内存异常原理与实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析3:Spring IOC容器的加载过程
查看>>
Spring源码剖析4:懒加载的单例Bean获取过程分析
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>