ADA-Net

Tensorflow implementation

Semi-Supervised Learning by Augmented Distribution Alignment Qin Wang, Wen Li, Luc Van Gool (ICCV 2019 Oral)

Requirements

pip3 install tensorflow-gpu==1.13.1
pip3 install tensorpack==0.9.1
pip3 install scipy

Train and Eval ADA-Net on ConvLarge

Prepare dataset

cd convlarge
python3 cifar10.py --data_dir=./dataset/cifar10/ --dataset_seed=1

Train and Eval ADA-Net on Cifar10 ConvLarge

CUDA_VISIBLE_DEVICES=0 python3 train_cifar.py --dataset=cifar10 --data_dir=./dataset/cifar10/ --log_dir=./log/cifar10aug/ --num_epochs=2000 --epoch_decay_start=1500 --aug_flip=True --aug_trans=True --dataset_seed=1
CUDA_VISIBLE_DEVICES=0 python3 test_cifar.py --dataset=cifar10 --data_dir=./dataset/cifar10/ --log_dir=<path_to_log_dir> --dataset_seed=1

Here are the error rates we get using the above scripts :

Data Split Seed 1 Seed 2 Seed 3 Reported
8.61% 8.89% 8.65% 8.72+-0.12%

Train and Eval ADA-Net on ImageNet ResNet

Download our imagenet labeled/unlabeled split from this link, put them in ./resnet

cd resnet
python3 ./adanet-resnet.py --data <path_to_your_imagenet_files> -d 18  --mode resnet --batch 256 --gpu 0,1,2,3

Acknowledgement

  • ConvLarge code is based on Takeru Miyato's tf implementation.
  • ResNet code is based on Tensorpack's supervised imagenet training scripts.

GitHub