QSPARSE provides the open source implementation of the quantization and pruning methods proposed in Learning Low-Precision Structured Subnetworks Using Joint Layerwise Channel Pruning and Uniform Quantization. This library was developed to support and demonstrate strong performance and flexibility among various experiments.
Full Precision | Joint Quantization 4bit and Channel Pruning 75% |
---|---|
import torch.nn as nn
net = nn.Sequential(
nn.Conv2d(3, 32, 5),
nn.ReLU(),
nn.ConvTranspose2d(32, 3, 5, stride=2)
) |
import torch.nn as nn
from qsparse import prune, quantize, convert
net = nn.Sequential(
quantize(nn.Conv2d(3, 32, 5), bits=4),
nn.ReLU(),
prune(sparsity=0.75, dimensions={1}),
quantize(bits=8),
quantize(nn.ConvTranspose2d(32, 3, 5, stride=2), bits=4)
)
# Automatic conversion is available via `convert`.
# Please refer to documentation for more details. |
QSPARSE can be installed from PyPI:
pip install qsparse
Documentation can be accessed from Read the Docs.
Examples of applying QSPARSE to different tasks are provided at examples and mdpi2022.
If you find this open source release useful, please reference in your paper:
Zhang, X.; Colbert, I.; Das, S. Learning Low-Precision Structured Subnetworks Using Joint Layerwise Channel Pruning and Uniform Quantization. Appl. Sci. 2022, 12, 7829. https://doi.org/10.3390/app12157829
@Article{app12157829,
AUTHOR = {Zhang, Xinyu and Colbert, Ian and Das, Srinjoy},
TITLE = {Learning Low-Precision Structured Subnetworks Using Joint Layerwise Channel Pruning and Uniform Quantization},
JOURNAL = {Applied Sciences},
VOLUME = {12},
YEAR = {2022},
NUMBER = {15},
ARTICLE-NUMBER = {7829},
URL = {https://www.mdpi.com/2076-3417/12/15/7829},
ISSN = {2076-3417}
}