Py Torch : Tout savoir sur le framework
31 janvier 2023
Avec une popularité toujours plus croissante au cours de ces dernières décennies, le deep learning, sous-ensemble du machine learning, s'est vu doté d'un certain nombre d'outils. Py Torch figure parmi ceux-ci et est, entre autres, réputé pour sa flexibilité, son accessibilité et son efficacité dans l'utilisation de la mémoire.
Découvrez dans ce billet tout ce que vous avez besoin de savoir sur PyTorch, dont son histoire, son utilisation pour le deep learning, ses avantages, sa méthode de téléchargement ou encore sa méthode d'installation.
L'histoire de Py torch
Ce sont dans les laboratoires de recherche AI de Facebook, aujourd'hui Meta, que prendra naissance Pytorch en 2016. Écrit dans le langage de programmation Python, le framework se base sur l'ancienne librairie Torch.
Bibliothèque open source disponible sous licence BSD Modifiée, Pytorch sera fusionné en mars 2018 par Meta à Caffe2. Il s'agit d'un framework qui offre un moyen simple et direct d'expérimenter le deep learning ou apprentissage profond en tirant profit de nouveaux modèles et algorithmes.
Il est à noter que Caffe2 est un outil si bien adapté au deep learning qu'il est capable d'effectuer la prise en charge d'algorithmes d'apprentissage ayant plusieurs dizaines de milliards de paramètres.
Plus tard en 2022, sera annoncée par Meta, la création de la PyTorch Foundation. Il s'agit d'une organisation indépendante chargée du projet PyTorch et qui sera sous l'égide de la fondation Linux.
Utilisation de Pytorch pour le Deep Learning
Une des forces de Pytorch est que ce dernier est conçu de manière à réduire au mieux le temps nécessaire à l'exécution des algorithmes. Il n'hésite pas, pour ce faire, à tirer le meilleur des caractéristiques du hardware.
Dans son fonctionnement, Py Torch a recours à des tenseurs. Il s'agit de tableaux multidimensionnels sous la forme desquels sont représentées les datas.
Bien que similaire au tableau NumPy, le tenseur présente l'avantage de se servir des GPU pour réaliser des opérations très rapides.
À l'aide des tenseurs, Pytorch est à même de réaliser discrètement et efficacement 4 étapes pour l'entrainement du réseau de neurones. Il s'agit de :
- l'assemblage d'un graphe ;
- la réalisation de prédictions ;
- le calcul de la perte ou erreur en comparaison des prédictions ;
- la backpropagation.
Cette dernière étape consiste en un parcours dans le sens inverse du réseau dans le but d'effectuer des ajustements sur les tenseurs en vue d'améliorer la précision des prédictions. Tout ceci en se basant sur la perte ou erreur calculée.
Pourquoi utiliser Pytorch ?
Le choix d'un framework doit être déterminé par de nombreux critères dont l'existence d'une grande communauté autour de celui-ci et la disponibilité de ressources telles que des manuels et des tutoriels. Bien qu'étant un outil relativement récent, Pytorch coche parfaitement ces deux cases.
Il dispose en outre d'une interface facile à prendre en main pour effectuer la création de réseaux neuronaux.
Un autre point fort de Pytorch est que, comparé à d'autres outils de deep learning, il fonctionne avec des graphes dynamiques et non statiques. De ce fait, il permet la modification des fonctions pendant l'exécution et la variation du calcul des gradients avec celles-ci.
Sa compatibilité avec les cartes graphiques (GPU) constitue par ailleurs un autre grand point positif en faveur de l'utilisation de Pytorch.
En effet, l'outil se sert en interne de CUDA qui est une technologie développée par NVIDIA permettant l'usage du processeur graphique pour l'exécution de calcul à la place du processeur central.
Avantages de Pytorch
Malgré son jeune âge, Pytorch jouit d'une grande popularité en raison des nombreux avantages qu'il offre à ses utilisateurs.
Un framework conçu pour fonctionner avec Python
Dans le domaine de l'intelligence artificielle en général et plus précisément dans celui du deep learning, Python est l'un des langages les plus utilisés. Pytorch constitue donc un choix idéal pour les développeurs déjà habitués à l'environnement de Python puisque le framework est conçu et assemblé afin de fonctionner avec ce langage.
Cette situation rend d'ailleurs le débogage avec Pytorch facile puisque la profonde intégration du framework à Python rend de nombreux outils de débogage Python utilisable avec Pytorch.
Un outil facile à apprendre
À l'instar de son langage d'écriture Python, Pytorch est populaire auprès d'un grand nombre de développeurs pour sa facilité à apprendre. Il s'agit d'un avantage rendu possible grâce à la syntaxe simple et intuitive dont il est doté.
L'existence d'une grande communauté d'utilisateurs Py Torch
Comme évoqué plus tôt, un gros avantage de Pytorch est qu'une excellente documentation et de nombreux tutoriels couvrant tous les aspects de l'outil sont disponibles sur son site officiel.
À côté de ces ressources, il est important de mentionner la grosse communauté de développeurs qui se développe quotidiennement autour du framework. Sur le forum discuss.pytorch.org, les utilisateurs de l'outil peuvent converser entre eux et recevoir de l'aide de la part des développeurs de PyTorch. Plus de 1500 messages sont échangés sur ce forum de discussion chaque semaine.
Pytorch VS Tensor Flow : quelles différences ?
Bien qu'étant tous deux des frameworks de référence dans le domaine du deep learning en open source, Py Torch et Tensor Flow présentent quelques différences dans leur fonctionnement respectif.
Construction de graphes
Sur le plan de la construction de graphes informatiques, Pytorch opte pour une architecture dynamique. Concrètement, cela rend les réseaux de neurones évolutifs tout au long de leur apprentissage.
Avec Py Torch, il est possible d'ajouter de nouveaux nœuds, d'effectuer des modifications sur ceux-ci, et ce, même entre couches.
En ce qui concerne Tensor Flow, le choix est plutôt porté sur des graphes statiques. Il est donc nécessaire de définir, dans un premier temps, le graphe de calcul avant de se servir de la session pour calculer les résultats du tenseur. Le débogage du code en devient plus complexe et la mise en œuvre plus éprouvante.
Débogage
Comme il a été fait mention précédemment, la bonne intégration de Py Torch à Python rend possible l'utilisation du débogueur python standard. Le développeur n'a plus besoin d'apprendre l'utilisation d'un nouveau débogueur.
Avec Tensor Flow par contre, deux choix s'offrent pour le débogage dont l'un est l'apprentissage du débogueur TF. Le second choix fait appel à des variables requises à la session.
Comment télécharger Pytorch ?
Vous pouvez télécharger le framework en vous rendant sur pytorch.org, le site du projet. Cela requiert toutefois de configurer un environnement Python préalablement.
Anaconda est le gestionnaire de package le plus recommandé pour cela, car il vous fournira, en une seule installation, toutes les dépendances de Py Torch dans un environnement sécurisé.
Une précision importante pour les utilisateurs de Windows est qu'il faut s'assurer d'installer Python 3.7, 3.8 ou 3.9, car seuls ceux-ci sont supportés par Pytorch sur le système d'exploitation.
Comment installer Py Torch ?
Pour installer Py Torch, vous devez retrouver l'assistant d'installation sur la page d'installation du framework disponible sur son site web. Il vous faudra ensuite sélectionner différentes options afin de fournir vos informations système et configurer vos préférences.
Une fois cela effectué, vous pourrez obtenir une commande à exécuter dans l'invite Anaconda. Votre installation devrait alors se dérouler sans encombre.
Pour vous assurer de sa réussite, vous pouvez ouvrir le shell interactif Python et essayer d'importer Pytorch. Si vous ne recevez aucun message d'erreur, Pytorch est parfaitement installé.
CMO