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.2.9.tar.gz (50.3 kB view details)

Uploaded Source

File details

Details for the file adapt-0.2.9.tar.gz.

File metadata

  • Download URL: adapt-0.2.9.tar.gz
  • Upload date:
  • Size: 50.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for adapt-0.2.9.tar.gz
Algorithm Hash digest
SHA256 5983a5267932923c4d86e9b8a669d06e37277b7278c3760f28131cd8d38c9de8
MD5 63c4f0e0dd335550f48817306c1f041b
BLAKE2b-256 007272cdac68b0e20096bb5aafeb2c7cf9f0d8ac7c9871f9527711c324465a28

See more details on using hashes here.

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