Cloner le repo
git clone https://github.com/peterliht/knowledge-distillation-pytorch.git
Installez les dépendances (y compris Pytorch)
pip install -r requirements.txt
Remarque: Tous les hyperparamètres peuvent être trouvés et modifiés dans 'params.json' sous 'modèle_dir'
- Former un CNN à 5 couches avec des connaissances distillées à partir d'un modèle RESNET-18 préfabriqué
python train.py --model_dir experiments/cnn_distill
- Former un modèle RESNET-18 avec des connaissances distillées à partir d'un enseignant Resnext-29 pré-formé
python train.py --model_dir experiments/resnet18_distill/resnext_teacher
- Recherche d'hyperparamètre d'une expérience spécifiée ('parent_dir / params.json')
python search_hyperparams.py --parent_dir experiments/cnn_distill_alpha_temp
--synthétiser les résultats des récentes expériences de recherche Hypersearch
python synthesize_results.py --parent_dir experiments/cnn_distill_alpha_temp
Des plats à emporter rapides (plus de détails à ajouter):
- Distillation des connaissances de RESNET-18 à 5 couches CNN
| Modèle | Abandon = 0,5 | Pas de décroche |
|---|---|---|
| CNN à 5 couches | 83,51% | 84,74% |
| CNN à 5 couches avec Resnet18 | 84,49% | 85,69% |
- Distillation des connaissances des modèles plus profonds à Resnet-18
| Modèle | Précision de test |
|---|---|
| Resnet-18 de base | 94,175% |
| + KD plus large-28-10 | 94,333% |
| + KD Preresnet-110 | 94,531% |
| + KD densenet-100 | 94,729% |
| + KD RESNEXT-29-8 | 94,788% |
H. Li, «Exploration de la distillation des connaissances des filets neuronaux profonds pour des solutions matérielles efficaces», Rapport CS230, 2018
Hinton, Geoffrey, Oriol Vinyals et Jeff Dean. "Distillant les connaissances dans un réseau neuronal." ARXIV Préprint Arxiv: 1503.02531 (2015).
Romero, A., Ballas, N., Kahou, SE, Chassang, A., Gatta, C., et Bengio, Y. (2014). FITNETS: Conseils pour les minces filets profonds. ARXIV PRÉALLAGE ARXIV: 1412.6550.
https://github.com/cs230-stanford/cs230-stanford.github.io
https://github.com/bearpaw/pytorch-classification