Py Torch
Py Torch
PyTorch tensors
PyTorch defines a class called Tensor (torch.Tensor) to store and operate on homogeneous
multidimensional rectangular arrays of numbers. PyTorch Tensors are similar to NumPy Arrays, but can
also be operated on a CUDA-capable NVIDIA GPU. PyTorch has also been developing support for other
GPU platforms, for example, AMD's ROCm[27] and Apple's Metal Framework.[28]
Note that the term "tensor" here does not carry the same meaning as tensor in mathematics or physics.
The meaning of the word in machine learning is only superficially related to its original meaning as a
certain kind of object in linear algebra. Tensors in PyTorch are simply multi-dimensional arrays.
Example
The following program shows the low-level functionality of the library with a simple example.
1 import torch
2 dtype = torch.float
3 device = torch.device("cpu") # Execute all calculations on the CPU
4 # device = torch.device("cuda:0") # Executes all calculations on the GPU
5
6 # Create a tensor and fill it with random numbers
7 a = torch.randn(2, 3, device=device, dtype=dtype)
8 print(a)
9 # Output: tensor([[-1.1884, 0.8498, -1.7129],
10 # [-0.8816, 0.1944, 0.5847]])
11
12 b = torch.randn(2, 3, device=device, dtype=dtype)
13 print(b)
14 # Output: tensor([[ 0.7178, -0.8453, -1.3403],
15 # [ 1.3262, 1.1512, -1.7070]])
16
17 print(a * b)
18 # Output: tensor([[-0.8530, -0.7183, 2.58],
19 # [-1.1692, 0.2238, -0.9981]])
20
21 print(a.sum())
22 # Output: tensor(-2.1540)
23
24 print(a[1,2]) # Output of the element in the third column of the second row (zero based)
25 # Output: tensor(0.5847)
26
27 print(a.max())
28 # Output: tensor(0.8498)
The following code-block defines a neural network with linear layers using the nn module.
1 import torch
2 from torch import nn # Import the nn sub-module from PyTorch
3
4 class NeuralNetwork(nn.Module): # Neural networks are defined as classes
5 def __init__(self): # Layers and variables are defined in the __init__ method
6 super().__init__() # Must be in every network.
7 self.flatten = nn.Flatten() # Construct a flattening layer.
8 self.linear_relu_stack = nn.Sequential( # Construct a stack of layers.
9 nn.Linear(28*28, 512), # Linear Layers have an input and output shape
10 nn.ReLU(), # ReLU is one of many activation functions provided by nn
11 nn.Linear(512, 512),
12 nn.ReLU(),
13 nn.Linear(512, 10),
14 )
15
16 def forward(self, x): # This function defines the forward pass.
17 x = self.flatten(x)
18 logits = self.linear_relu_stack(x)
19 return logits
See also
Free and open-
source software
portal
References
1. Chintala, Soumith (1 September 2016). "PyTorch Alpha-1 release" (https://github.com/pytorc
h/pytorch/releases/tag/v0.1.1). GitHub.
2. "PyTorch 2.6.0 Release" (https://github.com/pytorch/pytorch/releases/tag/v2.6.0). 29
January 2025. Retrieved 2 February 2025.
3. Claburn, Thomas (12 September 2022). "PyTorch gets lit under The Linux Foundation" (http
s://www.theregister.com/2022/09/12/pytorch_meta_linux_foundation/). The Register.
4. Yegulalp, Serdar (19 January 2017). "Facebook brings GPU-powered machine learning to
Python" (https://www.infoworld.com/article/3159120/artificial-intelligence/facebook-brings-gp
u-powered-machine-learning-to-python.html). InfoWorld. Retrieved 11 December 2017.
5. Lorica, Ben (3 August 2017). "Why AI and machine learning researchers are beginning to
embrace PyTorch" (https://www.oreilly.com/ideas/why-ai-and-machine-learning-researchers-
are-beginning-to-embrace-pytorch). O'Reilly Media. Retrieved 11 December 2017.
6. Ketkar, Nikhil (2017). "Introduction to PyTorch". Deep Learning with Python. Apress,
Berkeley, CA. pp. 195–208. doi:10.1007/978-1-4842-2766-4_12 (https://doi.org/10.1007%2F
978-1-4842-2766-4_12). ISBN 9781484227657.
7. Moez Ali (Jun 2023). "NLP with PyTorch: A Comprehensive Guide" (https://www.datacamp.c
om/tutorial/nlp-with-pytorch-a-comprehensive-guide). datacamp.com. Retrieved 2024-04-01.
8. Patel, Mo (2017-12-07). "When two trends fuse: PyTorch and recommender systems" (http
s://www.oreilly.com/ideas/when-two-trends-fuse-pytorch-and-recommender-systems).
O'Reilly Media. Retrieved 2017-12-18.
9. Mannes, John. "Facebook and Microsoft collaborate to simplify conversions from PyTorch to
Caffe2" (https://techcrunch.com/2017/09/07/facebook-and-microsoft-collaborate-to-simplify-
conversions-from-pytorch-to-caffe2/). TechCrunch. Retrieved 2017-12-18. "FAIR is
accustomed to working with PyTorch – a deep learning framework optimized for achieving
state of the art results in research, regardless of resource constraints. Unfortunately in the
real world, most of us are limited by the computational capabilities of our smartphones and
computers."
10. Arakelyan, Sophia (2017-11-29). "Tech giants are using open source frameworks to
dominate the AI community" (https://venturebeat.com/2017/11/29/tech-giants-are-using-ope
n-source-frameworks-to-dominate-the-ai-community/). VentureBeat. Retrieved 2017-12-18.
11. "PyTorch strengthens its governance by joining the Linux Foundation" (https://pytorch.org/bl
og/PyTorchfoundation/). pytorch.org. Retrieved 2022-09-13.
12. "Top 30 Open Source Projects" (https://github.com/cncf/velocity). Open Source Project
Velocity by CNCF. Retrieved 2023-10-12.
13. "Welcome to the PaddlePaddle GitHub" (https://github.com/PaddlePaddle/Paddle).
PaddlePaddle Official Github Repo. Retrieved 2024-10-28.
14. "The C++ Frontend" (https://pytorch.org/cppdocs/frontend.html). PyTorch Master
Documentation. Retrieved 2019-07-29.
15. Karpathy, Andrej (6 November 2019). "PyTorch at Tesla - Andrej Karpathy, Tesla" (https://ww
w.youtube.com/watch?v=oBklltKXtDE). YouTube.
16. "Uber AI Labs Open Sources Pyro, a Deep Probabilistic Programming Language" (https://en
g.uber.com/pyro/). Uber Engineering Blog. 2017-11-03. Retrieved 2017-12-18.
17. PYTORCH-TRANSFORMERS: PyTorch implementations of popular NLP Transformers (http
s://pytorch.org/hub/huggingface_pytorch-transformers/), PyTorch Hub, 2019-12-01, retrieved
2019-12-01
18. PYTORCH-Lightning: The lightweight PyTorch wrapper for ML researchers. Scale your
models. Write less boilerplate (https://github.com/PyTorchLightning/pytorch-lightning/),
Lightning-Team, 2020-06-18, retrieved 2020-06-18
19. "Ecosystem Tools" (https://pytorch.org/ecosystem/). pytorch.org. Retrieved 2020-06-18.
20. GitHub - catalyst-team/catalyst: Accelerated DL & RL (https://github.com/catalyst-team/catal
yst), Catalyst-Team, 2019-12-05, retrieved 2019-12-05
21. "Ecosystem Tools" (https://pytorch.org/ecosystem/). pytorch.org. Retrieved 2020-04-04.
22. "PyTorch – About" (https://web.archive.org/web/20180615190804/https://pytorch.org/about/).
pytorch.org. Archived from the original (https://pytorch.org/about/) on 2018-06-15. Retrieved
2018-06-11.
23. "Caffe2 Merges With PyTorch" (https://medium.com/@Synced/caffe2-merges-with-pytorch-a
89c70ad9eb7). 2018-04-02.
24. Edwards, Benj (2022-09-12). "Meta spins off PyTorch Foundation to make AI framework
vendor neutral" (https://arstechnica.com/information-technology/2022/09/meta-spins-off-pyto
rch-foundation-to-make-ai-framework-vendor-neutral/). Ars Technica.
25. "Dynamo Overview" (https://pytorch.org/docs/stable/torch.compiler_dynamo_overview.html).
26. "PyTorch 2.0 brings new fire to open-source machine learning" (https://venturebeat.com/ai/p
ytorch-2-0-brings-new-fire-to-open-source-machine-learning/). VentureBeat. 15 March 2023.
Retrieved 16 March 2023.
27. "Installing PyTorch for ROCm" (https://rocm.docs.amd.com/projects/install-on-linux/en/latest/
how-to/3rd-party/pytorch-install.html). rocm.docs.amd.com. 2024-02-09.
28. "Introducing Accelerated PyTorch Training on Mac" (https://pytorch.org/blog/introducing-acc
elerated-pytorch-training-on-mac/). pytorch.org. Retrieved 2022-06-04.
29. "An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library" (https://www.an
alyticsvidhya.com/blog/2018/02/pytorch-tutorial/). analyticsvidhya.com. 2018-02-22.
Retrieved 2018-06-11.
External links
Official website (https://pytorch.org)