Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 我可以写一个keras回调来记录并返回总训练时间吗?_Tensorflow_Keras - Fatal编程技术网

Tensorflow 我可以写一个keras回调来记录并返回总训练时间吗?

Tensorflow 我可以写一个keras回调来记录并返回总训练时间吗?,tensorflow,keras,Tensorflow,Keras,我想记录keras模型的训练跑步持续时间。我知道我可以将每个步骤的时间乘以步骤总数,但我怀疑时间可能会因批次而异。为什么要回调?你可以这样做: from time import time start = time() model.fit(.....) print(time()-start) 尝试keras.callbacks.Callback()。是的,你是对的,时间会根据批量大小而变化 from timeit import default_timer as timer class Tim

我想记录keras模型的训练跑步持续时间。我知道我可以将每个步骤的时间乘以步骤总数,但我怀疑时间可能会因批次而异。

为什么要回调?你可以这样做:

from time import time

start = time()
model.fit(.....)
print(time()-start)

尝试
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))

从中了解它。

酷!然而,这不也包括保存重量或训练历史所花费的时间,以及花费在耗时回调和其他不包括训练的事情上的时间吗?除此之外,这种方法过于简单且有效。为什么要使用
timeit
time
模块可能不工作吗?是的,我们也可以在上述情况下使用
time.time()
。要进行检查,请将
timer()
替换为
time.time()
,但结果会略有不同。请参阅:stackoverflow.com/questions/7370801/…。阅读第二个答案。这就是我决定在上述情况下使用
timer()
。有人知道为什么在应用上述步骤时,会出现此错误吗?AttributeError:“内置函数”或“方法”对象没有属性“日志”。我已经应用了自定义函数,但不确定为什么会一直显示此错误?