Осмотрев форумы и кусочки и учебные пособия по использованию timeit, я не смог идентифицировать свою проблему, но я уверен, что у меня что-то не хватает.Python timeit из командной строки - большая часть функциональности внутри строки не синхронизирована
Я пытаюсь весело следующий фрагмент кода (слегка измененный, чтобы быть просто иллюстративный пример) через timeit к производительности времени:
PREDS="
import numpy as np
from ML import fit, predict
from utils.data_transform import features_squared_only
red_features = np.load('data/red_features.npy')
f_sq2r = features_squared_only(red_features)
query_sn = np.load('data/query_sn.npy')
q_sq2r = features_squared_only(query_sn)
l4 = np.load('data/red_mlabels4.npy')
W = fit(f_sq2r, l4)
preds = predict(q_sq2r, W)"
python -m timeit -v -s "PREDS"
дает мне это:
10 loops -> 5.11e-06 secs
100 loops -> 4.39e-06 secs
1000 loops -> 1.27e-05 secs
10000 loops -> 8.47e-05 secs
100000 loops -> 0.000769 secs
1000000 loops -> 0.00792 secs
10000000 loops -> 0.0854 secs
100000000 loops -> 0.804 secs
raw times: 0.822 0.791 0.808
100000000 loops, best of 3: 0.00791 usec per loop
Однако , это определенно некорректно, поскольку даже:
python -m timeit -v -s "1+2"
дает результаты, такие как
100000000 loops, best of 3: 0.00781 usec per loop
Не говоря уже, когда я включил печати заявления в том, что «Preds» последовательность инструкций выше, он появился только в 8 раз (было также 10^8 «петли» - вероятно, связано). Измерение того же кода, за исключением импорта, заняло около 5 секунд времени настенных часов, поэтому в любом случае кажется маловероятным, что другие вызовы/и т. Д. который может быть исключен по времени, если он фактически рассчитан на весь код выше, составит до ~ 4,2 секунды.
Похоже, что большая часть моего кода на самом деле не синхронизирована/протестирована, но я не уверен, чего не хватает, чтобы заставить его работать. Любая помощь будет принята с благодарностью!
Вы избили меня до него. Я вернулся к примеру, который, как я думал, я копировал, затем проверил документы и обнаружил, что я не использовал его правильно. – mediantis