Traduit de l'anglais

PyTorch est une bibliothèque open-source d'apprentissage profond initialement développée par Meta Platforms, désormais sous la Linux Foundation. Elle fournit une API de haut niveau pour construire et entraîner des réseaux de neurones, avec différenciation automatique et accélération GPU, et reste l'un des frameworks les plus populaires en 2025.

PyTorch est une bibliothèque open-source de apprentissage profond initialement développée par Meta Platforms et actuellement soutenue par la Linux Foundation. Elle est le successeur de Torch, offrant une API de haut niveau construite sur des implémentations optimisées de bas niveau d'algorithmes et d'architectures telles que le transformeur et les variantes de SGD. La bibliothèque simplifie l'entraînement et l'inférence de modèles en quelques lignes de code, permet une parallélisation automatique et implémente des liaisons CUDA pour exploiter les ressources GPU. En 2025, elle reste l'une des bibliothèques d'apprentissage profond les plus populaires, aux côtés de TensorFlow et Keras, et sous-tend des systèmes commerciaux tels que ChatGPT, Tesla Autopilot, Pyro d'Uber et Transformers de Hugging Face.

PyTorch utilise le tenseur comme type de données fondamental, similaire aux tableaux NumPy, mais avec un support pour les opérations GPU. L'entraînement est facilité par Autograd, un système de différenciation automatique inversée qui construit un graphe acyclique dirigé d'opérations pendant la passe avant, permettant la rétropropagation avec une fonction de perte. La bibliothèque peut être installée via les gestionnaires de paquets Anaconda et est largement adoptée dans la recherche et l'industrie.

Histoire et développement

La bibliothèque originale Torch a été publiée en 2001 par l'Institut de recherche Idiap sous une licence GPL, écrite en C++ et CUDA, prenant en charge des méthodes telles que les réseaux de neurones et les machines à vecteurs de support. Vers 2010, elle a été réécrite par Ronan Collobert, Clement Farabet et Koray Kavukcuoglu sous le nom de Torch7 ou LuaTorch, avec un backend C et un frontend Lua. À la mi-2016, les développeurs l'ont refactorisée pour découpler le frontend et le backend, influencés par torch-autograd et Chainer, qui s'inspiraient eux-mêmes de HIPS/autograd. Le développement de Torch7 a cessé en 2018, absorbé par le projet PyTorch.

Meta a également exploité Caffe2, mais les modèles des deux frameworks étaient incompatibles. En septembre 2017, Meta et Microsoft ont créé le projet Open Neural Network Exchange (ONNX) pour découpler les frameworks des runtimes spécifiques au matériel, permettant la conversion et l'optimisation de modèles pour des fournisseurs d'exécution comme NVIDIA TensorRT. Caffe2 a été fusionné dans PyTorch à la fin de mars 2018. En septembre 2022, Meta a annoncé que PyTorch serait gouverné par la fondation indépendante PyTorch Foundation, une filiale de la Linux Foundation. PyTorch 2.0 a été publié le 15 mars 2023, introduisant TorchDynamo, un compilateur au niveau Python qui accélère le code jusqu'à deux fois, avec des améliorations sur les principales plateformes cloud.

Opérations sur les tenseurs

PyTorch définit la classe Tensor (torch.Tensor) pour stocker et opérer sur des tableaux multidimensionnels rectangulaires homogènes de nombres. Les tenseurs sont similaires aux tableaux NumPy mais peuvent être opérés par des GPU NVIDIA compatibles CUDA. La bibliothèque a également développé un support pour d'autres plateformes GPU, notamment ROCm d'AMD et le framework Metal d'Apple. Cette flexibilité permet un calcul efficace sur divers environnements matériels.

Module de réseau de neurones

Le module torch.nn fournit une collection complète de blocs de construction pour les réseaux de neurones, y compris les couches et les fonctions d'activation. Les réseaux sont construits en héritant de ce module et en définissant la séquence d'opérations dans la fonction forward(). Cette conception prend en charge des architectures de modèles complexes, des couches linéaires simples aux structures avancées comme les réseaux résiduels et les U-Nets, facilitant la recherche et le déploiement.

Sérialisation et format de fichier

PyTorch peut sauvegarder et charger des modèles en utilisant son propre format de fichier, 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 courantes sont .pt et .pth. Cette sérialisation permet la persistance et le partage de modèles, essentiels pour le déploiement en production et le développement collaboratif.

Exemple d'utilisation

Le programme suivant démontre la fonctionnalité de bas niveau de la bibliothèque. Un simple réseau de neurones avec des couches linéaires est défini en utilisant le module nn, montrant la facilité de construction et d'entraînement de modèles. Cet exemple met en évidence le flux de travail principal : définir un réseau, spécifier une fonction de perte et effectuer une rétropropagation avec un optimiseur comme Adam.

Voir aussi

Les sujets connexes incluent la comparaison des logiciels d'apprentissage profond, la programmation différentiable, DeepSpeed, l'intelligence artificielle open-source et PyTorch Lightning. Ces ressources fournissent un contexte plus large sur l'écosystème et les alternatives.

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