我正在尝试使用keras的回调功能记录Keras中使用的每个纪元的状态。这是回调类的示例代码
class TimingCallback():
def __init__(self):
self.logs=[]
def on_epoch_begin(epoch, logs={}):
self.starttime=time()
def on_epoch_end(epoch, logs={}):
self.logs.append(time()-self.starttime)
这是我的模特适合。
cb = TimingCallback()
model.fit(X, Y, epochs=150, batch_size=10, callbacks=[cb])
执行时我收到以下错误。
错误:
AttributeError:TimingCallback实例没有属性'set_model'
任何人都可以帮我弄清楚为什么会发生这种情况吗?
答案 0 :(得分:4)
set_model
是keras.callbacks.Callback
中定义的方法。要编写自定义回调,您必须继承keras.callbacks.Callback
。否则,你的回调将缺少Keras内部使用的一些必要方法。
将第一行更改为以下行应该有效。
class TimingCallback(keras.callbacks.Callback):