By Hessam Bagherinezhad, Maxwell Horton, Mohammad Rastegari, and Ali Farhadi.
This is a pytorch training script that can be used to train image classifier on ImageNet. The purpose of this repository is to back the experimental results presented in the Label Refinery paper. The Label Refinery paper is published on arxiv.
Label Refinery is a training mechanism that can be used to train any classification model. Label Refinery improves the quality of the labels, and therefore the quality of the models trained with those labels. Using Label Refinery improves the state-of-the-art accuracy of a variety of network architectures:
Model | Paper Number :: Top-1 | Our Impl. :: Top-1 | Label Refinery :: Top-1 |
---|---|---|---|
AlexNet | 59.3 | 57.93 | 66.28 |
MobileNet | 70.6 | 68.53 | 73.39 |
MobileNet0.75 | 68.4 | 65.93 | 70.92 |
MobileNet0.5 | 63.7 | 63.03 | 66.66 |
MobileNet0.25 | 50.6 | 50.65 | 54.62 |
ResNet-50 | N/A | 75.7 | 76.5 |
ResNet-34 | N/A | 73.39 | 75.06 |
ResNet-18 | N/A | 69.7 | 72.52 |
ResNetXnor-50 | N/A | 63.1 | 70.34 |
VGG-16 | 73 | 70.1 | 75 |
VGG-19 | 72.7 | 71.39 | 75.46 |
Darknet19 | 72.9 | 70.6 | 74.47 |
For complete list of results and some analysis, please refer to our paper.
To use this source code you need Python3.5+, a copy of ImageNet 2012 dataset,
and a few python3 packages. A full set of python dependencies is listed in
requirements.txt for cuda 8 users. If you're not using cuda,
or using a different version of cuda, change torch==0.4.0
line to your desired
pytorch 0.4 wheel url. You can install them all through pip3:
pip3 install -r requirements.txt
You can train models either with the standard labels, or with the refined
labels. To train AlexNet
with the standard labels:
./train.py --model AlexNet --imagenet /path/to/imagenet2012
To train AlexNet
with refined labels generated by a trained AlexNet
Label
Refinery:
./train.py --model AlexNet --imagenet /path/to/imagenet2012 --label-refinery-model AlexNet --label-refinery-state-file /path/to/trained/alexnet.pytar
To test a trained AlexNet model:
./test.py --model AlexNet --model-state-file /path/to/alexnet.pytar --imagenet /path/to/imagenet2012
Model | Description | Top-1 | Link |
---|---|---|---|
AlexNet^1 |
AlexNet trained with standard labels. | 57.93 | get |
AlexNet^2 |
AlexNet trained with labels refined by AlexNet^1 . |
59.97 | get |
AlexNet^3 |
AlexNet trained with labels refined by AlexNet^2 . |
60.87 | get |
AlexNet^4 |
AlexNet trained with labels refined by AlexNet^3 . |
61.22 | get |
AlexNet^5 |
AlexNet trained with labels refined by AlexNet^4 . |
61.37 | get |
AlexNet By ResNet-50 |
AlexNet trained with labels refined by ResNet-50 . |
66.28 | get |
ResNet-50 |
ResNet-50 trained with standard labels. | 75.7 | get |
By downloading this software you acknowledge that you read and agreed all the
terms in the LICENSE
file.