Neal Wu cc12b7acd4 Move the README to the main directory 8 年之前
..
datasets 94b559a839 Domain Separation Networks changes. 8 年之前
domain_separation cc12b7acd4 Move the README to the main directory 8 年之前
README.md cc12b7acd4 Move the README to the main directory 8 年之前
WORKSPACE 89c7c98711 DSN infrastructure staging 8 年之前
__init__.py 89c7c98711 DSN infrastructure staging 8 年之前

README.md

Domain Separation Networks

Introduction

This code is the code used for the "Domain Separation Networks" paper by Bousmalis K., Trigeorgis G., et al. which was presented at NIPS 2016. The paper can be found here: https://arxiv.org/abs/1608.06019

Contact

This code was open-sourced by Konstantinos Bousmalis (konstantinos@google.com, github:bousmalis)

Installation

You will need to have the following installed on your machine before trying out the DSN code.

Important Note

Although we are making the code available, you are only able to use the MNIST provider for now. We will soon provide a script to download and convert MNIST-M as well. Check back here in a few weeks or wait for a relevant announcement from Twitter @bousmalis.

Running the code for adapting MNIST to MNIST-M

In order to run the MNIST to MNIST-M experiments with DANNs and/or DANNs with domain separation (DSNs) you will need to set the directory you used to download MNIST and MNIST-M:\ $ export DSN_DATA_DIR=/your/dir

Then you need to build the binaries with Bazel:

$ bazel build -c opt domain_adaptation/domain_separation/...

You can then train with the following command:

$ ./bazel-bin/domain_adaptation/domain_separation/dsn_train

  --similarity_loss=dann_loss  \
  --basic_tower=dann_mnist  \
  --source_dataset=mnist  \
  --target_dataset=mnist_m  \
  --learning_rate=0.0117249  \
  --gamma_weight=0.251175  \
  --weight_decay=1e-6  \
  --layers_to_regularize=fc3  \
  --nouse_separation  \
  --master=""  \
  --dataset_dir=${DSN_DATA_DIR}  \
  -v --use_logging

Evaluation can be invoked with the following command:\ $ ./bazel-bin/domain_adaptation/domain_separation/dsn_eval

-v --dataset mnist_m --split test --num_examples=9001  \
--dataset_dir=${DSN_DATA_DIR}

Domain Separation Networks

Introduction

This code is the code used for the "Domain Separation Networks" paper by Bousmalis K., Trigeorgis G., et al. which was presented at NIPS 2016. The paper can be found here: https://arxiv.org/abs/1608.06019

Contact

This code was open-sourced by Konstantinos Bousmalis (konstantinos@google.com, github:bousmalis)

Installation

You will need to have the following installed on your machine before trying out the DSN code.

Running the code for adapting MNIST to MNIST-M

In order to run the MNIST to MNIST-M experiments with DANNs and/or DANNs with domain separation (DSNs) you will need to set the directory you used to download MNIST and MNIST-M:\ $ export DSN_DATA_DIR=/your/dir

Then you need to build the binaries with Bazel:

$ bazel build -c opt domain_adaptation/domain_separation/...

Add models and models/slim to your $PYTHONPATH:

$ export PYTHONPATH=$PYTHONPATH:$PWD/slim\ $ export PYTHONPATH=$PYTHONPATH:$PWD

You can then train with the following command:

$ ./bazel-bin/domain_adaptation/domain_separation/dsn_train

  --similarity_loss=dann_loss  \
  --basic_tower=dann_mnist  \
  --source_dataset=mnist  \
  --target_dataset=mnist_m  \
  --learning_rate=0.0117249  \
  --gamma_weight=0.251175  \
  --weight_decay=1e-6  \
  --layers_to_regularize=fc3  \
  --nouse_separation  \
  --master=""  \
  --dataset_dir=${DSN_DATA_DIR}  \
  -v --use_logging