Почему такая большая разница во времени выполнения операции свертки с numpy?Python

Программы на Python
Anonymous
Почему такая большая разница во времени выполнения операции свертки с numpy?

Сообщение Anonymous »


Используя функцию свертки numpy, я обнаружил, что ядра свертки размером 10000 или меньше выполняют гораздо более быстрое время свертки, чем ядра размера 10001 или больше. В чем причина такой большой разницы во времени, когда ядро ​​увеличивается всего на 1.

Вот тестовый код:

импортировать numpy как np со времени импортировать perf_counter как pfc данные = np.random.normal(размер=50000) kernel_low = np.random.normal (размер = 10000) kernel_high = np.random.normal (размер = 10001) t_start = пфк() np.convolve(данные, kernel_low, 'полный') t_stop = пфк() print('numpy свертка с ядром = 10000, time=', t_stop - t_start) t_start = пфк() np.convolve(данные, kernel_high, 'полный') t_stop = пфк() print('numpy свертка с ядром = 10001, time=', t_stop - t_start) Выход:

свертка numpy с ядром = 10000, временем = 0,0615867999731563 numpy-свертка с ядром = 10001, временем = 1,6918594000162557 Есть идеи?

Вернуться в «Python»