我想检索模型在验证数据上的速度指标,以便比较不同的参数及其对速度的影响。例如,每批花费在验证数据上的时间。或者,由于我使用 hyperopt,每次迭代/试验所花费的时间,也用于验证数据。
有什么方法可以使用validation_split> 0、predict()或evaluate()的fit()输出或hyperopt中Trials的属性?
如果没有,我想我将不得不在代码中添加时间地标,但这对我来说并不理想。
谢谢!
我想检索模型在验证数据上的速度指标,以便比较不同的参数及其对速度的影响。例如,每批花费在验证数据上的时间。或者,由于我使用 hyperopt,每次迭代/试验所花费的时间,也用于验证数据。
有什么方法可以使用validation_split> 0、predict()或evaluate()的fit()输出或hyperopt中Trials的属性?
如果没有,我想我将不得不在代码中添加时间地标,但这对我来说并不理想。
谢谢!
您可以通过在每个评估批次结束时调用的自定义回调中记录批次时间来实现这一点。它看起来像这样:
from keras.callbacks import Callback
import time
class BatchTimeCallback(Callback):
def on_train_begin(self, logs={}):
self.batch_times = []
def on_batch_end(self, batch, logs={}):
self.batch_times.append(time.time())
batch_time_callback = BatchTimeCallback()
...
model.evaluate(..., callbacks=[batch_time_callback])
print(batch_time_callback.batch_times)
请注意,最新版本 (2.2.4) 不支持此功能,因此您必须使用 master 分支。