Skip to content
/ M-ADA Public

The Pytorch implementation for "Learning to Learn Single Domain Generalization" (CVPR 2020)

Notifications You must be signed in to change notification settings

joffery/M-ADA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning to Learn Single Domain Generalization (CVPR 2020)

This repository holds the Pytorch implementation of Learning to Learn Single Domain Generalization by Fengchun Qiao, Long Zhao and Xi Peng.

Introduction

We are concerned with a worst-case scenario in model generalization, in the sense that a model aims to perform well on many unseen domains while there is only one single domain available for training. We propose a new method named adversarial domain augmentation to solve this Out-of-Distribution (OOD) generalization problem. The key idea is to leverage adversarial training to create “fictitious” yet “challenging” populations, from which a model can learn to generalize with theoretical guarantees.

Prerequisites

This package has the following requirements:

  • Python 3.6
  • Pytorch 1.1.0
  • MetaNN 0.1.5
  • Scipy 1.2.1

Training from scratch

Download and process MNIST:

cd utils
python download_and_process_mnist.py

Run the following command:

python main_Digits.py

Evaluating our pretrained models

The pretrained models can be downloaded from Google Drive. Put checkpoint in the project root directory.

To evaluate on Digits, run:

mkdir ./data/svhn
wget http://ufldl.stanford.edu/housenumbers/test_32x32.mat -O "./data/svhn/test_32x32.mat"  # download the test set of SVHN
python main_Digits.py --mode test --resume checkpoint/pretrained/ckpt_mnist.pth.tar

Citation

If you find our code useful in your research, please consider citing:

@inproceedings{qiaoCVPR20learning,
  title={Learning to learn single domain generalization},
  author={Qiao, Fengchun and Zhao, Long and Peng, Xi},
  booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  pages={12556--12565},
  year={2020}
}

Acknowledgement

Part of our code is borrowed from the following repositories.

We thank to the authors for releasing their codes. Please also consider citing their works.

About

The Pytorch implementation for "Learning to Learn Single Domain Generalization" (CVPR 2020)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages