This repository supplies an implementation of a the supervised domain adaptation method Domain Adaptation using Graph Embedding (DAGE).
We additionally provide implementations of the following baseline transfer learning and domain adaptation methods:
Experiments | Datasets |
---|---|
Office-31 | AMAZON (A), DSLR (D), and WEBCAM (W) |
MNIST -> USPS | MNIST (M), USPS (U) |
$ conda env create --file environment.yml
$ conda activate dage
$ ./scripts/get_office.sh
$ ./scripts/get_digits.sh
run.py
is the entry-point for running the implemented methods.
To retreive a list of valid arguments, use python run.py --help
.
A number of ready-to-run scripts are supplied (found in the scripts
folder), with which one can test different methods and configurations.
An example which tunes a model on source data, and tests on target data is
$ ./scripts/office31_tune_source.sh
Running DAGE of Office31 with tuned hyperparameters using the revised training splits is acheived by using.
$ ./scripts/office31_dage_lda_tuned_vgg16_v2.sh
Note: The experiments were run on two separate occations. The first time was using the standard approach used in much domain adaptation literature. The second time (the accompaning scripts are postfixed with "_v2") the revised data splits were used to ensure generaliseability of the results.
A separate python entry-point hypersearch.py
can be used to perform a hyper-parameter search using Bayesian Optimisation.
Script are also supplied for performing a hyperparameter optimisation
$ ./scripts/office31_hypersearch.sh
A number of notebooks are supplied, in which one can visualise the Office-31 data, see the results of our experiments and the conducted hyper-parameter search.
- Lukas Hedegaard - https://github.com/lukashedegaard
- Omar Ali Sheikh-Omar - https://github.com/sheikhomar