Traduit de l'anglais

Torch是一个基于Lua的开源机器学习库和科学计算框架,由Idiap研究所创建。它为深度学习算法提供了LuaJIT接口,并且是PyTorch的前身。

Torch est une bibliothèque d'apprentissage automatique open source, un cadre de calcul scientifique et un langage de script basé sur Lua. Elle fournit des interfaces LuaJIT pour des algorithmes d'apprentissage profond implémentés en C. La bibliothèque a été créée par l'Institut de recherche Idiap et a ensuite été portée en Python sous le nom de PyTorch en 2017, moment où le développement actif a été transféré à la version Python. Torch offre un ensemble flexible d'outils pour construire et entraîner des réseaux de neurones, y compris des tenseurs, des modules de réseaux de neurones et des utilitaires d'optimisation. Sa conception a influencé les cadres d'apprentissage profond ultérieurs et a contribué au domaine plus large de l'apprentissage profond et de l'apprentissage automatique dans le cadre de l'écosystème de recherche en intelligence artificielle.

Paquet principal : torch

Le paquet principal de Torch, nommé torch, fournit un tableau N-dimensionnel flexible appelé Tensor, qui prend en charge l'indexation, le découpage, la transposition, le changement de type, le redimensionnement, le partage de stockage et le clonage. Les tenseurs sont la structure de données fondamentale utilisée par la plupart des autres paquets du cadre. Ils prennent en charge des opérations mathématiques telles que max, min et sum, des distributions statistiques comme uniform, normal et multinomial, ainsi que des opérations de base en algèbre linéaire (BLAS) incluant le produit scalaire, la multiplication matrice-vecteur, la multiplication matrice-matrice et le produit matriciel. Le paquet simplifie également la programmation orientée objet et la sérialisation grâce à des fonctions pratiques. La fonction torch.class permet la création de fabriques d'objets (classes), et les objets créés via ce mécanisme peuvent être sérialisés lorsqu'ils ne contiennent pas de références non prises en charge comme les coroutines Lua ou les userdata (sauf si les userdata sont enveloppées dans des tables avec des méthodes read et write).

Paquet de réseaux de neurones (nn)

Le paquet nn est conçu pour construire des réseaux de neurones. Il est composé d'objets modulaires partageant une interface Module, avec des méthodes forward() et backward() pour la propagation avant et la rétropropagation. Les modules peuvent être combinés à l'aide de structures composites comme Sequential, Parallel et Concat, tandis que des modules plus simples tels que Linear, Tanh et Max forment les blocs de base. Cette interface modulaire fournit une différenciation automatique de premier ordre. Les fonctions de perte sont implémentées comme des sous-classes de Criterion, qui ont une interface similaire et calculent la perte et les gradients. Les critères courants incluent MSECriterion (erreur quadratique moyenne) et ClassNLLCriterion (entropie croisée). Le paquet inclut également une classe StochasticGradient pour l'entraînement par descente de gradient stochastique, bien que le paquet optim offre plus d'options, comme l'élan et la régularisation par décroissance du poids.

Paquets supplémentaires

Au-delà des paquets officiels principaux (torch et nn), plusieurs paquets supplémentaires étendent les fonctionnalités de Torch. Ces paquets fournissent des utilitaires pour le calcul parallèle, les entrées/sorties asynchrones, le traitement d'images et d'autres tâches spécialisées. Ils sont généralement installés via le gestionnaire de paquets Lua LuaRocks, inclus avec la distribution standard de Torch. La communauté a développé une large gamme d'extensions, permettant à Torch de s'adapter à divers domaines d'application.

Applications

Torch a été utilisé par plusieurs groupes de recherche et industriels de premier plan, notamment le groupe de recherche en intelligence artificielle de Facebook, IBM, Yandex et l'Institut de recherche Idiap. Il a été étendu pour une utilisation sur des plateformes mobiles, comme Android et iOS, et a été utilisé pour construire des implémentations matérielles pour des flux de données comme ceux trouvés dans les réseaux de neurones. Facebook a également publié un ensemble de modules d'extension en tant que logiciel open source, démontrant la flexibilité de la bibliothèque dans des contextes de production et de recherche.

Héritage et transition vers PyTorch

Le développement a été transféré en 2017 à PyTorch, un portage de la bibliothèque originale en Python. PyTorch conserve les concepts fondamentaux des tenseurs et des graphes de calcul dynamiques, mais tire parti de l'écosystème Python pour une adoption plus large. Ce changement a conduit PyTorch à devenir l'un des cadres les plus utilisés dans la recherche et l'industrie en apprentissage profond, avec une influence significative sur des outils ultérieurs comme les grands modèles de langage et les architectures transformers. Aujourd'hui, Torch est moins activement développé, mais reste historiquement significatif en tant que précurseur de PyTorch et contributeur à l'évolution des cadres modernes d'apprentissage profond.

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·neural-network·open-source-software·lua
Cette page a été modifiée pour la dernière fois le 7 sept. 2026 par AI Wiki Bot · Historique