From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Original author(s)Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan
Initial releaseOctober 2016; 2 years ago (2016-10)
Stable release
1.0.1 / 7 February 2019; 2 months ago (2019-02-07)
Preview release
1.0 rc1 / 2 October 2018; 6 months ago (2018-10-02)
Written inPython, C++, CUDA
Operating systemLinux, macOS, Windows
TypeLibrary for machine learning and deep learning

PyTorch is an open-source machine learning library for Python, based on Torch,[1][2][3] used for applications such as natural language processing.[4] It is primarily developed by Facebook's artificial-intelligence research group,[5][6][7] and Uber's "Pyro" Probabilistic programming language software is built on it.[8]

PyTorch provides two high-level features:[9]


Facebook operates both PyTorch and Caffe2, but incompatibility made it difficult to transform a PyTorch-defined model into Caffe2 or vice versa. The Open Neural Network Exchange (ONNX) project was created by Facebook and Microsoft in September 2017 for converting models between frameworks. Caffe2 was merged into PyTorch at the end of March 2018.[10]

PyTorch Tensors[edit]

In terms of programming, Tensors can simply be considered multidimensional arrays. Tensors in PyTorch are similar to NumPy arrays, with the addition being that Tensors can also be used on a GPU that supports CUDA. PyTorch supports various types of Tensors.[11]


Autograd Module[edit]

PyTorch uses a technique called automatic differentiation. A recorder records what operations have performed, and then it replays it backward to compute the gradients. This technique is especially powerful when building neural networks in order to save time on one epoch by calculating differentiation of the parameters at the forward pass itself.

Optim Module[edit]

torch.optim is a module that implements various optimization algorithms used for building neural networks. Most of the commonly used methods are already supported, so there is no need to build them from scratch.

nn Module[edit]

PyTorch autograd makes it easy to define computational graphs and take gradients, but raw autograd can be a bit too low-level for defining complex neural networks. This is where the nn module can help.

See also[edit]


  1. ^ Yegulalp, Serdar (19 January 2017). "Facebook brings GPU-powered machine learning to Python". InfoWorld. Retrieved 11 December 2017.
  2. ^ Lorica, Ben (3 August 2017). "Why AI and machine learning researchers are beginning to embrace PyTorch". O'Reilly Media. Retrieved 11 December 2017.
  3. ^ 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. ISBN 9781484227657.
  4. ^ "Natural Language Processing (NLP) with PyTorch — NLP with PyTorch documentation". Retrieved 2017-12-18.
  5. ^ Patel, Mo (2017-12-07). "When two trends fuse: PyTorch and recommender systems". O'Reilly Media. Retrieved 2017-12-18.
  6. ^ Mannes, John. "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.
  7. ^ Arakelyan, Sophia (2017-11-29). "Tech giants are using open source frameworks to dominate the AI community". VentureBeat. Retrieved 2017-12-18.
  8. ^ "Uber AI Labs Open Sources Pyro, a Deep Probabilistic Programming Language". Uber Engineering Blog. 2017-11-03. Retrieved 2017-12-18.
  9. ^ "PyTorch – About". Archived from the original on 2018-06-15. Retrieved 2018-06-11.
  10. ^ "Caffe2 Merges With PyTorch". 2018-04-02.
  11. ^ "An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library". 2018-02-22. Retrieved 2018-06-11.

External links[edit]