2017-12-13 7 views
0

ケラスで使用される各エポックのステータスをケラスのコールバック機能を使って記録しようとしています。これはコールバッククラスのサンプルコードです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_modelは、keras.callbacks.Callbackで定義された方法です。カスタムコールバックを作成するには、keras.callbacks.Callbackをサブクラス化する必要があります。さもなければ、あなたのコールバックはKerasによって内部的に使用されるいくつかの必要なメソッドを欠いています。

最初の行を次の行に変更すると効果があります。

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

ありがとうございました。出来た! – Mufeed

関連する問題