我想比较不同模型之间的计算时间。在训练过程中,每个epoch的计算时间会打印到控制台上。
Epoch 5/5160000/160000 [==============================] - **10s** ......
我希望找到一种方法,将这些时间以类似于模型指标的方式存储,这些指标在每个epoch都会被保存,并且可以通过history对象访问。
回答:
尝试使用以下回调函数:
class TimeHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.times = [] def on_epoch_begin(self, batch, logs={}): self.epoch_time_start = time.time() def on_epoch_end(self, batch, logs={}): self.times.append(time.time() - self.epoch_time_start)
然后:
time_callback = TimeHistory()model.fit(..., callbacks=[..., time_callback],...)times = time_callback.times
在这种情况下,times
应该存储每个epoch的计算时间。