Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

PyTorch

From Wikipedia, the free encyclopedia
Deep learning library

PyTorch
Original authors
  • Gregory Chanan
  • Soumith Chintala
  • Sam Gross
  • Adam Paszke
DeveloperMeta AI
Initial releaseSeptember 2016; 9 years ago (2016-09)[1]
Stable release
2.10.0[2] Edit this on Wikidata / 21 January 2026; 19 days ago (21 January 2026)
Written in
Operating system
PlatformIA-32,x86-64,ARM64
Available inEnglish
TypeLibrary fordeep learning
LicenseBSD-3[3]
Websitepytorch.org
Repositorygithub.com/pytorch/pytorch
Part of a series on
Machine learning
anddata mining

PyTorch is anopen-sourcedeep learninglibrary, originally developed byMeta Platforms and currently developed with support from theLinux Foundation. The successor toTorch, PyTorch provides ahigh-levelAPI that builds upon optimised, low-level implementations of deep learning algorithms and architectures, such as theTransformer, orSGD. Notably, this API simplifies modeltraining and inference to a few lines of code. PyTorch allows for automaticparallelization of training and, internally, implementsCUDA bindings that speed training further byleveraging GPU resources.

PyTorch utilises thetensor as a fundamentaldata type, similarly toNumPy. Training is facilitated by areversed automatic differentiation system, Autograd, that constructs adirected acyclic graph of the operations (and their arguments) executed by a model during its forward pass. With aloss,backpropagation is then undertaken.[4]

As of 2025[update], PyTorch remains one of the most popular deep learning libraries, alongside others such asTensorFlow andKeras.[5] A number of commercial deep learning architectures are built on top of PyTorch, includingChatGPT,[6]Tesla Autopilot,[7]Uber's Pyro,[8]Hugging Face's Transformers,[9][10] and Catalyst.[11][12]

History

[edit]

In 2001, Torch was written and released under aGPL. It was a machine-learning library written in C++ and CUDA, supporting methods including neural networks,support vector machines (SVM),hidden Markov models, etc.[13][14][15] Around 2010, it was rewritten to by Ronan Collobert, Clement Farabet and Koray Kavuckuoglu. This was known as Torch7 or LuaTorch. This was written so that the backend was inC and the frontend was inLua.[16] In mid-2016, some developers refactored it to decouple the frontend and the backend, with strong influence from torch-autograd andChainer. In turn, torch-autograd was influenced byHIPS/autograd. Development on Torch7 ceased in 2018 and was subsumed by the PyTorch project.[17][18]

Meta (formerly known as Facebook) operates both PyTorch and Convolutional Architecture for Fast Feature Embedding (Caffe2), but models defined by the two frameworks were mutually incompatible. TheOpen Neural Network Exchange (ONNX) project was created by Meta andMicrosoft in September 2017 for converting models between frameworks. Caffe2 was merged into PyTorch at the end of March 2018.[19] In September 2022, Meta announced that PyTorch would be governed by the independent PyTorch Foundation, a newly created subsidiary of theLinux Foundation.[20]

PyTorch 2.0 was released on 15 March 2023, introducingTorchDynamo, a Python-levelcompiler that makes code run up to two times faster, along with significant improvements in training and inference performance across majorcloud platforms.[21][22]

PyTorch tensors

[edit]
Main article:Tensor (machine learning)

PyTorch defines a class called Tensor (torch.Tensor) to store and operate on homogeneous multidimensional rectangular arrays of numbers. PyTorch Tensors are similar toNumPy Arrays, but can also be operated on by aCUDA-capableNVIDIAGPU. PyTorch has also been developing support for other GPU platforms, for example, AMD'sROCm[23] and Apple'sMetal Framework.[24]

PyTorch supports various sub-types of Tensors.[25]

The meaning of the word "tensor" in machine learning is only superficially related to its original meaning in mathematics or physics as a certain kind of object inlinear algebra. Tensors in PyTorch are simply multi-dimensional arrays.

PyTorch neural networks

[edit]
Main article:Neural network (machine learning)

PyTorch defines a module called nn (torch.nn) to describe neural networks and to support training. This module offers a comprehensive collection of building blocks for neural networks, including various layers and activation functions, enabling the construction of complex models. Networks are built by inheriting from thetorch.nn module and defining the sequence of operations in theforward() function.

Example

[edit]

The following program shows the low-level functionality of the library with a simple example.

importtorchdtype=torch.floatdevice=torch.device("cpu")# Execute all calculations on the CPU# device = torch.device("cuda:0")  # Executes all calculations on the GPU# Create a tensor and fill it with random numbersa=torch.randn(2,3,device=device,dtype=dtype)print(a)# Output: tensor([[-1.1884,  0.8498, -1.7129],#                  [-0.8816,  0.1944,  0.5847]])b=torch.randn(2,3,device=device,dtype=dtype)print(b)# Output: tensor([[ 0.7178, -0.8453, -1.3403],#                  [ 1.3262,  1.1512, -1.7070]])print(a*b)# Output: tensor([[-0.8530, -0.7183,  2.58],#                  [-1.1692,  0.2238, -0.9981]])print(a.sum())# Output: tensor(-2.1540)print(a[1,2])# Output of the element in the third column of the second row (zero-based)# Output: tensor(0.5847)print(a.max())# Output: tensor(0.8498)

The following code block defines a neural network with linear layers using thenn module.

fromtorchimportnn# Import the nn sub-module from PyTorchclassNeuralNetwork(nn.Module):# Neural networks are defined as classesdef__init__(self):# Layers and variables are defined in the __init__ methodsuper().__init__()# Must be in every network.self.flatten=nn.Flatten()# Construct a flattening layer.self.linear_relu_stack=nn.Sequential(# Construct a stack of layers.nn.Linear(28*28,512),# Linear Layers have an input and output shapenn.ReLU(),# ReLU is one of many activation functions provided by nnnn.Linear(512,512),nn.ReLU(),nn.Linear(512,10),)defforward(self,x):# This function defines the forward pass.x=self.flatten(x)logits=self.linear_relu_stack(x)returnlogits

See also

[edit]

References

[edit]
  1. ^Chintala, Soumith (1 September 2016)."PyTorch Alpha-1 release".GitHub.Archived from the original on 29 August 2021. Retrieved19 August 2020.
  2. ^"PyTorch 2.10.0 Release". 21 January 2026. Retrieved22 January 2026.
  3. ^Claburn, Thomas (12 September 2022)."PyTorch gets lit under The Linux Foundation".The Register.Archived from the original on 18 October 2022. Retrieved18 October 2022.
  4. ^"Autograd Mechanics".PyTorch Documentation. Retrieved13 November 2025.
  5. ^"Top 30 Open Source Projects".github.com. Retrieved13 November 2025.
  6. ^"OpenAI standardizes on PyTorch". 30 January 2020. Retrieved8 January 2026.
  7. ^Karpathy, Andrej (6 November 2019)."PyTorch at Tesla - Andrej Karpathy, Tesla".YouTube.Archived from the original on 24 March 2023. Retrieved2 June 2020.
  8. ^"Uber AI Labs Open Sources Pyro, a Deep Probabilistic Programming Language".Uber Engineering Blog. 3 November 2017.Archived from the original on 25 December 2017. Retrieved18 December 2017.
  9. ^PYTORCH-TRANSFORMERS: PyTorch implementations of popular NLP Transformers, PyTorch Hub, 1 December 2019,archived from the original on 11 June 2023, retrieved1 December 2019
  10. ^"Ecosystem Tools".pytorch.org.Archived from the original on 18 July 2023. Retrieved18 June 2020.
  11. ^GitHub - catalyst-team/catalyst: Accelerated DL & RL, Catalyst-Team, 5 December 2019,archived from the original on 22 December 2019, retrieved5 December 2019
  12. ^"Ecosystem Tools".pytorch.org.Archived from the original on 18 July 2023. Retrieved4 April 2020.
  13. ^"Torch Tutorial", Ronan Collobert, IDIAP, 2002-10-02
  14. ^R. Collobert, S. Bengio and J. Mariéthoz.Torch: a modular machine learning software library. Technical Report IDIAP-RR 02-46, IDIAP, 2002.
  15. ^"Torch Library". Archived fromthe original on 31 October 2001.
  16. ^Collobert, Ronan; Kavukcuoglu, Koray; Farabet, Clément (2012), Montavon, Grégoire; Orr, Geneviève B.; Müller, Klaus-Robert (eds.),"Implementing Neural Networks Efficiently",Neural Networks: Tricks of the Trade: Second Edition, Berlin, Heidelberg: Springer, pp. 537–557,doi:10.1007/978-3-642-35289-8_28,ISBN 978-3-642-35289-8, retrieved10 June 2025{{citation}}: CS1 maint: work parameter with ISBN (link)
  17. ^torch/torch7, Commit fd0ee3b, 2018-07-02
  18. ^Chintala, Soumith (17 December 2023)."PyTorch's design origins".soumith.ch. Retrieved7 February 2026.
  19. ^"Caffe2 Merges With PyTorch". 2 April 2018.Archived from the original on 30 March 2019. Retrieved2 January 2019.
  20. ^Edwards, Benj (12 September 2022)."Meta spins off PyTorch Foundation to make AI framework vendor neutral".Ars Technica.Archived from the original on 13 September 2022. Retrieved13 September 2022.
  21. ^"Dynamo Overview".
  22. ^"PyTorch 2.0 brings new fire to open-source machine learning".VentureBeat. 15 March 2023.Archived from the original on 16 March 2023. Retrieved16 March 2023.
  23. ^"Installing PyTorch for ROCm".rocm.docs.amd.com. 9 February 2024.
  24. ^"Introducing Accelerated PyTorch Training on Mac".pytorch.org.Archived from the original on 29 January 2024. Retrieved4 June 2022.
  25. ^"An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library".analyticsvidhya.com. 22 February 2018.Archived from the original on 22 October 2019. Retrieved11 June 2018.

External links

[edit]
Open source
Proprietary
Differentiable computing
General
Hardware
Software libraries
Retrieved from "https://en.wikipedia.org/w/index.php?title=PyTorch&oldid=1337171035"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp