“%%timeit”记录的时间与实际计算时间之间存在巨大差异

Huge difference between recorded time from "%%timeit" and actual time of computation

我在 jupyter 实验室笔记本中使用了魔法命令 %%timeit

单元格由以下代码组成:

%%timeit
scaler.fit(X_train)
grad.fit(scaler.transform(X_train),Y_train)

其中grad是一个sklearn.ensemble.GradientBoostingClassifier对象,X_train一个numpy.matrix形状:(90757, 218),Y_train一个numpy.array.顺便说一句,长计算似乎很正常。

好吧,我很惊讶地看到 %%timeit 在计算单元格时给出 9min 22s ± 6.01 s per loop (mean ± std. dev. of 7 runs, 1 loop each)[*] 你知道这意味着什么)大约 1 小时。请注意信息 9min 22s ± 6.01 s 仅在笔记本声明单元格被完全计算后出现,因此在 [*] 消失后。

这是否意味着笔记本在声明它仍在计算时在说谎,还是 %%timeit 变得疯狂?

默认%%timeit runs the cell multiple times, reporting the average runtime at the end. If you want to measure wall-clock runtime for a block of code while running it just once, use %%time