Coder Social home page Coder Social logo

ibn-net's Introduction

Instance-Batch Normalization Network

Paper

Xingang Pan, Ping Luo, Jianping Shi, Xiaoou Tang. "Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net", ECCV2018.

Introduction

  • IBN-Net carefully unifies instance normalization and batch normalization in a single deep network.
  • It provides an extremely simple way to increase both modeling and generalization capacity without adding model complexity.

Requirements

  • Pytorch 0.3.1

Results

Top1/Top5 error on the ImageNet validation set are reported. You may get different results when training your models with different random seed.

Model origin re-implementation IBN-Net
DenseNet-121 25.0/- 24.96/7.85 24.47/7.25
DenseNet-169 23.6/- 24.02/7.06 23.25/6.51
ResNet-50 24.7/7.8 24.27/7.08 22.54/6.32
ResNet-101 23.6/7.1 22.48/6.23 21.39/5.59
ResNeXt-101 21.2/5.6 21.31/5.74 20.88/5.42
SE-ResNet-101 22.38/6.07 21.68/5.88 21.25/5.51

Before Start

  1. Clone the repository

    git clone https://github.com/XingangPan/IBN-Net.git
  2. Download ImageNet dataset (if you need to test or train on ImageNet). You may follow the instruction at fb.resnet.torch to process the validation set.

Testing

  1. Download our pre-trained models from Google Drive and save them to ./pretrained.
  2. Edit test.sh. Modify model and data_path to yours.
    Options for model: densenet121_ibn_a, densenet169_ibn_a, resnet50_ibn_a_old, resnet50_ibn_a, resnet50_ibn_b, resnet101_ibn_a_old, resnet101_ibn_a, resnext101_ibn_a, se_resnet101_ibn_a.
    (Note: For IBN-Net version of ResNet-50 and ResNet-101, our results in the paper are reported based on an slower implementation, corresponding to resnet50_ibn_a_old and resnet101_ibn_a_old here. We also provide a faster implementation, and the models are resnet50_ibn_a, resnet101_ibn_a, and all the rest. The top1/top5 error for resnet50_ibn_a and resnet101_ibn_a are 22.76/6.41 and 5.61/21.29 respectively.)
  3. Run test script
    sh test.sh

Training

  1. Edit train.sh. Modify model and data_path to yours.
  2. Run train script
    sh train.sh

This code is modified from bearpaw/pytorch-classification.

Citing IBN-Net

@inproceedings{pan2018IBN-Net,  
  author = {Xingang Pan, Ping Luo, Jianping Shi, and Xiaoou Tang},  
  title = {Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net},  
  booktitle = {ECCV},  
  year = {2018}  
}

ibn-net's People

Contributors

xingangpan avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.