安装和设置
系统要求
DGL 支持以下操作系统:
Ubuntu 20.04+
CentOS 8+
RHEL 8+
macOS X
Windows 10
DGL 需要 Python 版本 3.7、3.8、3.9、3.10、3.11。
DGL支持多种张量库作为后端,例如PyTorch、MXNet。有关后端的要求以及如何选择一个后端,请参见使用不同的后端。
从0.3版本开始,DGL分为CPU和CUDA构建。这些构建共享相同的Python包名称。如果您在安装CPU构建后安装了CUDA 9构建,则CPU构建将被覆盖。
从Conda或Pip安装
我们推荐通过conda
或pip
安装DGL。
查看Get Started page上的说明。
注意
对于Windows用户:您需要安装Visual C++ 2015 Redistributable。
从源代码安装
从GitHub下载源文件。
git clone --recurse-submodules https://github.com/dmlc/dgl.git
(可选)首先克隆仓库,然后运行以下命令:
git submodule update --init --recursive
Linux
安装用于构建共享库的系统包。对于Debian和Ubuntu用户,运行:
sudo apt-get update
sudo apt-get install -y build-essential python3-dev make cmake
对于 Fedora/RHEL/CentOS 用户,请运行:
sudo yum install -y gcc-c++ python3-devel make cmake
要为CPU开发创建一个Conda环境,请运行:
bash script/create_dev_conda_env.sh -c
要为GPU开发创建一个Conda环境,请运行:
bash script/create_dev_conda_env.sh -g 11.7
要进一步配置conda环境,请运行以下命令以获取更多详细信息:
bash script/create_dev_conda_env.sh -h
要为CPU开发构建共享库,请运行:
bash script/build_dgl.sh -c
要构建用于GPU开发的共享库,请运行:
bash script/build_dgl.sh -g
要进一步构建共享库,请运行以下命令以获取更多详细信息:
bash script/build_dgl.sh -h
最后,安装Python绑定。
cd python
python setup.py install
# Build Cython extension
python setup.py build_ext --inplace
macOS
在macOS上的安装与Linux类似。但macOS用户需要先安装构建工具,如clang、GNU Make和cmake。这些安装步骤已在macOS X上使用clang 10.0.0、GNU Make 3.81和cmake 3.13.1进行了测试。
像 clang 和 GNU Make 这样的工具被打包在 macOS 的 命令行工具 中。要安装,请运行以下命令:
xcode-select --install
要安装其他需要的包,如cmake,我们建议首先安装Homebrew,这是一个流行的macOS包管理器。要了解更多信息,请参阅Homebrew网站。
安装Homebrew后,安装cmake。
brew install cmake
转到DGL存储库的根目录,构建共享库,并安装DGL的Python绑定。
mkdir build
cd build
cmake -DUSE_OPENMP=off -DUSE_LIBXSMM=OFF ..
make -j4
cd ../python
python setup.py install
# Build Cython extension
python setup.py build_ext --inplace
Windows
你可以使用MSBuild来构建DGL。安装了MS Build Tools和CMake on Windows后,在VS2019 x64本机工具命令提示符中运行以下命令。
仅CPU构建:
MD build CD build cmake -DCMAKE_CXX_FLAGS="/DDGL_EXPORTS" -DCMAKE_CONFIGURATION_TYPES="Release" -DDMLC_FORCE_SHARED_CRT=ON .. -G "Visual Studio 16 2019" msbuild dgl.sln /m CD ..\python python setup.py install
CUDA 构建:
MD build CD build cmake -DCMAKE_CXX_FLAGS="/DDGL_EXPORTS" -DCMAKE_CONFIGURATION_TYPES="Release" -DDMLC_FORCE_SHARED_CRT=ON -DUSE_CUDA=ON .. -G "Visual Studio 16 2019" msbuild dgl.sln /m CD ..\python python setup.py install
使用不同的后端
DGL 支持 PyTorch、MXNet 和 Tensorflow 后端。 DGL 将根据以下选项选择后端(优先级从高到低)
使用
DGLBACKEND
环境变量:你可以使用
DGLBACKEND=[BACKEND] python gcn.py ...
来指定后端或者
export DGLBACKEND=[BACKEND]
来设置全局环境变量
修改“~/.dgl”目录下的
config.json
文件:你可以使用
python -m dgl.backend.set_default_backend [BACKEND]
来设置默认的后端
目前BACKEND可以从mxnet、pytorch、tensorflow中选择。
PyTorch 后端
将 DGLBACKEND
导出为 pytorch
以指定 PyTorch 后端。所需的 PyTorch 版本为 1.12.0 或更高版本。有关安装说明,请参见 pytorch.org。
MXNet 后端
将 DGLBACKEND
导出为 mxnet
以指定 MXNet 后端。所需的 MXNet 版本为 1.6 或更高。请参阅 mxnet.apache.org 获取安装说明。
MXNet 使用 uint32 作为整数张量的默认数据类型,这仅支持小于 2^32 的图。要启用大图训练,请使用 USE_INT64_TENSOR_SIZE=1
标志 构建 MXNet。有关更多信息,请参阅 此常见问题解答。
MXNet 1.5 及更高版本有一个选项可以为 NDArray
对象启用 Numpy 形状模式,一些 DGL 模型需要启用此模式才能正确运行。然而,此模式可能与未启用此模式的预训练模型参数不兼容,例如来自 GluonCV 和 GluonNLP 的预训练模型。通过设置 DGL_MXNET_SET_NP_SHAPE
,用户可以切换此模式的开启或关闭。
Tensorflow 后端
将 DGLBACKEND
导出为 tensorflow
以指定 Tensorflow 后端。所需的 Tensorflow 版本为 2.3.0 或更高。有关安装说明,请参见 tensorflow.org。此外,DGL 会将 TF_FORCE_GPU_ALLOW_GROWTH
设置为 true
,以防止 Tensorflow 占用整个 GPU 内存: