Brevitas
Brevitas 是一个用于神经网络量化的 PyTorch 库,支持训练后量化 (PTQ) 和量化感知训练 (QAT)。
请注意,Brevitas 是一个研究项目,而非 Xilinx 的官方产品。
如果您喜欢这个项目,请考虑给这个仓库点个 ⭐,这是支持它最简单和最好的方式。
要求
- Python >= 3.8。
- Pytorch >= 1.9.1, <= 2.1(更新版本未经测试)。
- Windows、Linux 或 macOS。
- GPU 训练加速(可选但推荐)。
安装
您可以从 PyPI 安装最新版本:
pip install brevitas
入门
Brevitas 目前在 brevitas.nn
下提供了最常用的 PyTorch 层的量化实现,如 QuantConv1d
、QuantConv2d
、QuantConvTranspose1d
、QuantConvTranspose2d
、QuantMultiheadAttention
、QuantRNN
、QuantLSTM
等,可用于 PTQ 和/或 QAT。
对于每一层,可以根据广泛的量化设置单独调整不同张量(输入、权重、偏置、输出等)的量化。
作为 PTQ 的参考,Brevitas 在 brevitas_examples.imagenet_classification.ptq
下提供了 ImageNet 分类模型的示例用户流程,该流程使用 PTQ 在不同量化配置(如位宽、尺度粒度等)下量化输入的 torchvision 模型。
更多信息,请查看我们的入门指南。
引用
如果您在工作中采用 Brevitas,请按以下方式引用:
@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}
}
历史
- 2024/02/19 - 次要版本 0.10.2 发布,请查看发布说明。
- 2024/02/15 - 次要版本 0.10.1 发布,请查看发布说明。
- 2023/12/08 - 版本 0.10.0 发布,请查看发布说明。
- 2023/04/28 - 次要版本 0.9.1 发布,请查看发布说明。
- 2023/04/21 - 版本 0.9.0 发布,请查看发布说明。
- 2023/01/10 - 版本 0.8.0 发布,请查看发布说明。
- 2021/12/13 - 版本 0.7.1 发布,修复了一些问题。添加了 TVMCon 2021 教程笔记本。
- 2021/11/03 - 在 PyPI 上重新发布版本 0.7.0(构建 1)以修复打包问题。
- 2021/10/29 - 版本 0.7.0 发布,请查看发布说明。
- 2021/06/04 - 版本 0.6.0 发布,请查看发布说明。
- 2021/05/24 - 版本 0.5.1 发布,修复了一些小问题。请查看发布说明。
- 2021/05/06 - 版本 0.5.0 发布,请查看发布说明。
- 2021/03/15 - 版本 0.4.0 发布,为 QuantTensor 添加了对 __torch_function__ 的支持。
- 2021/03/04 - 版本 0.3.1 发布,修复了在 IGNORE_MISSING_KEYS=1 时从统计数据初始化 act 的错误。
- 2021/03/01 - 版本 0.3.0 发布,在扩展依赖注入器中实现了枚举和形状求解器。这允许声明性量化器是自包含的。
- 2021/02/04 - 版本 0.2.1 发布,包括各种带零点的 QuantTensor 的错误修复。
- 2021/01/30 - 在 PyPI 上发布第一个版本 0.2.0。