2017-12-13 5 views
0

keras의 콜백 기능을 사용하여 Keras에서 사용 된 각 시대의 상태를 기록하려고합니다. 콜백 클래스의 샘플 코드입니다.Keras 콜백 인스턴스에 'set_model'속성이 없습니다.

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 instance has no attribute 'set_model'

사람이 나를 알아 내기 위해 도와 드릴까요?

답변

1

set_modelkeras.callbacks.Callback에 정의 된 방법이다. 사용자 정의 콜백을 작성하려면 keras.callbacks.Callback의 하위 클래스를 만들어야합니다. 그렇지 않으면 콜백은 Keras에서 내부적으로 사용하는 몇 가지 필요한 메소드가 부족합니다.

첫 줄을 다음 줄로 변경하면됩니다.

class TimingCallback(keras.callbacks.Callback): 
+0

감사합니다. 그것은 효과가있다! – Mufeed

관련 문제