This repository aim to try out different pruning-approaches on lightweight Backbones.
- Training
python main.py --arch MobileNetV2 (for l1norm pruner ) python main.py --sr --arch MobileNetV2 (for slimming pruner) python main.py --arch USMobileNetV2 (for Autoslim pruner )
- Pruning (prune+finetune)
python prune.py --arch MobileNetV2 --pruner l1normpruner --pruneratio 0.6 python prune.py --arch MobileNetV2 --pruner SlimmingPruner --sr --pruneratio 0.6 python prune.py --arch USMobileNetV2 --pruner AutoSlimPruner
BackBone | Pruner | Prune Ratio | Original/Pruned/Finetuned Accuracy | FLOPs(M) | Params(M) |
---|---|---|---|---|---|
MobileV2 | L1-Norm | 0.6 | 0.937/0.100/0.844 | 313.5->225.5 | 2.24->1.15 |
MobileV2 | Slimming | 0.6 | 0.922/0.485/0.915 | 313.5->214.5 | 2.24->0.98 |
MobileV2 | AutoSlim | <200 flops | 0.920/0.561/0.916 | 313.5->199.67 | 2.24->0.81 |
- l1-norm pruner
- Slimming pruner
- AutoSlim
- ThiNet
- Soft filter pruning
....
- MobileV2
- ShuffleNet
....