RustyTorch est une bibliothèque de Machine Learning en Rust qui vise à combiner la familiarité de l'API PyTorch avec les avantages de Rust : performance, sécurité mémoire et concurrence sûre. Ce projet est conçu pour les chercheurs et développeurs qui souhaitent exploiter la puissance de Rust tout en conservant la simplicité et la flexibilité qui a rendu PyTorch si populaire.
- 🔢 Tenseurs performants - Opérations tensorielles optimisées avec support SIMD et multithreading
- 🧮 Différentiation automatique - Système complet de différentiation automatique pour l'entraînement de modèles
- 🧠 API de réseau neuronal intuitive - Création de réseaux neuronaux similaire à PyTorch
- 🚀 Optimiseurs avancés - SGD, Adam, AdamW et autres optimiseurs
- 🦀 Idiomatique Rust - Tire parti des fonctionnalités de Rust comme le système de types, la gestion d'erreurs et les traits
- 🔍 Vérification à la compilation - Vérification des dimensions tensorielle à la compilation quand possible
- 🔌 Extensible - Architecture modulaire et facile à étendre
RustyTorch est actuellement en phase de développement actif. Les API peuvent changer pendant que nous travaillons à stabiliser la bibliothèque.
RustyTorch est organisé en plusieurs crates Cargo pour maximiser la modularité et la maintenabilité :
- rustytorch - Crate principal (façade)
- rustytorch-tensor - Module de tenseurs
- rustytorch-autograd - Différentiation automatique
- rustytorch-nn - Couches de réseau neuronal
- rustytorch-optim - Optimiseurs
- Et plus encore...
- Conception de l'architecture
- Module de tenseurs de base
- Autograd (différentiation automatique)
- Couches neuronales fondamentales
- Optimiseurs
- Fonctions de perte
- Support CUDA
- Modèles préentraînés
- Bindings Python
Consultez notre roadmap détaillée pour plus d'informations.
Les contributions sont les bienvenues ! Veuillez consulter CONTRIBUTING.md pour les directives sur la façon de contribuer au projet.
RustyTorch est distribué sous les termes d'une double licence - soit sous la licence MIT ou la licence Apache 2.0 au choix.
RustyTorch s'inspire de plusieurs projets existants :