Code pytorch pour "prêter plus d'attention à l'attention: améliorer les performances des réseaux de neurones convolutionnels via le transfert d'attention" https://arxiv.org/abs/1612.03928
Document de conférence sur ICLR2017: https://openreview.net/forum?id=SKS9_AJEX
Qu'y a-t-il dans ce dépôt jusqu'à présent:
À venir:
Le code utilise Pytorch https://pytorch.org. Notez que les expériences originales ont été réalisées en utilisant Torch-Autograd, nous avons jusqu'à présent validé que les expériences CIFAR-10 sont exactement reproductibles dans le pytorch, et sont en cours de le faire pour l'imageNet (les résultats sont très légèrement pires dans le pytorche, en raison d'hyperparamètres).
Bibtex:
@inproceedings{Zagoruyko2017AT,
author = {Sergey Zagoruyko and Nikos Komodakis},
title = {Paying More Attention to Attention: Improving the Performance of
Convolutional Neural Networks via Attention Transfer},
booktitle = {ICLR},
url = {https://arxiv.org/abs/1612.03928},
year = {2017}}
Installez d'abord Pytorch, puis installez Torchnet:
pip install git+https://github.com/pytorch/tnt.git@master
Ensuite, installez d'autres packages Python:
pip install -r requirements.txt
Cette section décrit comment obtenir les résultats du tableau 1 du document.
Tout d'abord, les enseignants du train:
python cifar.py --save logs/resnet_40_1_teacher --depth 40 --width 1
python cifar.py --save logs/resnet_16_2_teacher --depth 16 --width 2
python cifar.py --save logs/resnet_40_2_teacher --depth 40 --width 2
S'entraîner avec l'activation basée sur DO:
python cifar.py --save logs/at_16_1_16_2 --teacher_id resnet_16_2_teacher --beta 1e+3
S'entraîner avec KD:
python cifar.py --save logs/kd_16_1_16_2 --teacher_id resnet_16_2_teacher --alpha 0.9
Nous prévoyons d'ajouter AT + KD avec beta en décomposition pour obtenir les meilleurs résultats de transfert de connaissances bientôt.
Nous fournissons un modèle RESNET-18 pré-traqué avec une activation basée sur:
| Modèle | Erreur Val |
|---|---|
| RESNET-18 | 30.4, 10.8 |
| Resnet-18-RESNET-34-AT | 29.3, 10.0 |
Lien de téléchargement: https://s3.amazonaws.com/modelzoo-networks/resnet-18-at-export.pth
Définition du modèle: https://github.com/szagoruyko/fonctional-zoo/blob/master/resnet-18-at-export.ipynb
Terrain de convergence:
Téléchargez des poids pré-entraînés pour RESNET-34 (voir également fonctionnel-zoo pour plus d'informations):
wget https://s3.amazonaws.com/modelzoo-networks/resnet-34-export.pth
Préparez les données suivant fb.resnet.torch et exécutez la formation (par exemple en utilisant 2 GPU):
python imagenet.py --imagenetpath ~/ILSVRC2012 --depth 18 --width 1
--teacher_params resnet-34-export.hkl --gpu_id 0,1 --ngpu 2
--beta 1e+3