/soft-dtw-divergences

Primary LanguagePythonApache License 2.0Apache-2.0

Differentiable Divergences between Time Series

An implementation of soft-DTW divergences.

Example

import numpy as np
from sdtw_div.numba_ops import sdtw_div, sdtw_value_and_grad

# Two 3-dimensional time series of lengths 5 and 4, respectively.
X = np.random.randn(5, 3)
Y = np.random.randn(4, 3)

# Compute the divergence value. The parameter gamma controls the regularization strength. 
value = sdtw_div(X, Y, gamma=1.0)

# Compute the divergence value and the gradient w.r.t. X.
value, grad = sdtw_div_value_and_grad(X, Y, gamma=1.0)

Similarly, we can use sharp_sdtw_div, sharp_sdtw_div_value_and_grad, mean_cost_div and mean_cost_div_value_and_grad.

Install

Run python setup.py install or copy the files to your project.

Reference

Differentiable Divergences between Time Series
Mathieu Blondel, Arthur Mensch, Jean-Philippe Vert
arXiv:2010.08354