PyTorch

PyTorch est une bibliothèque logicielle Python open source d'apprentissage machine qui s'appuie sur Torch (en) développée par Meta[8].

PyTorch

Informations
Créateur Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan
Dernière version 1.12.0 ()[1]
Version avancée 0.1.1 ()[2]
0.1.6 ()[3]
0.1.5 ()[4]
0.1.4 ()[5]
0.1.3 ()[6]
0.1.2 ()[7]
Dépôt github.com/pytorch/pytorch
Écrit en C++, Python, C et Compute Unified Device Architecture
Système d'exploitation Linux, macOS et Microsoft Windows
Type Bibliothèque logicielle
Bibliothèque logicielle Python (d)
Licence Berkeley Software Distribution
Site web pytorch.org

PyTorch permet d'effectuer les calculs tensoriels nécessaires notamment pour l'apprentissage profond (deep learning). Ces calculs sont optimisés et effectués soit par le processeur (CPU) soit, lorsque c'est possible, par un processeur graphique (GPU) supportant CUDA. Il est issu des équipes de recherche de Facebook, et avant cela de Ronan Collobert dans l'équipe de Samy Bengio[9] à l'IDIAP.

PyTorch est dérivé d'un logiciel antérieur, Torch, qui s'utilisait avec le langage Lua. PyTorch est indépendant de Lua et se programme en Python.

PyTorch permet de:

  • manipuler des tenseurs (tableaux multidimensionnels), de les échanger facilement avec Numpy et d'effectuer des calculs efficaces sur CPU ou GPU (par exemple, des produits de matrices ou des convolutions);
  • calculer des gradients pour appliquer facilement des algorithmes d'optimisation par descente de gradient. PyTorch utilise la bibliothèque autograd[10].

Tenseurs PyTorch

PyTorch définit une classe appelée Tensor (torch.Tensor) pour stocker et opérer sur des tableaux rectangulaires multidimensionnels homogènes de nombres. Les tenseurs PyTorch sont similaires aux tableaux NumPy, mais peuvent également être utilisés sur un GPU Nvidia compatible CUDA. PyTorch prend en charge divers sous-types de Tensors.[11]

Historique

En Caffe2 fusionne avec PyTorch [12]

Exemple

Le programme suivant montre la fonctionnalité de la bibliothèque avec un exemple simple:[13]

import torch
dtype = torch.float
device = torch.device("cpu") # Tous les calculs seront exécutés sur le processeur
# device = torch.device("cuda:0") # Tous les calculs seront exécutés sur la carte graphique

# Création d'un tenseur rempli avec des nombres aléatoires
a = torch.randn(2, 3, device=device, dtype=dtype)
print(a) # Affichage du tenseur a
# Output: tensor([[-1.1884,  0.8498, -1.7129],
#                  [-0.8816,  0.1944,  0.5847]])

# Création d'un tenseur rempli avec des nombres aléatoires
b = torch.randn(2, 3, device=device, dtype=dtype)
print(b) # Affichage du tenseur b
# Output: tensor([[ 0.7178, -0.8453, -1.3403],
#                  [ 1.3262,  1.1512, -1.7070]])

print(a*b) # Affichage du produit (terme à terme) des deux tenseurs
# Output: tensor([[-0.8530, -0.7183,  2.58],
#                  [-1.1692,  0.2238, -0.9981]])

print(a.sum()) # Affichage de la somme de tous les éléments du tenseur a
# Output: tensor(-2.1540)

print(a[1,2]) # Affichage de l'élément de la 2ème rangée et de la 3ème colonne de a
# Output: tensor(0.5847)

print(a.min()) # Affichage de la valeur minimale du tenseur a
# Output: tensor(-1.7129)

Annexes

Notes et références

  1. « PyTorch 1.12: TorchArrow, Functional API for Modules and nvFuser, are now available » (consulté le )
  2. « Release alpha-1 », (consulté le )
  3. « Release 0.1.6 », (consulté le )
  4. « Release Alpha-5 », (consulté le )
  5. « Release Alpha-4 », (consulté le )
  6. « Release Alpha-3 », (consulté le )
  7. « Release alpha-2 », (consulté le )
  8. Julien Bergounhoux, « Avec PyTorch 1.0, Facebook cherche à créer la boite à outil ultime pour l'intelligence artificielle », L'Usine digitale, (lire en ligne)
  9. (en) « Torch: A Modular Machine Learning Software Library », sur citeseerx.ist.psu.edu, (consulté le )
  10. « Automatic differentiation package - torch.autograd — PyTorch master documentation », sur pytorch.org (consulté le )
  11. « An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library », sur analyticsvidhya.com, (consulté le )
  12. https://caffe2.ai/blog/2018/05/02/Caffe2_PyTorch_1_0.html
  13. Jeremy Howard, Sylvain Gugger, Deep Learning for Coders with fastai and PyTorch, O'Reilly, (ISBN 978-1492045526, lire en ligne)


  • Portail de l’informatique
  • Portail des logiciels libres
  • Portail des probabilités et de la statistique
  • Portail des données
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.