Release v1.10.0
What's Changed
Major Updates:
- Data Generation Library: The Data Generation Library has been added to the Model Compression Toolkit (MCT) project. This library allows users to generate synthetic data for compressing their models and enables quantization without requiring user-provided data. Check out an example of quantizing a model using generated data for torchvision's ResNet18 in this notebook.
General Changes:
- TensorFlow and PyTorch Support: Added support for TensorFlow 2.12 and 2.13, as well as PyTorch 2.0.
- Dependency Cleanup: All dependencies on 'tensorflow-model-optimization' have been removed.
- Quick-Start Tutorial: The quick-start tutorial has been updated with additional GPTQ and Mixed Precision (MP) options and minor bug fixes.
- New TPC: Added IMX500 TPC with weights quantized using non-uniform quantization (LookUp-Table).
Breaking Changes:
- Quantizer Identifier: Replaced the "quantizer_type" property with a new "identifier" property for all trainable quantizers. Each quantizer now has a dedicated identifier.
- ** Changes in Look-up Table (LUT) quantizers**: In Keras and PyTorch:
- Class variables names have been modified to align with MCT Quantizers names:
cluster_centers
->lut_values
multiplier_n_bits
->lut_values_bitwidth
lut_values
is now converted from a numpy array to a list before exporting the model.
- Class variables names have been modified to align with MCT Quantizers names:
Added Features:
- Forward-Fold Layers: Added support for forward-folding BatchNorm and DW-Conv with 1x1 kernel layers for improved quantization.
- Zero in LUT grid: LUT now explicitly includes zero in the quantization grid.
Improvements:
- Quick-Start Enhancements: Improved quick-start for running pre-trained models in MCT.
- Notebook Addition: Added a notebook for running pre-trained models in MCT and a notebook for quantizing a model using images generated with the data generation library.
- Mixed Precision Quantization: Mixed precision quantization is now applied using MCT Quantizers infrastructure.
- Configurable Quantizer Classes: Introduced new 'ConfigurableWeightsQuantizer' and `ConfigurableActivationQuantizer' quantizer classes to support mixed precision search, replacing the SelectiveQuantizer mechanism.
- BOPs Computation Fix: Fixed bit operations (BOPs) computation in mixed precision in the BOPs restriction scenario.
Fixed Issues:
- Param Search in SNC: Fixed param search during shift negative correction (SNC) in PyTorch [#771].
- Second Momentum Correction: Fixed second momentum correction when SNC is enabled [#771].
- Irrelevant Warning: Resolved an irrelevant warning related to the Kmeans function when running LUT quantization (no effect on the usability of the quantizer).
New Contributors
- @alexander-sony made their first contribution in #742
Contributors:
@alexander-sony @lior-dikstein @reuvenperetz @ofirgo @elad-c @eladc-git @haihabi @lapid92
Full Changelog: v1.9.0...v1.10.0