Skip to content
/ RSC Public

This is the official implementation of Self-Challenging Improves Cross-Domain Generalization, ECCV2020

License

Notifications You must be signed in to change notification settings

DeLightCMU/RSC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Self-Challenging Improves Cross-Domain Generalization

This is the official implementation of:

Zeyi Huang', Haohan Wang', Eric P. Xing, and Dong Huang, Self-Challenging Improves Cross-Domain Generalization, ECCV, 2020 (Oral), arxiv version.

PWC PWC PWC

Notice about DG task: In order to get the same results in the testing part, you should use the same environment configuration here, including software, hardware and random seed. When using a different environment configuration, similar to other DG repositories, you need to tune the parameters a little bit. According to my observations, a simple larger batch size and early stop can solve the problem. If you still can't solve the problem, don't panic! send me an email(zeyih(at)andrew(dot)cmu(dot)edu) with your environment. I'll help you out.

Update: To mitigate fluctuation in different environments, we modify RSC in a curriculum manner. Also, we unify RSC for different network architectures. If you have any questions about the code, feel free to contact me or pull a issue.

Citation:

@inproceedings{huangRSC2020,
  title={Self-Challenging Improves Cross-Domain Generalization},
  author={Zeyi Huang and Haohan Wang and Eric P. Xing and Dong Huang},
  booktitle={ECCV},
  year={2020}
}

Installation

Requirements:

  • Python ==3.7
  • Pytorch ==1.1.0
  • Torchvision == 0.3.0
  • Cuda ==10.0
  • Tensorflow ==1.14
  • GPU: RTX 2080

Data Preparation

Download PACS dataset from here. Once you have download the data, you must update the files in data/correct_txt_list to match the actual location of your files. Note: make sure you use the same train/val/test split in PACS paper.

Runing on PACS dataset

Experiments with different source/target domains are listed in train.py(L145-152).

To train a ResNet18, simply run:

  python train.py --net resnet18

To test a ResNet18, you can download RSC model below and logs:

Backbone Target Domain Acc % models
ResNet-18 Photo 96.05 download
ResNet-18 Sketch 82.67 download
ResNet-18 Cartoon 81.61 download
ResNet-18 Art 85.16 download

To Do

Faster-RCNN

Other pretrained models

New ImageNet ResNet baselines training by RSC.

Backbone Top-1 Acc % Top-5 Acc % pth models
ResNet-50 77.18 93.53 download
ResNet-101 78.23 94.16 download

Acknowledgement

We borrowed code and data augmentation techniques from Jigen, ImageNet-pytorch.

About

This is the official implementation of Self-Challenging Improves Cross-Domain Generalization, ECCV2020

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages