-------------------------------------------------------------------------------- PyTorch is a Python package that provides two high-level features: Tensor computation (like NumPy) with strong GPU acceleration Deep neural networks built on a tape-based autograd system You can…
--------------------------------------------------------------------------------
PyTorch is a Python package that provides two high-level features:
- Tensor computation (like NumPy) with strong GPU acceleration
- Deep neural networks built on a tape-based autograd system
You can reuse your favorite Python packages such as NumPy, SciPy, and Cython to extend PyTorch when needed.
Our trunk health (Continuous Integration signals) can be found at hud.pytorch.org.
<!-- toc -->
- [More About PyTorch](#more-about-pytorch)
- [Installation](#installation)
- [Getting Started](#getting-started)
- [Resources](#resources)
- [Communication](#communication)
- [Releases and Contributing](#releases-and-contributing)
- [The Team](#the-team)
- [License](#license)
More About PyTorch
At a granular level, PyTorch is a library that consists of the following components:
| Component | Description |
| ---- | --- |
| torch | A Tensor library like NumPy, with strong GPU support |
| torch.autograd | A tape-based automatic differentiation library that supports all differentiable Tensor operations in torch |
| torch.jit | A compilation stack (TorchScript) to create serializable and optimizable models from PyTorch code |
| torch.nn | A neural networks library deeply integrated with autograd designed for maximum flexibility |
| torch.multiprocessing | Python multiprocessing, but with magical memory sharing of torch Tensors across processes. Useful for data loading and Hogwild training |
| torch.utils | DataLoader and other utility functions for convenience |
Usually, PyTorch is used either as:
- A replacement for NumPy to use the power of GPUs.
- A deep learning research platform that provides maximum flexibility and speed.
A GPU-Ready Tensor Library
If you use NumPy, then you have used Tensors (a.k.a. ndarray).
PyTorch provides Tensors that can live either on the CPU or the GPU and accelerates the
computation by a huge amount.
We provide a wide variety of tensor routines to accelerate and fit your scientific computation needs
such as slicing, indexing, mathematical operations, linear algebra, reductions.
And they are fast!
Dynamic Neural Networks: Tape-Based Autograd
PyTorch has a unique way of building neural networks: using and replaying a tape recorder.
Most frameworks such as TensorFlow, Theano, Caffe, and CNTK have a static view of the world.
One has to build a neural network and reuse the same structure again and again.
Changing the way the network behaves means that one has to start from scratch.
With PyTorch, we use a technique called reverse-mode auto-differentiation, which allows you to
change the way your network behaves arbitrarily with zero lag or overhead. Our inspiration comes
from several research papers on this topic, as well as current and past work such as
torch-autograd,
autograd,
Chainer, etc.
While this technique is not unique to PyTorch, it's one of the fastest implementations of it to date.
You get the best of speed and flexibility for your crazy research.
Python First
PyTorch is not a Python binding into a monolithic C++ framework.
It is built to be deeply integrated into Python.
You can use it naturally like you would use NumPy / SciPy / scikit-learn etc.
You can write your new neural network layers in Python itself, using your favorite libraries
and use packages such as Cython and Numba.
Our goal is to not reinvent the wheel where appropriate.
Imperative Experiences
PyTorch is designed to be intuitive, linear in thought, and easy to use.
When you execute a line of code, it gets executed. There isn't an asynchronous view of the world.
When you drop into a debugger or receive error messages and stack traces, understanding them is straightforward.
The stack trace points to exactly where your code was defined.
We hope you never spend hours debugging your code because of bad stack traces or asynchronous and opaque execution engines.
Fast and Lean
PyTorch has minimal framework overhead. We integrate acceleration libraries
such as Intel MKL and NVIDIA (cuDNN, NCCL) to maximize speed.
At the core, its CPU and GPU Tensor and neural network backends
are mature and have been tested for years.
Hence, PyTorch is quite fast — whether you run small or large neural networks.
The memory usage in PyTorch is extremely efficient compared to Torch or some of the alternatives.
We've written custom memory allocators for the GPU to make sure that
your deep learning models are maximally memory efficient.
This enables you to train bigger deep learning models than before.
Extensions Without Pain
Writing new neural network modules, or interfacing with PyTorch's Tensor API, was designed to be straightforward
and with minimal abstractions.
You can write new neural network layers in Python using the torch API
or your favorite NumPy-based libraries such as SciPy.
If you want to write your layers in C/C++, we provide a convenient extension API that is efficient and with minimal boilerplate.
No wrapper code needs to be written. You can see a tutorial here and an example here.
Installation
Binaries
Commands to install binaries via Conda or pip wheels are on our website: https://pytorch.org/get-started/locally/NVIDIA Jetson Platforms
Python wheels for NVIDIA's Jetson Nano, Jetson TX1/TX2, Jetson Xavier NX/AGX, and Jetson AGX Orin are provided here and the L4T container is published here
They require JetPack 4.2 and above, and @dusty-nv and @ptrblck are maintaining them.
From Source
Prerequisites
If you are installing from source, you will need:- Python 3.10 or later
- A compiler that fully supports C++20, such as clang or gcc (gcc 11.3.0 or newer is required, on Linux)
- Visual Studio or Visual Studio Build Tool (Windows only)
- At least 10 GB of free disk space
- 30-60 minutes for the initial build (subsequent rebuilds are much faster)
An example of environment setup is shown below:
- Linux:
bash
$ source /bin/activate
$ conda create -y -n
$ conda activate
- Windows:
bash
$ source \Scripts\activate.bat
$ conda create -y -n
$ conda activate
$ call "C:\Program Files\Microsoft Visual Studio\\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
A conda environment is not required. You can also do a PyTorch build in a
standard virtual environment, e.g., created with tools like uv, provided
your system has installed all the necessary dependencies unavailable as pip
packages (e.g., CUDA, MKL.)
NVIDIA CUDA Support
If you want to compile with CUDA support, select a supported version of CUDA from our support matrix, then install the following:- NVIDIA CUDA
- NVIDIA cuDNN v9.0 or above
- Compiler compatible with CUDA
If you want to disable CUDA support, export the environment variable USE_CUDA=0.
Other potentially useful environment variables may be found in setup.py. If
CUDA is installed in a non-standard location, set PATH so that the nvcc you
want to use can be found (e.g., export PATH=/usr/local/cuda-12.8/bin:$PATH).
If you are building for NVIDIA's Jetson platforms (Jetson Nano, TX1, TX2, AGX Xavier), Instructions to install PyTorch for Jetson Nano are available here
AMD ROCm Support
If you want to compile with ROCm support, install- AMD ROCm 4.0 and above installation
- ROCm is currently supported only for Linux systems.
/opt/rocm. If ROCm is installed in a different directory, the ROCM_PATH environment variable must be set to the ROCm installation directory. The build system automatically detects the AMD GPU architecture. Optionally, the AMD GPU architecture can be explicitly set with the PYTORCH_ROCM_ARCH environment variable AMD GPU architecture
If you want to disable ROCm support, export the environment variable USE_ROCM=0.
Other potentially useful environment variables may be found in setup.py.
Intel GPU Support
If you want to compile with Intel GPU support, follow these- PyTorch Prerequisites for Intel GPUs instructions.
- Intel GPU is supported for Linux and Windows.
USE_XPU=0.
Other potentially useful environment variables may be found in setup.py.
Get the PyTorch Source
bash
git clone https://github.com/pytorch/pytorch
cd pytorch
# if you are updating an existing checkout
git submodule sync
git submodule update --init --recursive
Install Dependencies
Common
bash
# Run this command from the PyTorch directory after cloning the source code using the “Get the PyTorch Source“ section above
pip install --group dev
On Linux
bash
pip install mkl-static mkl-include
# CUDA only: Add LAPACK support for the GPU if needed
# magma installation: run with active conda environment. specify CUDA version to install
.ci/docker/common/install_magma_conda.sh 12.4
# (optional) If using torch.compile with inductor/triton, install the matching version of triton
# Run from the pytorch directory after cloning
# For Intel GPU support, please explicitly `export USE_XPU=1` before running command.
make triton
On Windows
bash
pip install mkl-static 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.51
Install PyTorch
On Linux
If you're compiling for AMD ROCm then first run this command:
bash
# Only run this if you're compiling for ROCm
python tools/amd_build/build_amd.py
Install PyTorch
bash
# the CMake prefix for conda environment
export CMAKE_PREFIX_PATH="${CONDA_PREFIX:-'$(dirname $(which conda))/../'}:${CMAKE_PREFIX_PATH}"
python -m pip install --no-build-isolation -v -e .
# the CMake prefix for non-conda environment, e.g. Python venv
# call following after activating the venv
export CMAKE_PREFIX_PATH="${VIRTUAL_ENV}:${CMAKE_PREFIX_PATH}"
On macOS
bash
python -m pip install --no-build-isolation -v -e .
On Windows
If you want to build legacy python code, please refer to Building on legacy code and CUDA
CPU-only builds
In this mode PyTorch computations will run on your CPU, not your GPU.
cmd
python -m pip install --no-build-isolation -v -e .
Note on OpenMP: The desired OpenMP implementation is Intel OpenMP (iomp). In order to link against iomp, you'll need to manually download the library and set up the building environment by tweaking CMAKE_INCLUDE_PATH and LIB. The instruction here is an example for setting up both MKL and Intel OpenMP. Without these configurations for CMake, Microsoft Visual C OpenMP runtime (vcomp) will be used.
CUDA based build
In this mode PyTorch computations will leverage your GPU via CUDA for faster number crunching
NVTX is needed to build PyTorch with CUDA.
NVTX is a part of CUDA distributive, where it is called "Nsight Compute". To install it onto an already installed CUDA run CUDA installation once again and check the corresponding checkbox.
Make sure that CUDA with Nsight Compute is installed after Visual Studio.
Currently, VS 2017 / 2019, and Ninja are supported as the generator of CMake. If ninja.exe is detected in PATH, then Ninja will be used as the default generator, otherwise, it will use VS 2017 / 2019.
If Ninja is selected as the generator, the latest MSVC will get selected as the underlying toolchain.
Additional libraries such as
Magma, oneDNN, a.k.a. MKLDNN or DNNL, and Sccache are often needed. Please refer to the
…
Members
-
pytorch ★ PINNED
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Python ★ 101k 7h agoExplain → -
examples ★ PINNED
A set of examples around pytorch in Vision, Text, Reinforcement Learning, etc.
Python ★ 24k 9mo agoExplain → -
tutorials ★ PINNED
PyTorch tutorials.
Python ★ 9.2k 3d agoExplain → -
vision ★ PINNED
Datasets, Transforms and Models specific to Computer Vision
Python ★ 18k 21h agoExplain → -
torchtitan
A PyTorch native platform for training generative AI models
Python ★ 5.5k 8h agoExplain → -
ignite
High-level library to help with training and evaluating neural networks in PyTorch flexibly and transparently.
Python ★ 4.8k 3d agoExplain → -
executorch
On-device AI across mobile, embedded and edge for PyTorch
Python ★ 4.7k 21h agoExplain → -
serve ▣
Serve, optimize and scale PyTorch models in production
Java ★ 4.4k 10mo agoExplain → -
torchchat ▣
Run PyTorch LLMs locally on servers, desktop and mobile
Python ★ 3.6k 9mo agoExplain → -
text ▣
Models, data loaders and abstractions for language processing, powered by PyTorch
Python ★ 3.6k 9mo agoExplain → -
rl
A modular, primitive-first, python-first PyTorch library for Reinforcement Learning.
Python ★ 3.5k 15h agoExplain → -
ELF ▣
ELF: a platform for game research with AlphaGoZero/AlphaZero reimplementation
C++ ★ 3.4k 7y agoExplain → -
glow ▣
Compiler for Neural Network hardware accelerators
C++ ★ 3.3k 2y agoExplain → -
TensorRT
PyTorch/TorchScript/FX compiler for NVIDIA GPUs using TensorRT
Python ★ 3.0k 21h agoExplain → -
audio
Data manipulation and transformation for audio signal processing, powered by PyTorch
Python ★ 2.9k 21h agoExplain → -
ao
PyTorch native quantization and sparsity for training and inference
Python ★ 2.9k 2d agoExplain → -
xla
Enabling PyTorch on XLA Devices (e.g. Google TPU)
C++ ★ 2.8k 24d agoExplain → -
FBGEMM
FB (Facebook) + GEMM (General Matrix-Matrix Multiplication) - https://code.fb.com/ml-applications/fbgemm/
C++ ★ 1.6k 21h agoExplain → -
android-demo-app ▣
PyTorch android examples of usage in applications
Java ★ 1.6k 1y agoExplain → -
QNNPACK ▣
Quantized Neural Network PACKage - mobile-optimized implementation of quantized neural network operators
C ★ 1.5k 6y agoExplain → -
functorch ▣
functorch is JAX-like composable function transforms for PyTorch.
Jupyter Notebook ★ 1.4k 10mo agoExplain → -
gloo
Collective communications library with various primitives for multi-machine training.
C++ ★ 1.4k 3d agoExplain → -
hub
Submission to https://pytorch.org/hub/
Python ★ 1.4k 2y agoExplain → -
extension-cpp
C++ extensions in PyTorch
Python ★ 1.2k 5mo agoExplain → -
cpuinfo
CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)
C ★ 1.2k 3d agoExplain → -
torchdynamo ▣
A Python-level JIT compiler designed to make unmodified PyTorch programs faster.
Python ★ 1.1k 2y agoExplain → -
benchmark
TorchBench is a collection of open source benchmarks used to evaluate PyTorch performance.
Python ★ 1.0k 2d agoExplain → -
tensordict
TensorDict is a pytorch dedicated tensor container.
Python ★ 1.0k 15h agoExplain → -
kineto
A CPU+GPU Profiling library that provides access to timeline traces and hardware performance counters.
C++ ★ 964 3d agoExplain → -
helion
A Python-embedded DSL that makes it easy to write fast, scalable ML kernels with minimal boilerplate.
Python ★ 889 7h agoExplain → -
translate ▣
Translate - a PyTorch Language Library
Python ★ 842 3y agoExplain → -
PiPPy ▣
Pipeline Parallelism for PyTorch
Python ★ 786 1y agoExplain → -
elastic ▣
PyTorch elastic training
Python ★ 728 4y agoExplain → -
torcharrow ▣
High performance model preprocessing library on PyTorch
Python ★ 642 2y agoExplain → -
ios-demo-app ▣
PyTorch iOS examples
Swift ★ 613 1y agoExplain → -
tvm ▣
TVM integration into PyTorch
C++ ★ 455 6y agoExplain → -
contrib ▣
Implementations of ideas from recent papers
Python ★ 389 5y agoExplain → -
ort
Accelerate PyTorch models with ONNX Runtime
Python ★ 368 4mo agoExplain → -
builder ▣
Continuous builder and binary build scripts for pytorch
Python ★ 356 10mo agoExplain → -
accimage ▣
high performance image loading and augmenting routines mimicking PIL.Image interface
C ★ 318 4y agoExplain → -
tensorpipe
A tensor-aware point-to-point communication primitive for machine learning
C++ ★ 287 6mo agoExplain → -
pytorch.github.io
The website for PyTorch
HTML ★ 281 14h agoExplain → -
extension-ffi ▣
Examples of C extensions for PyTorch
Python ★ 255 3y agoExplain → -
cppdocs
PyTorch C++ API Documentation
HTML ★ 252 8h agoExplain → -
nestedtensor ▣
[Prototype] Tools for the concurrent manipulation of variably sized Tensors.
Jupyter Notebook ★ 250 3y agoExplain → -
rfcs
PyTorch RFCs (experimental)
★ 147 2mo agoExplain → -
java-demo ▣
No description.
Jupyter Notebook ★ 131 4y agoExplain → -
torchdistx ▣
Torch Distributed Experimental
Python ★ 117 1y agoExplain → -
extension-script ▣
Example repository for custom C++/CUDA operators for TorchScript
Python ★ 114 3y agoExplain → -
test-infra
This repository hosts code that supports the testing infrastructure for the PyTorch organization. For example, this repo hosts the logic to track disabled tests and slow tests, as well as our continuation integration jobs HUD/dashboard.
TypeScript ★ 111 22h agoExplain → -
pytorch_sphinx_theme
PyTorch Sphinx Theme
CSS ★ 106 1mo agoExplain → -
expecttest
No description.
Python ★ 87 1y agoExplain → -
maskedtensor ▣
MaskedTensors for PyTorch
Python ★ 40 3y agoExplain → -
pytorch-integration-testing
Testing downstream libraries using pytorch release candidates
Shell ★ 19 8d agoExplain → -
ci-infra
No description.
Python ★ 16 1d agoExplain → -
devlogs
Developer blog for PyTorch
CSS ★ 16 17d agoExplain → -
add-annotations-github-action ▣
A GitHub action to run clang-tidy and annotate failures
JavaScript ★ 14 2y agoExplain → -
ci-hud ▣
HUD for CI activity on `pytorch/pytorch`, provides a top level view for jobs to easily discern regressions
JavaScript ★ 13 4y agoExplain → -
probot ▣
PyTorch GitHub bot written in probot
TypeScript ★ 12 4y agoExplain → -
docs
This repository is automatically generated to contain the website source for the PyTorch documentation at https//pytorch.org/docs.
HTML ★ 11 8h agoExplain → -
ossci-job-dsl ▣
Jenkins job definitions for OSSCI
Groovy ★ 10 4y agoExplain → -
pytorch-ci-dockerfiles ▣
Scripts for generating docker images for PyTorch CI
★ 6 6y agoExplain → -
annex
Curated distribution of PyTorch-compatible Python sub-libraries (the PyTorch annex)
★ 5 2mo agoExplain → -
caffe2.github.io ⑂ ▣
The caffe2 website.
HTML ★ 4 7y agoExplain → -
torchhub_testing ▣
Repo to test torchhub. Nothing to see here.
★ 4 3y agoExplain → -
crcr-test
Test for Cross-Repository CI Relay for PyTorch Out-of-Tree Backend
★ 3 6d agoExplain → -
labeler-github-action ▣
GitHub action for labeling issues and pull requests based on conditions
TypeScript ★ 3 5y agoExplain → -
dr-ci ▣
Diagnose and remediate CI jobs
Haskell ★ 3 5y agoExplain → -
alerting-infra
Alerting system for the pytorch org
TypeScript ★ 2 17d agoExplain → -
sccache ⑂ ▣
sccache is ccache with cloud storage
Rust ★ 1 6y agoExplain →
No repos match these filters.