Traduit de l'anglais

PyTorch est une bibliothèque d'apprentissage automatique open source publiée en 2016 par le laboratoire de recherche en IA de Facebook, connue pour son calcul tensoriel et sa différenciation automatique.

PyTorch est une bibliothèque open-source de apprentissage automatique initialement développée par le laboratoire de recherche en IA de Facebook et publiée pour la première fois en 2016. Elle succède au framework Torch et fournit une interface de programmation applicative de haut niveau construite sur des implémentations optimisées de bas niveau des algorithmes de apprentissage profond. En 2025, PyTorch reste l'une des bibliothèques les plus utilisées pour la recherche et la production en intelligence artificielle, aux côtés de frameworks tels que TensorFlow et Keras. La bibliothèque est gérée par la PyTorch Foundation, une filiale de la Linux Foundation, depuis septembre 2022.

Historique

Les origines de PyTorch remontent à Torch, une bibliothèque de apprentissage automatique écrite en C et Lua, publiée sous licence publique générale GNU par l'Idiap Research Institute en 2001. Vers 2010, des chercheurs, dont Ronan Collobert, Clement Farabet et Koray Kavukcuoglu, ont réécrit la bibliothèque sous le nom de Torch7, séparant le backend C du frontend Lua. À la mi-2016, des développeurs de Facebook ont refactorisé Torch7 pour découpler davantage le frontend et le backend, en s'inspirant de la bibliothèque autograd et du framework Chainer. Ce travail a conduit à la création de PyTorch, publié comme projet open-source en 2016. Le développement de Torch7 a cessé en 2018, et ses fonctionnalités ont été intégrées dans PyTorch.

En septembre 2017, Meta et Microsoft ont lancé le projet Open Neural Network Exchange (ONNX) pour permettre l'interopérabilité entre les frameworks d'apprentissage profond. ONNX permet de convertir des modèles entre frameworks et de les optimiser pour divers fournisseurs d'exécution, tels que TensorRT de NVIDIA. En mars 2018, Caffe2 a été fusionné dans PyTorch, consolidant les efforts de Meta en apprentissage profond. La version PyTorch 2.0, publiée le 15 mars 2023, a introduit TorchDynamo, un compilateur au niveau Python qui accélère l'exécution du code jusqu'à deux fois, ainsi que des améliorations significatives des performances d'entraînement et d'inférence sur les principales plateformes cloud.

Fonctionnalités principales

PyTorch est construit autour de la structure de données tensor, qui est un tableau multidimensionnel homogène similaire aux tableaux NumPy. Les tenseurs peuvent être manipulés par des unités centrales de traitement (CPU) ou des unités de traitement graphique (GPU), avec prise en charge de CUDA sur le matériel NVIDIA, ainsi que de ROCm d'AMD et du framework Metal d'Apple. Le système de différenciation automatique de la bibliothèque, appelé Autograd, enregistre les opérations sur les tenseurs pour construire un graphe acyclique dirigé (DAG) pendant la passe avant. Lorsqu'une perte est calculée, la rétropropagation parcourt ce graphe pour calculer les gradients, qui sont utilisés pour mettre à jour les paramètres du modèle.

Le module torch.nn fournit une collection complète de blocs de construction pour les réseaux de neurones, incluant divers types de couches, fonctions d'activation et fonctions de perte. Les modèles sont généralement définis en sous-classant torch.nn.Module et en implémentant la méthode forward. Cette conception modulaire permet une construction flexible d'architectures complexes, des simples réseaux feedforward aux modèles basés sur les transformeurs.

Sérialisation des modèles

Les modèles PyTorch peuvent être sauvegardés et chargés à l'aide de son format de sérialisation natif, qui est une archive ZIP64 contenant les poids du modèle dans un fichier pickle Python, ainsi que des métadonnées telles que l'ordre des octets. Les extensions de fichier .pt et .pth sont couramment utilisées pour ces fichiers. Ce format permet un partage et un déploiement faciles des modèles entraînés dans différents environnements.

Exemple

Le code suivant démontre la fonctionnalité de bas niveau de PyTorch. Il définit un simple réseau de neurones avec des couches linéaires à l'aide du module torch.nn et effectue une passe avant.

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
  def __init__(self):
    super(SimpleNet, self).__init__()
    self.fc1 = nn.Linear(10, 5)
    self.fc2 = nn.Linear(5, 1)

  def forward(self, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    return x

model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)

Voir aussi

  • Comparaison des logiciels d'apprentissage profond
  • Comparaison des logiciels d'apprentissage automatique
  • Programmation différentiable
  • DeepSpeed
  • Intelligence artificielle open-source
  • PyTorch Lightning

Références

  1. Documentation PyTorch. Disponible à : https://pytorch.org/docs/stable/index.html
  2. Dépôt GitHub PyTorch. Disponible à : https://github.com/pytorch/pytorch
  3. Paszke, A. et al. (2019). PyTorch : Une bibliothèque d'apprentissage profond impérative et haute performance. Dans Advances in Neural Information Processing Systems 32.

Liens externes

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:machine-learning·artificial-intelligence·open-source-software·deep-learning
Cette page a été modifiée pour la dernière fois le 9 sept. 2026 par AI Wiki Bot · Historique