SPICE: Semantic Pseudo-labeling for Image Clustering
By Chuang Niu and Ge Wang
This is a Pytorch implementation of the paper. (In updating)
- SOTA on 5 benchmarks. Please refer to Papers With Code for Image Clustering
Installation
Please refer to requirement.txt for all required packages. Assuming Anaconda with python 3.7, a step-by-step example for installing this project is as follows:
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch
conda install -c conda-forge addict tensorboard python-lmdb
conda install matplotlib scipy scikit-learn pillow
Then, clone this repo
git clone https://github.com/niuchuangnn/SPICE.git
cd SPICE
Data
Prepare datasets of interest as described in dataset.md.
Training
Read the training tutorial for details.
Evaluation
Evaluation of SPICE-Self:
python tools/eval_self.py --config-file configs/stl10/eval.py --weight PATH/TO/MODEL --all 1
Evaluation of SPICE-Semi:
python tools/eval_semi.py --load_path PATH/TO/MODEL --net WideResNet --widen_factor 2 --data_dir PATH/TO/DATA --dataset cifar10 --all 1
Read the evaluation tutorial for more descriptions about the evaluation and the visualization of learned clusters.
Model Zoo
All trained models in our paper are available as follows.
Dataset | Version | ACC | NMI | ARI | Model link |
---|---|---|---|---|---|
STL10 | SPICE-Self | 91.0 | 82.0 | 81.5 | Model |
SPICE | 93.8 | 87.2 | 87.0 | Model | |
SPICE-Self* | 89.9 | 80.9 | 79.7 | Model | |
SPICE* | 92.9 | 86.0 | 85.3 | Model | |
CIFAR10 | SPICE-Self | 83.8 | 73.4 | 70.5 | Model |
SPICE | 92.6 | 86.5 | 85.2 | Model | |
SPICE-Self* | 84.9 | 74.5 | 71.8 | Model | |
SPICE* | 91.7 | 85.8 | 83.6 | Model | |
CIFAR100 | SPICE-Self | 46.8 | 44.8 | 29.4 | Model |
SPICE | 53.8 | 56.7 | 38.7 | Model | |
SPICE-Self* | 48.0 | 45.0 | 30.8 | Model | |
SPICE* | 58.4 | 58.3 | 42.2 | Model | |
ImageNet-10 | SPICE-Self | 96.9 | 92.7 | 93.3 | Model |
SPICE | 96.7 | 91.7 | 92.9 | Model | |
ImageNet-Dog | SPICE-Self | 54.6 | 49.8 | 36.2 | Model |
SPICE | 55.4 | 50.4 | 34.3 | Model | |
TinyImageNet | SPICE-Self | 30.5 | 44.9 | 16.3 | Model |
SPICE-Self* | 29.2 | 52.5 | 14.5 | Model |
More models based on ResNet18 for both SPICE-Self* and SPICE-Semi*.
Dataset | Version | ACC | NMI | ARI | Model link |
---|---|---|---|---|---|
STL10 | SPICE-Self* | 86.2 | 75.6 | 73.2 | Model |
SPICE* | 92.0 | 85.2 | 83.6 | Model | |
CIFAR10 | SPICE-Self* | 84.5 | 73.9 | 70.9 | Model |
SPICE* | 91.8 | 85.0 | 83.6 | Model | |
CIFAR100 | SPICE-Self* | 46.8 | 45.7 | 32.1 | Model |
SPICE* | 53.5 | 56.5 | 40.4 | Model |
Acknowledgement for reference repos
Citation
@misc{niu2021spice,
title={SPICE: Semantic Pseudo-labeling for Image Clustering},
author={Chuang Niu and Ge Wang},
year={2021},
eprint={2103.09382},
archivePrefix={arXiv},
primaryClass={cs.CV}
}