attention-transfer, 通过注意转移改善卷积网络( ICLR 2017 )

分享于 

4分钟阅读

GitHub

  繁體 雙語
Improving Convolutional Networks via Attention Transfer
  • 源代码名称:attention-transfer
  • 源代码网址:http://www.github.com/szagoruyko/attention-transfer
  • attention-transfer源代码文档
  • attention-transfer源代码下载
  • Git URL:
    git://www.github.com/szagoruyko/attention-transfer.git
    Git Clone代码到本地:
    git clone http://www.github.com/szagoruyko/attention-transfer
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/szagoruyko/attention-transfer
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    转移

    PyTorch代码,用于"关注: 通过注意转移" https://arxiv.org/abs/1612.03928 提高卷积神经网络的性能
    会议论文 ICLR2017: https://openreview.net/forum?id=Sks9_ajex

    目前 repo 中的内容是:

    来了

    • 基于
    • 基于代码的场景和CUB激活

    代码使用 PyTorch https://pytorch.org。 在之前的实验中,我们已经使用火炬 autograd 进行了测试,我们已经验证了 CIFAR-10 实验是在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,然后安装 torchnet:

    
    pip install git+https://github.com/pytorch/tnt.git@master
    
    
    
    

    然后安装其他 python 软件包:

    
    pip install -r requirements.txt
    
    
    
    

    实验

    CIFAR-10

    本节介绍如何在表 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
    
    
    
    

    要使用激活进行训练,请执行以下操作:

    
    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
    
    
    
    

    我们计划用衰减 beta 来添加 AT+KD,以获得最佳的知识转移结果。

    ImageNet

    Pretrained模型

    我们提供了 ResNet-18 pretrained模型,它的激活基于:

    模型val错误
    ResNet-1830.4.10.8
    ResNet-18-ResNet-34-AT29.3。10.0

    下载链接:https://s3.amazonaws.com/modelzoo-networks/resnet-18-at-export.pth

    模型定义:https://github.com/szagoruyko/functional-zoo/blob/master/resnet-18-at-export.ipynb

    收敛 plot:

    from

    下载 ResNet-34 (。更多信息请参见功能动物园 )的pretrained权重:

    
    wget https://s3.amazonaws.com/pytorch/h5models/resnet-34-export.hkl
    
    
    
    

    准备 fb.resnet.torch的数据并运行培训( 比如。 使用 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
    
    
    
    

    IMP  network  ATT  networks  Transfer  卷积