Brevitas


Brevitas est une bibliothèque Pytorch pour la quantification du réseau neuronal, avec un support à la fois pour la quantification post-formation (PTQ) et la formation de quantification (QAT) .
Veuillez noter que Brevitas est un projet de recherche et non un produit Xilinx officiel.
Si vous aimez ce projet, veuillez considérer ce dépôt, car c'est le moyen le plus simple et le meilleur de le soutenir.
Exigences
- Python> = 3,8.
- Pytorch> = 1.9.1, <= 2.1 (les versions plus récentes ne seraient pas testées).
- Windows, Linux ou MacOS.
- Accélération du temps de formation du GPU ( facultatif mais recommandé).
Installation
Vous pouvez installer la dernière version de PYPI:
Commencer
Brevitas propose actuellement des implémentations quantifiées des couches Pytorch les plus courantes utilisées dans DNN sous brevitas.nn , telles que QuantConv1d , QuantConv2d , QuantConvTranspose1d , QuantConvTranspose2d , QuantMultiheadAttention , QuantRNN , QuantLSTM pour adoption dans PTQ et / ou QAT. Pour chacune de ces couches, la quantification de différents tenseurs (entrées, poids, biais, sorties, etc.) peut être réglée individuellement en fonction d'une large gamme de paramètres de quantification.
En tant que référence pour PTQ, Brevitas fournit un exemple de flux d'utilisateurs pour les modèles de classification ImageNet sous brevitas_examples.imagenet_classification.ptq qui quanmente un modèle de torchion d'entrée utilisant PTQ sous différentes configurations de quantification (par exemple, largeur bit, granularité d'échelle, etc.).
Pour plus d'informations, consultez notre guide de démarrage.
Citer comme
Si vous adoptez des brevitas dans votre travail, veuillez le citer comme:
@software{brevitas,
author = {Alessandro Pappalardo},
title = {Xilinx/brevitas},
year = {2023},
publisher = {Zenodo},
doi = {10.5281/zenodo.3333552},
url = {https://doi.org/10.5281/zenodo.3333552}
}
Histoire
- 2024/10/10 - version de version 0.11.0, voir les notes de sortie.
- 2024/07/23 - Version de version mineure 0.10.3, voir les notes de sortie.
- 2024/02/19 - Version de version mineure 0.10.2, voir les notes de publication.
- 2024/02/15 - Version de version mineure 0.10.1, voir les notes de publication.
- 2023/12/08 - version de version 0.10.0, voir les notes de version.
- 2023/04/28 - Version de version mineure 0.9.1, voir les notes de publication.
- 2023/04/21 - version de version 0.9.0, voir les notes de sortie.
- 2023/01/10 - version de version 0.8.0, voir les notes de sortie.
- 2021/12/13 - Version de la version 0.7.1, résolvez un tas de problèmes. Ajout du cahier de didacticiel TVMCON 2021.
- 2021/11/03 - Re-Release Version 0.7.0 (Build 1) sur PYPI pour résoudre un problème d'emballage.
- 2021/10/29 - version de version 0.7.0, voir les notes de sortie.
- 2021/06/04 - version de version 0.6.0, voir les notes de version.
- 2021/05/24 - Version de la version 0.5.1, résolvez un tas de problèmes mineurs. Voir les notes de libération.
- 2021/05/06 - version de version 0.5.0, voir les notes de publication.
- 2021/03/15 - Version de la version 0.4.0, ajoutez la prise en charge de __torch_function__ pour quarttensor.
- 2021/03/04 - Version de la version 0.3.1, corrigez le bug avec une initialisation d'action à partir des statistiques w / ignore_missing_keys = 1.
- 2021/03/01 - Libérez la version 0.3.0, met en œuvre des résolveurs d'énumération et de forme dans les injecteurs de dépendance étendus. Cela permet aux quantification déclarative d'être autonomes.
- 2021/02/04 - Version de la version 0.2.1, inclut divers bugfixs de montant avec un point zéro.
- 2021/01/30 - Version de première version 0.2.0 sur PYPI.