This repo holds the implementation code of the paper:
FishNet: A Versatile Backbone for Image, Region, and Pixel Level Prediction , Shuyang Sun, Jiangmiao Pang, Jianping Shi, Shuai Yi, Wanli Ouyang, NeurIPS 2018.
FishNet was used as a key component for winning the 1st place in COCO Detection Challenge 2018.
Note that the results released here are a bit better than what we have reported in the paper.
- Python 3.6.x
- PyTorch 0.4.0+
Method | Settings |
---|---|
Random Flip | True |
Random Crop | 8% ~ 100% |
Aspect Ratio | 3/4 ~ 4/3 |
Random PCA Lighting | 0.1 |
Note: We apply weight decay to all weights and biases instead of just the weights of the convolution layers.
To train FishNet-150 with 8 GPUs and batch size 256, simply run
python main.py --config "cfgs/fishnet150.yaml" IMAGENET_ROOT_PATH
Models trained without tricks
Model | Params | FLOPs | Top-1 | Top-5 | Baidu Yun | Google Cloud |
---|---|---|---|---|---|---|
FishNet99 | 16.62M | 4.31G | 77.41% | 93.59% | Download | Download |
FishNet150 | 24.96M | 6.45G | 78.14% | 93.95% | Download | Download |
FishNet201 | 44.58M | 10.58G | 78.76% | 94.39% | Available Soon | Available Soon |
Models trained with cosine lr schedule (200 epochs) and label smoothing
Model | Params | FLOPs | Top-1 | Top-5 | Baidu Yun | Google Cloud |
---|---|---|---|---|---|---|
FishNet150 | 24.96M | 6.45G | 79.35% | 94.75% | Download | Download |
FishNet201 | 44.58M | 10.58G | 79.71% | 94.79% | Download | Download |
To load these models, e.g. FishNet150, you need to first construct your FishNet150 structure like:
from models.network_factory import fishnet150
model = fishnet150()
and then you can load the weights from the pre-trained checkpoint by:
checkpoint = torch.load(model_path) # model_path: your checkpoint path, e.g. checkpoints/fishnet150.tar
best_prec1 = checkpoint['best_prec1']
model.load_state_dict(checkpoint['state_dict'])
optimizer.load_state_dict(checkpoint['optimizer'])
Note that you do NOT need to decompress the model using the tar
command.
The model you download from the cloud could be loaded directly.
- Update our arxiv paper.
- Release pre-train models.
- Train the model with more training tricks.
If you find our research useful, please cite the paper:
@inproceedings{sun2018fishnet,
title={FishNet: A Versatile Backbone for Image, Region, and Pixel Level Prediction},
author={Sun, Shuyang and Pang, Jiangmiao and Shi, Jianping and Yi, Shuai and Ouyang, Wanli},
booktitle={Advances in Neural Information Processing Systems},
pages={760--770},
year={2018}
}
You can contact Shuyang Sun by sending email to [email protected]