【02】安装指南_LuCh1Monster的博客-程序员宅基地

技术标签: LightGBM  

该页面是 LightGBM CLI 版本的构建指南。

要构建 Python 和 R 的软件包,请分别阅读 Python-package 和 R-package 文件夹。

1. Windows

LightGBM 可以使用 Visual Studio,MSBuild 与 CMake 或 MinGW 来在 Windows 上构建。

1.1 Visual Studio (or MSBuild)

使用 GUI

  1. 安装 Visual Studio (2015 或更新版本)。

  2. 下载 zip archive 并且 unzip (解压)它。

  3. 定位到 LightGBM-master/windows 文件夹。

  4. 使用 Visual Studio 打开 LightGBM.sln 文件,选择 Release 配置并且点击 BUILD -> Build Solution (Ctrl+Shift+B)。

    如果出现有关 Platfotm Toolset 的错误,定位到 PROJECT -> Properties -> Configuration Properties -> Gneral 然后选择 toolset 安装到你的机器。

该 exe 文件可以在 LightGBM-master/windows/x64/Release 文件夹中找到。

1.2 使用命令行

  1. 安装 Git for Windows,CMake (3.8 或更新版本) 以及 MSBuild (MSBuild 是非必要的,如果已安装 Visual Studio(2015 或更新版本) 的话 )。
  2. 运行以下命令:
git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake -DCMAKE_GENERATOR_PALTFORM=x64 ..
→ cmake --build . --target ALL_BUILD --config Release

这些 exe 和 dll 文件可以在 LightGBM/Release 文件夹中找到。

1.3 MinGW

  1. 安装 Git for Windows,CMake 和 MinGW-w64。
  2. 运行以下命令:
git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake -G "MinGW Makefiles" ..
→ mingw32-make.exe -j4

这些 exe 和 dll 文件可以在 LightGBM/ 文件夹中找到。

注意: 也许你需要再一次运行 cmake -G "MinGW Makefiles" .. 命令,如果遇到 sh.exe was found in your PATH 错误的话。

也许你还想要参阅 gcc 建议。

2. Linux

LightGBM 使用 CMake 来构建,运行以下命令:

git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake ..make -j4

注意: glibc >= 2.14 是必须的。

3. OS X

LightGBM 依赖于 OpenMP 进行编译,然而 Apple Clang 不支持它。

请使用以下命令来安装 gcc/g++:

→ brew install cmake
→ brew install gcc --without-multilib

然后安装 LightGBM:

git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake ..make -j4

4. Docker

4.1 Build MPI 版本

LightGBM 默认的构建版本是基于 socket 的。LightGBM 也支持 MPI。MPI 是一种与 RDMA 支持的高性能通信方法。

如果您需要运行具有高性能通信的并行学习应用程序,则可以构建带有 MPI 支持的 LightGBM。

4.1.1 Windows

使用 GUI

  1. 需要先安装 MS MPI,需要 msmpisdk.msiMSMpiSetup.exe
  2. 安装 Visual Studio (2015 或更新版本)。
  3. 下载 zip archive 并且 unzip (解压)它。
  4. 定位到 LightGBM-master/windows 文件夹。
  5. 使用 Visual Studio 打开 LigthGBM.sln 文件,选择 Release_mpi 配置 BUILD -> Build Solution (Ctrl+Shift+B)。

如果遇到有关 Platform Toolset 的错误,定位到 PROJECT -> Properties -> Configuration Properties -> Gneral 然后选择 toolset 安装到你的机器。

该 exe 文件可以在 LightGBM-master/windows/x64/Release 文件夹中找到。

使用命令行

  1. 需要先安装 MS MPI。需要 msmpisdk.msiMSMpiSetup.exe

  2. 安装 Git for Windows,CMake (3.8 或更新版本) 以及 MSBuild (MSBuild 是非必要的,如果已安装 Visual Studio(2015 或更新版本) 的话 )。

  3. 运行一下命令:

git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake -DCMAKE_GENERATOR_PALTFORM=x64 ..
→ cmake --build . --target ALL_BUILD --config Release

这些 exe 和 dll 文件可以在 LightGBM/Release 文件夹中找到。

注意: Build MPI Version 通过 MinGW 来构建 MPI 版本是不支持,由于它里面缺失了 MPI 库。

4.1.2 Linux

需要先安装 Open MPI。

然后运行以下命令:

git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake -DUSE_MPI=ON ..make -j4

注意: glibc >= 2.14 是必要的。

4.1.3 OS X

先安装 gcc 和 Open MPI:

→ brew install openmpi
→ brew install cmake
→ brew install gcc --without-multilib

然后运行以下命令:

git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ export CXX=g++7 CC=gcc-7
→ mkdir build
→ cd build
→ cmake -DUSE_MPI=ON ..make -j4

4.2 Build GPU 版本

4.2.1 Linux

在编译前应该先安装以下依赖:

  • OpenCL 1.2 headers and libraries, 它们通常由 GPU 制造商提供.

    The generic OpenCL ICD packages (for example, Debian package cl-icd-libopencl1 and cl-icd-opencl-dev) can also be used.

  • libboost 1.56 或更新版本 (1.61 或最新推荐的版本)。

    We use Boost.Compute as the interface to GPU, which is part of the Boost library since version 1.61. However, since we include the source code of Boost.Compute as a submodule, we only require the host has Boost 1.56 or later installed. We also use Boost.Align for memory allocation. Boost.Compute requires Boost.System and Boost.Filesystem to store offline kernel cache.

    The following Debian packages should provide necessary Boost libraries: libboost-dev, libboost-system-dev, libboost-filesystem-dev.

  • CMake 3.2 或更新版本。

要构建 LightGBM GPU 版本, 运行以下命令:

git clone --recursive https://github.com/Microsoft/LightGBM
→ cd LightGBM
→ mkdir build
→ cd build
→ cmake -DUSE_GPU=1 ..
# if you have installed the NVIDIA OpenGL, please using following instead
# sudo cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -OpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..make -j4

4.2.2 Windows

如果使用 MinGW, 该构建过程类似于 Linux 上的构建. 相关的更多细节请参阅 GPU Windows 平台上的编译

以下构建过程适用于 MSVC (Microsoft Visual C++) 构建。

  1. 安装 Git for Windows, CMake (3.8 or higher) 和 MSBuild (MSBuild 是非必要的, 如果已安装 Visual Studio (2015 或更新版本))。

  2. 针对 Windows 平台安装 OpenCL . 安装取决于你的 GPU 显卡品牌 (NVIDIA, AMD, Intel)。

  3. 安装 Boost Binary

    注意: 要匹配你的 Visual C++ 版本:

    Visual Studio 2015 -> msvc-14.0-64.exe

    Visual Studio 2017 -> msvc-14.1-64.exe

  4. 运行以下命令:

    → Set BOOST_ROOT=C:\local\boost_1_64_0\
    → Set BOOST_LIBRARYDIR=C:\local\boost_1_64_0\lib64-msvc-14.0
    → git clone --recursive https://github.com/Microsoft/LightGBM
    → cd LightGBM
    → mkdir build
    → cd build
    → cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DUSE_GPU=1 ..
    → cmake --build . --target ALL_BUILD --config Release
    

注意: C:\local\boost_1_64_0\C:\local\boost_1_64_0\lib64-msvc-14.0 是你 Boost 二进制文件的位置. 你还可以将它们设置为环境变量, 以在构建时避免 Set ... 命令.

4.2.3 Protobuf 支持

如果想要使用 protobuf 来保存和加载模型, 请先安装 protobuf c++ version . 然后使用 USE_PROTO=ON 配置来运行 cmake 命令, 例如:

→ cmake -DUSE_PROTO=ON ..

然后在保存或加载模型时, 可以在参数中使用 model_format=proto

注意: 针对 windows 用户, 它只对 mingw 进行了测试。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LuCh1Monster/article/details/106725663

智能推荐

计组学习笔记之CPU(2)——指令周期,时序产生器和控制方式_mov指令多少个机器周期-程序员宅基地

目录指令周期指令周期的基本概念5条典型的指令时序产生器和控制方式时序信号的作用和体制控制器的时序信号时序信号产生器微程序控制器中时序信号产生器的组成部分控制方式同步控制方式异步控制方式联合控制方式指令周期指令周期的基本概念CPU执行程序是一个“取指令–执行指令”的循环过程指令周期:CPU从内存中取出一条指令,并执行完毕的时间总和。CPU周期:又称机器周期,一般为从内存读取一条指令字的最短时间时钟周期:也叫节拍脉冲或T周期,是计算机工作的基本时间单位。如上图所示,指令周期通常包含C_mov指令多少个机器周期

西瓜书——决策树(知识点:信息熵的数学含义及推导)_决策树的信息熵-程序员宅基地

对于决策树,有点像if...elseif...elseif...else语句。最重要的点就是找到合适的属性来划分类别。对于那个用来划分类别的属性要符合一个条件,那就是划分后,集合的纯度提高了。所以我们往往是在一堆属性中,找到一个属性,该属性最能提高集合的纯度。本文将重点解释信息熵的数学含义。一、信息熵信息熵Ent(D)Ent(D)Ent(D)是用来度量样本集合纯度的最常用指标。Ent(D)=..._决策树的信息熵

干货 | 云计算时代携程的网络架构变迁-程序员宅基地

作者简介赵亚楠,携程云平台资深架构师。2016 年加入携程云计算部门,先后从事 OpenStack、SDN、容器网络(Mesos、K8S)、容器镜像存储、分布式存储等产品..._携程赵亚楠 博客

python移动文件到另一个文件夹若有同名文件更改文件名_python 复制、移动文件到指定目录并修改名字..._霜之暗伤的博客-程序员宅基地

基本思路:1、确定指定目录2、判断指定目录是否存在,如果不存在就新建该目录3、修改新的文件名4、复制图片到指定位置,如果需要移动采用shutil.move(origin_path, new_file_name)import osimport shutilbase_dir = os.path.dirname(__file__) # 获取当前文件目录outfile = 'try_file'path..._python移动文件时遇到重名

Unity 打包IOS平台错误-程序员宅基地

1、Unity 下打包Bulid FailedAssets/Plugins/uLua/x86_64/ulua.dll would be copied to /ulua.dllPlugin ‘ulua.dll’ is used from several locations: Assets/Plugins/uLua/x86_64/ulua.dll would be copied to /ulua.d

史上最全 SpringCloudAlibaba入门教程,从零开始带你深入♂学习(九)——sentinel组件的熔断降级和热点规则_爱分享的板栗老哥的博客-程序员宅基地

SpringCloudAlibaba(九)——sentinel组件的熔断降级和热点规则熔断降级规则简介熔断:用来避免微服务架构中雪崩现象,达到某个阈值条件之后自动出发熔断原理:当监控到调用链路中某一个服务,出现异常(20个以上异常)自动出发熔断,在出发熔断之后对于该微服务调用不可用熔断降级规则的使用RT:根据请求响应时间熔断异常比例:根据请求调用过程中出现异常百分比进行熔断异常数:根据请求调用过程中异常数进行熔断平均响应时间领取资料当 1s 内持续进入 N 个请求,对应时刻的平均响应

随便推点

【愚公系列】2023年08月 WPF+上位机+工业互联 042-键盘事件_上位机 中事件是啥_愚公搬代码的博客-程序员宅基地

键盘事件是指在Web页面中,当用户按下或释放键盘上的按键时触发的事件。可以实现响应按键事件的交互功能,例如快捷键等;可以对用户的输入进行验证和限制;可以模拟输入事件,实现自动化测试等。表单验证:防止用户在表单输入中输入非法字符或格式;密码强度评估:当用户在密码输入框内输入字符时,动态显示密码强度是否满足规定;快捷键:快速响应某些按键事件,提高用户的操作效率;自动完成:通过监听按键事件,在输入框中自动匹配内容;游戏开发:捕捉用户的键盘输入,控制游戏角色的移动、攻击等。_上位机 中事件是啥

c语言;输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。_输入三个数a,b,c, 判断能否以它们为三个边长构成直角三角形。若能,输出yes,否则输-程序员宅基地

#include<stdio.h>int main(){/*输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。输入输入三个正整数。输出能否构成直角三角形。如能输出:yes.若不能,输出:no。 */int a,b,c;scanf("%d%d%d",&a,&b,&c);if(a + b > c && a + ..._输入三个数a,b,c, 判断能否以它们为三个边长构成直角三角形。若能,输出yes,否则输

利用Cadence软件中的Model Editor工具和元器件的模型文本文件创建Spice模型_txt转pspice模型-程序员宅基地

以肖特基二极管1N5819为例说明Spice模型的建立方法。**准备工作:**下载1N5819的文本模型文件,后缀名为.txt。1N5819的模型文件在Diodes官网下载。见图1和图2。具体步骤:打开PSpice Model Editor。打开下载的1N5819的Spice文本文件,File—>open—>1N5819.spice.txt,见图3。生成.lib文件,File—>Save As—>更改模型名称—>保存,见图4和图5。导出.o_txt转pspice模型

机器学习分类:监督学习、无监督学习、半监督学习、强化学习-程序员宅基地

监督学习(Supervised Learning)数据集为(x, y)一些监督学习技术包括:线性回归 (回归)局部线性回归 (回归)logistic回归 (分类)深度神经网络无监督学习(Unsupervised Learning)数据集为(x)一些无监督学习技术包括:自编码(Autoencoding)主成分分析(Principal components analysis)随机森林(R

LintCode:二叉树的最大深度_二叉树最大深度-程序员宅基地

LintCode:二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。显然,这是一个典型的递归。/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val)_二叉树最大深度

推荐文章

热门文章

相关标签