Clone o repo
git clone https://github.com/peterliht/knowledge-distillation-pytorch.git
Instale as dependências (incluindo Pytorch)
pip install -r requirements.txt
Nota: Todos os hiperparâmetros podem ser encontrados e modificados em 'params.json' em 'model_dir'
-Treine uma CNN de 5 camadas com conhecimento destilado de um modelo Resnet-18 pré-treinado
python train.py --model_dir experiments/cnn_distill
-Treine um modelo RESNET-18 com conhecimento destilado de um professor de resnext-29 pré-treinado
python train.py --model_dir experiments/resnet18_distill/resnext_teacher
- Pesquisa de hyperparameter por um experimento especificado ('parent_dir/params.json')
python search_hyperparams.py --parent_dir experiments/cnn_distill_alpha_temp
-Synteselize Resultados das recentes experimentos de pesquisa hiperagem
python synthesize_results.py --parent_dir experiments/cnn_distill_alpha_temp
Tocas rápidas (mais detalhes a serem adicionados):
-Destilação de conhecimento de Resnet-18 para CNN de 5 camadas
| Modelo | Abandono = 0,5 | Sem abandono |
|---|---|---|
| CNN de 5 camadas | 83,51% | 84,74% |
| CNN de 5 camadas com resnet18 | 84,49% | 85,69% |
- Destilação de conhecimento de modelos mais profundos para Resnet-18
| Modelo | Precisão do teste |
|---|---|
| Baseling Resnet-18 | 94,175% |
| + Kd wideresnet-28-10 | 94,333% |
| + Kd prereresnet-110 | 94,531% |
| + KD Densenet-100 | 94,729% |
| + KD Resnext-29-8 | 94,788% |
H. Li, "Explorando a destilação do conhecimento de redes neurais profundas para soluções de hardware eficientes", Relatório CS230, 2018
Hinton, Geoffrey, Oriol Vinyals e Jeff Dean. "Destilar o conhecimento em uma rede neural". Arxiv pré -impressão Arxiv: 1503.02531 (2015).
Romero, A., Ballas, N., Kahou, SE, Chassang, A., Gatta, C., & Bengo, Y. (2014). Fit -Nets: Dicas para redes profundas finas. Arxiv pré -impressão Arxiv: 1412.6550.
https://github.com/cs230-stanford/cs230-stanford.github.io
https://github.com/bearpaw/pytorch-classification