Sten: une interface pour une rareté efficace de Pytorch
Sten vise à résoudre les questions suivantes qui sont restées sans réponse dans la mise en œuvre actuelle (Torch.Sparse) de la rareté dans Pytorch 1.11.
- Comment intégrer une stratégie sparsifiante dans le modèle et l'utiliser dans l'exécution?
- Comment garder le niveau de rareté identique pendant la formation?
- Comment activer le support Autograd complet?
- Comment activer les formats clairsemés personnalisés et les implémentations des opérateurs?
Exemples
- Vérifiez build_from_scratch.ipynb pour voir l'utilisation de l'interface pour créer un module Pytorch à partir de zéro.
- Vérifiez modifier_existing.ipynb pour voir l'exemple de convertissage du module Pytorch dense existant en clairsemé.
- Vérifiez Custom_Implementations.Ipynb pour voir l'exemple de l'enregistrement des implémentations personnalisées pour les sparsifiants et les opérateurs qui correspondent aux formats spécifiques des tenseurs d'entrée et de sortie.
Démarrage rapide
git clone https://github.com/spcl/sten.git
cd sten
python -m venv venv
source venv/bin/activate
pip install .
python tests/test_api.py
Installation
Organisation de code
L'implémentation de base est située dans sten.py. Les exemples de cahier Jupyter se trouvent dans le répertoire des exemples. Encore plus d'exemples peuvent être trouvés sous forme de tests dans le répertoire des tests. Les tests peuvent être exécutés en appelant pytest
dans la racine du projet.