/adda

Primary LanguagePython

Adversarial Discriminative Domain Adaptation

Getting started

This code requires Python 3, and is implemented in Tensorflow.

Hopefully things should be fairly easy to run out of the box:

pip install -r requirements.txt
mkdir data snapshot
export PYTHONPATH="$PWD:$PYTHONPATH"
scripts/svhn-mnist.sh

The provided script does the following things:

  • Train a base LeNet model on SVHN (downloading SVHN under data/svhn in the process)
  • Use ADDA to adapt the SVHN model to MNIST (downloading MNIST under data/mnist in the process)
  • Run an evaluation on MNIST using the source-only model (stored at snapshot/lenet_svhn)
  • Run an evaluation on MNIST using the ADDA model (stored at snapshot/adda_lenet_svhn_mnist)

Areas of interest

  • Check scripts/svhn-mnist.sh for hyperparameters.
  • The LeNet model definition is in adda/models/lenet.py.
  • The model is annotated with data preprocessing info, which is used in the preprocessing function in adda/models/model.py.
  • The main ADDA logic happens in tools/train_adda.py.
  • The adversarial discriminator model definition is in adda/adversary.py.