All Projects → lehduong → kesi

lehduong / kesi

Licence: MIT license
Knowledge distillation from Ensembles of Iterative pruning (BMVC 2020)

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to kesi

torchprune
A research library for pytorch-based neural network pruning, compression, and more.
Stars: ✭ 133 (+478.26%)
Mutual labels:  weight-pruning, filter-pruning
DS-Net
(CVPR 2021, Oral) Dynamic Slimmable Network
Stars: ✭ 204 (+786.96%)
Mutual labels:  network-pruning
batchnorm prune
Tensorflow codes for "Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layers"
Stars: ✭ 30 (+30.43%)
Mutual labels:  network-pruning
compress-net-notes
No description or website provided.
Stars: ✭ 20 (-13.04%)
Mutual labels:  network-pruning
CAE-ADMM
CAE-ADMM: Implicit Bitrate Optimization via ADMM-Based Pruning in Compressive Autoencoders
Stars: ✭ 34 (+47.83%)
Mutual labels:  network-pruning
Regularization-Pruning
[ICLR'21] PyTorch code for our paper "Neural Pruning via Growing Regularization"
Stars: ✭ 44 (+91.3%)
Mutual labels:  filter-pruning
group sparsity
Group Sparsity: The Hinge Between Filter Pruning and Decomposition for Network Compression. CVPR2020.
Stars: ✭ 45 (+95.65%)
Mutual labels:  filter-pruning

Gift from Iterative Network Pruning

This repository contains the code for reproducing the results for paper Paying more attention to Snapshot of Iterative Pruning: Improving Model Compression via Ensemble Distillation (BMVC 2020).

Summary

In short, the paper propose to leverage the snapshots of iterative pruning to construct ensembles and distilling knowledge from them. To stimulate the diversity between each snapshots, we use One-cycle schedule to retrain the pruned networks. Thus, each snapshot is encouraged to converge to different optimal solution.

The algorithm is summarized below:

  1. Train the baseline network to completion.
  2. Prune redundant weights (based on some criteria).
  3. Retrain with One-cycle learning rate.
  4. Repeat step 2 and 3 until desired compression ratio is reached.
  5. Distill knowledge from ensemble to desired network.

How to run

Please checkout example.pynb for detail instruction to reproduce the results on CIFAR. Instruction for running experiments on Tiny-Imagenet might be updated later.

We also provided the scripts for repeative pruning and knowledge distillation (read Sec.5 in Colab example). Disclamer: you might have to modify the checkpoint_paths variable in ensemble_finetune.py to appropriate paths (and by that I mean cifar/filter_pruning/ensemble_finetune.py, cifar/weight_pruning/ensemble_finetune.py,... depending on your chosen method/dataset).

Results

CIFAR-10 and CIFAR-100.

Results on CIFAR

Tiny-Imagenet

Results on Tiny-Imagenet

PFEC and MWP stand for Pruning Filters for Efficient ConvNets and Learning both Weights and Connections for Efficient Neural Networks respectively.

Acknowledgement

The code is mostly taken from Eric-mingjie's repository

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].