els and lastly how to load it into a C++
application for inference workloads.  Extending-PyTorch,Frontend-
APIs,TorchScript,C++  ![](_static/img/thumbnails/cropped/Extending-
TorchScript-with-Custom-Cpp-Operators.png)
](advanced/torch_script_custom_ops.html)

#### [ Extending TorchScript with Custom C++ Classes  This is a continuation
of the custom operator tutorial, and introduces the API we’ve built for
binding C++ classes into TorchScript and Python simultaneously.  Extending-
PyTorch,Frontend-APIs,TorchScript,C++
![](_static/img/thumbnails/cropped/Extending-TorchScript-with-Custom-Cpp-
Classes.png) ](advanced/torch_script_custom_classes.html)

#### [ Dynamic Parallelism in TorchScript  This tutorial introduces the syntax
for doing *dynamic inter-op parallelism* in TorchScript.  Frontend-
APIs,TorchScript,C++  ![](_static/img/thumbnails/cropped/TorchScript-
Parallelism.jpg) ](advanced/torch-script-parallelism.html)

#### [ Real Time Inference on Raspberry Pi 4  This tutorial covers how to run
quantized and fused models on a Raspberry Pi 4 at 30 fps.  TorchScript,Model-
Optimization,Image/Video,Quantization
![](_static/img/thumbnails/cropped/realtime_rpi.png)
](intermediate/realtime_rpi.html)

#### [ Autograd in C++ Frontend  The autograd package helps build flexible and
dynamic nerural netorks. In this tutorial, exploreseveral examples of doing
autograd in PyTorch C++ frontend  Frontend-APIs,C++
![](_static/img/thumbnails/cropped/Autograd-in-Cpp-Frontend.png)
](advanced/cpp_autograd.html)

#### [ Registering a Dispatched Operator in C++  The dispatcher is an internal
component of PyTorch which is responsible for figuring out what code should
actually get run when you call a function like torch::add.  Extending-
PyTorch,Frontend-APIs,C++  ![](_static/img/thumbnails/cropped/generic-pytorch-
logo.png) ](advanced/dispatcher.html)

#### [ Extending Dispatcher For a New Backend in C++  Learn how to extend the
dispatcher to add a new device living outside of the pytorch/pytorch repo and
maintain it to keep in sync with native PyTorch devices.  Extending-
PyTorch,Frontend-APIs,C++  ![](_static/img/thumbnails/cropped/generic-pytorch-
logo.png) ](advanced/extend_dispatcher.html)

#### [ Facilitating New Backend Integration by PrivateUse1  Learn how to
integrate a new backend living outside of the pytorch/pytorch repo and
maintain it to keep in sync with the native PyTorch backend.  Extending-
PyTorch,Frontend-APIs,C++  ![](_static/img/thumbnails/cropped/generic-pytorch-
logo.png) ](advanced/privateuseone.html)

#### [ Custom Function Tutorial: Double Backward  Learn how to write a custom
autograd Function that supports double backward.  Extending-PyTorch,Frontend-
APIs  ![](_static/img/thumbnails/cropped/generic-pytorch-logo.png)
](intermediate/custom_function_double_backward_tutorial.html)

#### [ Custom Function Tutorial: Fusing Convolution and Batch Norm  Learn how
to create a custom autograd Function that fuses batch norm into a convolution
to improve memory usage.  Extending-PyTorch,Frontend-APIs
![](_static/img/thumbnails/cropped/generic-pytorch-logo.png)
](intermediate/custom_function_conv_bn_tutorial.html)

#### [ Forward-mode Automatic Differentiation  Learn how to use forward-mode
automatic differentiation.  Frontend-APIs
![](_static/img/thumbnails/cropped/generic-pytorch-logo.png)
](intermediate/forward_ad_usage.html)

#### [ Jacobians, Hessians, hvp, vhp, and more  Learn how to compute advanced
autodiff quantities using torch.func  Frontend-APIs
![](_static/img/thumbnails/cropped/generic-pytorch-logo.png)
](intermediate/jacobians_hessians.html)

#### [ Model Ensembling  Learn how to ensemble models using torch.vmap
Frontend-APIs  ![](_static/img/thumbnails/cropped/generic-pytorch-logo.png)
](intermediate/ensembling.html)

#### [ Per-Sample-Gradients  Learn how to compute per-sample-gradients using
torch.func  Frontend-APIs  ![](_static/img/thumbnails/cropped/generic-pytorch-
logo.png) ](intermediate/per_sample_grads.html)