STEN: Eine Schnittstelle für effiziente Sparsity in Pytorch
STEN zielt darauf ab, die folgenden Fragen zu lösen, die in der aktuellen Implementierung (Torch.sparse) der Sparsity in Pytorch 1.11 unbeantwortet blieben.
- Wie kann ich eine Sparsifizierung in das Modell einbeziehen und sie in der Laufzeit verwenden?
- Wie kann ich während des Trainings das sparsame Niveau gleich halten?
- Wie aktiviere ich die vollständige Autograd -Unterstützung?
- So aktivieren Sie benutzerdefinierte spärliche Formate und Bedienerimplementierungen?
Beispiele
- Überprüfen Sie Build_From_Scratch.ipynb, um die Beispiel Verwendung der Schnittstelle zum Erstellen von Pytorch -Modul von Grund auf neu zu erstellen.
- Überprüfen Sie modify_existing.ipynb, um das Beispiel für das Konvertieren des vorhandenen dichten Pytorch -Moduls in spärlich zu konvertieren.
- Überprüfen Sie Custom_Implementations.ipynb, um das Beispiel für die Registrierung benutzerdefinierter Implementierungen für Sparsimatoren und Operatoren anzuzeigen, die bestimmte Formate von Eingangs- und Ausgabe -Tensoren entsprechen.
Schneller Start
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
Codeorganisation
Die Kernimplementierung befindet sich in Sten.py. Beispiele für Jupyter Notebook befinden sich im Beispielverzeichnis. In Form von Tests im Testverzeichnis finden Sie noch weitere Beispiele. Tests können durchgeführt werden, indem pytest
in der Projektwurzel aufgerufen wird.