distance_matrix_fast функция dtaidistance медленная - PullRequest
0 голосов
/ 03 сентября 2018

Я использую пакет 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 Ответ

0 голосов
/ 25 октября 2018

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

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

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

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
...