Skip to main content

Awesome Domain Adaptation Python Toolbox for Tensorflow and Scikit-learn

Project description

ADAPT

PyPI version Build Status Python Version Codecov Status

Awesome Domain Adaptation Python Toolbox

ADAPT is a python library which provides several domain adaptation methods implemented with Tensorflow and Scikit-learn.

Documentation Website

Find the details of all implemented methods as well as illustrative examples here: ADAPT Documentation Website

Installation

This package is available on Pypi and can be installed with the following command line:

pip install adapt

The following dependencies are required and will be installed with the library:

  • numpy
  • scipy
  • tensorflow (>= 2.0)
  • scikit-learn
  • cvxopt

If for some reason, these packages failed to install, you can do it manually with:

pip install numpy scipy tensorflow scikit-learn cvxopt

Finally import the module in your python scripts with:

import adapt

Reference

If you use this library in your research, please cite ADAPT using the following reference: https://arxiv.org/pdf/2107.03049.pdf

@article{de2021adapt,
	  title={ADAPT: Awesome Domain Adaptation Python Toolbox},
	  author={de Mathelin, Antoine and Deheeger, Fran{\c{c}}ois and Richard, Guillaume and Mougeot, Mathilde and Vayatis, Nicolas},
	  journal={arXiv preprint arXiv:2107.03049},
	  year={2021}
	}

Quick Start

import numpy as np
from adapt.feature_based import DANN
np.random.seed(0)

# Xs and Xt are shifted along the second feature.
Xs = np.concatenate((np.random.random((100, 1)),
                     np.zeros((100, 1))), 1)
Xt = np.concatenate((np.random.random((100, 1)),
                     np.ones((100, 1))), 1)
ys = 0.2 * Xs[:, 0]
yt = 0.2 * Xt[:, 0]

# With lambda set to zero, no adaptation is performed.
model = DANN(lambda_=0., random_state=0)
model.fit(Xs, ys, Xt, yt, epochs=100, verbose=0)
print(model.history_["task_t"][-1]) # This gives the target score at the last training epoch.
>>> 0.0240

# With lambda set to 0.1, the shift is corrected, the target score is then improved.
model = DANN(lambda_=0.1, random_state=0)
model.fit(Xs, ys, Xt, yt, epochs=100, verbose=0)
print(model.history_["task_t"][-1])
>>> 0.0022

Examples

Two Moons Classification Regression
Open In Colab Open In Colab Open In Colab
Sample Bias Multi-Fidelity Rotation
Open In Colab Open In Colab Open In Colab

Content

ADAPT package is divided in three sub-modules containing the following domain adaptation methods:

Feature-based methods

Instance-based methods

Parameter-based methods

Acknowledgement

This work has been funded by Michelin and the Industrial Data Analytics and Machine Learning chair from ENS Paris-Saclay, Borelli center.

Michelin IDAML Centre Borelli

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adapt-0.3.0.tar.gz (64.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page