Skip to main content

Model Compression Toolkit (MCT)

tests

Model Compression Toolkit (MCT) is an open-source project for neural network model optimization under efficient, constrained hardware. This project provides researchers, developers, and engineers tools for optimizing and deploying state-of-the-art neural networks on efficient hardware. Specifically, this project aims to apply quantization and pruning schemes to compress neural networks.

Currently, this project supports hardware-friendly post-training quantization (HPTQ) with Tensorflow 2 and Pytorch [1].

The MCT project is developed by researchers and engineers working at Sony Semiconductors Israel.

For more information, please visit our project website.

Table of Contents

Getting Started

This section provides a quick starting guide. We begin with installation via source code or pip server. Then, we provide a short usage example.

Installation

See the MCT install guide for the pip package, and build from the source.

From Source

git clone https://github.com/sony/model_optimization.git
python setup.py install

From PyPi - latest stable release

pip install model-compression-toolkit

A nightly package is also available (unstable):

pip install mct-nightly

To run MCT, one of the supported frameworks, Tenosflow/Pytorch, needs to be installed.

For using with Tensorflow please install the packages: tensorflow, tensorflow-model-optimization

For using with Pytorch (experimental) please install the packages: torch

MCT is tested with:

  • Tensorflow version 2.7
  • Pytorch version 1.10.0

Usage Example

For an example of how to use the post-training quantization, using Keras, please use this link.

For an example using Pytorch (experimental), please use this link.

For more examples please see the tutorials' directory.

Supported Features

Quantization:

  • Post Training Quantization for Keras models.
  • Post Training Quantization for Pytorch models (experimental).
  • Gradient-based post-training (Experimental, Keras only).
  • Mixed-precision post-training quantization (Experimental).

Tensorboard Visualization (Experimental):

  • CS Analyzer: compare a model compressed with the original model to analyze large accuracy drops.
  • Activation statistics and errors

Results

Keras

As part of the MCT library, we have a set of example networks on image classification. These networks can be used as examples when using the package.

  • Image Classification Example with MobileNet V1 on ImageNet dataset
Network Name Float Accuracy 8Bit Accuracy Comments
MobileNetV1 [2] 70.558 70.418

For more results please see [1]

Pytorch

We quantized classification networks from the torchvision library. In the following table we present the ImageNet validation results for these models:

Network Name Float Accuracy 8Bit Accuracy
MobileNet V2 [3] 71.886 71.444
ResNet-18 [3] 69.86 69.63
SqueezeNet 1.1 [3] 58.128 57.678

Contributions

MCT aims at keeping a more up-to-date fork and welcomes contributions from anyone.

*You will find more information about contributions in the Contribution guide.

License

Apache License 2.0.

References

[1] Habi, H.V., Peretz, R., Cohen, E., Dikstein, L., Dror, O., Diamant, I., Jennings, R.H. and Netzer, A., 2021. HPTQ: Hardware-Friendly Post Training Quantization. arXiv preprint.

[2] MobilNet from Keras applications.

[3] TORCHVISION.MODELS

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mct-nightly-1.5.0.27072022.post405.tar.gz (258.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mct_nightly-1.5.0.27072022.post405-py3-none-any.whl (500.0 kB view details)

Uploaded Python 3

File details

Details for the file mct-nightly-1.5.0.27072022.post405.tar.gz.

File metadata

File hashes

Hashes for mct-nightly-1.5.0.27072022.post405.tar.gz
Algorithm Hash digest
SHA256 a6ff7a839ec857c37d120fc9209afb5d1c6fe586836d15c7d54718cacbf101da
MD5 9a10a1f4d9d2a6ec3463951a6c9a50c3
BLAKE2b-256 db69dc74f1484ea3736a4d3f6cf8465eb484c510f6d8d71bb5516b2598d88db8

See more details on using hashes here.

File details

Details for the file mct_nightly-1.5.0.27072022.post405-py3-none-any.whl.

File metadata

File hashes

Hashes for mct_nightly-1.5.0.27072022.post405-py3-none-any.whl
Algorithm Hash digest
SHA256 ced5599b8f60856823b8d90841f9d3fc7b6fca970ee8f4c5f8dbea11688bfcd5
MD5 e075fa9aaef66759f0d6f5cde4b39c01
BLAKE2b-256 2860e5476da04dfb382db2a3d03a53f6f4aca2f4de095656cbbeba4684b2c5a3

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page