yangkang779 / PytorchInsight

a pytorch lib with state-of-the-art architectures, pretrained models and real-time updated results

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PytorchInsight

This is a pytorch lib with state-of-the-art architectures, pretrained models and real-time updated results.

This repository aims to accelarate the advance of Deep Learning Research, make reproducible results and easier for doing researches, and in Pytorch.

Including Papers (to be updated):

Attention Models

  • SENet: Squeeze-and-excitation Networks (paper)
  • SKNet: Selective Kernel Networks (paper)
  • CBAM: Convolutional Block Attention Module (paper)
  • GCNet: GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond (paper)
  • BAM: Bottleneck Attention Module (paper)
  • SGENet: Spatial Group-wise Enhance: Enhancing Semantic Feature Learning in Convolutional Networks (paper)
  • SRMNet: SRM: A Style-based Recalibration Module for Convolutional Neural Networks (paper)

Non-Attention Models

  • OctNet: Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution (paper)
  • imagenet_tricks.py: Bag of Tricks for Image Classification with Convolutional Neural Networks (paper)

Trained Models and Performance Table

Single crop validation error on ImageNet-1k (center 224x224 crop from resized image with shorter side = 256).

classifiaction training settings for media and large models
Details RandomResizedCrop, RandomHorizontalFlip; 0.1 init lr, total 100 epochs, decay at every 30 epochs; SGD with naive softmax cross entropy loss, 1e-4 weight decay, 0.9 momentum, 8 gpus, 32 images per gpu
Examples ResNet50
classifiaction training settings for mobile/small models
Details RandomResizedCrop, RandomHorizontalFlip; 0.4 init lr, total 300 epochs, 5 linear warm up epochs, cosine lr decay; SGD with softmax cross entropy loss and label smoothing 0.1, 4e-5 weight decay on conv weights, 0 weight decay on all other weights, 0.9 momentum, 8 gpus, 128 images per gpu
Examples ShuffleNetV2

Typical Training & Testing Tips:

You may need to add some models to use in classification/models/imagenet/__init__.py, e.g., add

from .shufflenetv2 import *

Small Models

ShuffleNetV2_1x

python -m torch.distributed.launch --nproc_per_node=8 imagenet_mobile.py --cos -a shufflenetv2_1x --data /path/to/imagenet1k/ \
--epochs 300 --wd 4e-5 --gamma 0.1 -c checkpoints/imagenet/shufflenetv2_1x --train-batch 128 --opt-level O0 # Triaing

python -m torch.distributed.launch --nproc_per_node=2 imagenet_mobile.py -a shufflenetv2_1x --data /path/to/imagenet1k/ \
-e --resume ../pretrain/shufflenetv2_1x.pth.tar --test-batch 100 --opt-level O0 # Testing, ~69.6% top-1 Acc

Large Models

SGE-ResNet

python -W ignore imagenet.py -a sge_resnet101 --data /path/to/imagenet1k/ --epochs 100 --schedule 30 60 90 \
--gamma 0.1 -c checkpoints/imagenet/sge_resnet101 --gpu-id 0,1,2,3,4,5,6,7 # Training

python -m torch.distributed.launch --nproc_per_node=8 imagenet_fast.py -a sge_resnet101 --data /path/to/imagenet1k/ \ 
--epochs 100 --schedule 30 60 90 --wd 1e-4 --gamma 0.1 -c checkpoints/imagenet/sge_resnet101 --train-batch 32 \ 
--opt-level O0 --wd-all --label-smoothing 0. --warmup 0 # Training (faster) 
python -W ignore imagenet.py -a sge_resnet101 --data /path/to/imagenet1k/ --gpu-id 0,1 -e --resume ../pretrain/sge_resnet101.pth.tar \
# Testing ~78.8% top-1 Acc

python -m torch.distributed.launch --nproc_per_node=2 imagenet_fast.py -a sge_resnet101 --data /path/to/imagenet1k/ -e --resume \
../pretrain/sge_resnet101.pth.tar --test-batch 100 --opt-level O0 # Testing (faster) ~78.8% top-1 Acc

Classification

Model #P GFLOPs Top-1 Acc Top-5 Acc Download log
ShuffleNetV2_1x 2.28M 0.151 69.6420 88.7200 GoogleDrive shufflenetv2_1x.log
ResNet50 25.56M 4.122 76.3840 92.9080 BaiduDrive(zuvx) old_resnet50.log
Oct-ResNet50 (0.125)
SRM-ResNet50
SE-ResNet50 28.09M 4.130 77.1840 93.6720
SK-ResNet50 26.15M 4.185 77.5380 93.7000 BaiduDrive(tfwn) sk_resnet50.log
BAM-ResNet50 25.92M 4.205 76.8980 93.4020 BaiduDrive(z0h3) bam_resnet50.log
CBAM-ResNet50 28.09M 4.139 77.6260 93.6600 BaiduDrive(bram) cbam_resnet50.log
GC-ResNet50
SGE-ResNet50 25.56M 4.127 77.5840 93.6640 BaiduDrive(gxo9) sge_resnet50.log
ResNet101 44.55M 7.849 78.2000 93.9060 BaiduDrive(js5t) old_resnet101.log
Oct-ResNet101 (0.125)
SRM-ResNet101
SE-ResNet101 49.33M 7.863 78.4680 94.1020 BaiduDrive(j2ox) se_resnet101.log
SK-ResNet101 45.68M 7.978 78.7920 94.2680 BaiduDrive(boii) sk_resnet101.log
BAM-ResNet101 44.91M 7.933 78.2180 94.0180 BaiduDrive(4bw6) bam_resnet101.log
CBAM-ResNet101 49.33M 7.879 78.3540 94.0640 BaiduDrive(syj3) cbam_resnet101.log
GC-ResNet101
SGE-ResNet101 44.55M 7.858 78.7980 94.3680 BaiduDrive(wqn6) sge_resnet101.log

Detection

Model #p GFLOPs Detector Neck AP50:95 (%) AP50 (%) AP75 (%) Download
ResNet50 23.51M 88.032 Faster RCNN FPN 37.5 59.1 40.6 BaiduDrive()
SGE-ResNet50 23.51M 88.149 Faster RCNN FPN 38.7 60.8 41.7 BaiduDrive()
ResNet50 23.51M 88.032 Mask RCNN FPN 38.6 60.0 41.9 BaiduDrive()
SGE-ResNet50 23.51M 88.149 Mask RCNN FPN 39.6 61.5 42.9 BaiduDrive()
ResNet50 23.51M 88.032 Cascade RCNN FPN 41.1 59.3 44.8 BaiduDrive()
SGE-ResNet50 23.51M 88.149 Cascade RCNN FPN 42.6 61.4 46.2 BaiduDrive()
ResNet101 42.50M 167.908 Faster RCNN FPN 39.4 60.7 43.0 BaiduDrive()
SGE-ResNet101 42.50M 168.099 Faster RCNN FPN 41.0 63.0 44.3 BaiduDrive()
ResNet101 42.50M 167.908 Mask RCNN FPN 40.4 61.6 44.2 BaiduDrive()
SGE-ResNet101 42.50M 168.099 Mask RCNN FPN 42.1 63.7 46.1 BaiduDrive()
ResNet101 42.50M 167.908 Cascade RCNN FPN 42.6 60.9 46.4 BaiduDrive()
SGE-ResNet101 42.50M 168.099 Cascade RCNN FPN 44.4 63.2 48.4 BaiduDrive()
Model #p GFLOPs Detector Neck AP small (%) AP media (%) AP large (%) Download
ResNet50 23.51M 88.032 RetinaNet FPN 19.9 39.6 48.3 BaiduDrive()
SE-ResNet50 26.04M 88.152 RetinaNet FPN 20.7 41.3 50.0 BaiduDrive()
SK-ResNet50 24.11M 89.414 RetinaNet FPN 20.2 40.9 50.4 BaiduDrive()
BAM-ResNet50 23.87M 89.804 RetinaNet FPN 19.6 40.1 49.9 BaiduDrive()
CBAM-ResNet50 26.04M 88.302 RetinaNet FPN 21.8 40.8 49.5 BaiduDrive()
SGE-ResNet50 23.51M 88.149 RetinaNet FPN 21.8 41.2 49.9 BaiduDrive()

Citation

If you use related works in your research, please cite the paper:

@inproceedings{li2019selective,
  title={Selective Kernel Networks},
  author={Li, Xiang and Wang, Wenhai and Hu, Xiaolin and Yang, Jian},
  journal={IEEE Conference on Computer Vision and Pattern Recognition},
  year={2019}
}

@inproceedings{li2019spatial,
  title={Spatial Group-wise Enhance: Enhancing Semantic Feature Learning in Convolutional Networks},
  author={Li, Xiang and Hu, Xiaolin and Yang, Jian},
  journal={Arxiv},
  year={2019}
}

About

a pytorch lib with state-of-the-art architectures, pretrained models and real-time updated results


Languages

Language:Python 87.6%Language:Cuda 8.4%Language:C++ 3.9%Language:Shell 0.1%Language:Makefile 0.0%