安装
官方 Python 包
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
ONNX 发布的包在 PyPi 中发布。
pip install onnx
每周包在测试 pypi 中发布,以启用实验和早期测试。
vcpkg 包
onnx 在vcpkg的维护列表中,你可以很容易地使用 vcpkg 来构建和安装它。
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat # For powershell
./bootstrap-vcpkg.sh # For bash
./vcpkg install onnx
Conda
ONNX 的二进制版本可从Conda获得,位于conda- forge 中:
conda install -c conda-forge onnx
必要的经验
PyTorch 的设计理念是直观、线性且易于使用。当你执行一行代码时,它就会被执行。没有异步的世界观。当您进入调试器或收到错误消息和堆栈跟踪时,理解它们很简单。堆栈跟踪指向您的代码定义的确切位置。我们希望您永远不会因为糟糕的堆栈跟踪或异步和不透明的执行引擎而花费数小时调试您的代码。
特征
PyTorch 具有最小的框架开销。我们集成了英特尔 MKL和 NVIDIA(cuDNN、NCCL)等加速库以最大限度地提高速度。在核心方面,其 CPU 和 GPU Tensor 以及神经网络后端已经成熟并经过多年测试。
因此,PyTorch 非常快——无论您运行小型还是大型神经网络。
与 Torch 或某些替代方案相比,PyTorch 中的内存使用效率非常高。我们为 GPU 编写了自定义内存分配器,以确保您的深度学习模型具有最大的内存效率。这使您能够训练比以前更大的深度学习模型。
扩展
编写新的神经网络模块或与 PyTorch 的 Tensor API 接口的目的是简单明了且具有最少的抽象。
您可以使用 torch API或您最喜欢的基于 NumPy 的库(例如 SciPy)在 Python 中编写新的神经网络层 。
如果你想用 C/C++ 编写你的层,我们提供了一个方便的扩展 API,它高效且样板最少。无需编写包装器代码。您可以在此处查看教程,在此处查看示例。
安装
二进制文件
通过 Conda 或 pip wheels 安装二进制文件的命令在我们的网站上:https ://pytorch.org/get-started/locally/
NVIDIA Jetson 平台
NVIDIA 的 Jetson Nano、Jetson TX1/TX2、Jetson Xavier NX/AGX 和 Jetson AGX Orin 的 Python wheels 在这里提供,L4T 容器在这里发布
它们需要 JetPack 4.2 及更高版本,@dusty-nv和@ptrblck正在维护它们。
从源头
先决条件
如果您从源代码安装,您将需要:
Python 3.7 或更高版本(对于 Linux,需要 Python 3.7.6+ 或 3.8.1+) 兼容 C++17 的编译器,例如 clang
我们强烈建议安装Anaconda环境。您将获得高质量的 BLAS 库 (MKL),并且无论您的 Linux 发行版如何,您都可以获得受控的依赖项版本。
如果要编译支持 CUDA,请安装以下内容(注意 macOS 不支持 CUDA)
NVIDIA CUDA 11.0 或以上 NVIDIA cuDNN v7 或更高版本 与 CUDA 兼容的编译器
注意:您可以参考cuDNN 支持矩阵,了解具有各种受支持的 CUDA、CUDA 驱动程序和 NVIDIA 硬件的 cuDNN 版本
如果要禁用 CUDA 支持,请导出环境变量USE_CUDA=0
。其他可能有用的环境变量可以在 中找到setup.py
。
如果您正在为 NVIDIA 的 Jetson 平台(Jetson Nano、TX1、TX2、AGX Xavier)构建,可在此处获取为 Jetson Nano 安装 PyTorch 的说明
如果要使用 ROCm 支持进行编译,请安装
AMD ROCm 4.0及以上安装 ROCm 目前仅支持 Linux 系统。
如果要禁用 ROCm 支持,请导出环境变量USE_ROCM=0
。其他可能有用的环境变量可以在 中找到setup.py
。
安装依赖
1 常见的
conda install astunparse numpy ninja pyyaml setuptools cmake typing_extensions six requests dataclasses
2 在 Linux 上
conda install mkl mkl-include
# CUDA only: Add LAPACK support for the GPU if needed
conda install -c pytorch magma-cuda110 # or the magma-cuda* that matches your CUDA version from https://anaconda.org/pytorch/repo
3 在 MacOS 上
# Add this package on intel x86 processor machines only
conda install mkl mkl-include
# Add these packages if torch.distributed is needed
conda install pkg-config libuv
4 在 Windows 上
conda install mkl mkl-include
# Add these packages if torch.distributed is needed.
# Distributed package support on Windows is a prototype feature and is subject to changes.
conda install -c conda-forge libuv=1.39
5 获取 PyTorch 源
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
# if you are updating an existing checkout
git submodule sync
git submodule update --init --recursive
安装 PyTorch
1 在 Linux 上
如果您正在为 AMD ROCm 编译,那么首先运行这个命令:
# Only run this if you're compiling for ROCm
python tools/amd_build/build_amd.py
2 安装 PyTorch
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py develop
请注意,如果您使用的是Anaconda,您可能会遇到由链接器引起的错误:
build/temp.linux-x86_64-3.7/torch/csrc/stub.o: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status
error: command 'g++' failed with exit status 1
这是由ld
Conda 环境遮蔽系统引起的ld
。您应该使用更新版本的 Python 来修复此问题。推荐的 Python 版本为 3.7.6+ 和 3.8.1+。
3 在 macOS 上
python3 setup.py develop
4 在 Windows 上
选择正确的 Visual Studio 版本。
PyTorch CI 使用 Visual C++ BuildTools,它随 Visual Studio Enterprise、Professional 或 Community Edition 一起提供。您还可以从 https://visualstudio.microsoft.com/visual-cpp-build-tools/安装构建工具。默认情况下,构建工具不 随 Visual Studio Code 一起提供。
如果要构建遗留 python 代码,请参阅在遗留代码和 CUDA 上构建
仅 CPU 构建
在这种模式下,PyTorch 计算将在你的 CPU 上运行,而不是你的 GPU
conda activate
python setup.py develop
关于 OpenMP 的注意事项:所需的 OpenMP 实现是 Intel OpenMP (iomp)。为了链接到 iomp,您需要手动下载库并通过调整CMAKE_INCLUDE_PATH
和设置构建环境LIB
。此处的说明是设置 MKL 和英特尔 OpenMP 的示例。如果没有这些 CMake 配置,将使用 Microsoft Visual C OpenMP 运行时 (vcomp)。
基于 CUDA 的构建
在这种模式下,PyTorch 计算将通过 CUDA 利用您的 GPU 进行更快的数字运算
使用 CUDA 构建Pytorch需要 NVTX。NVTX 是 CUDA distributive 的一部分,它被称为“Nsight Compute”。要将其安装到已安装的 CUDA 上,请再次运行 CUDA 安装并选中相应的复选框。确保在 Visual Studio 之后安装带有 Nsight Compute 的 CUDA。
目前支持 VS 2017 / 2019 和 Ninja 作为 CMake 的生成器。如果ninja.exe
在 中检测到PATH
,则使用 Ninja 作为默认生成器,否则将使用 VS 2017 / 2019。 如果选择 Ninja 作为生成器,则会选择最新的 MSVC 作为底层工具链。
通常需要额外的库,例如 Magma、oneDNN、又名 MKLDNN 或 DNNL和Sccache。请参考安装助手来安装它们。
其他一些环境变量配置可以参考build_pytorch.bat脚本
cmd
:: Set the environment variables after you have downloaded and unzipped the mkl package,
:: else CMake would throw an error as `Could NOT find OpenMP`.
set CMAKE_INCLUDE_PATH={Your directory}\mkl\include
set LIB={Your directory}\mkl\lib;%LIB%
:: Read the content in the previous section carefully before you proceed.
:: [Optional] If you want to override the underlying toolset used by Ninja and Visual Studio with CUDA, please run the following script block.
:: "Visual Studio 2019 Developer Command Prompt" will be run automatically.
:: Make sure you have CMake >= 3.12 before you do this when you use the Visual Studio generator.
set CMAKE_GENERATOR_TOOLSET_VERSION=14.27
set DISTUTILS_USE_SDK=1
for /f "usebackq tokens=*" %i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version [15^,17^) -products * -latest -property installationPath`) do call "%i\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=%CMAKE_GENERATOR_TOOLSET_VERSION%
:: [Optional] If you want to override the CUDA host compiler
set CUDAHOSTCXX=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64\cl.exe
python setup.py develop
调整构建选项(可选)
您可以通过执行以下操作来选择性地调整 cmake 变量的配置(无需先构建)。例如,调整 CuDNN 或 BLAS 的预检测目录可以通过这样的步骤完成。
在 Linux 上
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py build --cmake-only
ccmake build # or cmake-gui build
在 macOS 上
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py build --cmake-only
ccmake build # or cmake-gui build
Docker Hub
使用预先构建的图像
您还可以从 Docker Hub 中提取预构建的 docker 镜像并使用 docker v19.03+ 运行
docker run --gpus all --rm -ti --ipc=host pytorch/pytorch:latest
请注意,PyTorch 使用共享内存在进程之间共享数据,因此如果使用 torch 多处理(例如,用于多线程数据加载器),容器运行时使用的默认共享内存段大小是不够的,您应该使用--ipc=host
或增加共享内存大小--shm-size
的命令行选项nvidia-docker run
。
自己构建图像
注意:必须使用 docker 版本 > 18.06 构建
Dockerfile
提供用于构建具有 CUDA 11.1 支持和 cuDNN v8 的图像。您可以传递PYTHON_VERSION=x.y
make 变量来指定 Miniconda 使用哪个 Python 版本,或者不设置它以使用默认值。
make -f docker.Makefile
# images are tagged as docker.io/${your_docker_username}/pytorch
构建文档
要构建各种格式的文档,您将需要Sphinx和 readthedocs 主题。
cd docs/
pip install -r requirements.txt
然后,您可以通过make <format>
从该 docs/
文件夹运行来构建文档。运行make
以获取所有可用输出格式的列表。
如果你得到一个 katex 错误运行npm install katex
。如果仍然存在,请尝试 npm install -g katex
注意:如果您
nodejs
使用不同的包管理器(例如,conda
)安装,则npm
可能会安装katex
与您的版本不兼容的版本,nodejs
并且文档构建将失败。已知有效的版本组合是node@6.13.1
和katex@0.13.18
。要安装后者,npm
您可以运行npm install -g katex@0.13.18
[/hidecontent]