我正在 ubuntu 上使用 Python 3.10.12 运行这个程序。我需要测量用于评估概率函数的时间。这是代码。
def likelihood(x, fun):
if fun == 0:
rosenbrock(x)
else:
rosenbrock_simplified(x)
def rosenbrock(x):
for i in range(3000):
# some calculation
return logl
def time_evaluation():
x = np.random.normal(size=2)
start = time.time()
value = likelihood(x, 0)
stop = time.time()
return stop - start
运行此代码我获得的时间值很少。如果我运行这段代码来测量函数内部的时间
rosenbrock
,值会更高。 time.time() 是否可能只测量似然函数调用所需的时间?
正如我之前所说,我通过在
time.time()
函数内移动 rosenbrock
注意到了这种时间差异。
这些时间差异可能是由于运行代码所需的时间较短造成的。这种情况下总会有一些波动。
您应该运行您的函数,例如1000 次,测量完成所有 1000 次调用所需的时间,然后将时间除以调用次数,得到一次调用的时间。