Skip to content

CIFAR10 PyTorch implementation of "MixMatch - A Holistic Approach to Semi-Supervised Learning"

License

Notifications You must be signed in to change notification settings

FR-DC/MixMatch-PyTorch-CIFAR10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MixMatch-PyTorch-CIFAR10

This repository is an update from YU1ut/MixMatch-pytorch to work with the latest version of PyTorch and torchvision, and follow modern best practices for PyTorch code.


This README is copied from YU1ut/MixMatch-pytorch

MixMatch

This is an unofficial PyTorch implementation of MixMatch: A Holistic Approach to Semi-Supervised Learning. The official Tensorflow implementation is here.

Now only experiments on CIFAR-10 are available.

This repository carefully implemented important details of the official implementation to reproduce the results.

Requirements

  • Python 3.6+
  • PyTorch 1.0
  • torchvision 0.2.2 (older versions are not compatible with this code)
  • tensorboardX
  • progress
  • matplotlib
  • numpy

Usage

Train

Train the model by 250 labeled data of CIFAR-10 dataset:

python train.py --gpu <gpu_id> --n-labeled 250 --out cifar10@250

Train the model by 4000 labeled data of CIFAR-10 dataset:

python train.py --gpu <gpu_id> --n-labeled 4000 --out cifar10@4000

Monitoring training progress

tensorboard.sh --port 6006 --logdir cifar10@250

Results (Accuracy)

#Labels 250 500 1000 2000 4000
Paper 88.92 ± 0.87 90.35 ± 0.94 92.25 ± 0.32 92.97 ± 0.15 93.76 ± 0.06
This code 88.71 88.96 90.52 92.23 93.52

(Results of this code were evaluated on 1 run. Results of 5 runs with different seeds will be updated later. )

References

@article{berthelot2019mixmatch,
  title={MixMatch: A Holistic Approach to Semi-Supervised Learning},
  author={Berthelot, David and Carlini, Nicholas and Goodfellow, Ian and Papernot, Nicolas and Oliver, Avital and Raffel, Colin},
  journal={arXiv preprint arXiv:1905.02249},
  year={2019}
}