distance_matrix_fast функция dtaidistance является медленной

Я использую пакет 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 ГБ ОЗУ, 32 ядра ЦП, 4 графических процессора Nvidia) мне пришлось прервать вычисления через день. Удивительно, но я даже не увидел никакого вывода из этой функции, хотя я установил для параметра "show_progress" (см. Исходный код) значение true.

Что я здесь не так делаю? Большое спасибо за Вашу помощь.

1 ответ

Решение

Оказалось, что я просто не собирал пакет из исходного кода и поэтому не смог получить доступ к более быстрой реализации на основе Си.

Шаги, упомянутые здесь, решили проблему для меня:

Библиотека также может быть скомпилирована и / или установлена ​​непосредственно из исходного кода.

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
Другие вопросы по тегам