Skip to content

iduta/iresnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Improved Residual Networks

This is a PyTorch implementation of "Improved Residual Networks for Image and Video Recognition" paper:

@article{duta2020improved,
  author  = {Ionut Cosmin Duta and Li Liu and Fan Zhu and Ling Shao},
  title   = {Improved Residual Networks for Image and Video Recognition},
  journal = {arXiv preprint arXiv:2004.04989},
  year    = {2020},
}

The models trained on ImageNet can be found here.

The iResNet (improved residual network) is able to improve the baseline (ResNet) in terms of recognition performance without increasing the number of parameters and computational costs. The iResNet is very effective in training very deep models (see the paper for details).

The accuracy on ImageNet (using the default training settings):

Network 50-layers 101-layers 152-layers 200-layers
ResNet 76.12% (model) 78.00% (model) 78.45% (model) 77.55% (model)
iResnet 77.31% (model) 78.64% (model) 79.34% (model) 79.48% (model)

Requirements

Install PyTorch and ImageNet dataset following the official PyTorch ImageNet training code.

A fast alternative (without the need to install PyTorch and other deep learning libraries) is to use NVIDIA-Docker, we used this container image.

Training

To train a model (for instance, iResNet with 50 layers) using DataParallel run main.py; you need also to provide result_path (the directory path where to save the results and logs) and the --data (the path to the ImageNet dataset):

result_path=/your/path/to/save/results/and/logs/
mkdir -p ${result_path}
python main.py \
--data /your/path/to/ImageNet/dataset/ \
--result_path ${result_path} \
--arch iresnet \
--model_depth 50

To train using Multi-processing Distributed Data Parallel Training follow the instructions in the official PyTorch ImageNet training code.