This is a modified version of the original repository. We made the following modifications:
- Upgrade code to Python 3.6 and Tensorflow 1.15
- Add Conda environment
- Externalise experiment parameters (now command line arguments)
- Fix major bug in model training (the original version trained a model for 10 consequtive repetitions without resetting the model parameters. This gave the model 10x the expected data for training)
conda env create -f environment.yml
This repository provides the implementation of the paper "Unified Deep Supervised Domain Adaptation and Generalization" published in ICCV 2017. It also contains the training/testing splits of two cross domain adaptation task (MNIST->USPS and USPS->MNIST).
We are interested in the supervised domain adaptation when very few labeled target samples are available in training (from 1 to 7).
Experimental setting involves randomly selecting 2000 images from MNIST and 1800 images from USPS. Here, we randomly selected n labeled samples per class from target domain data and used them in training. We evaluated our approach for n ranging from 1 to 7 and repeated each experiment 10 times. Therefore, we provided data we used to generate the results. Data files are located in the 'row_data' subdirectory.
To reproduce the results of the paper you just need to run main.py. There are three main parameters:
-
sample_per_class = 1 or 2 or ... or 7 (sample_per_class specifies the number of labeled target data per class.)
-
repetition = 0 or 2 or ... or 9. (We repeat the experiments 10 times and report the average accuracies.)
-
domain_adaptation_task = 'MNIST_to_USPS' or 'USPS_to_MNIST'
There are some other hyperparameters that you may change for the new dataset.
@InProceedings{motiian2017CCSA, Title = {Unified Deep Supervised Domain Adaptation and Generalization},
Author = {Motiian, Saeid and Piccirilli, Marco and Adjeroh, Donald A. and Doretto, Gianfranco},
Booktitle = {IEEE International Conference on Computer Vision (ICCV)},
Year = {2017}}
For more information: