Code for our paper 'Attracting and Dispersing: A Simple Approach for Source-free Domain Adaptation'
We use pytoch 1.3 with cuda 10.0
Attention: Please note that the kl_div in pytorch equals to dot product if there is no log for the input.
Download VisDA dataset and change the path in the code to it. First train model on Source domain, directly run src_pretrain.py Source-free domain adaptation, directly run tar_adaptation.py
You can insert the core part (loss computing starting in Line 297 in tar_adaptation.py) into code of any other SFDA method, such as our NRC (NeurIPS 2021) or SHOT (ICML 2020)
For computing SND, you can use the file snd.py (code is from SND), in the paper we compute SND after only training for a few epochs (~5 on visda).