Giter Site home page Giter Site logo

fskd's Introduction

Few Sample Knowledge Distillation for Efficient Network Compression

This repository contains the samples code for FSKD, Few Sample Knowledge Distillation for Efficient Network Compression (CVPR 2020) by Tianhong Li, Jianguo Li, Zhuang Liu and Changshui Zhang.

The repo shows how to train a VGG-16 model on CIFAR-10 and then prune it with very few unlabeled samples using FSKD. It can also be extended to other models, network pruning / decoupling methods and datasets.

Training VGG-16

python main.py --dataset cifar10 --arch vgg --depth 16 --lr 0.01

Prune and FSKD

python vggprune_pruning.py --dataset cifar10 --depth 16 --model [PATH TO THE MODEL] --save [DIRECTORY TO STORE RESULT] --num_sample 500

main.py

This file performs training of different network structure. You can specify the training parameter as well as whether using sparsity training or not.

vggprune_pruning.py

This file performs FSKD on specified VGG pretrained model. You can specify the number of samples used here. The script first build up the pruned VGG model from the original model. It then add the additional 1x1 conv layer, performs FSKD layer by layer (recover_one_layer()), and finally absorb the additional 1x1 conv layer back to the model.

TIPs

To apply FSKD on your own model and dataset, you may pay more attention on these several functions: add_pwconv() and absorb_pwconv() in models/vgg.py which add and merge the 1x1 conv layer, and recover_one_layer() in vggprune_pruning.py, which estimates the parameters of one 1x1 conv layer using few samples.

fskd's People

Contributors

lth14 avatar

Stargazers

jjunsss avatar  avatar  avatar wnma avatar  avatar Doki En avatar 十四 avatar  avatar Lijie Fan avatar 爱可可-爱生活 avatar Liangwei Jiang avatar TigerLiang avatar tf1997 avatar SeventhHeaven avatar  avatar Ren Tianhe avatar Bencheng avatar IronMan avatar Xin Ding avatar  avatar Zhuoyi Zhang avatar Bert Fan avatar MeowFET avatar SunshineZhang avatar xh avatar shuo avatar Yuxi Li avatar  avatar yanziang avatar

Watchers

 avatar  avatar SunshineZhang avatar paper2code - bot avatar

fskd's Issues

关于论文的问题

这里我有个问题:裁剪后的模型(剩余层)学习教师模型保留的参数(也是剩余层),无非两个一样的层之间多了个1×1卷积,应该没有区别的吗?

I have a question about this paper.

image

  1. Is 'feature map resolution size' and 'feature map size' different?
    I wonder about the clear definition about 'feature map resolution size'.

  2. Why is X's matrix form n x d ?
    I think the output size should be 3-dimension but I don't know why it's 2-dimension.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.