This repository is unofficial implementation of following papers with Tensorflow 2.0. The corresponding folder name is written in parenthesis.
-
Variational AutoEncoder:
- Semi-supervised Learning with Deep Generative Models (
dgm
) - Auxiliary deep generative models (
adgm
) - Ladder variational autoencoders (
ladder
) - Semi-supervised disentanglement of class-related and class-independent factors in vae (
partedvae
) - SHOT-VAE: semi-supervised deep generative models with label-aware ELBO approximations (
shotvae
)
- Semi-supervised Learning with Deep Generative Models (
-
Classification models:
- Temporal ensembling for semi-supervised learning (
pi
) - Virtual adversarial training: a regularization method for supervised and semi-supervised learning (
vat
) - Label propagation for deep semi-supervised learning (
lp
) - Mixmatch: A holistic approach to semi-supervised learning (
mixmatch
) - Pseudo-labeling and confirmation bias in deep semi-supervised learning (
plcb
)
- Temporal ensembling for semi-supervised learning (
python==3.7
numpy==1.19.5
tensorflow==2.4.0
Additional package requirements for this repository are described in requirements.txt
.
labeled_examples
is the number of labeled datsets for running and we provide configuration .yaml
files for 100 labeled datsets of MNIST and 4000 labeled datasets of CIFAR-10. And we add required tests and evaluations at the end of code.
- MNIST dataset running
python mnist/main.py --config_path "configs/mnist_{labeled_examples}.yaml"
- CIFAR-10 dataset running
python main.py --config_path "configs/cifar10_{labeled_examples}.yaml"
The number in parenthesis next to the name of model is the number of parameters in classifier. Inception score of classification model is not computed.
Model | Classification error | Inception Score |
---|---|---|
Pi-model(4.5M) | 17.58% | - |
VAT(4.5M) | 13.70 | - |
MixMatch(5.8M) | 5.55% | - |
PLCB(4.5M) | 7.69% | - |
M2(4.5M) | 27.69% | 1.85 (0.05) |
Parted-VAE(5.8M) | 31.85% | 1.58(0.04) |
SHOT-VAE(5.8M) | 5.91% | 3.46 (0.18) |
- https://github.com/wohlert/semi-supervised-pytorch
- https://github.com/sinahmr/parted-vae
- https://github.com/FengHZ/AAAI2021-260
- https://github.com/hiram64/temporal-ensembling-semi-supervised/tree/master/lib
- https://github.com/takerum/vat_tf/tree/c5125d267531ce0f10b2238cf95604d287de63c8
- https://github.com/9310gaurav/virtual-adversarial-training
- https://github.com/ahmetius/LP-DeepSSL
- https://github.com/ntozer/mixmatch-tensorflow2.0
- https://github.com/EricArazo/PseudoLabeling