@InProceedings{wang2019eigen,
title = {{E}igen{D}amage: Structured Pruning in the {K}ronecker-Factored Eigenbasis},
author = {Wang, Chaoqi and Grosse, Roger and Fidler, Sanja and Zhang, Guodong},
booktitle = {Proceedings of the 36th International Conference on Machine Learning},
pages = {6566--6575},
year = {2019},
volume = {97},
publisher = {PMLR},
pdf = {http://proceedings.mlr.press/v97/wang19g/wang19g.pdf},
url = {http://proceedings.mlr.press/v97/wang19g.html},
}
Download tiny imagenet from "https://tiny-imagenet.herokuapp.com", and place it in ../data/tiny_imagenet. Please make sure there will be two folders, train and val, under the directory of ../data/tiny_imagenet. In either train or val, there will be 200 folders storing the images of each category.
For cifar datasets, it will be automatically downloaded.
How to run?
1. Pretrain model
You can also download the pretrained model from https://drive.google.com/file/d/1hMxj6NUCE1RP9p_ZZpJPhryk2RPU4I-_/view?usp=sharing.
# for pruning with EigenDamage, CIFAR10, VGG19 (one pass)
$ python main_prune.py --config ./configs/exp_for_cifar/cifar10/vgg19/one_pass/base/kfacf_eigen_base.json
# for pruning with EigenDamage, CIFAR100, VGG19
$ python main_prune.py --config ./configs/exp_for_cifar/cifar100/vgg19/one_pass/base/kfacf_eigen_base.json
# for pruning with EigenDamage, TinyImageNet, VGG19
$ python main_prune.py --config ./configs/exp_for_tiny_imagenet/tiny_imagenet/vgg19/one_pass/base/kfacf_eigen_base.json
# for pruning with EigenDamage + Depthwise separable, CIFAR100, VGG19
$ python main_prune_separable.py --config ./configs/exp_for_svd/cifar100/vgg19/one_pass/base/svd_eigendamage.json
Contact
If you have any questions or suggestions about the code or paper, please do not hesitate to contact with Chaoqi Wang(alecwangcq@gmail.com or cqwang@cs.toronto.edu) and Guodong Zhang(gdzhang.cs@gmail.com or gdzhang@cs.toronto.edu).