@ Хагбард, я не уверен, как вы могли бы иметь одинаковую «метрику расстояния» в каждом из них. Если вы узнаете по их документации или что-то, я также хотел бы знать. Теперь, что касается 22-х годов, вы могли бы сделать последний тест? Не могли бы вы указать, что массив numpy имеет тип np.double? просто сделайте: s1 = np.array (s1, dtype = np.double); s2 = np.array (s2, dtype = np.double) и работает на консоли:% timeit dtw.distance_fast (s1, s2)

вниваю библиотекиdtaidistance, fastdtw а такжеcdtw для вычислений DTW. Это мой код:

from fastdtw import fastdtw
from cdtw import pydtw
import fastdtw
import array
from timeit import default_timer as timer
from dtaidistance import dtw, dtw_visualisation as dtwvis

s1 = mySampleSequences[0] # first sample sequence consisting of 3000 samples
s2 = mySampleSequences[1] # second sample sequence consisting of 3000 samples

start = timer()
distance1 = dtw.distance(s1, s2)
end = timer()
start2 = timer()
distance2 = dtw.distance_fast(array.array('d',s1),array.array('d',s2))
end2 = timer()
start3 = timer()
distance3, path3 = fastdtw(s1,s2)
end3 = timer()
start4 = timer()
distance4 = pydtw.dtw(s1,s2).get_dist()
end4 = timer()

print("dtw.distance(x,y) time: "+ str(end - start))
print("dtw.distance(x,y) distance: "+str(distance1))
print("dtw.distance_fast(x,y) time: "+ str(end2 - start2))
print("dtw.distance_fast(x,y) distance: " + str(distance2))
print("fastdtw(x,y) time: "+ str(end3 - start3))
print("fastdtw(x,y) distance: " + str(distance3))
print("pydtw.dtw(x,y) time: "+ str(end4 - start4))
print("pydtw.dtw(x,y) distance: " + str(distance4))

Это вывод, который я получаю:

dtw.distance (x, y) время: 22.16925272245262dtw.distance (x, y) расстояние: 1888.8583853746156dtw.distance_fast (x, y) время: 0,3889036471839056dtw.distance_fast (x, y) расстояние: 1888.8583853746156fastdtw (x, y) время: 0,23296659641047412fastdtw (x, y) расстояние: 27238,0Время pydtw.dtw (x, y): 0.13706478039556558pydtw.dtw (x, y) расстояние: 17330,0

Мой вопрос: почему я получаю разные выступления и разные расстояния? Большое спасибо за ваши комментарии.

// редактировать: единица измерения времени - секунды.

Ответы на вопрос(1)

Ваш ответ на вопрос