2017-04-26 16 views
1

モデルをトレーニングしようとしています。私はチェックポイントのコールバックを使用していますが、基本的に最良のモデルを保存しています(検証時に最小限の損失機能を持つ)。私が持っている問題は、時にはこの最小値が最初のエポックであり、検証が少し不安定に見えることです。モデルが安定した後、または特定のエポック数の後にチェックポイントを使用する方法はありますか?ここで安定したモデルをケラスに保存する(深層学習)

私のトレーニングと検証の曲線の絵:

enter image description

+1

回避策は、modelcheckpointコールバックのパラメータ期間https://keras.io/callbacks/#modelcheckpointを使用している可能性があります。あなたはその点を避けるために、たとえば期間を5に設定することができます。 – maz

答えて

0

あなたはあなたの状態で論理ステートメントを有することができる、独自のコールバックを使用することができます。条件が満たされている場合は、ModelCheckpointコードをhttps://github.com/fchollet/keras/blob/master/keras/callbacks.py#L316から呼び出すことができます。

私の言葉が意味をなさない場合は、このコードスニペットが表示されます。

ありがとうございました。

class ModifiedCheckpoint(keras.callbacks.Callback): 
    def __init__(...): 
     <copy code>   
     return 
    def on_train_begin(self, logs={}): 
     return 

    def on_train_end(self, logs={}): 
     return 

    def on_epoch_begin(self, epoch, logs={}): 
     return 

    def on_epoch_end(self, epoch, logs={}): 
     <insert your logic here> 
     <and copy code here> 
     return 

    def on_batch_begin(self, batch, logs={}): 
     return 

    def on_batch_end(self, batch, logs={}): 
     return 
関連する問題