Python time.clock () истекает большее значение, когда проходит всего несколько секунд - PullRequest
0 голосов
/ 05 февраля 2019

Мой код

start = time.clock();
# Do something here
end = time.clock() - start;
print end;

Проходит не более 6 секунд, но эта программа возвращает, скажем, 18 секунд.Я пробовал time.time () и модуль timeit, но их результат один и тот же.Как это происходит?

Редактировать: Я использую Python 2.7 в Ubuntu 16.04.Код, который я выполняю, является алгоритмом машинного обучения, набор данных не маленький.Он включает три наиболее подозреваемые функции, такие как numpy.linalg.solve (), numpy.tanh () и scipy.linalg.orth ().Кроме этого, оставшийся код является нормальным кодом.

Edit2: Да, проблема должна быть решена.Запустите следующий код

import numpy as np
from numpy.linalg import solve
import random
import time

start = time.clock();

M = np.random.rand( 10000, 10000 );
b = np.random.rand( 10000, 1);
ans = solve(M, b);

print time.clock() - start;

Если вашей памяти недостаточно, просто уменьшите размер.Это около 10 секунд, но вывод составляет 107 секунд.

1 Ответ

0 голосов
/ 05 февраля 2019

Несколько замечаний по поводу вашего кода:

  • Python не нуждается в точках с запятой, вы должны удалить их
  • Вы используете time, но не импортируетеэто

Если я исправлю ваш код и запущу его, он напечатает 1.8363000000021223e-05

Обратите внимание на e-05 в конце, это научное обозначение для 0,000018363 ..

import time
start = time.clock()
# Do something here
end = time.clock() - start
print(end)

Также обратите внимание, что вы не должны использовать .clock() в Python 3.3 или новее.Вместо этого вы должны использовать time.perf_counter или time.process_time.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...