Skip to content

Latest commit

 

History

History
111 lines (100 loc) · 5.33 KB

README.md

File metadata and controls

111 lines (100 loc) · 5.33 KB

Parameter Exchange for Robust Dynamic Domain Generalization

  • 🔔This is the official (Pytorch) implementation for the paper "Parameter Exchange for Robust Dynamic Domain Generalization", ACM MM 2023.
  • 🛖This repository is built on the Dassl which is designed for the research of Domain adaptation, Domain generalization, and Domain generalization. You can also view the Dassl project for details: https://github.com/KaiyangZhou/Dassl.pytorch

🛠️Setup

Runtime

The main python libraries we use:

  • Python 3.8
  • torch 1.8.1
  • numpy 1.19.2

Datasets

Please create a directory named datasets in current directory, then install these following datasets into datasets:

You can also change the root directory of datasets by modifying the default value of the argument --root in tools/train.py[L96]:

def train():
    parser = argparse.ArgumentParser()
    parser.add_argument('--root', type=str, default='./datasets', help='path to datasets')

Pretrained Weights

Please create a directory named checkpoints in current directory, then download following pretrained weights into checkpoints:

🎢Run

After finishing above steps, your directory structure of code may like this:

DDG_PE/
    |–– checkpoints/
        odconv4x_resnet50.pth.tar
        resnet50_draac_v3_pretrained.pth
        resnet50_draac_v4_pretrained.pth
    |–– configs/
    |–– dataset/
        |–– domainnet/
            |–– clipart/
            |–– infograph/
            |–– painting/
            |–– quickdraw/
            |–– real/
            |–– sketch/
            |–– splits/
        |–– office_home_dg/
            |–– art/
            |–– clipart/
            |–– product/
            |–– real_world/
        |–– terra_incognita/
            |–– location_38/
            |–– location_43/
            |–– location_46/
            |–– location_100/
        |–– VLCS/
            |–– CALTECH/
            |–– LABELME/
            |–– PASCAL/
            |–– SUN/
        |–– paccs/
            |–– images/
            |–– splits/
    |–– dassl/
    |–– tools/
    main.py
    parse_test_res.py
    README.md
    share.py
    train.sh

To run the experiment of DDG w/ CI-PE, just enter the following cmd on root directory:

bash train.sh DDG CI PACS

Usage of train.sh:

bash train.sh {arg1=dymodel} {arg2=pe_type} {arg3=dataset}
  • dymodel is the backbone of the dynamic network, available ones are: DRT, DDG, ODCONV
  • pe_type determines which PE method to use, available ones are: CI,CK
  • dataset specifies which dataset to train and test on, available ones are: PACS,OfficeHome, PACS,VLCS, TerriaIncognita,DomainNet

📌Citation

If you would like to cite our works, the following bibtex code may be helpful:

@inproceedings{lin2023pe,
    title={Parameter Exchange for Robust Dynamic Domain Generalization},
    author={Lin, Luojun and Shen, Zhifeng and Sun, Zhishu and Yu, Yuanlong and Zhang, Lei and Chen, Weijie},
    booktitle={Proceedings of the 31st ACM International Conference on Multimedia},
    year={2023},
}

@inproceedings{sun2022ddg,
  title={Dynamic Domain Generalization},
  author={Sun, Zhishu and Shen, Zhifeng and Lin, Luojun and Yu, Yuanlong and Yang, Zhifeng and Yang, Shicai and Chen, Weijie},
  booktitle={IJCAI},
  year={2022}
}

🔗Acknowledgements

⚖️License

This source code is released under the MIT license. View it here