attention transfer
1.0.0
Pytorch代码“更加关注注意力:通过注意转移提高卷积神经网络的性能” https://arxiv.org/abs/1612.03928
ICLR2017的会议论文:https://openreview.net/forum?id=sks9_ajex
到目前为止,此存储库是什么:
未来:
该代码使用pytorch https://pytorch.org。请注意,原始实验是使用火炬 - autograd进行的,我们已经验证了CIFAR-10实验在Pytorch中完全可以重现,并且正在为ImaTeNet提供此操作(由于超参数,Pytorch的结果在Pytorch中稍差一些)。
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}}
首先安装pytorch,然后安装turchnet:
pip install git+https://github.com/pytorch/tnt.git@master
然后安装其他Python软件包:
pip install -r requirements.txt
本节介绍了如何在论文表1中获取结果。
首先,培训老师:
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
用基于激活的AT训练:
python cifar.py --save logs/at_16_1_16_2 --teacher_id resnet_16_2_teacher --beta 1e+3
用KD训练:
python cifar.py --save logs/kd_16_1_16_2 --teacher_id resnet_16_2_teacher --alpha 0.9
我们计划将AT+KD添加和腐烂的beta ,以尽快获得最佳的知识转移结果。
我们提供基于激活的RESNET-18验证模型:
| 模型 | 瓦尔错误 |
|---|---|
| Resnet-18 | 30.4,10.8 |
| Resnet-18-Resnet-34-AT | 29.3,10.0 |
下载链接:https://s3.amazonaws.com/modelzoo-networks/Resnet-18-at-aT-export.pth
型号定义:https://github.com/szagoruyko/functional-zoo/blob/master/resnet-18-at-at-yexport.ipynb
收敛图:
为Resnet-34下载预审计的权重(有关更多信息,请参见功能-ZOO):
wget https://s3.amazonaws.com/modelzoo-networks/resnet-34-export.pth
在FB.Resnet.torch和Run培训(例如使用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