我想在验证数据上检索模型的速度指标,以便比较不同的参数及其对速度的影响。例如,每个批次在验证数据上花费的时间。或者,因为我使用hyperopt,所以每次迭代/试验花费的时间,也是在验证数据上花费的时间。
有没有办法使用validation_split>0、predict()或evaluate()的fit()输出或hyperopt中Trials的属性?
如果不是,我想我将不得不在代码中添加时间标志,但这对我来说并不理想。
谢谢!
发布于 2019-07-29 02:17:25
您可以通过在每个评估批次结束时调用的自定义回调中记录批次时间来实现此目的。它看起来像这样:
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)中不支持的主分支,因此您必须使用分支。
https://stackoverflow.com/questions/57241019
复制相似问题