Почему умножение матрицы на вектор в Python происходит быстрее после первого вызова? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть следующий код:

import numpy as np
from timeit import default_timer as timer

n = 10
trials = 10

def test(scale=0.1):
    A = np.random.normal(scale=scale, size=(n, n))
    v = np.random.normal(scale=scale, size=(n))
    start = timer()
    A @ v
    end = timer()
    print('Time: ', end-start)

for _ in range(trials):
    test()

Вывод:

Time:  0.0036287959665060043
Time:  7.0838723331689835e-06
Time:  3.401888534426689e-06
Time:  3.093155100941658e-06
Time:  3.0230730772018433e-06
Time:  3.037974238395691e-06

Почему первые два испытания намного медленнее?Суть в том, что я работаю над проектом, в котором мне нужно сообщить об ускорении одного метода (для умножения матрицы на вектор в специализированном случае) по сравнению с общим умножением матрицы на вектор.Должен ли я игнорировать первые несколько испытаний, и если да, то почему?

...