Código Pytorch por "prestar mais atenção à atenção: melhorando o desempenho das redes neurais convolucionais via transferência de atenção" https://arxiv.org/abs/1612.03928
Documento de conferência em ICLR2017: https://openreview.net/forum?id=sks9_ajex
O que há neste repositório até agora:
Chegando:
O código usa Pytorch https://pytorch.org. Observe que os experimentos originais foram realizados usando tocha-autogrado, até agora validamos que as experiências do CIFAR-10 são exatamente reproduzíveis em Pytorch e estão em processo de fazê-lo para o ImageNet (os resultados são muito piores no pytorch, devido a hiperparametos).
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}}
Primeiro instale o pytorch e depois instale o Torchnet:
pip install git+https://github.com/pytorch/tnt.git@master
Em seguida, instale outros pacotes Python:
pip install -r requirements.txt
Esta seção descreve como obter os resultados na Tabela 1 do artigo.
Primeiro, treinar professores:
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
Para treinar com base baseada em ativação no DO:
python cifar.py --save logs/at_16_1_16_2 --teacher_id resnet_16_2_teacher --beta 1e+3
Para treinar com KD:
python cifar.py --save logs/kd_16_1_16_2 --teacher_id resnet_16_2_teacher --alpha 0.9
Planejamos adicionar em+kd com a engenharia beta para obter os melhores resultados de transferência de conhecimento em breve.
Fornecemos o modelo RESNET-18 Preencidido com ativação baseada em:
| Modelo | Erro Val |
|---|---|
| Resnet-18 | 30.4, 10.8 |
| Resnet-18-RESNET-34-AT | 29.3, 10.0 |
Download Link: https://s3.amazonaws.com/modelzoo-networks/resnet-18-at-export.th
Definição do modelo: https://github.com/szagoruyko/functional-zoo/blob/master/resnet-18-at-export.ipynb
Lote de convergência:
Faça o download de pesos pré-ridicularizados para Resnet-34 (consulte também o Functional-Zoo para obter mais informações):
wget https://s3.amazonaws.com/modelzoo-networks/resnet-34-export.pth
Prepare os dados seguintes a FB.resnet.torch e execute o treinamento (por exemplo, usando 2 GPUs):
python imagenet.py --imagenetpath ~/ILSVRC2012 --depth 18 --width 1
--teacher_params resnet-34-export.hkl --gpu_id 0,1 --ngpu 2
--beta 1e+3