distance_matrix_fast dtaidistance 的功能很慢

distance_matrix_fast function of dtaidistance is slow

我正在使用 Python 包 dtaidistance 进行快速 DTW 计算。如文档中所述,可以使用以下代码:

from dtaidistance import dtw
import numpy as np
series = np.matrix([
    [0.0, 0, 1, 2, 1, 0, 1, 0, 0],
    [0.0, 1, 2, 0, 0, 0, 0, 0, 0],
    [0.0, 0, 1, 2, 1, 0, 0, 0, 0]])
ds = dtw.distance_matrix_fast(series)

计算序列集之间的 DTW 距离度量。我正在使用的时间序列的长度为 3000。总的来说,我的每个数据集大约有 3500 个这些序列。

不幸的是,我无法在相当长的时间内从该函数获得任何结果。在我的机器上(128 GB RAM,32 CPU 内核,4 个 Nvidia GPU)我不得不在一天后中止计算。令人惊讶的是,我什至没有看到此函数的任何输出,即使我将参数 "show_progress"(参见 source code)设置为 true。

我在这里做错了什么?非常感谢您的帮助。

事实证明,我根本没有从源代码构建包,因此无法访问更快的基于 C 的实现。

提到的步骤 here 解决了我的问题:

The library can also be compiled and/or installed directly from source.

Download the source from https://github.com/wannesm/dtaidistance
Compile the C extensions: python3 setup.py build_ext --inplace
Install into your site-package directory: python3 setup.py install