我想记录一个keras模型的训练持续时间。我了解我可以将每个步骤花费的时间乘以步骤总数,但是我怀疑时间会因批次而异。
答案 0 :(得分:2)
为什么要回调?您可以这样做:
from time import time
start = time()
model.fit(.....)
print(time()-start)
答案 1 :(得分:2)
尝试keras.callbacks.Callback()
。而且,是的,时间是正确的,具体取决于批处理的大小。
from timeit import default_timer as timer
class TimingCallback(keras.callbacks.Callback):
def __init__(self, logs={}):
self.logs=[]
def on_epoch_begin(self, epoch, logs={}):
self.starttime = timer()
def on_epoch_end(self, epoch, logs={}):
self.logs.append(timer()-self.starttime)
cb = TimingCallback()
model = Sequential()
# Your code
model.fit(X, y, epochs=epochs, batch_size=batch_size, callbacks=[cb])
print(cb.logs)
print(sum(cb.logs))
从here中了解它。