PyTorch
PyTorch est une bibliothèque logicielle Python open source d'apprentissage machine qui s'appuie sur  développée par Meta.

PyTorch est gouverné par la PyTorch Foundation.

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. PyTorch a été créé par les équipes de recherche de Facebook, précédées par les travaux de recherche de Ronan Collobert au cœur de l'équipe de Samy Bengio à l'IDIAP.

PyTorch se présente sous les traits d'un dérivé d'un logiciel antérieur, Torch, dont l'utilisation nécessitait la maîtrise du langage Lua. PyTorch est désormais indépendant de Lua et se programme en Python.

PyTorch permet, entre autres, 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.

Tenseurs PyTorch 
PyTorch définit une classe appelée Tensor (torch.Tensor) pour stocker la data 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.

Historique 
En  Caffe2 fusionne avec PyTorch 

PyTorch rejoint la Foundation Linux en septembre 2022.

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

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 

  Comparison of deep learning software

Notes et références 

Apprentissage automatique
Intelligence artificielle
Science des données
PyTorch est une bibliothèque logicielle Python open source d' apprentissage machine qui s' appuie sur développée par Meta . PyTorch est gouverné par la PyTorch Foundation . 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 . PyTorch a été créé par les équipes de recherche de Facebook , précédées par les travaux de recherche de Ronan Collobert à le cœur de l' équipe de Samy Bengio à l' IDIAP . PyTorch se présente sous les traits d' un dérivé d' un logiciel antérieur , Torch , dont l' utilisation nécessitait la maîtrise de le langage Lua . PyTorch est désormais indépendant de Lua et se programme en Python . PyTorch permet , entre autres , de : manipuler de les tenseurs ( tableaux multidimensionnels ) , de les échanger facilement avec Numpy et d' effectuer de les calculs efficaces sur CPU ou GPU ( par exemple , de les produits de matrices ou de les convolutions ) ; calculer de les gradients pour appliquer facilement de les algorithmes d' optimisation par descente de gradient . PyTorch utilise la bibliothèque autograd . Tenseurs PyTorch PyTorch définit une classe appelée Tensor ( torch.Tensor ) pour stocker la data et opérer sur de les tableaux rectangulaires multidimensionnels homogènes de nombres . Les tenseurs PyTorch sont similaires à les tableaux NumPy , mais peuvent également être utilisés sur un GPU Nvidia compatible CUDA . PyTorch prend en charge divers sous-types de Tensors . Historique En Caffe2 fusionne avec PyTorch PyTorch rejoint la Foundation Linux en septembre Exemple Le programme suivant montre la fonctionnalité de la bibliothèque avec un exemple simple \ : 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 de les nombres aléatoires a = torch.randn ( 2 , device= device , dtype=dtype ) print (a ) # Affichage de le tenseur a # Output: tensor ( [ [ -1.1884 , 8498,7129 ] , # [ -0.8816 , 1944 , 5847 ] ] ) # Création d' un tenseur rempli avec de les nombres aléatoires b = torch.randn ( 2 , device= device , dtype=dtype ) print (b ) # Affichage de le tenseur b # Output: tensor ( [ [ 7178,8453,3403 ] , # [ 3262 , 1512,7070 ] ] ) print( a*b ) # Affichage de le produit ( terme à terme ) de les deux tenseurs # Output: tensor ( [ [ -0.8530,7183 , 58 ] , # [ -1.1692 , 2238,9981 ] ] ) print( a.sum ( ) ) # Affichage de la somme de tous les éléments de le tenseur a # Output: tensor ( -2.1540 ) print( a[1,2 ] ) # Affichage de l' élément de lame rangée et de lame colonne de a # Output: tensor ( 0.5847 ) print( a.min ( ) ) # Affichage de la valeur minimale de le tenseur a # Output: tensor ( -1.7129 ) Annexes Comparison of deep learning software Notes et références Apprentissage automatique Intelligence artificielle Science de les données