- End-to-end Machine Learning Framework
- Production Ready
- TorchServe
- Distributed Training
- Mobile (Experimental)
- Robust Ecosystem
- Native ONNX Support
- C++ Front-End
- Cloud Support
- Install PyTorch
- Membership available
- PyTorch 2.0
- Upcoming Events
- Key Features & Capabilities
- Install PyTorch
- Quick Start With Cloud Partners
- Membership available
- PyTorch 2.0
- Upcoming Events
- Key Features & Capabilities
- Install PyTorch
- Quick Start With Cloud Partners
End-to-end
Machine Learning
Framework
PyTorch enables fast, flexible experimentation and efficient production through a user-friendly front-end, distributed training, and ecosystem of tools and libraries.
import torch class MyModule(torch.nn.Module): def __init__(self, N, M): super(MyModule, self).__init__() self.weight = torch.nn.Parameter(torch.rand(N, M)) def forward(self, input): if input.sum() > 0: output = self.weight.mv(input) else: output = self.weight + input return output # Compile the model code to a static representation my_script_module = torch.jit.script(MyModule(3, 4)) # Save the compiled code and model data so it can be loaded elsewhere my_script_module.save("my_script_module.pt")
Production Ready
With TorchScript, PyTorch provides ease-of-use and flexibility in eager mode, while seamlessly transitioning to graph mode for speed, optimization, and functionality in C++ runtime environments.
TorchServe
TorchServe is an easy to use tool for deploying PyTorch models at scale. It is cloud and environment agnostic and supports features such as multi-model serving, logging, metrics and the creation of RESTful endpoints for application integration.
## Convert the model from PyTorch to TorchServe format torch-model-archiver --model-name densenet161 \ --version 1.0 --model-file serve/examples/image_classifier/densenet_161/model.py \ --serialized-file densenet161-8d451a50.pth \ --extra-files serve/examples/image_classifier/index_to_name.json \ --handler image_classifier ## Host your PyTorch model torchserve --start --model-store model_store --models densenet161=densenet161.mar
import torch.distributed as dist from torch.nn.parallel import DistributedDataParallel dist.init_process_group(backend='gloo') model = DistributedDataParallel(model)
Distributed Training
Optimize performance in both research and production by taking advantage of native support for asynchronous execution of collective operations and peer-to-peer communication that is accessible from Python and C++.
Mobile (Experimental)
PyTorch supports an end-to-end workflow from Python to deployment on iOS and Android. It extends the PyTorch API to cover common preprocessing and integration tasks needed for incorporating ML in mobile applications.
## Save your model torch.jit.script(model).save("my_mobile_model.pt") ## iOS prebuilt binary pod ‘LibTorch’ ## Android prebuilt binary implementation 'org.pytorch:pytorch_android:1.3.0' ## Run your model (Android example) Tensor input = Tensor.fromBlob(data, new long[]1, data.length>); IValue output = module.forward(IValue.tensor(input)); float[] scores = output.getTensor().getDataAsFloatArray();
import torchvision.models as models resnet18 = models.resnet18(pretrained=True) alexnet = models.alexnet(pretrained=True) squeezenet = models.squeezenet1_0(pretrained=True) vgg16 = models.vgg16(pretrained=True) densenet = models.densenet161(pretrained=True) inception = models.inception_v3(pretrained=True)
Robust Ecosystem
An active community of researchers and developers have built a rich ecosystem of tools and libraries for extending PyTorch and supporting development in areas from computer vision to reinforcement learning.
Native ONNX Support
Export models in the standard ONNX (Open Neural Network Exchange) format for direct access to ONNX-compatible platforms, runtimes, visualizers, and more.
import torch.onnx import torchvision dummy_input = torch.randn(1, 3, 224, 224) model = torchvision.models.alexnet(pretrained=True) torch.onnx.export(model, dummy_input, "alexnet.onnx")
#include torch::nn::Linear model(num_features, 1); torch::optim::SGD optimizer(model->parameters()); auto data_loader = torch::data::data_loader(dataset); for (size_t epoch = 0; epoch 10; ++epoch) for (auto batch : data_loader) auto prediction = model->forward(batch.data); auto loss = loss_function(prediction, batch.target); loss.backward(); optimizer.step(); > >
C++ Front-End
The C++ frontend is a pure C++ interface to PyTorch that follows the design and architecture of the established Python frontend. It is intended to enable research in high performance, low latency and bare metal C++ applications.
Cloud Support
PyTorch is well supported on major cloud platforms, providing frictionless development and easy scaling through prebuilt images, large scale training on GPUs, ability to run models in a production scale environment, and more.
export IMAGE_FAMILY="pytorch-latest-cpu" export ZONE="us-west1-b" export INSTANCE_NAME="my-instance" gcloud compute instances create $INSTANCE_NAME \ --zone=$ZONE \ --image-family=$IMAGE_FAMILY \ --image-project=deeplearning-platform-release
Install PyTorch
Select your preferences and run the install command. Stable represents the most currently tested and supported version of PyTorch. This should be suitable for many users. Preview is available if you want the latest, not fully tested and supported, builds that are generated nightly. Please ensure that you have met the prerequisites below (e.g., numpy), depending on your package manager. Anaconda is our recommended package manager since it installs all dependencies. You can also install previous versions of PyTorch. Note that LibTorch is only available for C++.
Membership available
Catch up on the latest technical insights and tools from the PyTorch community.
PyTorch 2.0
Our next-generation release is faster, more Pythonic, and more Dynamic than ever.
Upcoming Events
Don’t miss out on our upcoming PyTorch events, meetups, and webinars.
Key Features &
Capabilities
Production Ready
Transition seamlessly between eager and graph modes with TorchScript, and accelerate the path to production with TorchServe.
Distributed Training
Scalable distributed training and performance optimization in research and production is enabled by the torch.distributed backend.
Robust Ecosystem
A rich ecosystem of tools and libraries extends PyTorch and supports development in computer vision, NLP and more.
Cloud Support
PyTorch is well supported on major cloud platforms, providing frictionless development and easy scaling.
Install PyTorch
Select your preferences and run the install command. Stable represents the most currently tested and supported version of PyTorch. This should be suitable for many users. Preview is available if you want the latest, not fully tested and supported, builds that are generated nightly. Please ensure that you have met the prerequisites below (e.g., numpy), depending on your package manager. Anaconda is our recommended package manager since it installs all dependencies. You can also install previous versions of PyTorch. Note that LibTorch is only available for C++.
NOTE: PyTorch LTS has been deprecated. For more information, see this blog.
Quick Start With
Cloud Partners
Get up and running with PyTorch quickly through popular cloud platforms and machine learning services.
Membership available
Catch up on the latest technical insights and tools from the PyTorch community.
PyTorch 2.0
Our next-generation release is faster, more Pythonic, and more Dynamic than ever.
Upcoming Events
Don’t miss out on our upcoming PyTorch events, meetups, and webinars.
Key Features &
Capabilities
Production Ready
Transition seamlessly between eager and graph modes with TorchScript, and accelerate the path to production with TorchServe.
Distributed Training
Scalable distributed training and performance optimization in research and production is enabled by the torch.distributed backend.
Robust Ecosystem
A rich ecosystem of tools and libraries extends PyTorch and supports development in computer vision, NLP and more.
Cloud Support
PyTorch is well supported on major cloud platforms, providing frictionless development and easy scaling.
Install PyTorch
Select your preferences and run the install command. Stable represents the most currently tested and supported version of PyTorch. This should be suitable for many users. Preview is available if you want the latest, not fully tested and supported, builds that are generated nightly. Please ensure that you have met the prerequisites below (e.g., numpy), depending on your package manager. Anaconda is our recommended package manager since it installs all dependencies. You can also install previous versions of PyTorch. Note that LibTorch is only available for C++.
NOTE: PyTorch LTS has been deprecated. For more information, see this blog.
Quick Start With
Cloud Partners
Get up and running with PyTorch quickly through popular cloud platforms and machine learning services.