Skip to content

MixMatch: Implementation of Semi-Supervised Learning on CIFAR-10

Notifications You must be signed in to change notification settings

martinigoyanes/mix-match

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MixMatch: Implementation of Semi-Supervised Learning on CIFAR-10

MixMatch is a high-level algorithm for semi-supervised learning (SSL) that achieves state-of-the-art results on semi-supervised learning image classification tasks.

Its key steps include mixing in unlabeled samples with labeled (MixUp) and penalizing inconsistent prediction of unlabeled samples. In this work, we reproduce parts of the key findings of Google, and also discuss the limitations of the method.

In particular, we investigate the dependence of the results on the data augmentation used, the training length, and the unlabeled loss term of MixMatch. We are able to achieve 90.8% test accuracy on CIFAR10 when trained with 4000 labeled and 36000 unlabeled samples.

Results

Tensorboard shows a view like this:

main view

It also logs gradient values:

landscape

And plots the computation graph:

graph

... and another view of the computation graph:

other graph

How To Run

To run (currently set to train a WRN-28-2 on 1000 labeled images for 200 epochs), do

pip install -r requirements.txt
python src/main.py

When running you see text output showing the training progress. Data is also logged to tensorboard, which you can see by doing

(python -m tensorboard.main ./results) &
sensible-browser http://localhost:6006

About

MixMatch: Implementation of Semi-Supervised Learning on CIFAR-10

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages