Código de Pytorch para "Prestar más atención a la atención: mejorar el rendimiento de las redes neuronales convolucionales a través de la transferencia de atención" https://arxiv.org/abs/1612.03928
Documento de conferencia en ICLR2017: https://openreview.net/forum?id=SKS9_AJEX
¿Qué hay en este repositorio hasta ahora?
Próximo:
El código usa pytorch https://pytorch.org. Tenga en cuenta que los experimentos originales se realizaron con Autogrado de antorcha, hemos validado hasta ahora que los experimentos CIFAR-10 son exactamente reproducibles en Pytorch, y están en proceso de hacerlo para Imagenet (los resultados son muy peores en Pytorch, debido a hiperparámetros).
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}}
Primero instale Pytorch, luego instale la Netnet:
pip install git+https://github.com/pytorch/tnt.git@master
Luego instale otros paquetes de Python:
pip install -r requirements.txt
Esta sección describe cómo obtener los resultados en la Tabla 1 del documento.
Primero, capacite a los maestros:
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 entrenar con la activación en DO:
python cifar.py --save logs/at_16_1_16_2 --teacher_id resnet_16_2_teacher --beta 1e+3
Para entrenar con KD:
python cifar.py --save logs/kd_16_1_16_2 --teacher_id resnet_16_2_teacher --alpha 0.9
Planeamos agregar a+KD con beta en descomposición para obtener los mejores resultados de transferencia de conocimiento pronto.
Proporcionamos el modelo Pret-18 Pretraned con activación basada en:
| Modelo | Error Val |
|---|---|
| Resnet-18 | 30.4, 10.8 |
| Resnet-18-resnet-34-AT | 29.3, 10.0 |
Descargar enlace: https://s3.amazonaws.com/modelzoo-networks/resnet-18-at-export.pth
Definición del modelo: https://github.com/szagoruyko/functional-zoo/blob/master/resnet-18-at-export.ipynb
Parcela de convergencia:
Descargue pesos previos a la aparición para resnet-34 (ver también funcional-zoo para obtener más información):
wget https://s3.amazonaws.com/modelzoo-networks/resnet-34-export.pth
Prepare los datos siguientes FB.Resnet.Torch y ejecute el entrenamiento (por ejemplo, usando 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