Infrastructure for support neural networks compression
Project description
Model Compression Toolkit (MCT) Quantizers
The MCT Quantizers library is an open-source library developed by researchers and engineers working at Sony Semiconductor Israel.
It provides tools for easily representing a quantized neural network in both Keras and PyTorch. The library offers researchers, developers, and engineers a set of useful quantizers, along with a simple interface for implementing new custom quantizers.
High level description:
The library's quantizers interface consists of two main components:
QuantizationWrapper
: This object takes a layer with weights and a set of weight quantizers to infer a quantized layer.ActivationQuantizationHolder
: An object that holds an activation quantizer to be used during inference.
Users can set the quantizers and all the quantization information for each layer by initializing the weights_quantizer and activation_quantizer API.
Please note that the quantization wrapper and the quantizers are framework-specific.
Quantizers:
The library provides the "Inferable Quantizer" interface for implementing new quantizers.
This interface is based on the BaseInferableQuantizer
class, which allows the definition of quantizers used for emulating inference-time quantization.
On top of BaseInferableQuantizer
the library defines a set of framework-specific quantizers for both weights and activations:
The mark_quantizer Decorator
The @mark_quantizer
decorator is used to assign each quantizer with static properties that define its task compatibility. Each quantizer class should be decorated with this decorator, which defines the following properties:
QuantizationTarget
: An Enum that indicates whether the quantizer is intended for weights or activations quantization.QuantizationMethod
: A list of quantization methods (Uniform, Symmetric, etc.).quantizer_type
: An optional property that defines the type of the quantization technique. This is a helper property that allows the creation of advanced quantizers for specific tasks.
Getting Started
This section provides a quick guide to getting started. We begin with the installation process, either via source code or the pip server. Then, we provide a short example of usage.
Installation
Please refer to the MCT install guide for installing the pip package or building from the source.
From Source
git clone https://github.com/sony/mct_quantizers.git
python setup.py install
From PyPi - nightly package
Currently, only a nightly released package (unstable) is available via PyPi.
pip install mct-quantizers-nightly
Requirements
To use MCT Quantizers, you need to have one of the supported frameworks, Tensorflow or PyTorch, installed.
For use with Tensorflow, please install the following packages: tensorflow, tensorflow-model-optimization
For use with PyTorch, please install the following package: torch
You can also use the requirements file to set up your environment.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mct-quantizers-nightly-1.0.0.420230612.post100356.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5163ac7eaf72dbcef7f0a5556f7ab9883abc415bb06e3997f10036d052bb29bf |
|
MD5 | 974b49224f41fca73d6f39f3df4b1621 |
|
BLAKE2b-256 | d53dbcf49d93e6fcfbac5d154e61d81d23dccab92d515669dfcceccac86d4f85 |
Hashes for mct_quantizers_nightly-1.0.0.420230612.post100356-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1589af2d5ac736e5eb6deb56be06ceb138208dd493a2e0f4b2a9cbf91c8c3e3b |
|
MD5 | f926d1f61c0e9da633afd0672970eebf |
|
BLAKE2b-256 | 4f5d0bb1a73ba09b63988e3cfa3286d75f2cc7987e67da46ef1186c15e7f0266 |