Skip to content
[ECCV 2018] Compressed models from AMC: AutoML for Model Compression and Acceleration on Mobile Devices.
Branch: master
Clone or download
Latest commit 67f80a9 Apr 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
checkpoints Initial commit. Apr 8, 2019
logs Initial commit. Apr 8, 2019
models Initial commit. Apr 8, 2019
LICENSE Add MAC stats. Apr 8, 2019 Initial commit. Apr 8, 2019 Initial commit. Apr 8, 2019

AMC Compressed Models

This repo contains some of the compressed models from paper AMC: AutoML for Model Compression and Acceleration on Mobile Devices (ECCV18).


If you find the models useful, please kindly cite our paper:

  title={Amc: Automl for model compression and acceleration on mobile devices},
  author={He, Yihui and Lin, Ji and Liu, Zhijian and Wang, Hanrui and Li, Li-Jia and Han, Song},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},

Download the Pretrained Models

Firstly, download the pretrained models from here and put it in ./checkpoints.


Compressed MobileNets

We provide compressed MobileNetV1 by 50% FLOPs and 50% Inference time, and also compressed MobileNetV2 by 70% FLOPs, with PyTorch. The comparison with vanila models as follows:

Models Top1 Acc (%) Top5 Acc (%) Latency (ms) MACs (M)
MobileNetV1 70.9 89.5 123 569
MobileNetV1-width*0.75 68.4 88.2 72.5 325
MobileNetV1-50%FLOPs 70.5 89.3 68.9 285
MobileNetV1-50%Time 70.2 89.4 63.2 272
MobileNetV2-width*0.75 69.8 89.6 - 300
MobileNetV2-70%FLOPs 70.9 89.9 - 210

To test the model, run:

python --profile={mobilenet_0.5flops, mobilenet_0.5time, mobilenetv2_0.7flops}

Converted TensorFLow Models

We converted the 50% FLOPs and 50% time compressed MobileNetV1 model to TensorFlow. We offer the normal checkpoint format and also the TF-Lite format. We used the TF-Lite format to test the speed on MobileNet.

To replicate the results of PyTorch, we write a new preprocessing function, and also adapt some hyper-parameters from the original TF MobileNetV1. To verify the performance, run following scripts:

python --profile={0.5flops, 0.5time}

The produced result is:

Models Top1 Acc (%) Top5 Acc (%)
50% FLOPs 70.424 89.28
50% Time 70.214 89.244

Timing Logs

Here we provide timing logs on Google Pixel 1 using TensorFlow Lite in ./logs directory. We benchmarked the original MobileNetV1 (mobilenet), MobileNetV1 with 0.75 width multiplier (0.75mobilenet), 50% FLOPs pruned MobileNetV1 (0.5flops) and 50% time pruned MobileNetV1 (0.5time). Each model is benchmarked for 200 iterations with extra 100 iterations for warming up, and repeated for 3 runs.


To contact the authors:

Ji Lin,

Song Han,

You can’t perform that action at this time.