Python实现的soft-DTW
项目描述
Python实现的soft-DTW。
这是什么?
著名的动态时间规整(DTW)[1] 定义了两条时间序列之间的差异,为可能可变长度的序列,作为它们的最小对齐成本。尽管可能的对齐数量是两个时间序列长度的指数级,[1] 显示DTW可以使用动态规划以二次时间计算。
Soft-DTW [2] 提出用软最小值来替换这个最小值。像原始DTW一样,Soft-DTW可以使用动态规划以二次时间计算。然而,Soft-DTW的主要优势在于它处处可微分,并且其梯度也可以以二次时间计算。这使得可以使用Soft-DTW进行时间序列平均或作为损失函数,在真实时间序列和由神经网络预测的时间序列之间,该神经网络通过反向传播从头到尾进行训练。
支持的功能
计划的功能
PyTorch函数
示例
from sdtw import SoftDTW
from sdtw.distance import SquaredEuclidean
# Time series 1: numpy array, shape = [m, d] where m = length and d = dim
X = ...
# Time series 2: numpy array, shape = [n, d] where n = length and d = dim
Y = ...
# D can also be an arbitrary distance matrix: numpy array, shape [m, n]
D = SquaredEuclidean(X, Y)
sdtw = SoftDTW(D, gamma=1.0)
# soft-DTW discrepancy, approaches DTW as gamma -> 0
value = sdtw.compute()
# gradient w.r.t. D, shape = [m, n], which is also the expected alignment matrix
E = sdtw.grad()
# gradient w.r.t. X, shape = [m, d]
G = D.jacobian_product(E)
安装
没有可用的二进制包。
可以从其git存储库安装此项目。假设您有一个工作的C编译器。
通过以下方式获取源代码:
git clone https://github.com/mblondel/soft-dtw.git
或者,如果没有git,可以从GitHub下载ZIP文件。
安装依赖项
# via pip pip install numpy scipy scikit-learn cython nose # via conda conda install numpy scipy scikit-learn cython nose
构建和安装soft-dtw
cd soft-dtw python setup.py install
参考
项目详情
关闭
哈希值 for soft_dtw-0.1.6-cp36-cp36m-macosx_10_13_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75092414fbdc31fe4c82e560aee4b4c5bd4993275e7934dea5dd24a461473f12 |
|
MD5 | 458e0e76bca6f9306b82f486b41e8a97 |
|
BLAKE2b-256 | 26e998305d8a5b37d4e0754cbdc42c9678582ca21d0838dc5efaa1c07cce82a6 |